summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/glm
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2017-02-05 16:05:20 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2017-02-05 16:06:08 +0100
commit8d1eb8e410f18bd20f8bb0ac68826bce9c32e635 (patch)
treecb0e04b11b8fbe044ed2bcf00907b462c09a1e03 /3rdparty/glm
parentac096aa2a0921efde96b76252dffb119dcf27efc (diff)
Update GLM to latest (nw)
Diffstat (limited to '3rdparty/glm')
-rw-r--r--3rdparty/glm/.appveyor.yml34
-rw-r--r--3rdparty/glm/.travis.yml84
-rw-r--r--3rdparty/glm/CMakeLists.txt112
-rw-r--r--3rdparty/glm/copying.txt54
-rw-r--r--3rdparty/glm/doc/api/a00001.html59
-rw-r--r--3rdparty/glm/doc/api/a00001_source.html815
-rw-r--r--3rdparty/glm/doc/api/a00002.html59
-rw-r--r--3rdparty/glm/doc/api/a00002_source.html91
-rw-r--r--3rdparty/glm/doc/api/a00003.html59
-rw-r--r--3rdparty/glm/doc/api/a00003_source.html259
-rw-r--r--3rdparty/glm/doc/api/a00004.html59
-rw-r--r--3rdparty/glm/doc/api/a00004_source.html1634
-rw-r--r--3rdparty/glm/doc/api/a00005.html59
-rw-r--r--3rdparty/glm/doc/api/a00005_source.html1423
-rw-r--r--3rdparty/glm/doc/api/a00006.html59
-rw-r--r--3rdparty/glm/doc/api/a00006_source.html311
-rw-r--r--3rdparty/glm/doc/api/a00007.html129
-rw-r--r--3rdparty/glm/doc/api/a00007_source.html337
-rw-r--r--3rdparty/glm/doc/api/a00008.html89
-rw-r--r--3rdparty/glm/doc/api/a00008_source.html141
-rw-r--r--3rdparty/glm/doc/api/a00009.html141
-rw-r--r--3rdparty/glm/doc/api/a00009_source.html221
-rw-r--r--3rdparty/glm/doc/api/a00010.html67
-rw-r--r--3rdparty/glm/doc/api/a00010_source.html109
-rw-r--r--3rdparty/glm/doc/api/a00011.html103
-rw-r--r--3rdparty/glm/doc/api/a00011_source.html119
-rw-r--r--3rdparty/glm/doc/api/a00012.html102
-rw-r--r--3rdparty/glm/doc/api/a00012_source.html129
-rw-r--r--3rdparty/glm/doc/api/a00013.html101
-rw-r--r--3rdparty/glm/doc/api/a00013_source.html134
-rw-r--r--3rdparty/glm/doc/api/a00014.html86
-rw-r--r--3rdparty/glm/doc/api/a00014_source.html94
-rw-r--r--3rdparty/glm/doc/api/a00015.html78
-rw-r--r--3rdparty/glm/doc/api/a00015_source.html80
-rw-r--r--3rdparty/glm/doc/api/a00016.html327
-rw-r--r--3rdparty/glm/doc/api/a00016_source.html254
-rw-r--r--3rdparty/glm/doc/api/a00017.html405
-rw-r--r--3rdparty/glm/doc/api/a00017_source.html266
-rw-r--r--3rdparty/glm/doc/api/a00018.html178
-rw-r--r--3rdparty/glm/doc/api/a00018_source.html226
-rw-r--r--3rdparty/glm/doc/api/a00019.html236
-rw-r--r--3rdparty/glm/doc/api/a00019_source.html377
-rw-r--r--3rdparty/glm/doc/api/a00020.html150
-rw-r--r--3rdparty/glm/doc/api/a00020_source.html295
-rw-r--r--3rdparty/glm/doc/api/a00021.html134
-rw-r--r--3rdparty/glm/doc/api/a00021_source.html205
-rw-r--r--3rdparty/glm/doc/api/a00022.html138
-rw-r--r--3rdparty/glm/doc/api/a00022_source.html171
-rw-r--r--3rdparty/glm/doc/api/a00023.html108
-rw-r--r--3rdparty/glm/doc/api/a00023_source.html210
-rw-r--r--3rdparty/glm/doc/api/a00024.html73
-rw-r--r--3rdparty/glm/doc/api/a00024_source.html236
-rw-r--r--3rdparty/glm/doc/api/a00025.html107
-rw-r--r--3rdparty/glm/doc/api/a00025_source.html172
-rw-r--r--3rdparty/glm/doc/api/a00026.html151
-rw-r--r--3rdparty/glm/doc/api/a00026_source.html204
-rw-r--r--3rdparty/glm/doc/api/a00027.html142
-rw-r--r--3rdparty/glm/doc/api/a00027_source.html156
-rw-r--r--3rdparty/glm/doc/api/a00028.html125
-rw-r--r--3rdparty/glm/doc/api/a00028_source.html141
-rw-r--r--3rdparty/glm/doc/api/a00029.html192
-rw-r--r--3rdparty/glm/doc/api/a00029_source.html274
-rw-r--r--3rdparty/glm/doc/api/a00030.html214
-rw-r--r--3rdparty/glm/doc/api/a00030_source.html271
-rw-r--r--3rdparty/glm/doc/api/a00031.html117
-rw-r--r--3rdparty/glm/doc/api/a00031_source.html156
-rw-r--r--3rdparty/glm/doc/api/a00032.html136
-rw-r--r--3rdparty/glm/doc/api/a00032_source.html197
-rw-r--r--3rdparty/glm/doc/api/a00033.html129
-rw-r--r--3rdparty/glm/doc/api/a00033_source.html239
-rw-r--r--3rdparty/glm/doc/api/a00034.html93
-rw-r--r--3rdparty/glm/doc/api/a00034_source.html183
-rw-r--r--3rdparty/glm/doc/api/a00035.html97
-rw-r--r--3rdparty/glm/doc/api/a00035_source.html155
-rw-r--r--3rdparty/glm/doc/api/a00036.html112
-rw-r--r--3rdparty/glm/doc/api/a00036_source.html183
-rw-r--r--3rdparty/glm/doc/api/a00037.html86
-rw-r--r--3rdparty/glm/doc/api/a00037_source.html147
-rw-r--r--3rdparty/glm/doc/api/a00038.html987
-rw-r--r--3rdparty/glm/doc/api/a00038_source.html1734
-rw-r--r--3rdparty/glm/doc/api/a00039.html1429
-rw-r--r--3rdparty/glm/doc/api/a00039_source.html1708
-rw-r--r--3rdparty/glm/doc/api/a00040.html70
-rw-r--r--3rdparty/glm/doc/api/a00040_source.html111
-rw-r--r--3rdparty/glm/doc/api/a00041.html78
-rw-r--r--3rdparty/glm/doc/api/a00041_source.html140
-rw-r--r--3rdparty/glm/doc/api/a00042.html81
-rw-r--r--3rdparty/glm/doc/api/a00042_source.html115
-rw-r--r--3rdparty/glm/doc/api/a00043.html79
-rw-r--r--3rdparty/glm/doc/api/a00043_source.html205
-rw-r--r--3rdparty/glm/doc/api/a00044.html85
-rw-r--r--3rdparty/glm/doc/api/a00044_source.html208
-rw-r--r--3rdparty/glm/doc/api/a00045.html116
-rw-r--r--3rdparty/glm/doc/api/a00045_source.html132
-rw-r--r--3rdparty/glm/doc/api/a00046.html105
-rw-r--r--3rdparty/glm/doc/api/a00046_source.html103
-rw-r--r--3rdparty/glm/doc/api/a00047.html90
-rw-r--r--3rdparty/glm/doc/api/a00047_source.html112
-rw-r--r--3rdparty/glm/doc/api/a00048.html101
-rw-r--r--3rdparty/glm/doc/api/a00048_source.html173
-rw-r--r--3rdparty/glm/doc/api/a00049.html68
-rw-r--r--3rdparty/glm/doc/api/a00049_source.html278
-rw-r--r--3rdparty/glm/doc/api/a00050.html77
-rw-r--r--3rdparty/glm/doc/api/a00050_source.html124
-rw-r--r--3rdparty/glm/doc/api/a00051.html72
-rw-r--r--3rdparty/glm/doc/api/a00051_source.html2484
-rw-r--r--3rdparty/glm/doc/api/a00052.html108
-rw-r--r--3rdparty/glm/doc/api/a00052_source.html118
-rw-r--r--3rdparty/glm/doc/api/a00053.html62
-rw-r--r--3rdparty/glm/doc/api/a00053_source.html84
-rw-r--r--3rdparty/glm/doc/api/a00054.html62
-rw-r--r--3rdparty/glm/doc/api/a00054_source.html85
-rw-r--r--3rdparty/glm/doc/api/a00055.html66
-rw-r--r--3rdparty/glm/doc/api/a00055_source.html251
-rw-r--r--3rdparty/glm/doc/api/a00056.html76
-rw-r--r--3rdparty/glm/doc/api/a00056_source.html104
-rw-r--r--3rdparty/glm/doc/api/a00057.html108
-rw-r--r--3rdparty/glm/doc/api/a00057_source.html2465
-rw-r--r--3rdparty/glm/doc/api/a00058.html63
-rw-r--r--3rdparty/glm/doc/api/a00058_source.html94
-rw-r--r--3rdparty/glm/doc/api/a00059.html63
-rw-r--r--3rdparty/glm/doc/api/a00059_source.html86
-rw-r--r--3rdparty/glm/doc/api/a00060.html63
-rw-r--r--3rdparty/glm/doc/api/a00060_source.html94
-rw-r--r--3rdparty/glm/doc/api/a00061.html63
-rw-r--r--3rdparty/glm/doc/api/a00061_source.html71
-rw-r--r--3rdparty/glm/doc/api/a00062.html86
-rw-r--r--3rdparty/glm/doc/api/a00062_source.html116
-rw-r--r--3rdparty/glm/doc/api/a00063.html80
-rw-r--r--3rdparty/glm/doc/api/a00063_source.html97
-rw-r--r--3rdparty/glm/doc/api/a00064.html74
-rw-r--r--3rdparty/glm/doc/api/a00064_source.html101
-rw-r--r--3rdparty/glm/doc/api/a00065.html403
-rw-r--r--3rdparty/glm/doc/api/a00065_source.html446
-rw-r--r--3rdparty/glm/doc/api/a00066.html87
-rw-r--r--3rdparty/glm/doc/api/a00066_source.html123
-rw-r--r--3rdparty/glm/doc/api/a00067.html78
-rw-r--r--3rdparty/glm/doc/api/a00067_source.html81
-rw-r--r--3rdparty/glm/doc/api/a00068.html127
-rw-r--r--3rdparty/glm/doc/api/a00068_source.html175
-rw-r--r--3rdparty/glm/doc/api/a00069.html109
-rw-r--r--3rdparty/glm/doc/api/a00069_source.html140
-rw-r--r--3rdparty/glm/doc/api/a00070.html102
-rw-r--r--3rdparty/glm/doc/api/a00070_source.html129
-rw-r--r--3rdparty/glm/doc/api/a00071.html375
-rw-r--r--3rdparty/glm/doc/api/a00071_source.html646
-rw-r--r--3rdparty/glm/doc/api/a00072.html98
-rw-r--r--3rdparty/glm/doc/api/a00072_source.html142
-rw-r--r--3rdparty/glm/doc/api/a00073.html76
-rw-r--r--3rdparty/glm/doc/api/a00073_source.html104
-rw-r--r--3rdparty/glm/doc/api/a00074.html115
-rw-r--r--3rdparty/glm/doc/api/a00074_source.html168
-rw-r--r--3rdparty/glm/doc/api/a00075.html126
-rw-r--r--3rdparty/glm/doc/api/a00075_source.html170
-rw-r--r--3rdparty/glm/doc/api/a00076.html95
-rw-r--r--3rdparty/glm/doc/api/a00076_source.html123
-rw-r--r--3rdparty/glm/doc/api/a00077.html140
-rw-r--r--3rdparty/glm/doc/api/a00077_source.html256
-rw-r--r--3rdparty/glm/doc/api/a00078.html130
-rw-r--r--3rdparty/glm/doc/api/a00078_source.html154
-rw-r--r--3rdparty/glm/doc/api/a00079.html81
-rw-r--r--3rdparty/glm/doc/api/a00079_source.html104
-rw-r--r--3rdparty/glm/doc/api/a00080.html84
-rw-r--r--3rdparty/glm/doc/api/a00080_source.html117
-rw-r--r--3rdparty/glm/doc/api/a00081.html255
-rw-r--r--3rdparty/glm/doc/api/a00081_source.html296
-rw-r--r--3rdparty/glm/doc/api/a00082.html75
-rw-r--r--3rdparty/glm/doc/api/a00082_source.html76
-rw-r--r--3rdparty/glm/doc/api/a00083.html88
-rw-r--r--3rdparty/glm/doc/api/a00083_source.html75
-rw-r--r--3rdparty/glm/doc/api/a00084.html109
-rw-r--r--3rdparty/glm/doc/api/a00084_source.html130
-rw-r--r--3rdparty/glm/doc/api/a00085.html82
-rw-r--r--3rdparty/glm/doc/api/a00085_source.html109
-rw-r--r--3rdparty/glm/doc/api/a00086.html78
-rw-r--r--3rdparty/glm/doc/api/a00086_source.html134
-rw-r--r--3rdparty/glm/doc/api/a00087.html129
-rw-r--r--3rdparty/glm/doc/api/a00087_source.html185
-rw-r--r--3rdparty/glm/doc/api/a00088.html184
-rw-r--r--3rdparty/glm/doc/api/a00088_source.html321
-rw-r--r--3rdparty/glm/doc/api/a00089.html189
-rw-r--r--3rdparty/glm/doc/api/a00089_source.html183
-rw-r--r--3rdparty/glm/doc/api/a00090.html98
-rw-r--r--3rdparty/glm/doc/api/a00090_source.html126
-rw-r--r--3rdparty/glm/doc/api/a00091.html77
-rw-r--r--3rdparty/glm/doc/api/a00091_source.html149
-rw-r--r--3rdparty/glm/doc/api/a00092.html82
-rw-r--r--3rdparty/glm/doc/api/a00092_source.html95
-rw-r--r--3rdparty/glm/doc/api/a00093.html116
-rw-r--r--3rdparty/glm/doc/api/a00093_source.html134
-rw-r--r--3rdparty/glm/doc/api/a00094.html155
-rw-r--r--3rdparty/glm/doc/api/a00094_source.html320
-rw-r--r--3rdparty/glm/doc/api/a00095.html165
-rw-r--r--3rdparty/glm/doc/api/a00095_source.html259
-rw-r--r--3rdparty/glm/doc/api/a00096.html155
-rw-r--r--3rdparty/glm/doc/api/a00096_source.html189
-rw-r--r--3rdparty/glm/doc/api/a00097.html66
-rw-r--r--3rdparty/glm/doc/api/a00097_source.html180
-rw-r--r--3rdparty/glm/doc/api/a00098.html79
-rw-r--r--3rdparty/glm/doc/api/a00098_source.html100
-rw-r--r--3rdparty/glm/doc/api/a00099.html106
-rw-r--r--3rdparty/glm/doc/api/a00099_source.html893
-rw-r--r--3rdparty/glm/doc/api/a00100.html87
-rw-r--r--3rdparty/glm/doc/api/a00100_source.html130
-rw-r--r--3rdparty/glm/doc/api/a00101.html130
-rw-r--r--3rdparty/glm/doc/api/a00101_source.html176
-rw-r--r--3rdparty/glm/doc/api/a00102.html124
-rw-r--r--3rdparty/glm/doc/api/a00102_source.html169
-rw-r--r--3rdparty/glm/doc/api/a00103.html90
-rw-r--r--3rdparty/glm/doc/api/a00103_source.html155
-rw-r--r--3rdparty/glm/doc/api/a00104.html109
-rw-r--r--3rdparty/glm/doc/api/a00104_source.html152
-rw-r--r--3rdparty/glm/doc/api/a00105.html63
-rw-r--r--3rdparty/glm/doc/api/a00105_source.html1036
-rw-r--r--3rdparty/glm/doc/api/a00106.html304
-rw-r--r--3rdparty/glm/doc/api/a00106_source.html519
-rw-r--r--3rdparty/glm/doc/api/a00107.html700
-rw-r--r--3rdparty/glm/doc/api/a00107_source.html954
-rw-r--r--3rdparty/glm/doc/api/a00108.html85
-rw-r--r--3rdparty/glm/doc/api/a00108_source.html446
-rw-r--r--3rdparty/glm/doc/api/a00109.html79
-rw-r--r--3rdparty/glm/doc/api/a00109_source.html278
-rw-r--r--3rdparty/glm/doc/api/a00110.html88
-rw-r--r--3rdparty/glm/doc/api/a00110_source.html108
-rw-r--r--3rdparty/glm/doc/api/a00111.html124
-rw-r--r--3rdparty/glm/doc/api/a00111_source.html364
-rw-r--r--3rdparty/glm/doc/api/a00112.html375
-rw-r--r--3rdparty/glm/doc/api/a00112_source.html491
-rw-r--r--3rdparty/glm/doc/api/a00113.html99
-rw-r--r--3rdparty/glm/doc/api/a00113_source.html306
-rw-r--r--3rdparty/glm/doc/api/a00114.html63
-rw-r--r--3rdparty/glm/doc/api/a00114_source.html218
-rw-r--r--3rdparty/glm/doc/api/a00115.html490
-rw-r--r--3rdparty/glm/doc/api/a00115_source.html898
-rw-r--r--3rdparty/glm/doc/api/a00116.html79
-rw-r--r--3rdparty/glm/doc/api/a00116_source.html268
-rw-r--r--3rdparty/glm/doc/api/a00117.html63
-rw-r--r--3rdparty/glm/doc/api/a00117_source.html425
-rw-r--r--3rdparty/glm/doc/api/a00118.html63
-rw-r--r--3rdparty/glm/doc/api/a00118_source.html237
-rw-r--r--3rdparty/glm/doc/api/a00119.html99
-rw-r--r--3rdparty/glm/doc/api/a00119_source.html496
-rw-r--r--3rdparty/glm/doc/api/a00120.html261
-rw-r--r--3rdparty/glm/doc/api/a00120_source.html630
-rw-r--r--3rdparty/glm/doc/api/a00121.html63
-rw-r--r--3rdparty/glm/doc/api/a00121_source.html428
-rw-r--r--3rdparty/glm/doc/api/a00122.html66
-rw-r--r--3rdparty/glm/doc/api/a00122_source.html835
-rw-r--r--3rdparty/glm/doc/api/a00123.html140
-rw-r--r--3rdparty/glm/doc/api/a00123_source.html313
-rw-r--r--3rdparty/glm/doc/api/a00124.html64
-rw-r--r--3rdparty/glm/doc/api/a00124_source.html467
-rw-r--r--3rdparty/glm/doc/api/a00125.html249
-rw-r--r--3rdparty/glm/doc/api/a00125_source.html619
-rw-r--r--3rdparty/glm/doc/api/a00126.html63
-rw-r--r--3rdparty/glm/doc/api/a00126_source.html517
-rw-r--r--3rdparty/glm/doc/api/a00127.html63
-rw-r--r--3rdparty/glm/doc/api/a00127_source.html612
-rw-r--r--3rdparty/glm/doc/api/a00128.html63
-rw-r--r--3rdparty/glm/doc/api/a00128_source.html632
-rw-r--r--3rdparty/glm/doc/api/a00129.html63
-rw-r--r--3rdparty/glm/doc/api/a00129_source.html691
-rw-r--r--3rdparty/glm/doc/api/a00130.html99
-rw-r--r--3rdparty/glm/doc/api/a00130_source.html720
-rw-r--r--3rdparty/glm/doc/api/a00131.html177
-rw-r--r--3rdparty/glm/doc/api/a00131_source.html242
-rw-r--r--3rdparty/glm/doc/api/a00132.html189
-rw-r--r--3rdparty/glm/doc/api/a00132_source.html332
-rw-r--r--3rdparty/glm/doc/api/a00133.html63
-rw-r--r--3rdparty/glm/doc/api/a00133_source.html336
-rw-r--r--3rdparty/glm/doc/api/a00134.html63
-rw-r--r--3rdparty/glm/doc/api/a00134_source.html425
-rw-r--r--3rdparty/glm/doc/api/a00135.html64
-rw-r--r--3rdparty/glm/doc/api/a00135_source.html3172
-rw-r--r--3rdparty/glm/doc/api/a00136.html86
-rw-r--r--3rdparty/glm/doc/api/a00136_source.html576
-rw-r--r--3rdparty/glm/doc/api/a00137.html107
-rw-r--r--3rdparty/glm/doc/api/a00137_source.html136
-rw-r--r--3rdparty/glm/doc/api/a00138.html104
-rw-r--r--3rdparty/glm/doc/api/a00138_source.html151
-rw-r--r--3rdparty/glm/doc/api/a00139.html86
-rw-r--r--3rdparty/glm/doc/api/a00139_source.html90
-rw-r--r--3rdparty/glm/doc/api/a00140.html73
-rw-r--r--3rdparty/glm/doc/api/a00140_source.html65
-rw-r--r--3rdparty/glm/doc/api/a00141.html73
-rw-r--r--3rdparty/glm/doc/api/a00141_source.html65
-rw-r--r--3rdparty/glm/doc/api/a00142.html93
-rw-r--r--3rdparty/glm/doc/api/a00142_source.html98
-rw-r--r--3rdparty/glm/doc/api/a00143.html98
-rw-r--r--3rdparty/glm/doc/api/a00143_source.html104
-rw-r--r--3rdparty/glm/doc/api/a00144.html73
-rw-r--r--3rdparty/glm/doc/api/a00144_source.html65
-rw-r--r--3rdparty/glm/doc/api/a00145.html1182
-rw-r--r--3rdparty/glm/doc/api/a00145_source.html93
-rw-r--r--3rdparty/glm/doc/api/a00146.html374
-rw-r--r--3rdparty/glm/doc/api/a00147.html417
-rw-r--r--3rdparty/glm/doc/api/a00148.html632
-rw-r--r--3rdparty/glm/doc/api/a00149.html256
-rw-r--r--3rdparty/glm/doc/api/a00150.html418
-rw-r--r--3rdparty/glm/doc/api/a00151.html960
-rw-r--r--3rdparty/glm/doc/api/a00152.html349
-rw-r--r--3rdparty/glm/doc/api/a00153.html434
-rw-r--r--3rdparty/glm/doc/api/a00154.html746
-rw-r--r--3rdparty/glm/doc/api/a00155.html245
-rw-r--r--3rdparty/glm/doc/api/a00156.html881
-rw-r--r--3rdparty/glm/doc/api/a00157.html2970
-rw-r--r--3rdparty/glm/doc/api/a00158.html531
-rw-r--r--3rdparty/glm/doc/api/a00159.html980
-rw-r--r--3rdparty/glm/doc/api/a00160.html119
-rw-r--r--3rdparty/glm/doc/api/a00161.html260
-rw-r--r--3rdparty/glm/doc/api/a00162.html725
-rw-r--r--3rdparty/glm/doc/api/a00163.html833
-rw-r--r--3rdparty/glm/doc/api/a00164.html2838
-rw-r--r--3rdparty/glm/doc/api/a00165.html297
-rw-r--r--3rdparty/glm/doc/api/a00166.html938
-rw-r--r--3rdparty/glm/doc/api/a00167.html1997
-rw-r--r--3rdparty/glm/doc/api/a00168.html681
-rw-r--r--3rdparty/glm/doc/api/a00169.html1666
-rw-r--r--3rdparty/glm/doc/api/a00170.html187
-rw-r--r--3rdparty/glm/doc/api/a00171.html1489
-rw-r--r--3rdparty/glm/doc/api/a00172.html2058
-rw-r--r--3rdparty/glm/doc/api/a00173.html279
-rw-r--r--3rdparty/glm/doc/api/a00174.html1208
-rw-r--r--3rdparty/glm/doc/api/a00175.html586
-rw-r--r--3rdparty/glm/doc/api/a00176.html1069
-rw-r--r--3rdparty/glm/doc/api/a00177.html3992
-rw-r--r--3rdparty/glm/doc/api/a00178.html481
-rw-r--r--3rdparty/glm/doc/api/a00179.html301
-rw-r--r--3rdparty/glm/doc/api/a00180.html602
-rw-r--r--3rdparty/glm/doc/api/a00181.html3921
-rw-r--r--3rdparty/glm/doc/api/a00182.html427
-rw-r--r--3rdparty/glm/doc/api/a00183.html220
-rw-r--r--3rdparty/glm/doc/api/a00184.html220
-rw-r--r--3rdparty/glm/doc/api/a00185.html1278
-rw-r--r--3rdparty/glm/doc/api/a00186.html246
-rw-r--r--3rdparty/glm/doc/api/a00187.html423
-rw-r--r--3rdparty/glm/doc/api/a00188.html188
-rw-r--r--3rdparty/glm/doc/api/a00189.html464
-rw-r--r--3rdparty/glm/doc/api/a00190.html579
-rw-r--r--3rdparty/glm/doc/api/a00191.html346
-rw-r--r--3rdparty/glm/doc/api/a00192.html542
-rw-r--r--3rdparty/glm/doc/api/a00193.html449
-rw-r--r--3rdparty/glm/doc/api/a00194.html522
-rw-r--r--3rdparty/glm/doc/api/a00195.html237
-rw-r--r--3rdparty/glm/doc/api/a00196.html520
-rw-r--r--3rdparty/glm/doc/api/a00197.html328
-rw-r--r--3rdparty/glm/doc/api/a00198.html281
-rw-r--r--3rdparty/glm/doc/api/a00199.html278
-rw-r--r--3rdparty/glm/doc/api/a00200.html370
-rw-r--r--3rdparty/glm/doc/api/a00201.html138
-rw-r--r--3rdparty/glm/doc/api/a00202.html129
-rw-r--r--3rdparty/glm/doc/api/a00203.html297
-rw-r--r--3rdparty/glm/doc/api/a00204.html373
-rw-r--r--3rdparty/glm/doc/api/a00205.html196
-rw-r--r--3rdparty/glm/doc/api/a00206.html407
-rw-r--r--3rdparty/glm/doc/api/a00207.html249
-rw-r--r--3rdparty/glm/doc/api/a00208.html298
-rw-r--r--3rdparty/glm/doc/api/a00209.html217
-rw-r--r--3rdparty/glm/doc/api/a00210.html420
-rw-r--r--3rdparty/glm/doc/api/a00211.html270
-rw-r--r--3rdparty/glm/doc/api/a00212.html299
-rw-r--r--3rdparty/glm/doc/api/a00213.html226
-rw-r--r--3rdparty/glm/doc/api/a00214.html104
-rw-r--r--3rdparty/glm/doc/api/a00215.html321
-rw-r--r--3rdparty/glm/doc/api/a00216.html98
-rw-r--r--3rdparty/glm/doc/api/a00217.html109
-rw-r--r--3rdparty/glm/doc/api/a00218.html137
-rw-r--r--3rdparty/glm/doc/api/a00219.html117
-rw-r--r--3rdparty/glm/doc/api/a00220.html604
-rw-r--r--3rdparty/glm/doc/api/a00221.html94
-rw-r--r--3rdparty/glm/doc/api/a00222.html142
-rw-r--r--3rdparty/glm/doc/api/a00223.html150
-rw-r--r--3rdparty/glm/doc/api/a00224.html507
-rw-r--r--3rdparty/glm/doc/api/a00225.html56
-rw-r--r--3rdparty/glm/doc/api/a00226.html221
-rw-r--r--3rdparty/glm/doc/api/a00227.html264
-rw-r--r--3rdparty/glm/doc/api/a00228.html429
-rw-r--r--3rdparty/glm/doc/api/a00229.html147
-rw-r--r--3rdparty/glm/doc/api/a00230.html382
-rw-r--r--3rdparty/glm/doc/api/a00231.html8021
-rw-r--r--3rdparty/glm/doc/api/a00232.html55
-rw-r--r--3rdparty/glm/doc/api/a00233.html210
-rw-r--r--3rdparty/glm/doc/api/a00234.html233
-rw-r--r--3rdparty/glm/doc/api/a00235.html266
-rw-r--r--3rdparty/glm/doc/api/a00236.html144
-rw-r--r--3rdparty/glm/doc/api/a00237.html372
-rw-r--r--3rdparty/glm/doc/api/a00238.html7811
-rw-r--r--3rdparty/glm/doc/api/a00239.html163
-rw-r--r--3rdparty/glm/doc/api/a00240.html271
-rw-r--r--3rdparty/glm/doc/api/a00241.html149
-rw-r--r--3rdparty/glm/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html61
-rw-r--r--3rdparty/glm/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html61
-rw-r--r--3rdparty/glm/doc/api/dir_304be5dfae1339a7705426c0b536faf2.html176
-rw-r--r--3rdparty/glm/doc/api/dir_45973f864e07b2505003ae343b7c8af7.html102
-rw-r--r--3rdparty/glm/doc/api/dir_48eca2e6cf73effdec262031e861eeb0.html102
-rw-r--r--3rdparty/glm/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html63
-rw-r--r--3rdparty/glm/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html114
-rw-r--r--3rdparty/glm/doc/api/dir_7997edb062bdde9a99cb6835d42b0d9d.html164
-rw-r--r--3rdparty/glm/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html61
-rw-r--r--3rdparty/glm/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html175
-rw-r--r--3rdparty/glm/doc/api/dir_9344afb825aed5e2f5be1d2015dde43c.html100
-rw-r--r--3rdparty/glm/doc/api/dir_934f46a345653ef2b3014a1b37a162c1.html100
-rw-r--r--3rdparty/glm/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html97
-rw-r--r--3rdparty/glm/doc/api/dir_98f7f9d41f9d3029bd68cf237526a774.html100
-rw-r--r--3rdparty/glm/doc/api/dir_da256b9dd32ba43e2eaa8a2832c37f1b.html203
-rw-r--r--3rdparty/glm/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html63
-rw-r--r--3rdparty/glm/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html145
-rw-r--r--3rdparty/glm/doc/api/dir_e8f3c1046ba4b357711397765359cd18.html269
-rw-r--r--3rdparty/glm/doc/api/doxygen.css1157
-rw-r--r--3rdparty/glm/doc/api/files.html329
-rw-r--r--3rdparty/glm/doc/api/index.html45
-rw-r--r--3rdparty/glm/doc/api/logo-mini.pngbin0 -> 11967 bytes
-rw-r--r--3rdparty/glm/doc/api/logo.pngbin8453 -> 0 bytes
-rw-r--r--3rdparty/glm/doc/api/modules.html230
-rw-r--r--3rdparty/glm/doc/api/search/all_0.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_0.js9
-rw-r--r--3rdparty/glm/doc/api/search/all_1.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_1.js97
-rw-r--r--3rdparty/glm/doc/api/search/all_10.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_10.js41
-rw-r--r--3rdparty/glm/doc/api/search/all_11.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_11.js42
-rw-r--r--3rdparty/glm/doc/api/search/all_12.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_12.js46
-rw-r--r--3rdparty/glm/doc/api/search/all_13.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_13.js85
-rw-r--r--3rdparty/glm/doc/api/search/all_14.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_14.js16
-rw-r--r--3rdparty/glm/doc/api/search/all_15.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_15.js6
-rw-r--r--3rdparty/glm/doc/api/search/all_16.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_16.js7
-rw-r--r--3rdparty/glm/doc/api/search/all_17.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_17.js4
-rw-r--r--3rdparty/glm/doc/api/search/all_2.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_2.js33
-rw-r--r--3rdparty/glm/doc/api/search/all_3.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_3.js43
-rw-r--r--3rdparty/glm/doc/api/search/all_4.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_4.js53
-rw-r--r--3rdparty/glm/doc/api/search/all_5.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_5.js35
-rw-r--r--3rdparty/glm/doc/api/search/all_6.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_6.js129
-rw-r--r--3rdparty/glm/doc/api/search/all_7.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_7.js104
-rw-r--r--3rdparty/glm/doc/api/search/all_8.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_8.js102
-rw-r--r--3rdparty/glm/doc/api/search/all_9.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_9.js91
-rw-r--r--3rdparty/glm/doc/api/search/all_a.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_a.js119
-rw-r--r--3rdparty/glm/doc/api/search/all_b.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_b.js163
-rw-r--r--3rdparty/glm/doc/api/search/all_c.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_c.js14
-rw-r--r--3rdparty/glm/doc/api/search/all_d.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_d.js20
-rw-r--r--3rdparty/glm/doc/api/search/all_e.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_e.js64
-rw-r--r--3rdparty/glm/doc/api/search/all_f.html26
-rw-r--r--3rdparty/glm/doc/api/search/all_f.js6
-rw-r--r--3rdparty/glm/doc/api/search/close.pngbin0 -> 273 bytes
-rw-r--r--3rdparty/glm/doc/api/search/files_0.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_0.js9
-rw-r--r--3rdparty/glm/doc/api/search/files_1.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_1.js4
-rw-r--r--3rdparty/glm/doc/api/search/files_10.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_10.js9
-rw-r--r--3rdparty/glm/doc/api/search/files_11.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_11.js28
-rw-r--r--3rdparty/glm/doc/api/search/files_12.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_12.js4
-rw-r--r--3rdparty/glm/doc/api/search/files_13.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_13.js11
-rw-r--r--3rdparty/glm/doc/api/search/files_14.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_14.js4
-rw-r--r--3rdparty/glm/doc/api/search/files_2.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_2.js5
-rw-r--r--3rdparty/glm/doc/api/search/files_3.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_3.js10
-rw-r--r--3rdparty/glm/doc/api/search/files_4.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_4.js4
-rw-r--r--3rdparty/glm/doc/api/search/files_5.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_5.js9
-rw-r--r--3rdparty/glm/doc/api/search/files_6.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_6.js16
-rw-r--r--3rdparty/glm/doc/api/search/files_7.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_7.js16
-rw-r--r--3rdparty/glm/doc/api/search/files_8.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_8.js5
-rw-r--r--3rdparty/glm/doc/api/search/files_9.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_9.js6
-rw-r--r--3rdparty/glm/doc/api/search/files_a.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_a.js4
-rw-r--r--3rdparty/glm/doc/api/search/files_b.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_b.js25
-rw-r--r--3rdparty/glm/doc/api/search/files_c.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_c.js8
-rw-r--r--3rdparty/glm/doc/api/search/files_d.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_d.js5
-rw-r--r--3rdparty/glm/doc/api/search/files_e.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_e.js8
-rw-r--r--3rdparty/glm/doc/api/search/files_f.html26
-rw-r--r--3rdparty/glm/doc/api/search/files_f.js10
-rw-r--r--3rdparty/glm/doc/api/search/functions_0.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_0.js30
-rw-r--r--3rdparty/glm/doc/api/search/functions_1.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_1.js13
-rw-r--r--3rdparty/glm/doc/api/search/functions_10.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_10.js27
-rw-r--r--3rdparty/glm/doc/api/search/functions_11.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_11.js19
-rw-r--r--3rdparty/glm/doc/api/search/functions_12.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_12.js40
-rw-r--r--3rdparty/glm/doc/api/search/functions_13.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_13.js4
-rw-r--r--3rdparty/glm/doc/api/search/functions_14.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_14.js4
-rw-r--r--3rdparty/glm/doc/api/search/functions_15.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_15.js7
-rw-r--r--3rdparty/glm/doc/api/search/functions_16.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_16.js4
-rw-r--r--3rdparty/glm/doc/api/search/functions_2.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_2.js35
-rw-r--r--3rdparty/glm/doc/api/search/functions_3.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_3.js20
-rw-r--r--3rdparty/glm/doc/api/search/functions_4.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_4.js28
-rw-r--r--3rdparty/glm/doc/api/search/functions_5.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_5.js40
-rw-r--r--3rdparty/glm/doc/api/search/functions_6.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_6.js9
-rw-r--r--3rdparty/glm/doc/api/search/functions_7.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_7.js7
-rw-r--r--3rdparty/glm/doc/api/search/functions_8.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_8.js30
-rw-r--r--3rdparty/glm/doc/api/search/functions_9.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_9.js25
-rw-r--r--3rdparty/glm/doc/api/search/functions_a.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_a.js35
-rw-r--r--3rdparty/glm/doc/api/search/functions_b.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_b.js9
-rw-r--r--3rdparty/glm/doc/api/search/functions_c.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_c.js17
-rw-r--r--3rdparty/glm/doc/api/search/functions_d.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_d.js58
-rw-r--r--3rdparty/glm/doc/api/search/functions_e.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_e.js5
-rw-r--r--3rdparty/glm/doc/api/search/functions_f.html26
-rw-r--r--3rdparty/glm/doc/api/search/functions_f.js34
-rw-r--r--3rdparty/glm/doc/api/search/groups_0.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_0.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_1.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_1.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_2.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_2.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_3.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_3.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_4.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_4.js85
-rw-r--r--3rdparty/glm/doc/api/search/groups_5.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_5.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_6.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_6.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_7.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_7.js4
-rw-r--r--3rdparty/glm/doc/api/search/groups_8.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_8.js5
-rw-r--r--3rdparty/glm/doc/api/search/groups_9.html26
-rw-r--r--3rdparty/glm/doc/api/search/groups_9.js4
-rw-r--r--3rdparty/glm/doc/api/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--3rdparty/glm/doc/api/search/nomatches.html12
-rw-r--r--3rdparty/glm/doc/api/search/pages_0.html26
-rw-r--r--3rdparty/glm/doc/api/search/pages_0.js4
-rw-r--r--3rdparty/glm/doc/api/search/search.css271
-rw-r--r--3rdparty/glm/doc/api/search/search.js791
-rw-r--r--3rdparty/glm/doc/api/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--3rdparty/glm/doc/api/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--3rdparty/glm/doc/api/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--3rdparty/glm/doc/api/search/searchdata.js30
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_0.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_0.js68
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_1.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_1.js21
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_2.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_2.js35
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_3.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_3.js78
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_4.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_4.js96
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_5.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_5.js60
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_6.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_6.js96
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_7.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_7.js108
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_8.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_8.js4
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_9.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_9.js12
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_a.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_a.js47
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_b.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_b.js6
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_c.html26
-rw-r--r--3rdparty/glm/doc/api/search/typedefs_c.js4
-rw-r--r--3rdparty/glm/doc/api/tabs.css46
-rw-r--r--3rdparty/glm/doc/glm.docxbin1391389 -> 0 bytes
-rw-r--r--3rdparty/glm/doc/glm.pdfbin1436017 -> 0 bytes
-rw-r--r--3rdparty/glm/doc/logo.pngbin8453 -> 0 bytes
-rw-r--r--3rdparty/glm/doc/man.doxy27
-rw-r--r--3rdparty/glm/doc/manual/frontpage1.pngbin0 -> 731902 bytes
-rw-r--r--3rdparty/glm/doc/manual/frontpage2.pngbin0 -> 233177 bytes
-rw-r--r--3rdparty/glm/doc/manual/g-truc.pngbin0 -> 13441 bytes
-rw-r--r--3rdparty/glm/doc/manual/logo-mini.pngbin0 -> 11967 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-perlin1.jpgbin0 -> 8464 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-perlin2.jpgbin0 -> 7755 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-perlin3.jpgbin0 -> 7143 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-perlin4.pngbin0 -> 1253 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-perlin5.pngbin0 -> 1025 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-perlin6.pngbin0 -> 1092 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-simplex1.jpgbin0 -> 10985 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-simplex2.jpgbin0 -> 9494 bytes
-rw-r--r--3rdparty/glm/doc/manual/noise-simplex3.jpgbin0 -> 9873 bytes
-rw-r--r--3rdparty/glm/doc/manual/random-ballrand.pngbin0 -> 3431 bytes
-rw-r--r--3rdparty/glm/doc/manual/random-circularrand.pngbin0 -> 503 bytes
-rw-r--r--3rdparty/glm/doc/manual/random-diskrand.pngbin0 -> 3113 bytes
-rw-r--r--3rdparty/glm/doc/manual/random-gaussrand.pngbin0 -> 3137 bytes
-rw-r--r--3rdparty/glm/doc/manual/random-linearrand.pngbin0 -> 3108 bytes
-rw-r--r--3rdparty/glm/doc/manual/random-sphericalrand.pngbin0 -> 3703 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-cinder.pngbin0 -> 77425 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-glsl4book.jpgbin0 -> 9668 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-leosfortune.jpegbin0 -> 13608 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-leosfortune2.jpgbin0 -> 13183 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-opencloth1.pngbin0 -> 12531 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-opencloth3.pngbin0 -> 21325 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-outerra1.jpgbin0 -> 5355 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-outerra2.jpgbin0 -> 4827 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-outerra3.jpgbin0 -> 3906 bytes
-rw-r--r--3rdparty/glm/doc/manual/references-outerra4.jpgbin0 -> 5427 bytes
-rw-r--r--3rdparty/glm/doc/theme/doxygen.css1157
-rw-r--r--3rdparty/glm/doc/theme/tabs.css46
-rw-r--r--3rdparty/glm/glm/detail/_features.hpp4
-rw-r--r--3rdparty/glm/glm/detail/_noise.hpp56
-rw-r--r--3rdparty/glm/glm/detail/_swizzle.hpp1068
-rw-r--r--3rdparty/glm/glm/detail/_swizzle_func.hpp1343
-rw-r--r--3rdparty/glm/glm/detail/_vectorize.hpp102
-rw-r--r--3rdparty/glm/glm/detail/dummy.cpp10
-rw-r--r--3rdparty/glm/glm/detail/func_common.hpp138
-rw-r--r--3rdparty/glm/glm/detail/func_common.inl457
-rw-r--r--3rdparty/glm/glm/detail/func_common_simd.inl150
-rw-r--r--3rdparty/glm/glm/detail/func_exponential.hpp30
-rw-r--r--3rdparty/glm/glm/detail/func_exponential.inl84
-rw-r--r--3rdparty/glm/glm/detail/func_exponential_simd.inl16
-rw-r--r--3rdparty/glm/glm/detail/func_geometric.hpp50
-rw-r--r--3rdparty/glm/glm/detail/func_geometric.inl129
-rw-r--r--3rdparty/glm/glm/detail/func_geometric_simd.inl60
-rw-r--r--3rdparty/glm/glm/detail/func_integer.hpp76
-rw-r--r--3rdparty/glm/glm/detail/func_integer.inl211
-rw-r--r--3rdparty/glm/glm/detail/func_integer_simd.inl20
-rw-r--r--3rdparty/glm/glm/detail/func_matrix.hpp70
-rw-r--r--3rdparty/glm/glm/detail/func_matrix.inl204
-rw-r--r--3rdparty/glm/glm/detail/func_matrix_simd.inl42
-rw-r--r--3rdparty/glm/glm/detail/func_trigonometric.hpp60
-rw-r--r--3rdparty/glm/glm/detail/func_trigonometric.inl102
-rw-r--r--3rdparty/glm/glm/detail/func_vector_relational.hpp36
-rw-r--r--3rdparty/glm/glm/detail/func_vector_relational.inl50
-rw-r--r--3rdparty/glm/glm/detail/glm.cpp365
-rw-r--r--3rdparty/glm/glm/detail/precision.hpp7
-rw-r--r--3rdparty/glm/glm/detail/setup.hpp160
-rw-r--r--3rdparty/glm/glm/detail/type_gentype.hpp20
-rw-r--r--3rdparty/glm/glm/detail/type_gentype.inl52
-rw-r--r--3rdparty/glm/glm/detail/type_int.hpp44
-rw-r--r--3rdparty/glm/glm/detail/type_mat.hpp171
-rw-r--r--3rdparty/glm/glm/detail/type_mat2x2.hpp198
-rw-r--r--3rdparty/glm/glm/detail/type_mat2x2.inl302
-rw-r--r--3rdparty/glm/glm/detail/type_mat2x3.hpp170
-rw-r--r--3rdparty/glm/glm/detail/type_mat2x3.inl264
-rw-r--r--3rdparty/glm/glm/detail/type_mat2x4.hpp170
-rw-r--r--3rdparty/glm/glm/detail/type_mat2x4.inl256
-rw-r--r--3rdparty/glm/glm/detail/type_mat3x2.hpp170
-rw-r--r--3rdparty/glm/glm/detail/type_mat3x2.inl262
-rw-r--r--3rdparty/glm/glm/detail/type_mat3x3.hpp198
-rw-r--r--3rdparty/glm/glm/detail/type_mat3x3.inl300
-rw-r--r--3rdparty/glm/glm/detail/type_mat3x4.hpp170
-rw-r--r--3rdparty/glm/glm/detail/type_mat3x4.inl270
-rw-r--r--3rdparty/glm/glm/detail/type_mat4x2.hpp174
-rw-r--r--3rdparty/glm/glm/detail/type_mat4x2.inl271
-rw-r--r--3rdparty/glm/glm/detail/type_mat4x3.hpp174
-rw-r--r--3rdparty/glm/glm/detail/type_mat4x3.inl272
-rw-r--r--3rdparty/glm/glm/detail/type_mat4x4.hpp216
-rw-r--r--3rdparty/glm/glm/detail/type_mat4x4.inl392
-rw-r--r--3rdparty/glm/glm/detail/type_vec.hpp182
-rw-r--r--3rdparty/glm/glm/detail/type_vec1.hpp291
-rw-r--r--3rdparty/glm/glm/detail/type_vec1.inl426
-rw-r--r--3rdparty/glm/glm/detail/type_vec2.hpp443
-rw-r--r--3rdparty/glm/glm/detail/type_vec2.inl639
-rw-r--r--3rdparty/glm/glm/detail/type_vec3.hpp461
-rw-r--r--3rdparty/glm/glm/detail/type_vec3.inl702
-rw-r--r--3rdparty/glm/glm/detail/type_vec4.hpp513
-rw-r--r--3rdparty/glm/glm/detail/type_vec4.inl916
-rw-r--r--3rdparty/glm/glm/detail/type_vec4_simd.inl295
-rw-r--r--3rdparty/glm/glm/ext.hpp7
-rw-r--r--3rdparty/glm/glm/fwd.hpp500
-rw-r--r--3rdparty/glm/glm/glm.hpp2
-rw-r--r--3rdparty/glm/glm/gtc/bitfield.hpp28
-rw-r--r--3rdparty/glm/glm/gtc/bitfield.inl54
-rw-r--r--3rdparty/glm/glm/gtc/color_space.hpp36
-rw-r--r--3rdparty/glm/glm/gtc/color_space.inl70
-rw-r--r--3rdparty/glm/glm/gtc/constants.hpp59
-rw-r--r--3rdparty/glm/glm/gtc/constants.inl58
-rw-r--r--3rdparty/glm/glm/gtc/epsilon.hpp15
-rw-r--r--3rdparty/glm/glm/gtc/epsilon.inl68
-rw-r--r--3rdparty/glm/glm/gtc/functions.hpp11
-rw-r--r--3rdparty/glm/glm/gtc/functions.inl12
-rw-r--r--3rdparty/glm/glm/gtc/integer.hpp20
-rw-r--r--3rdparty/glm/glm/gtc/integer.inl44
-rw-r--r--3rdparty/glm/glm/gtc/matrix_access.hpp8
-rw-r--r--3rdparty/glm/glm/gtc/matrix_access.inl8
-rw-r--r--3rdparty/glm/glm/gtc/matrix_integer.hpp144
-rw-r--r--3rdparty/glm/glm/gtc/matrix_inverse.hpp4
-rw-r--r--3rdparty/glm/glm/gtc/matrix_inverse.inl48
-rw-r--r--3rdparty/glm/glm/gtc/matrix_transform.hpp174
-rw-r--r--3rdparty/glm/glm/gtc/matrix_transform.inl222
-rw-r--r--3rdparty/glm/glm/gtc/noise.hpp14
-rw-r--r--3rdparty/glm/glm/gtc/noise.inl892
-rw-r--r--3rdparty/glm/glm/gtc/packing.hpp63
-rw-r--r--3rdparty/glm/glm/gtc/packing.inl128
-rw-r--r--3rdparty/glm/glm/gtc/quaternion.hpp183
-rw-r--r--3rdparty/glm/glm/gtc/quaternion.inl296
-rw-r--r--3rdparty/glm/glm/gtc/quaternion_simd.inl34
-rw-r--r--3rdparty/glm/glm/gtc/random.hpp29
-rw-r--r--3rdparty/glm/glm/gtc/random.inl262
-rw-r--r--3rdparty/glm/glm/gtc/reciprocal.hpp24
-rw-r--r--3rdparty/glm/glm/gtc/reciprocal.inl96
-rw-r--r--3rdparty/glm/glm/gtc/round.hpp60
-rw-r--r--3rdparty/glm/glm/gtc/round.inl156
-rw-r--r--3rdparty/glm/glm/gtc/type_aligned.hpp156
-rw-r--r--3rdparty/glm/glm/gtc/type_precision.hpp161
-rw-r--r--3rdparty/glm/glm/gtc/type_ptr.hpp33
-rw-r--r--3rdparty/glm/glm/gtc/type_ptr.inl289
-rw-r--r--3rdparty/glm/glm/gtc/ulp.hpp14
-rw-r--r--3rdparty/glm/glm/gtc/ulp.inl40
-rw-r--r--3rdparty/glm/glm/gtx/associated_min_max.hpp164
-rw-r--r--3rdparty/glm/glm/gtx/associated_min_max.inl192
-rw-r--r--3rdparty/glm/glm/gtx/bit.hpp31
-rw-r--r--3rdparty/glm/glm/gtx/bit.inl40
-rw-r--r--3rdparty/glm/glm/gtx/closest_point.hpp24
-rw-r--r--3rdparty/glm/glm/gtx/closest_point.inl28
-rw-r--r--3rdparty/glm/glm/gtx/color_encoding.hpp50
-rw-r--r--3rdparty/glm/glm/gtx/color_encoding.inl46
-rw-r--r--3rdparty/glm/glm/gtx/color_space.hpp36
-rw-r--r--3rdparty/glm/glm/gtx/color_space.inl71
-rw-r--r--3rdparty/glm/glm/gtx/color_space_YCoCg.hpp28
-rw-r--r--3rdparty/glm/glm/gtx/color_space_YCoCg.inl64
-rw-r--r--3rdparty/glm/glm/gtx/common.hpp11
-rw-r--r--3rdparty/glm/glm/gtx/common.inl62
-rw-r--r--3rdparty/glm/glm/gtx/compatibility.hpp141
-rw-r--r--3rdparty/glm/glm/gtx/compatibility.inl34
-rw-r--r--3rdparty/glm/glm/gtx/component_wise.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/component_wise.inl78
-rw-r--r--3rdparty/glm/glm/gtx/dual_quaternion.hpp81
-rw-r--r--3rdparty/glm/glm/gtx/dual_quaternion.inl126
-rw-r--r--3rdparty/glm/glm/gtx/euler_angles.hpp73
-rw-r--r--3rdparty/glm/glm/gtx/euler_angles.inl94
-rw-r--r--3rdparty/glm/glm/gtx/extend.hpp6
-rw-r--r--3rdparty/glm/glm/gtx/extend.inl26
-rw-r--r--3rdparty/glm/glm/gtx/extended_min_max.hpp29
-rw-r--r--3rdparty/glm/glm/gtx/extended_min_max.inl24
-rw-r--r--3rdparty/glm/glm/gtx/fast_exponential.hpp40
-rw-r--r--3rdparty/glm/glm/gtx/fast_exponential.inl46
-rw-r--r--3rdparty/glm/glm/gtx/fast_square_root.hpp30
-rw-r--r--3rdparty/glm/glm/gtx/fast_square_root.inl38
-rw-r--r--3rdparty/glm/glm/gtx/fast_trigonometry.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/fast_trigonometry.inl84
-rw-r--r--3rdparty/glm/glm/gtx/float_notmalize.inl6
-rw-r--r--3rdparty/glm/glm/gtx/gradient_paint.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/gradient_paint.inl22
-rw-r--r--3rdparty/glm/glm/gtx/handed_coordinate_space.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/handed_coordinate_space.inl16
-rw-r--r--3rdparty/glm/glm/gtx/hash.hpp86
-rw-r--r--3rdparty/glm/glm/gtx/hash.inl74
-rw-r--r--3rdparty/glm/glm/gtx/integer.hpp6
-rw-r--r--3rdparty/glm/glm/gtx/integer.inl26
-rw-r--r--3rdparty/glm/glm/gtx/intersect.hpp23
-rw-r--r--3rdparty/glm/glm/gtx/intersect.inl83
-rw-r--r--3rdparty/glm/glm/gtx/io.hpp110
-rw-r--r--3rdparty/glm/glm/gtx/io.inl118
-rw-r--r--3rdparty/glm/glm/gtx/log_base.hpp14
-rw-r--r--3rdparty/glm/glm/gtx/log_base.inl6
-rw-r--r--3rdparty/glm/glm/gtx/matrix_cross_product.hpp16
-rw-r--r--3rdparty/glm/glm/gtx/matrix_cross_product.inl16
-rw-r--r--3rdparty/glm/glm/gtx/matrix_decompose.hpp10
-rw-r--r--3rdparty/glm/glm/gtx/matrix_decompose.inl101
-rw-r--r--3rdparty/glm/glm/gtx/matrix_interpolation.hpp30
-rw-r--r--3rdparty/glm/glm/gtx/matrix_interpolation.inl66
-rw-r--r--3rdparty/glm/glm/gtx/matrix_major_storage.hpp100
-rw-r--r--3rdparty/glm/glm/gtx/matrix_major_storage.inl120
-rw-r--r--3rdparty/glm/glm/gtx/matrix_operation.hpp58
-rw-r--r--3rdparty/glm/glm/gtx/matrix_operation.inl72
-rw-r--r--3rdparty/glm/glm/gtx/matrix_query.hpp24
-rw-r--r--3rdparty/glm/glm/gtx/matrix_query.inl28
-rw-r--r--3rdparty/glm/glm/gtx/matrix_transform_2d.hpp37
-rw-r--r--3rdparty/glm/glm/gtx/matrix_transform_2d.inl44
-rw-r--r--3rdparty/glm/glm/gtx/mixed_product.hpp12
-rw-r--r--3rdparty/glm/glm/gtx/mixed_product.inl8
-rw-r--r--3rdparty/glm/glm/gtx/norm.hpp44
-rw-r--r--3rdparty/glm/glm/gtx/norm.inl48
-rw-r--r--3rdparty/glm/glm/gtx/normal.hpp14
-rw-r--r--3rdparty/glm/glm/gtx/normal.inl10
-rw-r--r--3rdparty/glm/glm/gtx/normalize_dot.hpp12
-rw-r--r--3rdparty/glm/glm/gtx/normalize_dot.inl8
-rw-r--r--3rdparty/glm/glm/gtx/number_precision.hpp4
-rw-r--r--3rdparty/glm/glm/gtx/optimum_pow.hpp10
-rw-r--r--3rdparty/glm/glm/gtx/optimum_pow.inl6
-rw-r--r--3rdparty/glm/glm/gtx/orthonormalize.hpp12
-rw-r--r--3rdparty/glm/glm/gtx/orthonormalize.inl10
-rw-r--r--3rdparty/glm/glm/gtx/perpendicular.hpp6
-rw-r--r--3rdparty/glm/glm/gtx/perpendicular.inl2
-rw-r--r--3rdparty/glm/glm/gtx/polar_coordinates.hpp16
-rw-r--r--3rdparty/glm/glm/gtx/polar_coordinates.inl18
-rw-r--r--3rdparty/glm/glm/gtx/projection.hpp6
-rw-r--r--3rdparty/glm/glm/gtx/projection.inl2
-rw-r--r--3rdparty/glm/glm/gtx/quaternion.hpp32
-rw-r--r--3rdparty/glm/glm/gtx/quaternion.inl54
-rw-r--r--3rdparty/glm/glm/gtx/range.hpp30
-rw-r--r--3rdparty/glm/glm/gtx/raw_data.hpp4
-rw-r--r--3rdparty/glm/glm/gtx/rotate_normalized_axis.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/rotate_normalized_axis.inl22
-rw-r--r--3rdparty/glm/glm/gtx/rotate_vector.hpp78
-rw-r--r--3rdparty/glm/glm/gtx/rotate_vector.inl102
-rw-r--r--3rdparty/glm/glm/gtx/scalar_multiplication.hpp12
-rw-r--r--3rdparty/glm/glm/gtx/scalar_relational.hpp4
-rw-r--r--3rdparty/glm/glm/gtx/scalar_relational.inl12
-rw-r--r--3rdparty/glm/glm/gtx/spline.hpp10
-rw-r--r--3rdparty/glm/glm/gtx/spline.inl6
-rw-r--r--3rdparty/glm/glm/gtx/std_based_type.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/string_cast.hpp10
-rw-r--r--3rdparty/glm/glm/gtx/string_cast.inl150
-rw-r--r--3rdparty/glm/glm/gtx/transform.hpp22
-rw-r--r--3rdparty/glm/glm/gtx/transform.inl18
-rw-r--r--3rdparty/glm/glm/gtx/transform2.hpp66
-rw-r--r--3rdparty/glm/glm/gtx/transform2.inl90
-rw-r--r--3rdparty/glm/glm/gtx/type_aligned.hpp4
-rw-r--r--3rdparty/glm/glm/gtx/type_trait.hpp92
-rw-r--r--3rdparty/glm/glm/gtx/vec_swizzle.hpp2778
-rw-r--r--3rdparty/glm/glm/gtx/vector_angle.hpp20
-rw-r--r--3rdparty/glm/glm/gtx/vector_angle.inl22
-rw-r--r--3rdparty/glm/glm/gtx/vector_query.hpp28
-rw-r--r--3rdparty/glm/glm/gtx/vector_query.inl110
-rw-r--r--3rdparty/glm/glm/gtx/wrap.hpp12
-rw-r--r--3rdparty/glm/glm/gtx/wrap.inl46
-rw-r--r--3rdparty/glm/glm/mat2x2.hpp12
-rw-r--r--3rdparty/glm/glm/mat2x3.hpp6
-rw-r--r--3rdparty/glm/glm/mat2x4.hpp6
-rw-r--r--3rdparty/glm/glm/mat3x2.hpp6
-rw-r--r--3rdparty/glm/glm/mat3x3.hpp12
-rw-r--r--3rdparty/glm/glm/mat3x4.hpp6
-rw-r--r--3rdparty/glm/glm/mat4x2.hpp6
-rw-r--r--3rdparty/glm/glm/mat4x3.hpp8
-rw-r--r--3rdparty/glm/glm/mat4x4.hpp12
-rw-r--r--3rdparty/glm/glm/simd/matrix.h8
-rw-r--r--3rdparty/glm/glm/simd/platform.h162
-rw-r--r--3rdparty/glm/manual.md1407
-rw-r--r--3rdparty/glm/readme.md567
-rw-r--r--3rdparty/glm/test/bug/CMakeLists.txt1
-rw-r--r--3rdparty/glm/test/bug/bug_ms_vec_static.cpp31
-rw-r--r--3rdparty/glm/test/core/CMakeLists.txt3
-rw-r--r--3rdparty/glm/test/core/core_force_pure.cpp423
-rw-r--r--3rdparty/glm/test/core/core_force_unrestricted_gentype.cpp11
-rw-r--r--3rdparty/glm/test/core/core_func_common.cpp16
-rw-r--r--3rdparty/glm/test/core/core_func_exponential.cpp7
-rw-r--r--3rdparty/glm/test/core/core_func_integer.cpp101
-rw-r--r--3rdparty/glm/test/core/core_func_integer_bit_count.cpp2
-rw-r--r--3rdparty/glm/test/core/core_func_integer_find_lsb.cpp32
-rw-r--r--3rdparty/glm/test/core/core_func_integer_find_msb.cpp30
-rw-r--r--3rdparty/glm/test/core/core_func_matrix.cpp2
-rw-r--r--3rdparty/glm/test/core/core_func_noise.cpp17
-rw-r--r--3rdparty/glm/test/core/core_func_swizzle.cpp13
-rw-r--r--3rdparty/glm/test/core/core_setup_message.cpp125
-rw-r--r--3rdparty/glm/test/core/core_type_aligned.cpp128
-rw-r--r--3rdparty/glm/test/core/core_type_mat2x2.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat2x3.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat2x4.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat3x2.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat3x3.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat3x4.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat4x2.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat4x3.cpp17
-rw-r--r--3rdparty/glm/test/core/core_type_mat4x4.cpp19
-rw-r--r--3rdparty/glm/test/core/core_type_vec1.cpp9
-rw-r--r--3rdparty/glm/test/core/core_type_vec2.cpp6
-rw-r--r--3rdparty/glm/test/core/core_type_vec3.cpp18
-rw-r--r--3rdparty/glm/test/core/core_type_vec4.cpp6
-rw-r--r--3rdparty/glm/test/external/gli/CMakeLists.txt13
-rw-r--r--3rdparty/glm/test/external/gli/clear.hpp46
-rw-r--r--3rdparty/glm/test/external/gli/comparison.hpp30
-rw-r--r--3rdparty/glm/test/external/gli/convert.hpp24
-rw-r--r--3rdparty/glm/test/external/gli/copy.hpp62
-rw-r--r--3rdparty/glm/test/external/gli/core/clear.hpp25
-rw-r--r--3rdparty/glm/test/external/gli/core/clear.inl71
-rw-r--r--3rdparty/glm/test/external/gli/core/comparison.inl100
-rw-r--r--3rdparty/glm/test/external/gli/core/convert.inl45
-rw-r--r--3rdparty/glm/test/external/gli/core/convert_func.hpp767
-rw-r--r--3rdparty/glm/test/external/gli/core/coord.hpp87
-rw-r--r--3rdparty/glm/test/external/gli/core/copy.inl112
-rw-r--r--3rdparty/glm/test/external/gli/core/duplicate.inl267
-rw-r--r--3rdparty/glm/test/external/gli/core/dx.inl311
-rw-r--r--3rdparty/glm/test/external/gli/core/file.hpp15
-rw-r--r--3rdparty/glm/test/external/gli/core/file.inl19
-rw-r--r--3rdparty/glm/test/external/gli/core/filter.hpp23
-rw-r--r--3rdparty/glm/test/external/gli/core/filter.inl8
-rw-r--r--3rdparty/glm/test/external/gli/core/filter_compute.hpp390
-rw-r--r--3rdparty/glm/test/external/gli/core/flip.hpp17
-rw-r--r--3rdparty/glm/test/external/gli/core/flip.inl338
-rw-r--r--3rdparty/glm/test/external/gli/core/format.inl376
-rw-r--r--3rdparty/glm/test/external/gli/core/generate_mipmaps.hpp25
-rw-r--r--3rdparty/glm/test/external/gli/core/generate_mipmaps.inl160
-rw-r--r--3rdparty/glm/test/external/gli/core/gl.inl366
-rw-r--r--3rdparty/glm/test/external/gli/core/image.inl251
-rw-r--r--3rdparty/glm/test/external/gli/core/image2d.hpp169
-rw-r--r--3rdparty/glm/test/external/gli/core/image2d.inl229
-rw-r--r--3rdparty/glm/test/external/gli/core/levels.inl24
-rw-r--r--3rdparty/glm/test/external/gli/core/load.inl55
-rw-r--r--3rdparty/glm/test/external/gli/core/load_dds.inl324
-rw-r--r--3rdparty/glm/test/external/gli/core/load_kmg.inl103
-rw-r--r--3rdparty/glm/test/external/gli/core/load_ktx.inl137
-rw-r--r--3rdparty/glm/test/external/gli/core/make_texture.inl72
-rw-r--r--3rdparty/glm/test/external/gli/core/mipmaps_compute.hpp116
-rw-r--r--3rdparty/glm/test/external/gli/core/operation.hpp82
-rw-r--r--3rdparty/glm/test/external/gli/core/operation.inl233
-rw-r--r--3rdparty/glm/test/external/gli/core/operator.hpp28
-rw-r--r--3rdparty/glm/test/external/gli/core/operator.inl210
-rw-r--r--3rdparty/glm/test/external/gli/core/reduce.inl533
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler.inl35
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler1d.inl82
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler1d_array.inl83
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler2d.inl82
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler2d_array.inl83
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler3d.inl82
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler_cube.inl84
-rw-r--r--3rdparty/glm/test/external/gli/core/sampler_cube_array.inl84
-rw-r--r--3rdparty/glm/test/external/gli/core/save.inl22
-rw-r--r--3rdparty/glm/test/external/gli/core/save_dds.inl139
-rw-r--r--3rdparty/glm/test/external/gli/core/save_kmg.inl80
-rw-r--r--3rdparty/glm/test/external/gli/core/save_ktx.inl114
-rw-r--r--3rdparty/glm/test/external/gli/core/shared_array.hpp48
-rw-r--r--3rdparty/glm/test/external/gli/core/shared_array.inl151
-rw-r--r--3rdparty/glm/test/external/gli/core/shared_ptr.hpp41
-rw-r--r--3rdparty/glm/test/external/gli/core/shared_ptr.inl125
-rw-r--r--3rdparty/glm/test/external/gli/core/size.hpp31
-rw-r--r--3rdparty/glm/test/external/gli/core/size.inl47
-rw-r--r--3rdparty/glm/test/external/gli/core/storage.hpp92
-rw-r--r--3rdparty/glm/test/external/gli/core/storage.inl170
-rw-r--r--3rdparty/glm/test/external/gli/core/storage_linear.hpp98
-rw-r--r--3rdparty/glm/test/external/gli/core/storage_linear.inl186
-rw-r--r--3rdparty/glm/test/external/gli/core/texture.inl410
-rw-r--r--3rdparty/glm/test/external/gli/core/texture1d.inl79
-rw-r--r--3rdparty/glm/test/external/gli/core/texture1d_array.inl81
-rw-r--r--3rdparty/glm/test/external/gli/core/texture2d.hpp122
-rw-r--r--3rdparty/glm/test/external/gli/core/texture2d.inl331
-rw-r--r--3rdparty/glm/test/external/gli/core/texture2d_array.hpp59
-rw-r--r--3rdparty/glm/test/external/gli/core/texture2d_array.inl105
-rw-r--r--3rdparty/glm/test/external/gli/core/texture3d.inl77
-rw-r--r--3rdparty/glm/test/external/gli/core/texture_cube.hpp65
-rw-r--r--3rdparty/glm/test/external/gli/core/texture_cube.inl97
-rw-r--r--3rdparty/glm/test/external/gli/core/texture_cube_array.hpp59
-rw-r--r--3rdparty/glm/test/external/gli/core/texture_cube_array.inl101
-rw-r--r--3rdparty/glm/test/external/gli/core/transform.inl257
-rw-r--r--3rdparty/glm/test/external/gli/core/view.inl169
-rw-r--r--3rdparty/glm/test/external/gli/core/workaround.hpp392
-rw-r--r--3rdparty/glm/test/external/gli/duplicate.hpp70
-rw-r--r--3rdparty/glm/test/external/gli/dx.hpp490
-rw-r--r--3rdparty/glm/test/external/gli/format.hpp340
-rw-r--r--3rdparty/glm/test/external/gli/generate_mipmaps.hpp69
-rw-r--r--3rdparty/glm/test/external/gli/gl.hpp373
-rw-r--r--3rdparty/glm/test/external/gli/gli.hpp104
-rw-r--r--3rdparty/glm/test/external/gli/gtx/compression.hpp27
-rw-r--r--3rdparty/glm/test/external/gli/gtx/compression.inl8
-rw-r--r--3rdparty/glm/test/external/gli/gtx/fetch.hpp46
-rw-r--r--3rdparty/glm/test/external/gli/gtx/fetch.inl91
-rw-r--r--3rdparty/glm/test/external/gli/gtx/gl_texture2d.hpp33
-rw-r--r--3rdparty/glm/test/external/gli/gtx/gl_texture2d.inl210
-rw-r--r--3rdparty/glm/test/external/gli/gtx/gradient.hpp38
-rw-r--r--3rdparty/glm/test/external/gli/gtx/gradient.inl74
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader.hpp37
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader.inl46
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader_dds10.hpp35
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader_dds10.inl595
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader_dds9.hpp39
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader_dds9.inl790
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader_tga.hpp36
-rw-r--r--3rdparty/glm/test/external/gli/gtx/loader_tga.inl159
-rw-r--r--3rdparty/glm/test/external/gli/gtx/wavelet.hpp27
-rw-r--r--3rdparty/glm/test/external/gli/gtx/wavelet.inl8
-rw-r--r--3rdparty/glm/test/external/gli/image.hpp111
-rw-r--r--3rdparty/glm/test/external/gli/levels.hpp48
-rw-r--r--3rdparty/glm/test/external/gli/load.hpp27
-rw-r--r--3rdparty/glm/test/external/gli/load_dds.hpp27
-rw-r--r--3rdparty/glm/test/external/gli/load_kmg.hpp27
-rw-r--r--3rdparty/glm/test/external/gli/load_ktx.hpp27
-rw-r--r--3rdparty/glm/test/external/gli/make_texture.hpp51
-rw-r--r--3rdparty/glm/test/external/gli/reduce.hpp95
-rw-r--r--3rdparty/glm/test/external/gli/sampler.hpp49
-rw-r--r--3rdparty/glm/test/external/gli/sampler1d.hpp71
-rw-r--r--3rdparty/glm/test/external/gli/sampler1d_array.hpp72
-rw-r--r--3rdparty/glm/test/external/gli/sampler2d.hpp72
-rw-r--r--3rdparty/glm/test/external/gli/sampler2d_array.hpp72
-rw-r--r--3rdparty/glm/test/external/gli/sampler3d.hpp71
-rw-r--r--3rdparty/glm/test/external/gli/sampler_cube.hpp72
-rw-r--r--3rdparty/glm/test/external/gli/sampler_cube_array.hpp72
-rw-r--r--3rdparty/glm/test/external/gli/save.hpp28
-rw-r--r--3rdparty/glm/test/external/gli/save_dds.hpp34
-rw-r--r--3rdparty/glm/test/external/gli/save_kmg.hpp34
-rw-r--r--3rdparty/glm/test/external/gli/save_ktx.hpp34
-rw-r--r--3rdparty/glm/test/external/gli/target.hpp51
-rw-r--r--3rdparty/glm/test/external/gli/texture.hpp297
-rw-r--r--3rdparty/glm/test/external/gli/texture1d.hpp67
-rw-r--r--3rdparty/glm/test/external/gli/texture1d_array.hpp70
-rw-r--r--3rdparty/glm/test/external/gli/texture2d.hpp67
-rw-r--r--3rdparty/glm/test/external/gli/texture2d_array.hpp70
-rw-r--r--3rdparty/glm/test/external/gli/texture3d.hpp68
-rw-r--r--3rdparty/glm/test/external/gli/texture_cube.hpp68
-rw-r--r--3rdparty/glm/test/external/gli/texture_cube_array.hpp72
-rw-r--r--3rdparty/glm/test/external/gli/transform.hpp87
-rw-r--r--3rdparty/glm/test/external/gli/type.hpp65
-rw-r--r--3rdparty/glm/test/external/gli/view.hpp81
-rw-r--r--3rdparty/glm/test/gtc/gtc_bitfield.cpp14
-rw-r--r--3rdparty/glm/test/gtc/gtc_color_space.cpp18
-rw-r--r--3rdparty/glm/test/gtc/gtc_epsilon.cpp2
-rw-r--r--3rdparty/glm/test/gtc/gtc_functions.cpp2
-rw-r--r--3rdparty/glm/test/gtc/gtc_integer.cpp5
-rw-r--r--3rdparty/glm/test/gtc/gtc_noise.cpp161
-rw-r--r--3rdparty/glm/test/gtc/gtc_packing.cpp32
-rw-r--r--3rdparty/glm/test/gtc/gtc_quaternion.cpp17
-rw-r--r--3rdparty/glm/test/gtc/gtc_random.cpp38
-rw-r--r--3rdparty/glm/test/gtc/gtc_round.cpp12
-rw-r--r--3rdparty/glm/test/gtx/CMakeLists.txt2
-rw-r--r--3rdparty/glm/test/gtx/gtx_associated_min_max.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_closest_point.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_color_encoding.cpp51
-rw-r--r--3rdparty/glm/test/gtx/gtx_color_space.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_color_space_YCoCg.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_common.cpp3
-rw-r--r--3rdparty/glm/test/gtx/gtx_compatibility.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_component_wise.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_dual_quaternion.cpp18
-rw-r--r--3rdparty/glm/test/gtx/gtx_euler_angle.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_extend.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_extended_min_max.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_fast_exponential.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_fast_square_root.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_fast_trigonometry.cpp193
-rw-r--r--3rdparty/glm/test/gtx/gtx_gradient_paint.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_handed_coordinate_space.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_integer.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_intersect.cpp28
-rw-r--r--3rdparty/glm/test/gtx/gtx_io.cpp101
-rw-r--r--3rdparty/glm/test/gtx/gtx_log_base.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_cross_product.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_decompose.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_interpolation.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_major_storage.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_operation.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_query.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_matrix_transform_2d.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_norm.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_normal.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_normalize_dot.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_number_precision.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_optimum_pow.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_orthonormalize.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_perpendicular.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_polar_coordinates.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_projection.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_quaternion.cpp3
-rw-r--r--3rdparty/glm/test/gtx/gtx_range.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_rotate_normalized_axis.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_rotate_vector.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_scalar_multiplication.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_scalar_relational.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_spline.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_string_cast.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_type_aligned.cpp3
-rw-r--r--3rdparty/glm/test/gtx/gtx_type_trait.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_vec_swizzle.cpp11
-rw-r--r--3rdparty/glm/test/gtx/gtx_vector_angle.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_vector_query.cpp1
-rw-r--r--3rdparty/glm/test/gtx/gtx_wrap.cpp1
1090 files changed, 120504 insertions, 77893 deletions
diff --git a/3rdparty/glm/.appveyor.yml b/3rdparty/glm/.appveyor.yml
new file mode 100644
index 00000000000..2380bc720d2
--- /dev/null
+++ b/3rdparty/glm/.appveyor.yml
@@ -0,0 +1,34 @@
+clone_folder: c:\dev\glm-cmake
+
+os:
+ - Visual Studio 2013
+
+platform:
+ - x86
+ - x86_64
+
+build_script:
+- md build_pure_11
+- cd build_pure_11
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_FORCE_PURE=ON ..
+- cmake --build . --config Debug
+- cmake --build . --config Release
+- cd ..
+- md build_simd_11
+- cd build_simd_11
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON ..
+- cmake --build . --config Debug
+- cmake --build . --config Release
+- cd ..
+- md build_pure_98
+- cd build_pure_98
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON ..
+- cmake --build . --config Debug
+- cmake --build . --config Release
+- cd ..
+- md build_simd_98
+- cd build_simd_98
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON ..
+- cmake --build . --config Debug
+- cmake --build . --config Release
+- cd ..
diff --git a/3rdparty/glm/.travis.yml b/3rdparty/glm/.travis.yml
new file mode 100644
index 00000000000..ff6e891b138
--- /dev/null
+++ b/3rdparty/glm/.travis.yml
@@ -0,0 +1,84 @@
+language: cpp
+
+os:
+ - linux
+ - osx
+
+matrix:
+ include:
+ - compiler: gcc
+ addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - g++-4.9
+ env: COMPILER=g++-4.9
+ - compiler: clang
+ addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ - llvm-toolchain-precise-3.8
+ packages:
+ - clang-3.8
+ env: COMPILER=clang++-3.8
+
+compiler:
+ - clang
+
+before_script:
+
+script:
+- mkdir ./build_pure_11
+- cd ./build_pure_11
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_FORCE_PURE=ON ..
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_pure_98
+- cd ./build_pure_98
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON ..
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_pure_11_debug
+- cd ./build_pure_11_debug
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_FORCE_PURE=ON ..
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_pure_98_debug
+- cd ./build_pure_98_debug
+- cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON ..
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_simd_11
+- cd ./build_simd_11
+- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON ..; else cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON ..; fi
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_simd_98
+- cd ./build_simd_98
+- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON ..; else cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON ..; fi
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_simd_11_debug
+- cd ./build_simd_11_debug
+- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON ..; else cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON ..; fi
+- cmake --build .
+- ctest
+- cd ..
+- mkdir ./build_simd_98_debug
+- cd ./build_simd_98_debug
+- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON ..; else cmake -DCMAKE_CXX_COMPILER=$COMPILER -DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON ..; fi
+- cmake --build .
+- ctest
+- cd ..
+
+
+
+
diff --git a/3rdparty/glm/CMakeLists.txt b/3rdparty/glm/CMakeLists.txt
index bdb9f434523..f5c87550f73 100644
--- a/3rdparty/glm/CMakeLists.txt
+++ b/3rdparty/glm/CMakeLists.txt
@@ -21,11 +21,13 @@ if(GLM_STATIC_LIBRARY_ENABLE)
message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_STATIC_LIBRARY_ENABLE with ON to build an optional static library")
endif()
-option(GLM_DYNAMIC_LIBRARY_ENABLE "GLM static library" OFF)
+option(GLM_DYNAMIC_LIBRARY_ENABLE "GLM dynamic library" OFF)
if(GLM_DYNAMIC_LIBRARY_ENABLE)
message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_DYNAMIC_LIBRARY_ENABLE with ON to build an optional dynamic library")
endif()
+option(GLM_INSTALL_ENABLE "GLM install" ON)
+
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")
@@ -95,6 +97,10 @@ else()
endif()
endif()
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+ add_definitions(/FAs)
+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)
@@ -107,38 +113,43 @@ if(GLM_TEST_FORCE_PURE)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-mfpmath=387)
endif()
+ message(STATUS "GLM: No SIMD instruction set")
elseif(GLM_TEST_ENABLE_SIMD_AVX2)
- if(CMAKE_COMPILER_IS_GNUCXX)
+ if(CMAKE_COMPILER_IS_GNUCXX OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
add_definitions(-mavx2)
elseif(GLM_USE_INTEL)
add_definitions(/QxAVX2)
- elseif(MSVC)
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
add_definitions(/arch:AVX2)
endif()
+ message(STATUS "GLM: AVX2 instruction set")
elseif(GLM_TEST_ENABLE_SIMD_AVX)
- if(CMAKE_COMPILER_IS_GNUCXX)
+ if(CMAKE_COMPILER_IS_GNUCXX OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
add_definitions(-mavx)
elseif(GLM_USE_INTEL)
add_definitions(/QxAVX)
- elseif(MSVC)
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
add_definitions(/arch:AVX)
endif()
+ message(STATUS "GLM: AVX instruction set")
elseif(GLM_TEST_ENABLE_SIMD_SSE3)
- if(CMAKE_COMPILER_IS_GNUCXX)
+ if(CMAKE_COMPILER_IS_GNUCXX OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
add_definitions(-msse3)
elseif(GLM_USE_INTEL)
add_definitions(/QxSSE3)
- elseif(MSVC AND NOT CMAKE_CL_64)
- add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3
+ elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") AND NOT CMAKE_CL_64)
+ add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3
endif()
+ message(STATUS "GLM: SSE3 instruction set")
elseif(GLM_TEST_ENABLE_SIMD_SSE2)
- if(CMAKE_COMPILER_IS_GNUCXX)
+ if(CMAKE_COMPILER_IS_GNUCXX OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
add_definitions(-msse2)
elseif(GLM_USE_INTEL)
add_definitions(/QxSSE2)
- elseif(MSVC AND NOT CMAKE_CL_64)
+ elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") AND NOT CMAKE_CL_64)
add_definitions(/arch:SSE2)
endif()
+ message(STATUS "GLM: SSE2 instruction set")
endif()
if(CMAKE_COMPILER_IS_GNUCXX)
@@ -161,67 +172,50 @@ add_subdirectory(glm)
add_subdirectory(test)
set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
-install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+if (GLM_INSTALL_ENABLE)
+ install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+endif()
-write_basic_package_version_file(
- "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake"
- VERSION ${GLM_VERSION}
- COMPATIBILITY AnyNewerVersion
-)
+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion)
# build tree package config
-configure_file(
- cmake/glmBuildConfig.cmake.in
- glmConfig.cmake
- @ONLY
-)
+configure_file(cmake/glmBuildConfig.cmake.in glmConfig.cmake @ONLY)
# install tree package config
configure_package_config_file(
- cmake/glmConfig.cmake.in
- ${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake
- INSTALL_DESTINATION ${GLM_INSTALL_CONFIGDIR}
- PATH_VARS CMAKE_INSTALL_INCLUDEDIR
- NO_CHECK_REQUIRED_COMPONENTS_MACRO
-)
-
-install(
- FILES
- "${CMAKE_CURRENT_BINARY_DIR}/${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake"
- DESTINATION ${GLM_INSTALL_CONFIGDIR}
-)
+ cmake/glmConfig.cmake.in
+ ${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake
+ INSTALL_DESTINATION ${GLM_INSTALL_CONFIGDIR}
+ PATH_VARS CMAKE_INSTALL_INCLUDEDIR
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+if (GLM_INSTALL_ENABLE)
+ install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake"
+ DESTINATION ${GLM_INSTALL_CONFIGDIR})
+endif()
if (NOT CMAKE_VERSION VERSION_LESS "3.0")
- add_library(glm INTERFACE)
- target_include_directories(glm INTERFACE
- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
- )
- install(TARGETS glm EXPORT glmTargets)
-
- export(
- EXPORT glmTargets
- FILE "${CMAKE_CURRENT_BINARY_DIR}/glmTargets.cmake"
- )
-
- install(
- EXPORT glmTargets FILE glmTargets.cmake
- DESTINATION ${GLM_INSTALL_CONFIGDIR}
- )
+ add_library(glm INTERFACE)
+ target_include_directories(glm INTERFACE
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
+ install(TARGETS glm EXPORT glmTargets)
+
+ export(EXPORT glmTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/glmTargets.cmake")
+
+ if (GLM_INSTALL_ENABLE)
+ install(EXPORT glmTargets FILE glmTargets.cmake DESTINATION ${GLM_INSTALL_CONFIGDIR})
+ endif()
endif()
# build pkg-config file
-configure_file(
- "./cmake/glm.pc.in"
- "glm.pc"
- @ONLY
-)
+configure_file("./cmake/glm.pc.in" "glm.pc" @ONLY)
# install pkg-config file
-install(
- FILES "${CMAKE_CURRENT_BINARY_DIR}/glm.pc"
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
-)
+if (GLM_INSTALL_ENABLE)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glm.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+endif()
export(PACKAGE glm)
diff --git a/3rdparty/glm/copying.txt b/3rdparty/glm/copying.txt
deleted file mode 100644
index 7c20b4a67dd..00000000000
--- a/3rdparty/glm/copying.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-================================================================================
-OpenGL Mathematics (GLM)
---------------------------------------------------------------------------------
-GLM can be distributed and/or modified under the terms of either
-a) The Happy Bunny License, or b) the MIT License.
-
-================================================================================
-The Happy Bunny License (Modified MIT License)
---------------------------------------------------------------------------------
-Copyright (c) 2005 - 2016 G-Truc Creation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-Restrictions: By making use of the Software for military purposes, you choose
-to make a Bunny unhappy.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-================================================================================
-The MIT License
---------------------------------------------------------------------------------
-Copyright (c) 2005 - 2016 G-Truc Creation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject 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/3rdparty/glm/doc/api/a00001.html b/3rdparty/glm/doc/api/a00001.html
index afbfaf0a30f..1726123667b 100644
--- a/3rdparty/glm/doc/api/a00001.html
+++ b/3rdparty/glm/doc/api/a00001.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _features.hpp File Reference</title>
+<title>0.9.9 API documenation: _features.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,16 +89,12 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00001_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-02-20 / 2013-02-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00001_source.html">_features.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00001_source.html b/3rdparty/glm/doc/api/a00001_source.html
index c2f58f9ed38..3b72c3ea18d 100644
--- a/3rdparty/glm/doc/api/a00001_source.html
+++ b/3rdparty/glm/doc/api/a00001_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _features.hpp Source File</title>
+<title>0.9.9 API documenation: _features.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,402 +89,402 @@
</div><!--header-->
<div class="contents">
<a href="a00001.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// #define GLM_CXX98_RTTI</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Rvalue references - GCC 4.3</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Rvalue references for *this - GCC not supported</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// Variadic templates - GCC 4.3</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// Initializer lists - GCC 4.4</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// #define GLM_CXX11_STATIC_ASSERT </span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// Static assertions - GCC 4.3</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// auto-typed variables - GCC 4.4</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// New function declarator syntax - GCC 4.4</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// Declared type of an expression - GCC 4.3</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">// Right angle brackets - GCC 4.3</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// Template aliases N2258 GCC 4.7</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// Extern templates N1987 Yes</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// Alignment support N2341 GCC 4.8</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// #define GLM_CXX98_RTTI</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Rvalue references - GCC 4.3</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Rvalue references for *this - GCC not supported</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Variadic templates - GCC 4.3</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// Initializer lists - GCC 4.4</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// #define GLM_CXX11_STATIC_ASSERT </span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Static assertions - GCC 4.3</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// auto-typed variables - GCC 4.4</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// New function declarator syntax - GCC 4.4</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">// Declared type of an expression - GCC 4.3</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// Right angle brackets - GCC 4.3</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// Template aliases N2258 GCC 4.7</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// Extern templates N1987 Yes</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// Alignment support N2341 GCC 4.8</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">// New character types N2249 GCC 4.4</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">// New character types N2249 GCC 4.4</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">// Range-based for N2930 GCC 4.6</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// Range-based for N2930 GCC 4.6</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// Sequence points N2239 Yes</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// Memory model N2429 GCC 4.8</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">// long long N1811 GCC 4.3</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment">// </span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// Extended integral types N1988 Yes</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// Sequence points N2239 Yes</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">// Memory model N2429 GCC 4.8</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// long long N1811 GCC 4.3</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">// Extended integral types N1988 Yes</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"># if(GLM_COMPILER &gt;= GLM_COMPILER_GCC43)</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># if(GLM_COMPILER &gt;= GLM_COMPILER_GCC43)</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#elif(GLM_COMPILER &amp; (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor">#endif//(GLM_COMPILER &amp; (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#endif//(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00002.html b/3rdparty/glm/doc/api/a00002.html
index ee0c0a4df9b..ced075751b2 100644
--- a/3rdparty/glm/doc/api/a00002.html
+++ b/3rdparty/glm/doc/api/a00002.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _fixes.hpp File Reference</title>
+<title>0.9.9 API documenation: _fixes.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,16 +89,12 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00002_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-02-21 / 2011-11-22 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00002_source.html">_fixes.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00002_source.html b/3rdparty/glm/doc/api/a00002_source.html
index 19c76f948b3..bd125830766 100644
--- a/3rdparty/glm/doc/api/a00002_source.html
+++ b/3rdparty/glm/doc/api/a00002_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _fixes.hpp Source File</title>
+<title>0.9.9 API documenation: _fixes.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,28 +89,28 @@
</div><!--header-->
<div class="contents">
<a href="a00002.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifdef max</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#undef max</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#ifdef min</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#undef min</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#ifdef isnan</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#undef isnan</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#ifdef isinf</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#undef isinf</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifdef log2</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#undef log2</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#ifdef max</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#undef max</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifdef min</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#undef min</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifdef isnan</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#undef isnan</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifdef isinf</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#undef isinf</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#ifdef log2</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#undef log2</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00003.html b/3rdparty/glm/doc/api/a00003.html
index ca2b22e8acc..ce30f585d09 100644
--- a/3rdparty/glm/doc/api/a00003.html
+++ b/3rdparty/glm/doc/api/a00003.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _noise.hpp File Reference</title>
+<title>0.9.9 API documenation: _noise.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,16 +89,12 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00003_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00003_source.html">_noise.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00003_source.html b/3rdparty/glm/doc/api/a00003_source.html
index 07b836a74df..408fb9fd842 100644
--- a/3rdparty/glm/doc/api/a00003_source.html
+++ b/3rdparty/glm/doc/api/a00003_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _noise.hpp Source File</title>
+<title>0.9.9 API documenation: _noise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,112 +89,112 @@
</div><!--header-->
<div class="contents">
<a href="a00003.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span> &amp; x)</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> x - <a class="code" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(x * static_cast&lt;T&gt;(1.0) / static_cast&lt;T&gt;(289.0)) * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span> &amp; x)</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; permute(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; x)</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; permute(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x)</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; permute(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; x)</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> template &lt;typename T, precision P, template&lt;typename&gt; class vecType&gt;</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; permute(vecType&lt;T, P&gt; const &amp; x)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> {</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> return mod289(((x * T(34)) + T(1)) * x);</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> }</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span> &amp; r)</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; taylorInvSqrt(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; r)</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; taylorInvSqrt(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; r)</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; taylorInvSqrt(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; r)</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> template &lt;typename T, precision P, template&lt;typename&gt; class vecType&gt;</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; taylorInvSqrt(vecType&lt;T, P&gt; const &amp; r)</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> {</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> return T(1.79284291400159) - T(0.85373472095314) * r;</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> }</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; fade(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; t)</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; fade(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; t)</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; fade(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; t)</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> template &lt;typename T, precision P, template &lt;typename&gt; class vecType&gt;</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; fade(vecType&lt;T, P&gt; const &amp; t)</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> {</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> }</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="ttc" id="a00151_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floor(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span> &amp; x)</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">return</span> x - <a class="code" href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(x * static_cast&lt;T&gt;(1.0) / static_cast&lt;T&gt;(289.0)) * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0);</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span> &amp; x)</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; permute(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; x)</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; permute(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x)</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; permute(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; x)</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> template &lt;typename T, precision P, template&lt;typename&gt; class vecType&gt;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; permute(vecType&lt;T, P&gt; const &amp; x)</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> return mod289(((x * T(34)) + T(1)) * x);</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> }</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span> &amp; r)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; taylorInvSqrt(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; r)</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; taylorInvSqrt(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; r)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; taylorInvSqrt(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; r)</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> template &lt;typename T, precision P, template&lt;typename&gt; class vecType&gt;</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; taylorInvSqrt(vecType&lt;T, P&gt; const &amp; r)</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> return T(1.79284291400159) - T(0.85373472095314) * r;</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> }</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; fade(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; t)</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; fade(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; t)</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; fade(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; t)</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> template &lt;typename T, precision P, template &lt;typename&gt; class vecType&gt;</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; fade(vecType&lt;T, P&gt; const &amp; t)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> }</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="ttc" id="a00145_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floor(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00004.html b/3rdparty/glm/doc/api/a00004.html
index 3963397a016..ffa8b2c5e33 100644
--- a/3rdparty/glm/doc/api/a00004.html
+++ b/3rdparty/glm/doc/api/a00004.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle.hpp File Reference</title>
+<title>0.9.9 API documenation: _swizzle.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,16 +89,12 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00004_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-04-20 / 2011-02-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00004_source.html">_swizzle.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00004_source.html b/3rdparty/glm/doc/api/a00004_source.html
index 70a81eaee61..3e79a9517a8 100644
--- a/3rdparty/glm/doc/api/a00004_source.html
+++ b/3rdparty/glm/doc/api/a00004_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle.hpp Source File</title>
+<title>0.9.9 API documenation: _swizzle.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,809 +89,802 @@
</div><!--header-->
<div class="contents">
<a href="a00004.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Internal class for implementing swizzle operators</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">struct </span>_swizzle_base0</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_QUALIFIER value_type&amp; elem (<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> (reinterpret_cast&lt;value_type*&gt;(_buffer))[i]; }</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">const</span> value_type&amp; elem (<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (reinterpret_cast&lt;const value_type*&gt;(_buffer))[i]; }</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn&#39;t call a constructor.</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// elem() </span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">char</span> _buffer[1];</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; };</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> N&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0&lt;T, N&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; };</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;T, P, V,E0,E1,-1,-2,2&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 2&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_QUALIFIER V operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1)); }</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;T, P, V,E0,E1,E2,-1,3&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 3&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_QUALIFIER V operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; };</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;T, P, V,E0,E1,E2,E3,4&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 4&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; { </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_QUALIFIER V operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> V(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N&gt;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">struct </span>_swizzle_base0</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; {</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; GLM_FUNC_QUALIFIER T&amp; elem(<span class="keywordtype">size_t</span> i){ <span class="keywordflow">return</span> (reinterpret_cast&lt;T*&gt;(_buffer))[i]; }</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; GLM_FUNC_QUALIFIER T <span class="keyword">const</span>&amp; elem(<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>{ <span class="keywordflow">return</span> (reinterpret_cast&lt;const T*&gt;(_buffer))[i]; }</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn&#39;t call a constructor.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="comment">// elem() </span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">char</span> _buffer[1];</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; };</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> Aligned&gt;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0&lt;T, N&gt;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; };</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">bool</span> Aligned&gt;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;2, T, P, vecType, E0,E1,-1,-2, Aligned&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 2&gt;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType&lt;T, P&gt;(this-&gt;elem(E0), this-&gt;elem(E1)); }</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; };</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">bool</span> Aligned&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;3, T, P, vecType, E0,E1,E2,-1, Aligned&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 3&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType&lt;T, P&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2)); }</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; };</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> Aligned&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">struct </span>_swizzle_base1&lt;4, T, P, vecType, E0,E1,E2,E3, Aligned&gt; : <span class="keyword">public</span> _swizzle_base0&lt;T, 4&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; { </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType&lt;T, P&gt;(this-&gt;elem(E0), this-&gt;elem(E1), this-&gt;elem(E2), this-&gt;elem(E3)); }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">/*</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> Template parameters:</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> ValueType = type of scalar values (e.g. float, double)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> VecType = class the swizzle is applies to (e.g. tvec3&lt;float&gt;)</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> N = number of components in the vector (e.g. 3)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> containing duplicate elements so that they cannot be used as r-values). </span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned&lt;P&gt;::value&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (<span class="keyword">const</span> T&amp; t)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; (*<span class="keyword">this</span>)[i] = t;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t) { e = t; } </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; _apply_op(that, op());</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Internal class for implementing swizzle operators</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">/*</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> Template parameters:</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> ValueType = type of scalar values (e.g. float, double)</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> VecType = class the swizzle is applies to (e.g. tvec3&lt;float&gt;)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> N = number of components in the vector (e.g. 3)</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> containing duplicate elements so that they cannot be used as r-values). </span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, precision P, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1&lt;ValueType, P, VecType,E0,E1,E2,E3,N&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">typedef</span> VecType vec_type;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">typedef</span> ValueType value_type;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (<span class="keyword">const</span> ValueType&amp; t)</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; (*<span class="keyword">this</span>)[i] = t;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (<span class="keyword">const</span> VecType&amp; that)</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type&amp; t) { e = t; } </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; _apply_op(that, op());</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (<span class="keyword">const</span> VecType&amp; that)</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type&amp; t) { e -= t; } </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; };</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; _apply_op(that, op());</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (<span class="keyword">const</span> VecType&amp; that)</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type&amp; t) { e += t; } </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; _apply_op(that, op());</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (<span class="keyword">const</span> VecType&amp; that)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type&amp; t) { e *= t; } </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; _apply_op(that, op());</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t) { e -= t; } </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; _apply_op(that, op());</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t) { e += t; } </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; _apply_op(that, op());</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t) { e *= t; } </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; _apply_op(that, op());</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T&amp; <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T&amp; t) { e /= t; } </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; _apply_op(that, op());</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_QUALIFIER T&amp; operator[](<span class="keywordtype">size_t</span> i)</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_QUALIFIER T operator[](<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; that, U op)</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Make a copy of the data in this == &amp;that.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// properly inlined and the copy is not necessary.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; T t[N];</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; t[i] = that[i];</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; op( (*<span class="keyword">this</span>)[i], t[i] );</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (<span class="keyword">const</span> VecType&amp; that)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type&amp; <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type&amp; t) { e /= t; } </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; _apply_op(that, op());</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Specialization for swizzles containing duplicate elements. These cannot be modified.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">struct </span>_swizzle_base2&lt;N, T, P, vecType, E0,E1,E2,E3, 1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned&lt;P&gt;::value&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">struct </span>Stub {};</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (Stub <span class="keyword">const</span> &amp;) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_QUALIFIER value_type&amp; operator[] (<span class="keywordtype">size_t</span> i)</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_QUALIFIER T operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_QUALIFIER value_type operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword"> </span>{</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(<span class="keyword">const</span> VecType&amp; that, T op)</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// Make a copy of the data in this == &amp;that.</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// properly inlined and the copy is not necessary.</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; ValueType t[N];</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; t[i] = that[i];</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; N; ++i)</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; op( (*<span class="keyword">this</span>)[i], t[i] );</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// Specialization for swizzles containing duplicate elements. These cannot be modified.</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, precision P, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">struct </span>_swizzle_base2&lt;ValueType, P, VecType,N,E0,E1,E2,E3,1&gt; : <span class="keyword">public</span> _swizzle_base1&lt;ValueType, P, VecType,E0,E1,E2,E3,N&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">typedef</span> VecType vec_type; </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">typedef</span> ValueType value_type;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">struct </span>Stub {};</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_QUALIFIER _swizzle_base2&amp; operator= (Stub <span class="keyword">const</span> &amp;) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_QUALIFIER value_type operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keyword"> </span>{</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> this-&gt;elem(offset_dst[i]);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; };</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N,<span class="keyword">typename</span> ValueType, precision P, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> E0,<span class="keywordtype">int</span> E1,<span class="keywordtype">int</span> E2,<span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2&lt;ValueType, P, VecType, N, E0, E1, E2, E3, (E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">typedef</span> _swizzle_base2&lt;ValueType, P, VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)&gt; base_type;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">using</span> base_type::operator=;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">operator</span> VecType ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; };</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1 template &lt;int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3&gt;</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2 template &lt;int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TYPE1 _swizzle&lt;N, T, P, V, E0, E1, E2, E3&gt;</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TYPE2 _swizzle&lt;N, T, P, V, F0, F1, F2, F3&gt;</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> return a() OPERAND b(); \</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const V&amp; b) \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"> return a() OPERAND b; \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> return a OPERAND b(); \</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b) \</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"> return a() OPERAND b; \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const T&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> return a OPERAND b(); \</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a) \</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> return FUNCTION(a()); \</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b) \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b); \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> return FUNCTION(a, b()); \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> } </span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c) \</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c) \</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b, c); \</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c) \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> return FUNCTION(a, b(), c); \</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> } </span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}<span class="comment">//namespace detail </span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="comment">// Swizzles are distinct types from the unswizzled type. The below macros will</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// the function.</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); </span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;}</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V&lt;T, P&gt;, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V&lt;T, P&gt;, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V&lt;T, P&gt;, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V&lt;T, P&gt;, 1,1,-1,-2&gt; E1 ## E1; }; </span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V&lt;T, P&gt;, 1,1,1,-1&gt; E1 ## E1 ## E1; }; </span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; </span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,2,-1,-2&gt; E2 ## E2; }; </span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,2,-1&gt; E2 ## E2 ## E2; };</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V&lt;T, P&gt;, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; </span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 0,3,-1,-2&gt; E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 1,3,-1,-2&gt; E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,2,-1,-2&gt; E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 2,3,-1,-2&gt; E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 3,0,-1,-2&gt; E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 3,1,-1,-2&gt; E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 3,2,-1,-2&gt; E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V&lt;T, P&gt;, 3,3,-1,-2&gt; E3 ## E3; }; </span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,0,3,-1&gt; E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,1,3,-1&gt; E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,2,3,-1&gt; E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,3,0,-1&gt; E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,3,1,-1&gt; E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,3,2,-1&gt; E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 0,3,3,-1&gt; E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,0,3,-1&gt; E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,1,3,-1&gt; E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,2,3,-1&gt; E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,3,0,-1&gt; E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,3,1,-1&gt; E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,3,2,-1&gt; E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 1,3,3,-1&gt; E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,0,3,-1&gt; E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,1,3,-1&gt; E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,2,-1&gt; E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,2,3,-1&gt; E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,3,0,-1&gt; E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,3,1,-1&gt; E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,3,2,-1&gt; E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 2,3,3,-1&gt; E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,0,0,-1&gt; E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,0,1,-1&gt; E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,0,2,-1&gt; E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,0,3,-1&gt; E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,1,0,-1&gt; E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,1,1,-1&gt; E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,1,2,-1&gt; E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,1,3,-1&gt; E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,2,0,-1&gt; E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,2,1,-1&gt; E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,2,2,-1&gt; E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,2,3,-1&gt; E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,3,0,-1&gt; E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,3,1,-1&gt; E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,3,2,-1&gt; E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T,P, V&lt;T, P&gt;, 3,3,3,-1&gt; E3 ## E3 ## E3; }; </span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,0,0&gt; E0 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,0,1&gt; E0 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,0,2&gt; E0 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,0,3&gt; E0 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,1,0&gt; E0 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,1,1&gt; E0 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,1,2&gt; E0 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,1,3&gt; E0 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,2,0&gt; E0 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,2,1&gt; E0 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,2,2&gt; E0 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,2,3&gt; E0 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,3,0&gt; E0 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,3,1&gt; E0 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,3,2&gt; E0 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 0,3,3,3&gt; E0 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V&lt;T, P&gt;, 3,3,3,3&gt; E3 ## E3 ## E3 ## E3; };</span></div>
-<div class="ttc" id="a00168_html_gab83fb6de0f05d6c0d11bdf0479f8319e"><div class="ttname"><a href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL genType e()</div><div class="ttdoc">Return e constant. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2&lt;N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">typedef</span> _swizzle_base2&lt;N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)&gt; base_type;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">using</span> base_type::operator=;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">operator</span> vecType&lt;T, P&gt; () <span class="keyword">const</span> { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1 template &lt;int N, typename T, precision P, template &lt;typename, precision&gt; class vecType, int E0, int E1, int E2, int E3&gt;</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2 template &lt;int N, typename T, precision P, template &lt;typename, precision&gt; class vecType, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3&gt;</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TYPE1 _swizzle&lt;N, T, P, vecType, E0, E1, E2, E3&gt;</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_TYPE2 _swizzle&lt;N, T, P, vecType, F0, F1, F2, F3&gt;</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> return a() OPERAND b(); \</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const vecType&lt;T, P&gt;&amp; b) \</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"> return a() OPERAND b; \</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator OPERAND ( const vecType&lt;T, P&gt;&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> return a OPERAND b(); \</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator OPERAND ( const _GLM_SWIZZLE_TYPE1&amp; a, const T&amp; b) \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> return a() OPERAND b; \</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER vecType&lt;T, P&gt; operator OPERAND ( const T&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> return a OPERAND b(); \</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a) \</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> return FUNCTION(a()); \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b) \</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename V&amp; b) \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b); \</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b) \</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> return FUNCTION(a, b()); \</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> } </span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE2&amp; b, const T&amp; c) \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c) \</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1&amp; a, const typename S0::vec_type&amp; b, const T&amp; c)\</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> return FUNCTION(a(), b, c); \</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V&amp; a, const _GLM_SWIZZLE_TYPE1&amp; b, const T&amp; c) \</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> return FUNCTION(a, b(), c); \</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> } </span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}<span class="comment">//namespace detail </span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;{</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// Swizzles are distinct types from the unswizzled type. The below macros will</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// the function.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); </span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;}</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2, T, P, V, 1,1,-1,-2&gt; E1 ## E1; }; </span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3,T, P, V, 1,1,1,-1&gt; E1 ## E1 ## E1; }; </span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; };</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,2,-1,-2&gt; E2 ## E2; };</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,2,-1&gt; E2 ## E2 ## E2; };</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4,T, P, V, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; </span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,0,-1,-2&gt; E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,1,-1,-2&gt; E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,2,-1,-2&gt; E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 0,3,-1,-2&gt; E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,0,-1,-2&gt; E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,1,-1,-2&gt; E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,2,-1,-2&gt; E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 1,3,-1,-2&gt; E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,0,-1,-2&gt; E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,1,-1,-2&gt; E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,2,-1,-2&gt; E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 2,3,-1,-2&gt; E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 3,0,-1,-2&gt; E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 3,1,-1,-2&gt; E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 3,2,-1,-2&gt; E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;2,T, P, V, 3,3,-1,-2&gt; E3 ## E3; }; </span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,0,-1&gt; E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,1,-1&gt; E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,2,-1&gt; E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,0,3,-1&gt; E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,0,-1&gt; E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,1,-1&gt; E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,2,-1&gt; E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,1,3,-1&gt; E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,0,-1&gt; E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,1,-1&gt; E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,2,-1&gt; E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,2,3,-1&gt; E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,3,0,-1&gt; E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,3,1,-1&gt; E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,3,2,-1&gt; E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 0,3,3,-1&gt; E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,0,-1&gt; E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,1,-1&gt; E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,2,-1&gt; E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,0,3,-1&gt; E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,0,-1&gt; E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,1,-1&gt; E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,2,-1&gt; E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,1,3,-1&gt; E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,0,-1&gt; E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,1,-1&gt; E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,2,-1&gt; E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,2,3,-1&gt; E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,3,0,-1&gt; E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,3,1,-1&gt; E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,3,2,-1&gt; E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 1,3,3,-1&gt; E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,0,-1&gt; E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,1,-1&gt; E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,2,-1&gt; E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,0,3,-1&gt; E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,0,-1&gt; E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,1,-1&gt; E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,2,-1&gt; E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,1,3,-1&gt; E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,0,-1&gt; E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,1,-1&gt; E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,2,-1&gt; E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,2,3,-1&gt; E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,3,0,-1&gt; E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,3,1,-1&gt; E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,3,2,-1&gt; E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 2,3,3,-1&gt; E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,0,0,-1&gt; E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,0,1,-1&gt; E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,0,2,-1&gt; E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,0,3,-1&gt; E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,1,0,-1&gt; E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,1,1,-1&gt; E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,1,2,-1&gt; E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,1,3,-1&gt; E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,2,0,-1&gt; E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,2,1,-1&gt; E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,2,2,-1&gt; E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,2,3,-1&gt; E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,3,0,-1&gt; E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,3,1,-1&gt; E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,3,2,-1&gt; E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;3, T, P, V, 3,3,3,-1&gt; E3 ## E3 ## E3; }; </span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,0,0&gt; E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,0,1&gt; E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,0,2&gt; E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,0,3&gt; E0 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,1,0&gt; E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,1,1&gt; E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,1,2&gt; E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,1,3&gt; E0 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,2,0&gt; E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,2,1&gt; E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,2,2&gt; E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,2,3&gt; E0 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,3,0&gt; E0 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,3,1&gt; E0 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,3,2&gt; E0 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,0,3,3&gt; E0 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,0,0&gt; E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,0,1&gt; E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,0,2&gt; E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,0,3&gt; E0 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,1,0&gt; E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,1,1&gt; E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,1,2&gt; E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,1,3&gt; E0 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,2,0&gt; E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,2,1&gt; E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,2,2&gt; E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,2,3&gt; E0 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,3,0&gt; E0 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,3,1&gt; E0 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,3,2&gt; E0 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,1,3,3&gt; E0 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,0,0&gt; E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,0,1&gt; E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,0,2&gt; E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,0,3&gt; E0 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,1,0&gt; E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,1,1&gt; E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,1,2&gt; E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,1,3&gt; E0 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,2,0&gt; E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,2,1&gt; E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,2,2&gt; E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,2,3&gt; E0 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,3,0&gt; E0 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,3,1&gt; E0 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,3,2&gt; E0 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,2,3,3&gt; E0 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,0,0&gt; E0 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,0,1&gt; E0 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,0,2&gt; E0 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,0,3&gt; E0 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,1,0&gt; E0 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,1,1&gt; E0 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,1,2&gt; E0 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,1,3&gt; E0 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,2,0&gt; E0 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,2,1&gt; E0 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,2,2&gt; E0 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,2,3&gt; E0 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,3,0&gt; E0 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,3,1&gt; E0 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,3,2&gt; E0 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 0,3,3,3&gt; E0 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,0,0&gt; E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,0,1&gt; E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,0,2&gt; E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,0,3&gt; E1 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,1,0&gt; E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,1,1&gt; E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,1,2&gt; E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,1,3&gt; E1 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,2,0&gt; E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,2,1&gt; E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,2,2&gt; E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,2,3&gt; E1 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,3,0&gt; E1 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,3,1&gt; E1 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,3,2&gt; E1 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,0,3,3&gt; E1 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,0,0&gt; E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,0,1&gt; E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,0,2&gt; E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,0,3&gt; E1 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,1,0&gt; E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,1,1&gt; E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,1,2&gt; E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,1,3&gt; E1 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,2,0&gt; E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,2,1&gt; E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,2,2&gt; E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,2,3&gt; E1 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,3,0&gt; E1 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,3,1&gt; E1 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,3,2&gt; E1 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,1,3,3&gt; E1 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,0,0&gt; E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,0,1&gt; E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,0,2&gt; E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,0,3&gt; E1 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,1,0&gt; E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,1,1&gt; E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,1,2&gt; E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,1,3&gt; E1 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,2,0&gt; E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,2,1&gt; E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,2,2&gt; E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,2,3&gt; E1 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,3,0&gt; E1 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,3,1&gt; E1 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,3,2&gt; E1 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,2,3,3&gt; E1 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,0,0&gt; E1 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,0,1&gt; E1 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,0,2&gt; E1 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,0,3&gt; E1 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,1,0&gt; E1 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,1,1&gt; E1 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,1,2&gt; E1 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,1,3&gt; E1 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,2,0&gt; E1 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,2,1&gt; E1 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,2,2&gt; E1 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,2,3&gt; E1 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,3,0&gt; E1 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,3,1&gt; E1 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,3,2&gt; E1 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 1,3,3,3&gt; E1 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,0,0&gt; E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,0,1&gt; E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,0,2&gt; E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,0,3&gt; E2 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,1,0&gt; E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,1,1&gt; E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,1,2&gt; E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,1,3&gt; E2 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,2,0&gt; E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,2,1&gt; E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,2,2&gt; E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,2,3&gt; E2 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,3,0&gt; E2 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,3,1&gt; E2 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,3,2&gt; E2 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,0,3,3&gt; E2 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,0,0&gt; E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,0,1&gt; E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,0,2&gt; E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,0,3&gt; E2 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,1,0&gt; E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,1,1&gt; E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,1,2&gt; E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,1,3&gt; E2 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,2,0&gt; E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,2,1&gt; E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,2,2&gt; E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,2,3&gt; E2 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,3,0&gt; E2 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,3,1&gt; E2 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,3,2&gt; E2 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,1,3,3&gt; E2 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,0,0&gt; E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,0,1&gt; E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,0,2&gt; E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,0,3&gt; E2 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,1,0&gt; E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,1,1&gt; E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,1,2&gt; E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,1,3&gt; E2 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,2,0&gt; E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,2,1&gt; E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,2,2&gt; E2 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,2,3&gt; E2 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,3,0&gt; E2 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,3,1&gt; E2 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,3,2&gt; E2 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,2,3,3&gt; E2 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,0,0&gt; E2 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,0,1&gt; E2 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,0,2&gt; E2 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,0,3&gt; E2 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,1,0&gt; E2 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,1,1&gt; E2 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,1,2&gt; E2 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,1,3&gt; E2 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,2,0&gt; E2 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,2,1&gt; E2 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,2,2&gt; E2 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,2,3&gt; E2 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,3,0&gt; E2 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,3,1&gt; E2 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,3,2&gt; E2 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 2,3,3,3&gt; E2 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,0,0&gt; E3 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,0,1&gt; E3 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,0,2&gt; E3 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,0,3&gt; E3 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,1,0&gt; E3 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,1,1&gt; E3 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,1,2&gt; E3 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,1,3&gt; E3 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,2,0&gt; E3 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,2,1&gt; E3 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,2,2&gt; E3 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,2,3&gt; E3 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,3,0&gt; E3 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,3,1&gt; E3 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,3,2&gt; E3 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,0,3,3&gt; E3 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,0,0&gt; E3 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,0,1&gt; E3 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,0,2&gt; E3 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,0,3&gt; E3 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,1,0&gt; E3 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,1,1&gt; E3 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,1,2&gt; E3 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,1,3&gt; E3 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,2,0&gt; E3 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,2,1&gt; E3 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,2,2&gt; E3 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,2,3&gt; E3 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,3,0&gt; E3 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,3,1&gt; E3 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,3,2&gt; E3 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,1,3,3&gt; E3 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,0,0&gt; E3 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,0,1&gt; E3 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,0,2&gt; E3 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,0,3&gt; E3 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,1,0&gt; E3 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,1,1&gt; E3 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,1,2&gt; E3 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,1,3&gt; E3 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,2,0&gt; E3 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,2,1&gt; E3 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,2,2&gt; E3 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,2,3&gt; E3 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,3,0&gt; E3 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,3,1&gt; E3 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,3,2&gt; E3 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,2,3,3&gt; E3 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,0,0&gt; E3 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,0,1&gt; E3 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,0,2&gt; E3 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,0,3&gt; E3 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,1,0&gt; E3 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,1,1&gt; E3 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,1,2&gt; E3 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,1,3&gt; E3 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,2,0&gt; E3 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,2,1&gt; E3 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,2,2&gt; E3 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,2,3&gt; E3 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,3,0&gt; E3 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,3,1&gt; E3 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,3,2&gt; E3 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor"> struct { detail::_swizzle&lt;4, T, P, V, 3,3,3,3&gt; E3 ## E3 ## E3 ## E3; };</span></div>
+<div class="ttc" id="a00162_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00005.html b/3rdparty/glm/doc/api/a00005.html
index 353fad213b5..3b4dcedcf08 100644
--- a/3rdparty/glm/doc/api/a00005.html
+++ b/3rdparty/glm/doc/api/a00005.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle_func.hpp File Reference</title>
+<title>0.9.9 API documenation: _swizzle_func.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,16 +89,12 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00005_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-10-16 / 2011-10-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00005_source.html">_swizzle_func.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00005_source.html b/3rdparty/glm/doc/api/a00005_source.html
index 2cc119f2e6f..848d0b250fe 100644
--- a/3rdparty/glm/doc/api/a00005_source.html
+++ b/3rdparty/glm/doc/api/a00005_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle_func.hpp Source File</title>
+<title>0.9.9 API documenation: _swizzle_func.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,699 +89,699 @@
</div><!--header-->
<div class="contents">
<a href="a00005.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt; A ## B() CONST \</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B); \</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt; A ## B ## C() CONST \</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt; A ## B() CONST \</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B); \</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt; A ## B ## C() CONST \</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt; A ## B ## C ## D() CONST \</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"> template &lt;typename TMPL_TYPE&gt; \</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE, PRECISION&gt;::A ## B() CONST \</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B); \</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"> template &lt;typename TMPL_TYPE&gt; \</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE, PRECISION&gt;::A ## B ## C() CONST \</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> template &lt;typename TMPL_TYPE&gt; \</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE, PRECISION&gt;::A ## B ## C ## D() CONST \</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define GLM_MUTABLE</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt; A ## B ## C ## D() CONST \</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> template &lt;typename TMPL_TYPE&gt; \</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE, PRECISION&gt;::A ## B() CONST \</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B); \</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> template &lt;typename TMPL_TYPE&gt; \</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE, PRECISION&gt;::A ## B ## C() CONST \</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C); \</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> template &lt;typename TMPL_TYPE&gt; \</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> SWIZZLED_TYPE&lt;TMPL_TYPE&gt; CLASS_TYPE&lt;TMPL_TYPE, PRECISION&gt;::A ## B ## C ## D() CONST \</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> return SWIZZLED_TYPE&lt;TMPL_TYPE, PRECISION&gt;(this-&gt;A, this-&gt;B, this-&gt;C, this-&gt;D); \</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#define GLM_MUTABLE</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00006.html b/3rdparty/glm/doc/api/a00006.html
index 6d86c9d44d0..5e0264c64e4 100644
--- a/3rdparty/glm/doc/api/a00006.html
+++ b/3rdparty/glm/doc/api/a00006.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _vectorize.hpp File Reference</title>
+<title>0.9.9 API documenation: _vectorize.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,16 +89,12 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00006_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-10-14 / 2011-10-14 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00006_source.html">_vectorize.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00006_source.html b/3rdparty/glm/doc/api/a00006_source.html
index 4f53251c360..19493bf378d 100644
--- a/3rdparty/glm/doc/api/a00006_source.html
+++ b/3rdparty/glm/doc/api/a00006_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _vectorize.hpp Source File</title>
+<title>0.9.9 API documenation: _vectorize.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,139 +89,139 @@
</div><!--header-->
<div class="contents">
<a href="a00006.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00126.html">type_vec1.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">struct </span>functor1{};</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec1&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; {</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1&lt;R, P&gt; call(R (*Func) (T x), tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">return</span> tvec1&lt;R, P&gt;(Func(v.x));</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; };</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec2&gt;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2&lt;R, P&gt; call(R (*Func) (T x), tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">return</span> tvec2&lt;R, P&gt;(Func(v.x), Func(v.y));</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; };</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00133.html">type_vec1.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>functor1{};</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec1&gt;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1&lt;R, P&gt; call(R (*Func) (T x), tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> tvec1&lt;R, P&gt;(Func(v.x));</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec2&gt;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2&lt;R, P&gt; call(R (*Func) (T x), tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> tvec2&lt;R, P&gt;(Func(v.x), Func(v.y));</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec3&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3&lt;R, P&gt; call(R (*Func) (T x), tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> tvec3&lt;R, P&gt;(Func(v.x), Func(v.y), Func(v.z));</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; };</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec4&gt;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4&lt;R, P&gt; call(R (*Func) (T x), tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> tvec4&lt;R, P&gt;(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; };</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">struct </span>functor2{};</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec1&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1&lt;T, P&gt; call(T (*Func) (T x, T y), tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> tvec1&lt;T, P&gt;(Func(a.x, b.x));</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; };</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec2&gt;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2&lt;T, P&gt; call(T (*Func) (T x, T y), tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> tvec2&lt;T, P&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; };</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec3&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3&lt;T, P&gt; call(T (*Func) (T x, T y), tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> tvec3&lt;T, P&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec4&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4&lt;T, P&gt; call(T (*Func) (T x, T y), tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> tvec4&lt;T, P&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; };</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">struct </span>functor2_vec_sca{};</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec1&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1&lt;T, P&gt; call(T (*Func) (T x, T y), tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> tvec1&lt;T, P&gt;(Func(a.x, b));</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec2&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2&lt;T, P&gt; call(T (*Func) (T x, T y), tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> tvec2&lt;T, P&gt;(Func(a.x, b), Func(a.y, b));</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; };</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec3&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3&lt;T, P&gt; call(T (*Func) (T x, T y), tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> tvec3&lt;T, P&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec4&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4&lt;T, P&gt; call(T (*Func) (T x, T y), tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> tvec4&lt;T, P&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">type_vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec3&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3&lt;R, P&gt; call(R (*Func) (T x), tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> tvec3&lt;R, P&gt;(Func(v.x), Func(v.y), Func(v.z));</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>functor1&lt;R, T, P, tvec4&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4&lt;R, P&gt; call(R (*Func) (T x), tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> tvec4&lt;R, P&gt;(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; };</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">struct </span>functor2{};</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec1&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1&lt;T, P&gt; call(T (*Func) (T x, T y), tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> tvec1&lt;T, P&gt;(Func(a.x, b.x));</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec2&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2&lt;T, P&gt; call(T (*Func) (T x, T y), tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> tvec2&lt;T, P&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec3&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3&lt;T, P&gt; call(T (*Func) (T x, T y), tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> tvec3&lt;T, P&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">struct </span>functor2&lt;T, P, tvec4&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4&lt;T, P&gt; call(T (*Func) (T x, T y), tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; a, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; b)</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> tvec4&lt;T, P&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">struct </span>functor2_vec_sca{};</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec1&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1&lt;T, P&gt; call(T (*Func) (T x, T y), tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> tvec1&lt;T, P&gt;(Func(a.x, b));</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec2&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2&lt;T, P&gt; call(T (*Func) (T x, T y), tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> tvec2&lt;T, P&gt;(Func(a.x, b), Func(a.y, b));</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec3&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3&lt;T, P&gt; call(T (*Func) (T x, T y), tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> tvec3&lt;T, P&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;T, P, tvec4&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4&lt;T, P&gt; call(T (*Func) (T x, T y), tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; a, T b)</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> tvec4&lt;T, P&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00126_html"><div class="ttname"><a href="a00126.html">type_vec1.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00007.html b/3rdparty/glm/doc/api/a00007.html
index cee586daefb..afcdae63d4b 100644
--- a/3rdparty/glm/doc/api/a00007.html
+++ b/3rdparty/glm/doc/api/a00007.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: associated_min_max.hpp File Reference</title>
+<title>0.9.9 API documenation: associated_min_max.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,89 +91,107 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00007_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memdesc:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">More...</a><br /></td></tr>
<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:ga10ba6001798f42a0f941f19ff30e066a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">More...</a><br /></td></tr>
<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:ga62ca63cca6b21387b8a25474f441a869"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">More...</a><br /></td></tr>
<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
+<tr class="memdesc:ga5364520173815b66a9d9e452c38bf312"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga5364520173815b66a9d9e452c38bf312">More...</a><br /></td></tr>
<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memdesc:gaec891e363d91abbf3a4443cf2f652209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">More...</a><br /></td></tr>
<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memdesc:ga065a0c1eb7837118ef79be88dfd78487"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">More...</a><br /></td></tr>
<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memdesc:ga553431a468e251623408603bcb51c9cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga553431a468e251623408603bcb51c9cb">More...</a><br /></td></tr>
<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c)</td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c)</td></tr>
+<tr class="memdesc:ga327136e6a568569c03a056f90814b656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga327136e6a568569c03a056f90814b656">More...</a><br /></td></tr>
<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memdesc:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">More...</a><br /></td></tr>
<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:gaf607886421c35cd7e4f41a50d7c330e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">More...</a><br /></td></tr>
<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:ga7a165de1af9a3f9193516a3b47407086"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">More...</a><br /></td></tr>
<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
+<tr class="memdesc:ga3122fbe8133ea54749b10fb93e8a167e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">More...</a><br /></td></tr>
<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
-<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memdesc:gacc01bd272359572fc28437ae214a02df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#gacc01bd272359572fc28437ae214a02df">More...</a><br /></td></tr>
<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:ga8b538d10872626668a078e2bd495af25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga8b538d10872626668a078e2bd495af25">More...</a><br /></td></tr>
<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType&lt; U, P &gt; &amp;a, T y, const vecType&lt; U, P &gt; &amp;b)</td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType&lt; U, P &gt; &amp;a, T y, const vecType&lt; U, P &gt; &amp;b)</td></tr>
+<tr class="memdesc:ga1dccff48fa5650c746533de83467da6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga1dccff48fa5650c746533de83467da6e">More...</a><br /></td></tr>
<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
+<tr class="memdesc:ga076717f4e07c6ae725cc1382d1ac4869"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">More...</a><br /></td></tr>
<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memdesc:gad0aa8f86259a26d839d34a3577a923fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">More...</a><br /></td></tr>
<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memdesc:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">More...</a><br /></td></tr>
<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memdesc:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">More...</a><br /></td></tr>
<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:ga88e031f22b80215505928900d3dde549"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga88e031f22b80215505928900d3dde549">More...</a><br /></td></tr>
<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">More...</a><br /></td></tr>
<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
+<tr class="memdesc:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">More...</a><br /></td></tr>
<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00185.html">GLM_GTX_associated_min_max</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-03-10 / 2014-10-11 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00007_source.html">associated_min_max.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00007_source.html b/3rdparty/glm/doc/api/a00007_source.html
index aaa8b3fc06b..1987bc33968 100644
--- a/3rdparty/glm/doc/api/a00007_source.html
+++ b/3rdparty/glm/doc/api/a00007_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: associated_min_max.hpp Source File</title>
+<title>0.9.9 API documenation: associated_min_max.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,152 +89,156 @@
</div><!--header-->
<div class="contents">
<a href="a00007.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_associated_min_max extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(T x, U a, T y, U b);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL tvec2&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; T x, <span class="keyword">const</span> vecType&lt;U, P&gt;&amp; a,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; T y, <span class="keyword">const</span> vecType&lt;U, P&gt;&amp; b);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b);</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GTX_associated_min_max is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_associated_min_max extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL tvec2&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; T x, <span class="keyword">const</span> vecType&lt;U, P&gt;&amp; a,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; T y, <span class="keyword">const</span> vecType&lt;U, P&gt;&amp; b);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T x, U a,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T y, U b,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; T z, U c);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; T x, U a,</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T y, U b,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; T z, U c,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; T w, U d);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; T x, U a,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; T y, U b,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; T z, U c);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; T x, U a,</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; T y, U b,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; T z, U c,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; T w, U d);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; T z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; T w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, U c,</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, U d);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(T x, U a, T y, U b);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tvec2&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; T x, U a,</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; T y, U b,</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; T z, U c);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; T z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; T w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, U c,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, U d);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL tvec2&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; T x, U a,</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; T y, U b,</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; T z, U c);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; T z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b,</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, U c);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; T x, U a,</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; T y, U b,</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; T z, U c,</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; T w, U d);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; T z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b,</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, U c);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; T x, U a,</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; T y, U b,</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; T z, U c,</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; T w, U d);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; T z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; T w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b,</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, U c,</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, U d);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span></div>
-<div class="ttc" id="a00185_html_ga00a949fd345f4b31b259f033d3ab4a1c"><div class="ttname"><a href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">glm::associatedMin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; U, P &gt; associatedMin(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</div><div class="ttdoc">Minimum comparison between 4 variables and returns 4 associated variable values. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00185_html_ga3122fbe8133ea54749b10fb93e8a167e"><div class="ttname"><a href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">glm::associatedMax</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; U, P &gt; associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</div><div class="ttdoc">Maximum comparison between 4 variables and returns 4 associated variable values. </div></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; T x, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a,</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; T y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; b,</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; T z, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; c,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; T w, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; d);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; GLM_FUNC_DECL vecType&lt;U, P&gt; <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, U a,</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U b,</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; z, U c,</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; w, U d);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span></div>
+<div class="ttc" id="a00181_html_ga3122fbe8133ea54749b10fb93e8a167e"><div class="ttname"><a href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">glm::associatedMax</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; U, P &gt; associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</div><div class="ttdoc">Maximum comparison between 4 variables and returns 4 associated variable values. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00181_html_ga00a949fd345f4b31b259f033d3ab4a1c"><div class="ttname"><a href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">glm::associatedMin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; U, P &gt; associatedMin(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</div><div class="ttdoc">Minimum comparison between 4 variables and returns 4 associated variable values. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00008.html b/3rdparty/glm/doc/api/a00008.html
index 037985b8551..7cd81caa9d7 100644
--- a/3rdparty/glm/doc/api/a00008.html
+++ b/3rdparty/glm/doc/api/a00008.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bit.hpp File Reference</title>
+<title>0.9.9 API documenation: bit.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,47 +91,51 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00182.html">GLM_GTX_bit</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00008_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the highest bit set to 1 in a integer variable and return its value. <a href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">More...</a><br /></td></tr>
<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga8cda2459871f574a0aecbe702ac93291"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value. <a href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">More...</a><br /></td></tr>
<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gafe08808a50226b75b50e640a08b32ddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value. <a href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">More...</a><br /></td></tr>
<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga3de7df63c589325101a2817a56f8e29d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value. <a href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">More...</a><br /></td></tr>
<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gae33bb1ca2b55846b23a0f0796a679195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value. <a href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">More...</a><br /></td></tr>
<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga5f65973a5d2ea38c719e6a663149ead9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">More...</a><br /></td></tr>
<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga2d7e85995d097518b8d70cd409bda39e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">More...</a><br /></td></tr>
<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00186.html">GLM_GTX_bit</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00182.html">GLM_GTX_bit</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00008_source.html">bit.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00008_source.html b/3rdparty/glm/doc/api/a00008_source.html
index 58d196424f5..08298f7fd61 100644
--- a/3rdparty/glm/doc/api/a00008_source.html
+++ b/3rdparty/glm/doc/api/a00008_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bit.hpp Source File</title>
+<title>0.9.9 API documenation: bit.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,52 +89,60 @@
</div><!--header-->
<div class="contents">
<a href="a00008.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../gtc/bitfield.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_bit is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtc/bitfield.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(genIUType Value);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(genIUType Value);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(genIUType Value);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(genIUType Value);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(genIUType Value);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;bit.inl&quot;</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(genIUType Value);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#include &quot;bit.inl&quot;</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="ttc" id="a00186_html_ga2d7e85995d097518b8d70cd409bda39e"><div class="ttname"><a href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">glm::powerOfTwoNearest</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt; powerOfTwoNearest(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
-<div class="ttc" id="a00186_html_ga5eea3a4d429040af13d39a7d7cd84d73"><div class="ttname"><a href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">glm::highestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; highestBitValue(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Find the highest bit set to 1 in a integer variable and return its value. </div></div>
-<div class="ttc" id="a00186_html_gae33bb1ca2b55846b23a0f0796a679195"><div class="ttname"><a href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">glm::powerOfTwoBelow</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt; powerOfTwoBelow(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value. </div></div>
-<div class="ttc" id="a00186_html_gafe08808a50226b75b50e640a08b32ddc"><div class="ttname"><a href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">glm::powerOfTwoAbove</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt; powerOfTwoAbove(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="ttc" id="a00182_html_gae33bb1ca2b55846b23a0f0796a679195"><div class="ttname"><a href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">glm::powerOfTwoBelow</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt; powerOfTwoBelow(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value. </div></div>
+<div class="ttc" id="a00182_html_gafe08808a50226b75b50e640a08b32ddc"><div class="ttname"><a href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">glm::powerOfTwoAbove</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt; powerOfTwoAbove(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value. </div></div>
+<div class="ttc" id="a00182_html_ga2ff6568089f3a9b67f5c30918855fc6f"><div class="ttname"><a href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">glm::lowestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value)</div></div>
+<div class="ttc" id="a00182_html_ga5eea3a4d429040af13d39a7d7cd84d73"><div class="ttname"><a href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">glm::highestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; highestBitValue(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Find the highest bit set to 1 in a integer variable and return its value. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00182_html_ga2d7e85995d097518b8d70cd409bda39e"><div class="ttname"><a href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">glm::powerOfTwoNearest</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt; powerOfTwoNearest(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00009.html b/3rdparty/glm/doc/api/a00009.html
index fd1a8e1522a..25b8206e44a 100644
--- a/3rdparty/glm/doc/api/a00009.html
+++ b/3rdparty/glm/doc/api/a00009.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bitfield.hpp File Reference</title>
+<title>0.9.9 API documenation: bitfield.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,85 +91,107 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00159.html">GLM_GTC_bitfield</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00009_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 1 a range of bits. <a href="a00159.html#ga46f9295abe3b5c7658f5b13c7f819f0a">More...</a><br /></td></tr>
<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:gad789042e84e8292ae95dc1af856f2ad5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 1 a range of bits. <a href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">More...</a><br /></td></tr>
<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 0 a range of bits. <a href="a00159.html#ga697b86998b7d74ee0a69d8e9f8819fee">More...</a><br /></td></tr>
<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:gaddba3196316b0bd240295b09b43c2958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 0 a range of bits. <a href="a00159.html#gaddba3196316b0bd240295b09b43c2958">More...</a><br /></td></tr>
<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
+<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
+<tr class="memdesc:ga24cad0069f9a0450abd80b3e89501adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga24cad0069f9a0450abd80b3e89501adf">More...</a><br /></td></tr>
<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
+<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
+<tr class="memdesc:ga9a4976a529aec2cee56525e1165da484"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga9a4976a529aec2cee56525e1165da484">More...</a><br /></td></tr>
<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
+<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
+<tr class="memdesc:gac51c33a394593f0631fa3aa5bb778809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#gac51c33a394593f0631fa3aa5bb778809">More...</a><br /></td></tr>
<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
+<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
+<tr class="memdesc:ga94f3646a5667f4be56f8dcf3310e963f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga94f3646a5667f4be56f8dcf3310e963f">More...</a><br /></td></tr>
<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
+<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
+<tr class="memdesc:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#gaebb756a24a0784e3d6fba8bd011ab77a">More...</a><br /></td></tr>
<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
+<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
+<tr class="memdesc:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">More...</a><br /></td></tr>
<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
+<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
+<tr class="memdesc:ga8fdb724dccd4a07d57efc01147102137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#ga8fdb724dccd4a07d57efc01147102137">More...</a><br /></td></tr>
<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
+<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
+<tr class="memdesc:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">More...</a><br /></td></tr>
<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
+<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
+<tr class="memdesc:gaa901c36a842fa5d126ea650549f17b24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#gaa901c36a842fa5d126ea650549f17b24">More...</a><br /></td></tr>
<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
+<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
+<tr class="memdesc:ga3afd6d38881fe3948c53d4214d2197fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#ga3afd6d38881fe3948c53d4214d2197fd">More...</a><br /></td></tr>
<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
+<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
+<tr class="memdesc:gad2075d96a6640121edaa98ea534102ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#gad2075d96a6640121edaa98ea534102ca">More...</a><br /></td></tr>
<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
+<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
+<tr class="memdesc:gab19fbc739fc0cf7247978602c36f7da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#gab19fbc739fc0cf7247978602c36f7da8">More...</a><br /></td></tr>
<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
+<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
+<tr class="memdesc:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#ga8a44ae22f5c953b296c42d067dccbe6d">More...</a><br /></td></tr>
<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
+<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
+<tr class="memdesc:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">More...</a><br /></td></tr>
<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
+<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
+<tr class="memdesc:ga180a63161e1319fbd5a53c84d0429c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#ga180a63161e1319fbd5a53c84d0429c7a">More...</a><br /></td></tr>
<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
+<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
+<tr class="memdesc:gafca8768671a14c8016facccb66a89f26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#gafca8768671a14c8016facccb66a89f26">More...</a><br /></td></tr>
<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
+<tr class="memdesc:ga2eb49678a344ce1495bdb5586d9896b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the left. <a href="a00159.html#ga2eb49678a344ce1495bdb5586d9896b9">More...</a><br /></td></tr>
<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
+<tr class="memdesc:ga410d130917d85b865718e3ebc32cf0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the left. <a href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">More...</a><br /></td></tr>
<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
+<tr class="memdesc:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the right. <a href="a00159.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">More...</a><br /></td></tr>
<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
+<tr class="memdesc:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the right. <a href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">More...</a><br /></td></tr>
<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
+<tr class="memdesc:gad7eba518a0b71662114571ee76939f8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a mask of 'count' bits. <a href="a00159.html#gad7eba518a0b71662114571ee76939f8a">More...</a><br /></td></tr>
<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecIUType&gt; </td></tr>
-<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga073dbd8642f550b51da3572541431c1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a mask of 'count' bits. <a href="a00159.html#ga073dbd8642f550b51da3572541431c1c">More...</a><br /></td></tr>
<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00166.html">GLM_GTC_bitfield</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-10-25 / 2014-10-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00159.html">GLM_GTC_bitfield</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> (dependence) </dd></dl>
+<a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00009_source.html">bitfield.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00009_source.html b/3rdparty/glm/doc/api/a00009_source.html
index 61d2483a4b1..b40d8a24689 100644
--- a/3rdparty/glm/doc/api/a00009_source.html
+++ b/3rdparty/glm/doc/api/a00009_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bitfield.hpp Source File</title>
+<title>0.9.9 API documenation: bitfield.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,94 +89,94 @@
</div><!--header-->
<div class="contents">
<a href="a00009.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/type_int.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../detail/_vectorize.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_bitfield extension included&quot;)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/type_int.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../detail/_vectorize.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_bitfield extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00159.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(genIUType Bits);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecIUType&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL vecIUType&lt;T, P&gt; <a class="code" href="a00159.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(vecIUType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; In, <span class="keywordtype">int</span> Shift);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(genIUType Bits);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecIUType&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecIUType&lt;T, P&gt; <a class="code" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(vecIUType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL int16 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y);</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y, int32 z);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y, uint32 z);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z, int8 w);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z, uint8 w);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z, int16 w);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z, uint16 w);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#include &quot;bitfield.inl&quot;</span></div>
-<div class="ttc" id="a00166_html_gad789042e84e8292ae95dc1af856f2ad5"><div class="ttname"><a href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">glm::bitfieldFillOne</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldFillOne(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 1 a range of bits. </div></div>
-<div class="ttc" id="a00166_html_gaddba3196316b0bd240295b09b43c2958"><div class="ttname"><a href="a00166.html#gaddba3196316b0bd240295b09b43c2958">glm::bitfieldFillZero</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldFillZero(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 0 a range of bits. </div></div>
-<div class="ttc" id="a00166_html_ga96b56fd2adad1eeaee9e10dfe83904ba"><div class="ttname"><a href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">glm::bitfieldRotateRight</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldRotateRight(vecType&lt; T, P &gt; const &amp;In, int Shift)</div><div class="ttdoc">Rotate all bits to the right. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00166_html_ga410d130917d85b865718e3ebc32cf0ef"><div class="ttname"><a href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">glm::bitfieldRotateLeft</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldRotateLeft(vecType&lt; T, P &gt; const &amp;In, int Shift)</div><div class="ttdoc">Rotate all bits to the left. </div></div>
-<div class="ttc" id="a00166_html_ga073dbd8642f550b51da3572541431c1c"><div class="ttname"><a href="a00166.html#ga073dbd8642f550b51da3572541431c1c">glm::mask</a></div><div class="ttdeci">GLM_FUNC_DECL vecIUType&lt; T, P &gt; mask(vecIUType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a mask of &#39;count&#39; bits. </div></div>
-<div class="ttc" id="a00166_html_gafca8768671a14c8016facccb66a89f26"><div class="ttname"><a href="a00166.html#gafca8768671a14c8016facccb66a89f26">glm::bitfieldInterleave</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)</div><div class="ttdoc">Interleaves the bits of x, y, z and w. </div></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00159.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00159.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL int16 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y, int32 z);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y, uint32 z);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z, int8 w);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z, uint8 w);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL int64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z, int16 w);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z, uint16 w);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#include &quot;bitfield.inl&quot;</span></div>
+<div class="ttc" id="a00159_html_ga96b56fd2adad1eeaee9e10dfe83904ba"><div class="ttname"><a href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">glm::bitfieldRotateRight</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldRotateRight(vecType&lt; T, P &gt; const &amp;In, int Shift)</div><div class="ttdoc">Rotate all bits to the right. </div></div>
+<div class="ttc" id="a00159_html_gafca8768671a14c8016facccb66a89f26"><div class="ttname"><a href="a00159.html#gafca8768671a14c8016facccb66a89f26">glm::bitfieldInterleave</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)</div><div class="ttdoc">Interleaves the bits of x, y, z and w. </div></div>
+<div class="ttc" id="a00159_html_ga073dbd8642f550b51da3572541431c1c"><div class="ttname"><a href="a00159.html#ga073dbd8642f550b51da3572541431c1c">glm::mask</a></div><div class="ttdeci">GLM_FUNC_DECL vecIUType&lt; T, P &gt; mask(vecIUType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a mask of &#39;count&#39; bits. </div></div>
+<div class="ttc" id="a00159_html_gad789042e84e8292ae95dc1af856f2ad5"><div class="ttname"><a href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">glm::bitfieldFillOne</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldFillOne(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 1 a range of bits. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00159_html_gaddba3196316b0bd240295b09b43c2958"><div class="ttname"><a href="a00159.html#gaddba3196316b0bd240295b09b43c2958">glm::bitfieldFillZero</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldFillZero(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 0 a range of bits. </div></div>
+<div class="ttc" id="a00159_html_ga410d130917d85b865718e3ebc32cf0ef"><div class="ttname"><a href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">glm::bitfieldRotateLeft</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldRotateLeft(vecType&lt; T, P &gt; const &amp;In, int Shift)</div><div class="ttdoc">Rotate all bits to the left. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00010.html b/3rdparty/glm/doc/api/a00010.html
index 7309f9d2462..9aef8fc7d99 100644
--- a/3rdparty/glm/doc/api/a00010.html
+++ b/3rdparty/glm/doc/api/a00010.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: closest_point.hpp File Reference</title>
+<title>0.9.9 API documenation: closest_point.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,28 +91,26 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00183.html">GLM_GTX_closest_point</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00010_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3&lt; T, P &gt; const &amp;point, tvec3&lt; T, P &gt; const &amp;a, tvec3&lt; T, P &gt; const &amp;b)</td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3&lt; T, P &gt; const &amp;point, tvec3&lt; T, P &gt; const &amp;a, tvec3&lt; T, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:gac26353282a8213e469f5e33560c1200f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the point on a straight line which is the closet of a point. <a href="a00183.html#gac26353282a8213e469f5e33560c1200f">More...</a><br /></td></tr>
<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)</td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:gadc7010070bb0cacd284f560299b21660"><td class="mdescLeft">&#160;</td><td class="mdescRight">2d lines work as well <br /></td></tr>
<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00187.html">GLM_GTX_closest_point</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-30 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00183.html">GLM_GTX_closest_point</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00010_source.html">closest_point.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00010_source.html b/3rdparty/glm/doc/api/a00010_source.html
index cb946f09022..c3bffd3d4ee 100644
--- a/3rdparty/glm/doc/api/a00010_source.html
+++ b/3rdparty/glm/doc/api/a00010_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: closest_point.hpp Source File</title>
+<title>0.9.9 API documenation: closest_point.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,35 +89,39 @@
</div><!--header-->
<div class="contents">
<a href="a00010.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; point,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; a, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; b);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; <a class="code" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; point,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; a, </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; b); </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;closest_point.inl&quot;</span></div>
-<div class="ttc" id="a00187_html_gadc7010070bb0cacd284f560299b21660"><div class="ttname"><a href="a00187.html#gadc7010070bb0cacd284f560299b21660">glm::closestPointOnLine</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, P &gt; closestPointOnLine(tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)</div><div class="ttdoc">2d lines work as well </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_closest_point is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; point,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; a, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; b);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; <a class="code" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; point,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; a, </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; b); </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;closest_point.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00183_html_gadc7010070bb0cacd284f560299b21660"><div class="ttname"><a href="a00183.html#gadc7010070bb0cacd284f560299b21660">glm::closestPointOnLine</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, P &gt; closestPointOnLine(tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)</div><div class="ttdoc">2d lines work as well </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00011.html b/3rdparty/glm/doc/api/a00011.html
index b82a5164829..28e5afa765e 100644
--- a/3rdparty/glm/doc/api/a00011.html
+++ b/3rdparty/glm/doc/api/a00011.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp File Reference</title>
+<title>0.9.9 API documenation: color_encoding.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,54 +64,68 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtc/color_space.hpp File Reference</div> </div>
+<div class="title">color_encoding.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00160.html">GLM_GTC_color_encoding</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00011_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad813dcd99644cafc775e83d6504ccb93"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear)</td></tr>
-<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63f8b003da7acf44370eb47bfb8b3d42"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)</td></tr>
-<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga28e98e64347cf385cadc1ceb4def55c9"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB)</td></tr>
-<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)</td></tr>
-<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf2829bca5bbbd99da0cb1d20170f0096"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaf2829bca5bbbd99da0cb1d20170f0096">convertD50XYZToD65XYZ</a> (tvec3&lt; T, P &gt; const &amp;ColorD50XYZ)</td></tr>
+<tr class="memdesc:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D50 YUV color to D65 YUV. <br /></td></tr>
+<tr class="separator:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee1990d4fdb1088c433e9ae4977795d2"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaee1990d4fdb1088c433e9ae4977795d2"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaee1990d4fdb1088c433e9ae4977795d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaee1990d4fdb1088c433e9ae4977795d2">convertD65XYZToD50XYZ</a> (tvec3&lt; T, P &gt; const &amp;ColorD65XYZ)</td></tr>
+<tr class="memdesc:gaee1990d4fdb1088c433e9ae4977795d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D65 YUV color to D50 YUV. <br /></td></tr>
+<tr class="separator:gaee1990d4fdb1088c433e9ae4977795d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga395041b0447f08dd581496720a0a1eac"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga395041b0447f08dd581496720a0a1eac"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga395041b0447f08dd581496720a0a1eac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga395041b0447f08dd581496720a0a1eac">convertD65XYZToLinearSRGB</a> (tvec3&lt; T, P &gt; const &amp;ColorD65XYZ)</td></tr>
+<tr class="memdesc:ga395041b0447f08dd581496720a0a1eac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D65 YUV color to linear sRGB. <br /></td></tr>
+<tr class="separator:ga395041b0447f08dd581496720a0a1eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa367a13bbf5d9775d6a96a4c2a398fb7"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaa367a13bbf5d9775d6a96a4c2a398fb7">convertLinearSRGBToD65XYZ</a> (tvec3&lt; T, P &gt; const &amp;ColorLinearSRGB)</td></tr>
+<tr class="memdesc:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear sRGB color to D65 YUV. <br /></td></tr>
+<tr class="separator:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00167.html">GLM_GTC_color_space</a></p>
-<dl class="section date"><dt>Date</dt><dd>2015-02-10 / 2015-08-02 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00160.html">GLM_GTC_color_encoding</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00167.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_color_space</a> (dependence) </dd></dl>
+<a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_color_encoding</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00011_source.html">gtc/color_space.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00011_source.html">color_encoding.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00011_source.html b/3rdparty/glm/doc/api/a00011_source.html
index aa75bd57674..37f46b7e58e 100644
--- a/3rdparty/glm/doc/api/a00011_source.html
+++ b/3rdparty/glm/doc/api/a00011_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp Source File</title>
+<title>0.9.9 API documenation: color_encoding.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,52 +64,66 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtc/color_space.hpp</div> </div>
+<div class="title">color_encoding.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00011.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../exponential.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_color_space extension included&quot;)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorLinear);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorLinear, T Gamma);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorSRGB);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorSRGB, T Gamma);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;color_space.inl&quot;</span></div>
-<div class="ttc" id="a00167_html_ga63f8b003da7acf44370eb47bfb8b3d42"><div class="ttname"><a href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">glm::convertLinearToSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; convertLinearToSRGB(vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)</div><div class="ttdoc">Convert a linear color to sRGB color using a custom gamma correction. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00167_html_ga61c4f0efdf55c29d9cfbd26141fddef8"><div class="ttname"><a href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">glm::convertSRGBToLinear</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; convertSRGBToLinear(vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)</div><div class="ttdoc">Convert a sRGB color to linear color using a custom gamma correction. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_color_encoding extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00160.html#gaa367a13bbf5d9775d6a96a4c2a398fb7">convertLinearSRGBToD65XYZ</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span>&amp; ColorLinearSRGB);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00160.html#ga395041b0447f08dd581496720a0a1eac">convertD65XYZToLinearSRGB</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span>&amp; ColorD65XYZ);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00160.html#gaf2829bca5bbbd99da0cb1d20170f0096">convertD50XYZToD65XYZ</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span>&amp; ColorD50XYZ);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00160.html#gaee1990d4fdb1088c433e9ae4977795d2">convertD65XYZToD50XYZ</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span>&amp; ColorD65XYZ);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;color_encoding.inl&quot;</span></div>
+<div class="ttc" id="a00160_html_gaa367a13bbf5d9775d6a96a4c2a398fb7"><div class="ttname"><a href="a00160.html#gaa367a13bbf5d9775d6a96a4c2a398fb7">glm::convertLinearSRGBToD65XYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; convertLinearSRGBToD65XYZ(tvec3&lt; T, P &gt; const &amp;ColorLinearSRGB)</div><div class="ttdoc">Convert a linear sRGB color to D65 YUV. </div></div>
+<div class="ttc" id="a00160_html_gaf2829bca5bbbd99da0cb1d20170f0096"><div class="ttname"><a href="a00160.html#gaf2829bca5bbbd99da0cb1d20170f0096">glm::convertD50XYZToD65XYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; convertD50XYZToD65XYZ(tvec3&lt; T, P &gt; const &amp;ColorD50XYZ)</div><div class="ttdoc">Convert a D50 YUV color to D65 YUV. </div></div>
+<div class="ttc" id="a00160_html_gaee1990d4fdb1088c433e9ae4977795d2"><div class="ttname"><a href="a00160.html#gaee1990d4fdb1088c433e9ae4977795d2">glm::convertD65XYZToD50XYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; convertD65XYZToD50XYZ(tvec3&lt; T, P &gt; const &amp;ColorD65XYZ)</div><div class="ttdoc">Convert a D65 YUV color to D50 YUV. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00160_html_ga395041b0447f08dd581496720a0a1eac"><div class="ttname"><a href="a00160.html#ga395041b0447f08dd581496720a0a1eac">glm::convertD65XYZToLinearSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; convertD65XYZToLinearSRGB(tvec3&lt; T, P &gt; const &amp;ColorD65XYZ)</div><div class="ttdoc">Convert a D65 YUV color to linear sRGB. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00012.html b/3rdparty/glm/doc/api/a00012.html
index 1c87592db4f..e6de0b7da1e 100644
--- a/3rdparty/glm/doc/api/a00012.html
+++ b/3rdparty/glm/doc/api/a00012.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp File Reference</title>
+<title>0.9.9 API documenation: color_space.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,54 +64,65 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtx/color_space.hpp File Reference</div> </div>
+<div class="title">gtc/color_space.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00161.html">GLM_GTC_color_space</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00012_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3&lt; T, P &gt; const &amp;rgbValue)</td></tr>
-<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3&lt; T, P &gt; const &amp;color)</td></tr>
-<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3&lt; T, P &gt; const &amp;hsvValue)</td></tr>
-<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
-<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3&lt; T, P &gt; const &amp;color)</td></tr>
-<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4&lt; T, P &gt; const &amp;color)</td></tr>
-<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear)</td></tr>
+<tr class="memdesc:gad813dcd99644cafc775e83d6504ccb93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear color to sRGB color using a standard gamma correction. <a href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">More...</a><br /></td></tr>
+<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)</td></tr>
+<tr class="memdesc:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear color to sRGB color using a custom gamma correction. <a href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">More...</a><br /></td></tr>
+<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB)</td></tr>
+<tr class="memdesc:ga28e98e64347cf385cadc1ceb4def55c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sRGB color to linear color using a standard gamma correction. <a href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">More...</a><br /></td></tr>
+<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
+template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)</td></tr>
+<tr class="memdesc:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sRGB color to linear color using a custom gamma correction. <br /></td></tr>
+<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00188.html">GLM_GTX_color_space</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00161.html">GLM_GTC_color_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00161.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_color_space</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00012_source.html">gtx/color_space.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00012_source.html">gtc/color_space.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00012_source.html b/3rdparty/glm/doc/api/a00012_source.html
index e1c3fb97564..ac2bb6af550 100644
--- a/3rdparty/glm/doc/api/a00012_source.html
+++ b/3rdparty/glm/doc/api/a00012_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp Source File</title>
+<title>0.9.9 API documenation: color_space.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,63 +64,67 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtx/color_space.hpp</div> </div>
+<div class="title">gtc/color_space.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00012.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../exponential.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_color_space extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorLinear);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorLinear, T Gamma);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorSRGB);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; ColorSRGB, T Gamma);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;} <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; hsvValue);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; rgbValue);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; T <span class="keyword">const</span> s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T <span class="keyword">const</span> s,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; color);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; T <span class="keyword">const</span> s,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; color);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a>(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; color);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;color_space.inl&quot;</span></div>
-<div class="ttc" id="a00188_html_ga2033e0566c595230714af396744e8a61"><div class="ttname"><a href="a00188.html#ga2033e0566c595230714af396744e8a61">glm::saturation</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; saturation(T const s, tvec4&lt; T, P &gt; const &amp;color)</div><div class="ttdoc">Modify the saturation of a color. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00188_html_gaa2f38a5100c3e1c7d39920df43bd8cbe"><div class="ttname"><a href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">glm::luminosity</a></div><div class="ttdeci">GLM_FUNC_DECL T luminosity(tvec3&lt; T, P &gt; const &amp;color)</div><div class="ttdoc">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </div></div>
-<div class="ttc" id="a00188_html_gae72039c00a7be2f03a3b94b37a54349a"><div class="ttname"><a href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">glm::hsvColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; hsvColor(tvec3&lt; T, P &gt; const &amp;rgbValue)</div><div class="ttdoc">Converts a color from RGB color space to its color in HSV color space. </div></div>
-<div class="ttc" id="a00188_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgbColor(tvec3&lt; T, P &gt; const &amp;hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;color_space.inl&quot;</span></div>
+<div class="ttc" id="a00161_html_ga61c4f0efdf55c29d9cfbd26141fddef8"><div class="ttname"><a href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">glm::convertSRGBToLinear</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; convertSRGBToLinear(vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)</div><div class="ttdoc">Convert a sRGB color to linear color using a custom gamma correction. </div></div>
+<div class="ttc" id="a00161_html_ga63f8b003da7acf44370eb47bfb8b3d42"><div class="ttname"><a href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">glm::convertLinearToSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; convertLinearToSRGB(vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)</div><div class="ttdoc">Convert a linear color to sRGB color using a custom gamma correction. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00013.html b/3rdparty/glm/doc/api/a00013.html
index 95953987bf8..fa4cfb2f17f 100644
--- a/3rdparty/glm/doc/api/a00013.html
+++ b/3rdparty/glm/doc/api/a00013.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space_YCoCg.hpp File Reference</title>
+<title>0.9.9 API documenation: color_space.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,48 +64,70 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">color_space_YCoCg.hpp File Reference</div> </div>
+<div class="title">gtx/color_space.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00184.html">GLM_GTX_color_space</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00013_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
-<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
-<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
-<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
-<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3&lt; T, P &gt; const &amp;rgbValue)</td></tr>
+<tr class="memdesc:gae72039c00a7be2f03a3b94b37a54349a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a color from RGB color space to its color in HSV color space. <a href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">More...</a><br /></td></tr>
+<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3&lt; T, P &gt; const &amp;color)</td></tr>
+<tr class="memdesc:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. <a href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">More...</a><br /></td></tr>
+<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3&lt; T, P &gt; const &amp;hsvValue)</td></tr>
+<tr class="memdesc:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a color from HSV color space to its color in RGB color space. <a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">More...</a><br /></td></tr>
+<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
+<tr class="memdesc:gafecfb15d58da8445103745af3348e516"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a saturation matrix. <a href="a00184.html#gafecfb15d58da8445103745af3348e516">More...</a><br /></td></tr>
+<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3&lt; T, P &gt; const &amp;color)</td></tr>
+<tr class="memdesc:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the saturation of a color. <a href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">More...</a><br /></td></tr>
+<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4&lt; T, P &gt; const &amp;color)</td></tr>
+<tr class="memdesc:ga2033e0566c595230714af396744e8a61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the saturation of a color. <a href="a00184.html#ga2033e0566c595230714af396744e8a61">More...</a><br /></td></tr>
+<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00189.html">GLM_GTX_color_space_YCoCg</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-28 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00184.html">GLM_GTX_color_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00013_source.html">color_space_YCoCg.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00013_source.html">gtx/color_space.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00013_source.html b/3rdparty/glm/doc/api/a00013_source.html
index cc1aae28efa..79b6695463c 100644
--- a/3rdparty/glm/doc/api/a00013_source.html
+++ b/3rdparty/glm/doc/api/a00013_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space_YCoCg.hpp Source File</title>
+<title>0.9.9 API documenation: color_space.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,54 +64,81 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">color_space_YCoCg.hpp</div> </div>
+<div class="title">gtx/color_space.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00013.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_color_space is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; hsvValue);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; rgbValue);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; T <span class="keyword">const</span> s);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; T <span class="keyword">const</span> s,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; color);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; YCoCgColor);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a>(</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; YCoCgColor);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span></div>
-<div class="ttc" id="a00189_html_ga2e534594cc8ad252d23b14fb363ae9e2"><div class="ttname"><a href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">glm::rgb2YCoCgR</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgb2YCoCgR(tvec3&lt; T, P &gt; const &amp;rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCgR color space. </div></div>
-<div class="ttc" id="a00189_html_ga19481f6947c5b5482debd41e71b8c941"><div class="ttname"><a href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">glm::rgb2YCoCg</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgb2YCoCg(tvec3&lt; T, P &gt; const &amp;rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCg color space. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00189_html_ga4bac5462c00df0ae89242ecdbbe5dbad"><div class="ttname"><a href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">glm::YCoCgR2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; YCoCgR2rgb(tvec3&lt; T, P &gt; const &amp;YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCgR color space to RGB color space. </div></div>
-<div class="ttc" id="a00188_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgbColor(tvec3&lt; T, P &gt; const &amp;hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
-<div class="ttc" id="a00189_html_ga6d7e988a79b299ca1fa59f537e13800b"><div class="ttname"><a href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">glm::YCoCg2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; YCoCg2rgb(tvec3&lt; T, P &gt; const &amp;YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCg color space to RGB color space. </div></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; T <span class="keyword">const</span> s,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; color);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a>(</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; color);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;color_space.inl&quot;</span></div>
+<div class="ttc" id="a00184_html_ga2033e0566c595230714af396744e8a61"><div class="ttname"><a href="a00184.html#ga2033e0566c595230714af396744e8a61">glm::saturation</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; saturation(T const s, tvec4&lt; T, P &gt; const &amp;color)</div><div class="ttdoc">Modify the saturation of a color. </div></div>
+<div class="ttc" id="a00184_html_gae72039c00a7be2f03a3b94b37a54349a"><div class="ttname"><a href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">glm::hsvColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; hsvColor(tvec3&lt; T, P &gt; const &amp;rgbValue)</div><div class="ttdoc">Converts a color from RGB color space to its color in HSV color space. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00184_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgbColor(tvec3&lt; T, P &gt; const &amp;hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="ttc" id="a00184_html_gaa2f38a5100c3e1c7d39920df43bd8cbe"><div class="ttname"><a href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">glm::luminosity</a></div><div class="ttdeci">GLM_FUNC_DECL T luminosity(tvec3&lt; T, P &gt; const &amp;color)</div><div class="ttdoc">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00014.html b/3rdparty/glm/doc/api/a00014.html
index 334c9edaba8..cf867e9e6c0 100644
--- a/3rdparty/glm/doc/api/a00014.html
+++ b/3rdparty/glm/doc/api/a00014.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp File Reference</title>
+<title>0.9.9 API documenation: color_space_YCoCg.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,62 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">common.hpp File Reference</div> </div>
+<div class="title">color_space_YCoCg.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00014_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
+<tr class="memdesc:ga19481f6947c5b5482debd41e71b8c941"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from RGB color space to YCoCg color space. <a href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">More...</a><br /></td></tr>
+<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
+<tr class="memdesc:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from RGB color space to YCoCgR color space. <a href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">More...</a><br /></td></tr>
+<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
+<tr class="memdesc:ga6d7e988a79b299ca1fa59f537e13800b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from YCoCg color space to RGB color space. <a href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">More...</a><br /></td></tr>
+<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
+<tr class="memdesc:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from YCoCgR color space to RGB color space. <a href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">More...</a><br /></td></tr>
+<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00014_source.html">common.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00014_source.html">color_space_YCoCg.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00014_source.html b/3rdparty/glm/doc/api/a00014_source.html
index c0c53514b22..823d4728495 100644
--- a/3rdparty/glm/doc/api/a00014_source.html
+++ b/3rdparty/glm/doc/api/a00014_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp Source File</title>
+<title>0.9.9 API documenation: color_space_YCoCg.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,72 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">common.hpp</div> </div>
+<div class="title">color_space_YCoCg.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00014.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00029.html">detail/func_common.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_color_space_YCoCg is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; YCoCgColor);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; YCoCgColor);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span></div>
+<div class="ttc" id="a00185_html_ga6d7e988a79b299ca1fa59f537e13800b"><div class="ttname"><a href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">glm::YCoCg2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; YCoCg2rgb(tvec3&lt; T, P &gt; const &amp;YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCg color space to RGB color space. </div></div>
+<div class="ttc" id="a00185_html_ga2e534594cc8ad252d23b14fb363ae9e2"><div class="ttname"><a href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">glm::rgb2YCoCgR</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgb2YCoCgR(tvec3&lt; T, P &gt; const &amp;rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCgR color space. </div></div>
+<div class="ttc" id="a00185_html_ga19481f6947c5b5482debd41e71b8c941"><div class="ttname"><a href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">glm::rgb2YCoCg</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgb2YCoCg(tvec3&lt; T, P &gt; const &amp;rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCg color space. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00184_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; rgbColor(tvec3&lt; T, P &gt; const &amp;hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="ttc" id="a00185_html_ga4bac5462c00df0ae89242ecdbbe5dbad"><div class="ttname"><a href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">glm::YCoCgR2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; YCoCgR2rgb(tvec3&lt; T, P &gt; const &amp;YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCgR color space to RGB color space. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00015.html b/3rdparty/glm/doc/api/a00015.html
index 5011e02888a..8a565260187 100644
--- a/3rdparty/glm/doc/api/a00015.html
+++ b/3rdparty/glm/doc/api/a00015.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp File Reference</title>
+<title>0.9.9 API documenation: common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtx/common.hpp File Reference</div> </div>
+<div class="title">common.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00015_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00190.html">GLM_GTX_common</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-09-08 / 2014-09-08 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00015_source.html">gtx/common.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00015_source.html">common.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00015_source.html b/3rdparty/glm/doc/api/a00015_source.html
index f5a2359a2b6..9bb8b012d45 100644
--- a/3rdparty/glm/doc/api/a00015_source.html
+++ b/3rdparty/glm/doc/api/a00015_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp Source File</title>
+<title>0.9.9 API documenation: common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtx/common.hpp</div> </div>
+<div class="title">common.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00015.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_common extension included&quot;)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &quot;common.inl&quot;</span></div>
-<div class="ttc" id="a00190_html_ga74aa7c7462245d83bd5a9edf9c6c2d91"><div class="ttname"><a href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">glm::isdenormal</a></div><div class="ttdeci">GLM_FUNC_DECL genType::bool_type isdenormal(genType const &amp;x)</div><div class="ttdoc">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...</div></div>
-<div class="ttc" id="a00190_html_ga2580f50d4064557d62f4a533dfc6c7e3"><div class="ttname"><a href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">glm::fmod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fmod(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Similar to &#39;mod&#39; but with a different rounding and integer support. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00030.html">detail/func_common.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">func_common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00016.html b/3rdparty/glm/doc/api/a00016.html
index 52ff2af0385..eacf812aca1 100644
--- a/3rdparty/glm/doc/api/a00016.html
+++ b/3rdparty/glm/doc/api/a00016.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: compatibility.hpp File Reference</title>
+<title>0.9.9 API documenation: common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,290 +64,54 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">compatibility.hpp File Reference</div> </div>
+<div class="title">gtx/common.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00186.html">GLM_GTX_common</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00016_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
-typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
-<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
-typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
-<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
-typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
-<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
-typedef tmat2x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
-<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
-typedef tmat2x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
-<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
-typedef tmat2x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
-<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
-typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
-<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
-typedef tmat3x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
-<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
-typedef tmat3x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
-<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
-typedef tmat3x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
-<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
-typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
-<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
-typedef tmat4x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
-<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
-typedef tmat4x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
-<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
-typedef tmat4x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
-<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
-typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
-<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
-typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
-<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
-typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
-<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
-typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
-<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
-typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
-<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
-typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
-<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
-typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
-<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
-typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
-<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
-typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
-<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
-typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
-<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
-typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
-<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
-typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
-<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
-typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
-<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
-typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
-<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
-typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
-<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
-typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
-<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
-typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
-<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
-typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
-<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
-typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
-<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
-typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
-<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
-typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
-<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
-typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
-<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
-typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
-<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
-typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
-<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
-typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
-<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
-typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
-<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
-typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
-<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
-typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
-<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
-typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
-<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
-typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
-<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
-typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
-<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
-typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
-<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
-typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
-<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
-typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
-<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
-typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
-<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
-typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
-<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
-typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
-<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
-typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
-<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
-typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
-<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
-typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
-<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
-typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
-<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
-typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
-<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
-<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y)</td></tr>
-<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y)</td></tr>
-<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)</td></tr>
-<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
-template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
-template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
-<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, T a)</td></tr>
-<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, T a)</td></tr>
-<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, T a)</td></tr>
-<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, const tvec2&lt; T, P &gt; &amp;a)</td></tr>
-<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, const tvec3&lt; T, P &gt; &amp;a)</td></tr>
-<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)</td></tr>
-<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
-<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similar to 'mod' but with a different rounding and integer support. <a href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">More...</a><br /></td></tr>
+<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. <a href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">More...</a><br /></td></tr>
+<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00191.html">GLM_GTX_compatibility</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-01-24 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00186.html">GLM_GTX_common</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00016_source.html">compatibility.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00016_source.html">gtx/common.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00016_source.html b/3rdparty/glm/doc/api/a00016_source.html
index a4054ed7c6e..94c90a68f8b 100644
--- a/3rdparty/glm/doc/api/a00016_source.html
+++ b/3rdparty/glm/doc/api/a00016_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: compatibility.hpp Source File</title>
+<title>0.9.9 API documenation: common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,195 +64,62 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">compatibility.hpp</div> </div>
+<div class="title">gtx/common.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00016.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_common is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_common extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a>(genType <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_compatibility extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># include &lt;cfloat&gt;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># include &lt;cmath&gt;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># if(GLM_PLATFORM &amp; GLM_PLATFORM_ANDROID)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># undef isfinite</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00191.html#ga5494ba3a95ea6594c86fc75236886864"> 67</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00191.html#ga0aa79a146332650a1eb18ae996c653fe"> 68</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="a00191.html#gaf4c885ac72b8879b05777cb516c555c9"> 70</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00191.html#ga363d5d069d31a6c2cdd1e9589dde4a60"> 71</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00191.html#ga7609b44d8aefc5a277efe73395ff4070"> 72</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; y, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00191.html#ga90a1d1364a8d078846857178bdcc9af1"> 73</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; y, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379"> 74</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; y, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00191.html#ga0fd09e616d122bc2ed9726682ffd44b7"> 76</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00191.html#ga5815a26488231dfdf92242cf0c2d2107"> 77</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a00191.html#ga02ed1a53c6df104d56b69f8fb5e9af1b"> 78</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00191.html#ga63791409bdef9745b956406afe3157f1"> 79</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00191.html#gac63011205bf6d0be82589dc56dd26708"> 81</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00191.html#ga525f3e849d0fc64807f8ab571b4545f9"> 82</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00191.html#gad328042b6734d3f2c49c0ec1328b14c0"> 83</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5"> 84</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(genType <span class="keyword">const</span> &amp; x); </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec1&lt;bool, P&gt; <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec1&lt;T, P&gt;&amp; x); </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec2&lt;bool, P&gt; <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x); </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec3&lt;bool, P&gt; <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x); </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x); </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e"> 92</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a>; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d"> 93</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, highp&gt; <a class="code" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a>; </div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659"> 94</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, highp&gt; <a class="code" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a>; </div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e"> 95</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, highp&gt; <a class="code" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a>; </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090"> 97</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a>; </div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d"> 98</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;bool, highp&gt; <a class="code" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a>; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe"> 99</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;bool, highp&gt; <a class="code" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a>; </div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7"> 100</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;bool, highp&gt; <a class="code" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a>; </div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7"> 101</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;bool, highp&gt; <a class="code" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a>; </div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605"> 102</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;bool, highp&gt; <a class="code" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a>; </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17"> 103</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;bool, highp&gt; <a class="code" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a>; </div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db"> 104</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;bool, highp&gt; <a class="code" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a>; </div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb"> 105</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;bool, highp&gt; <a class="code" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a>; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e"> 106</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;bool, highp&gt; <a class="code" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a>; </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3"> 108</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a>; </div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700"> 109</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, highp&gt; <a class="code" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a>; </div>
-<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88"> 110</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, highp&gt; <a class="code" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a>; </div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00191.html#gab19c2df22e9b14081390fabd074081f1"> 111</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, highp&gt; <a class="code" href="a00191.html#gab19c2df22e9b14081390fabd074081f1">int4</a>; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a"> 113</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a>; </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc"> 114</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, highp&gt; <a class="code" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a>; </div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434"> 115</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, highp&gt; <a class="code" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a>; </div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e"> 116</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, highp&gt; <a class="code" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a>; </div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db"> 117</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, highp&gt; <a class="code" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a>; </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f"> 118</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, highp&gt; <a class="code" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a>; </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00191.html#ga7b00c53838143bce963177122ab92c39"> 119</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, highp&gt; <a class="code" href="a00191.html#ga7b00c53838143bce963177122ab92c39">int3x4</a>; </div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00191.html#gaa53815539021200c4e10fd282832dcd3"> 120</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, highp&gt; <a class="code" href="a00191.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a>; </div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe"> 121</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, highp&gt; <a class="code" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a>; </div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d"> 122</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, highp&gt; <a class="code" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a>; </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead"> 124</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a>; </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42"> 125</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; <a class="code" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">float2</a>; </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00191.html#ga2bfa618285894e34f299e4984f092d56"> 126</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; <a class="code" href="a00191.html#ga2bfa618285894e34f299e4984f092d56">float3</a>; </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b"> 127</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; <a class="code" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a>; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c"> 129</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a>; </div>
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e"> 130</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a>; </div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b"> 131</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, highp&gt; <a class="code" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a>; </div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde"> 132</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, highp&gt; <a class="code" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a>; </div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff"> 133</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, highp&gt; <a class="code" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a>; </div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363"> 134</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a>; </div>
-<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e"> 135</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, highp&gt; <a class="code" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a>; </div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8"> 136</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, highp&gt; <a class="code" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a>; </div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="a00191.html#gad749b26be059f35394fd71c7f7a44034"> 137</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, highp&gt; <a class="code" href="a00191.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a>; </div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136"> 138</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a>; </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b"> 140</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">double1</a>; </div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e"> 141</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, highp&gt; <a class="code" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a>; </div>
-<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391"> 142</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, highp&gt; <a class="code" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a>; </div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56"> 143</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, highp&gt; <a class="code" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a>; </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8"> 145</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a>; </div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7"> 146</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, highp&gt; <a class="code" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a>; </div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7"> 147</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, highp&gt; <a class="code" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a>; </div>
-<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e"> 148</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, highp&gt; <a class="code" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a>; </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6"> 149</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, highp&gt; <a class="code" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a>; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a"> 150</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, highp&gt; <a class="code" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a>; </div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413"> 151</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, highp&gt; <a class="code" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a>; </div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd"> 152</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, highp&gt; <a class="code" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a>; </div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37"> 153</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, highp&gt; <a class="code" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a>; </div>
-<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6"> 154</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, highp&gt; <a class="code" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a>; </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#include &quot;compatibility.inl&quot;</span></div>
-<div class="ttc" id="a00191_html_gab1c5d0631a6ae34e28bfb2851da387cc"><div class="ttname"><a href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">glm::int2x2</a></div><div class="ttdeci">tmat2x2&lt; int, highp &gt; int2x2</div><div class="ttdoc">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00114">compatibility.hpp:114</a></div></div>
-<div class="ttc" id="a00191_html_gaa53815539021200c4e10fd282832dcd3"><div class="ttname"><a href="a00191.html#gaa53815539021200c4e10fd282832dcd3">glm::int4x2</a></div><div class="ttdeci">tmat4x2&lt; int, highp &gt; int4x2</div><div class="ttdoc">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00120">compatibility.hpp:120</a></div></div>
-<div class="ttc" id="a00151_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="a00191_html_gad13f8250579ebf79760dcf64215ddb17"><div class="ttname"><a href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">glm::bool3x4</a></div><div class="ttdeci">tmat3x4&lt; bool, highp &gt; bool3x4</div><div class="ttdoc">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00103">compatibility.hpp:103</a></div></div>
-<div class="ttc" id="a00191_html_gac38c8929ccc87a2dc81eaab97ad5190e"><div class="ttname"><a href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">glm::float3x4</a></div><div class="ttdeci">tmat3x4&lt; float, highp &gt; float3x4</div><div class="ttdoc">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00135">compatibility.hpp:135</a></div></div>
-<div class="ttc" id="a00191_html_ga3bacf576b4b29f2f2959abff7a36652d"><div class="ttname"><a href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">glm::int4x4</a></div><div class="ttdeci">tmat4x4&lt; int, highp &gt; int4x4</div><div class="ttdoc">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00122">compatibility.hpp:122</a></div></div>
-<div class="ttc" id="a00191_html_gaa4e6d53c03780dfa76bd399324f9fe37"><div class="ttname"><a href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">glm::double4x3</a></div><div class="ttdeci">tmat4x3&lt; double, highp &gt; double4x3</div><div class="ttdoc">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00153">compatibility.hpp:153</a></div></div>
-<div class="ttc" id="a00191_html_gab8d74ea4c4f4bd980b650ffb27cdb659"><div class="ttname"><a href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">glm::bool3</a></div><div class="ttdeci">tvec3&lt; bool, highp &gt; bool3</div><div class="ttdoc">boolean type with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00094">compatibility.hpp:94</a></div></div>
-<div class="ttc" id="a00191_html_gab2ce4c366abc06c8bf7fe097ecea0dde"><div class="ttname"><a href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">glm::float2x4</a></div><div class="ttdeci">tmat2x4&lt; float, highp &gt; float2x4</div><div class="ttdoc">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00132">compatibility.hpp:132</a></div></div>
-<div class="ttc" id="a00191_html_gaf923922adf744404d5bfb3fafb7d0d8e"><div class="ttname"><a href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">glm::double2x4</a></div><div class="ttdeci">tmat2x4&lt; double, highp &gt; double2x4</div><div class="ttdoc">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00148">compatibility.hpp:148</a></div></div>
-<div class="ttc" id="a00191_html_gad02e7dff74039bb1454643e293d85dfe"><div class="ttname"><a href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">glm::bool2x3</a></div><div class="ttdeci">tmat2x3&lt; bool, highp &gt; bool2x3</div><div class="ttdoc">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00099">compatibility.hpp:99</a></div></div>
-<div class="ttc" id="a00191_html_ga20b861a9b6e2a300323671c57a02525b"><div class="ttname"><a href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">glm::double1</a></div><div class="ttdeci">double double1</div><div class="ttdoc">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00140">compatibility.hpp:140</a></div></div>
-<div class="ttc" id="a00191_html_ga83e4c62ab1addfe708dc3409cc0e5dfb"><div class="ttname"><a href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">glm::bool4x3</a></div><div class="ttdeci">tmat4x3&lt; bool, highp &gt; bool4x3</div><div class="ttdoc">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00105">compatibility.hpp:105</a></div></div>
-<div class="ttc" id="a00191_html_ga098c33a30f901f4f6a76969d6db6b01b"><div class="ttname"><a href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">glm::float2x3</a></div><div class="ttdeci">tmat2x3&lt; float, highp &gt; float2x3</div><div class="ttdoc">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00131">compatibility.hpp:131</a></div></div>
-<div class="ttc" id="a00191_html_ga7b00c53838143bce963177122ab92c39"><div class="ttname"><a href="a00191.html#ga7b00c53838143bce963177122ab92c39">glm::int3x4</a></div><div class="ttdeci">tmat3x4&lt; int, highp &gt; int3x4</div><div class="ttdoc">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00119">compatibility.hpp:119</a></div></div>
-<div class="ttc" id="a00191_html_ga6dc93f0794eb5fadd7f68b85141a2434"><div class="ttname"><a href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">glm::int2x3</a></div><div class="ttdeci">tmat2x3&lt; int, highp &gt; int2x3</div><div class="ttdoc">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00115">compatibility.hpp:115</a></div></div>
-<div class="ttc" id="a00191_html_ga686a3a5590f0a0e721faba08bda301d6"><div class="ttname"><a href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">glm::double4x4</a></div><div class="ttdeci">tmat4x4&lt; double, highp &gt; double4x4</div><div class="ttdoc">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00154">compatibility.hpp:154</a></div></div>
-<div class="ttc" id="a00191_html_ga184ee05ac2bbbf0a91dd364ba8e528db"><div class="ttname"><a href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">glm::bool4x2</a></div><div class="ttdeci">tmat4x2&lt; bool, highp &gt; bool4x2</div><div class="ttdoc">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00104">compatibility.hpp:104</a></div></div>
-<div class="ttc" id="a00191_html_ga09d39c391a509a045b6c7061f15bdff5"><div class="ttname"><a href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">glm::atan2</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt; atan2(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)</div><div class="ttdoc">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00084">compatibility.hpp:84</a></div></div>
-<div class="ttc" id="a00191_html_ga6e79dbfab5917c467a154638ba27898e"><div class="ttname"><a href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">glm::bool4</a></div><div class="ttdeci">tvec4&lt; bool, highp &gt; bool4</div><div class="ttdoc">boolean type with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00095">compatibility.hpp:95</a></div></div>
-<div class="ttc" id="a00191_html_gaeaac4d0e18164e4d2fe54432c0fbbcf6"><div class="ttname"><a href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">glm::double3x2</a></div><div class="ttdeci">tmat3x2&lt; double, highp &gt; double3x2</div><div class="ttdoc">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00149">compatibility.hpp:149</a></div></div>
-<div class="ttc" id="a00191_html_gaed4bc64196bd25d46f6a1f417320a391"><div class="ttname"><a href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">glm::double3</a></div><div class="ttdeci">tvec3&lt; double, highp &gt; double3</div><div class="ttdoc">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00142">compatibility.hpp:142</a></div></div>
-<div class="ttc" id="a00191_html_gae4b0244b0d882657bed0a99dfa33f379"><div class="ttname"><a href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt; lerp(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)</div><div class="ttdoc">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00074">compatibility.hpp:74</a></div></div>
-<div class="ttc" id="a00191_html_ga73720b8dc4620835b17f74d428f98c0c"><div class="ttname"><a href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">glm::float1x1</a></div><div class="ttdeci">float float1x1</div><div class="ttdoc">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00129">compatibility.hpp:129</a></div></div>
-<div class="ttc" id="a00191_html_gaad93cbc2b863e363d53d405d0451d03e"><div class="ttname"><a href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">glm::float2x2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; float2x2</div><div class="ttdoc">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00130">compatibility.hpp:130</a></div></div>
-<div class="ttc" id="a00191_html_ga4a3bf0ecd6f6ff60836c5bee26c14abe"><div class="ttname"><a href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">glm::int4x3</a></div><div class="ttdeci">tmat4x3&lt; int, highp &gt; int4x3</div><div class="ttdoc">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00121">compatibility.hpp:121</a></div></div>
-<div class="ttc" id="a00191_html_ga2692a729a69615d72dbebbdd0eba2363"><div class="ttname"><a href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">glm::float3x3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; float3x3</div><div class="ttdoc">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00134">compatibility.hpp:134</a></div></div>
-<div class="ttc" id="a00191_html_ga056ffe02d3a45af626f8e62221881c7a"><div class="ttname"><a href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">glm::int1x1</a></div><div class="ttdeci">int int1x1</div><div class="ttdoc">integer matrix with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00113">compatibility.hpp:113</a></div></div>
-<div class="ttc" id="a00191_html_ga39a2af7aa8f2d29ca40afd2256c0e7c8"><div class="ttname"><a href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">glm::float4x2</a></div><div class="ttdeci">tmat4x2&lt; float, highp &gt; float4x2</div><div class="ttdoc">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00136">compatibility.hpp:136</a></div></div>
-<div class="ttc" id="a00191_html_gab8bbb086c9a6c2deffbe0e80afd6be56"><div class="ttname"><a href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">glm::double4</a></div><div class="ttdeci">tvec4&lt; double, highp &gt; double4</div><div class="ttdoc">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00143">compatibility.hpp:143</a></div></div>
-<div class="ttc" id="a00191_html_ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><div class="ttname"><a href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">glm::isfinite</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; isfinite(const tvec4&lt; T, P &gt; &amp;x)</div><div class="ttdoc">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...</div></div>
-<div class="ttc" id="a00191_html_gad5da9e1b4e0c64c5436b5696ab49540e"><div class="ttname"><a href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">glm::int2x4</a></div><div class="ttdeci">tmat2x4&lt; int, highp &gt; int2x4</div><div class="ttdoc">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00116">compatibility.hpp:116</a></div></div>
-<div class="ttc" id="a00191_html_gad749b26be059f35394fd71c7f7a44034"><div class="ttname"><a href="a00191.html#gad749b26be059f35394fd71c7f7a44034">glm::float4x3</a></div><div class="ttdeci">tmat4x3&lt; float, highp &gt; float4x3</div><div class="ttdoc">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00137">compatibility.hpp:137</a></div></div>
-<div class="ttc" id="a00191_html_gaaa6ceedf08a85e5fd73a482bc8b77b88"><div class="ttname"><a href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">glm::int3</a></div><div class="ttdeci">tvec3&lt; int, highp &gt; int3</div><div class="ttdoc">integer vector with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00110">compatibility.hpp:110</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00191_html_gaad84a1ea83be8fce04c1570c5e719413"><div class="ttname"><a href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">glm::double3x4</a></div><div class="ttdeci">tmat3x4&lt; double, highp &gt; double3x4</div><div class="ttdoc">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00151">compatibility.hpp:151</a></div></div>
-<div class="ttc" id="a00191_html_gac934f579ee5cf3cbdbb25b73f2640c0a"><div class="ttname"><a href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">glm::double3x3</a></div><div class="ttdeci">tmat3x3&lt; double, highp &gt; double3x3</div><div class="ttdoc">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00150">compatibility.hpp:150</a></div></div>
-<div class="ttc" id="a00191_html_ga2f87500119da15e35e4a74780ba512bd"><div class="ttname"><a href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">glm::double4x2</a></div><div class="ttdeci">tmat4x2&lt; double, highp &gt; double4x2</div><div class="ttdoc">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00152">compatibility.hpp:152</a></div></div>
-<div class="ttc" id="a00191_html_ga2bfa618285894e34f299e4984f092d56"><div class="ttname"><a href="a00191.html#ga2bfa618285894e34f299e4984f092d56">glm::float3</a></div><div class="ttdeci">tvec3&lt; float, highp &gt; float3</div><div class="ttdoc">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00126">compatibility.hpp:126</a></div></div>
-<div class="ttc" id="a00191_html_ga7f895c936f0c29c8729afbbf22806090"><div class="ttname"><a href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">glm::bool1x1</a></div><div class="ttdeci">bool bool1x1</div><div class="ttdoc">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00097">compatibility.hpp:97</a></div></div>
-<div class="ttc" id="a00191_html_gab19c2df22e9b14081390fabd074081f1"><div class="ttname"><a href="a00191.html#gab19c2df22e9b14081390fabd074081f1">glm::int4</a></div><div class="ttdeci">tvec4&lt; int, highp &gt; int4</div><div class="ttdoc">integer vector with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00111">compatibility.hpp:111</a></div></div>
-<div class="ttc" id="a00191_html_gae621c9eabcba552eea5f6ade1f403605"><div class="ttname"><a href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">glm::bool3x3</a></div><div class="ttdeci">tmat3x3&lt; bool, highp &gt; bool3x3</div><div class="ttdoc">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00102">compatibility.hpp:102</a></div></div>
-<div class="ttc" id="a00191_html_gaa16a13c6f2768e83ca133430e82ab89e"><div class="ttname"><a href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">glm::double2</a></div><div class="ttdeci">tvec2&lt; double, highp &gt; double2</div><div class="ttdoc">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00141">compatibility.hpp:141</a></div></div>
-<div class="ttc" id="a00191_html_gaa98b1a06b802c975f02a5583f43632db"><div class="ttname"><a href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">glm::int3x2</a></div><div class="ttdeci">tmat3x2&lt; int, highp &gt; int3x2</div><div class="ttdoc">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00117">compatibility.hpp:117</a></div></div>
-<div class="ttc" id="a00191_html_ga5d49ed44dd9a9e944abc30371fc9045b"><div class="ttname"><a href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">glm::float4</a></div><div class="ttdeci">tvec4&lt; float, highp &gt; float4</div><div class="ttdoc">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00127">compatibility.hpp:127</a></div></div>
-<div class="ttc" id="a00191_html_ga0670a2111b5e4a6410bd027fa0232fc3"><div class="ttname"><a href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::int1</a></div><div class="ttdeci">int int1</div><div class="ttdoc">integer vector with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00108">compatibility.hpp:108</a></div></div>
-<div class="ttc" id="a00191_html_gaf40529862492ded2f3b96a6c886f6136"><div class="ttname"><a href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">glm::float4x4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; float4x4</div><div class="ttdoc">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00138">compatibility.hpp:138</a></div></div>
-<div class="ttc" id="a00191_html_gaf5208d01f6c6fbcb7bb55d610b9c0ead"><div class="ttname"><a href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::float1</a></div><div class="ttdeci">float float1</div><div class="ttdoc">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00124">compatibility.hpp:124</a></div></div>
-<div class="ttc" id="a00191_html_ga872a70333dd25af68b1ebba485be9e42"><div class="ttname"><a href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">glm::float2</a></div><div class="ttdeci">tvec2&lt; float, highp &gt; float2</div><div class="ttdoc">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00125">compatibility.hpp:125</a></div></div>
-<div class="ttc" id="a00191_html_ga379c0869949e8a69c3d06d7637caa5d7"><div class="ttname"><a href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">glm::bool2x4</a></div><div class="ttdeci">tmat2x4&lt; bool, highp &gt; bool2x4</div><div class="ttdoc">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00100">compatibility.hpp:100</a></div></div>
-<div class="ttc" id="a00191_html_ga320d0a71a4ad9f14a1992d40546cffa7"><div class="ttname"><a href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">glm::double2x2</a></div><div class="ttdeci">tmat2x2&lt; double, highp &gt; double2x2</div><div class="ttdoc">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00146">compatibility.hpp:146</a></div></div>
-<div class="ttc" id="a00158_html_ga461e769acb8b8cb695a5a89334546611"><div class="ttname"><a href="a00158.html#ga461e769acb8b8cb695a5a89334546611">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; atan(vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc tangent. </div></div>
-<div class="ttc" id="a00191_html_ga63791409bdef9745b956406afe3157f1"><div class="ttname"><a href="a00191.html#ga63791409bdef9745b956406afe3157f1">glm::saturate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt; saturate(const tvec4&lt; T, P &gt; &amp;x)</div><div class="ttdoc">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00079">compatibility.hpp:79</a></div></div>
-<div class="ttc" id="a00191_html_ga2bfb53bc320966c85149934fffb0329d"><div class="ttname"><a href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">glm::bool2x2</a></div><div class="ttdeci">tmat2x2&lt; bool, highp &gt; bool2x2</div><div class="ttdoc">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00098">compatibility.hpp:98</a></div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00191_html_gaddcd7aa2e30e61af5b38660613d3979e"><div class="ttname"><a href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::bool1</a></div><div class="ttdeci">bool bool1</div><div class="ttdoc">boolean type with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00092">compatibility.hpp:92</a></div></div>
-<div class="ttc" id="a00191_html_ga45f16a4dd0db1f199afaed9fd12fe9a8"><div class="ttname"><a href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::double1x1</a></div><div class="ttdeci">double double1x1</div><div class="ttdoc">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00145">compatibility.hpp:145</a></div></div>
-<div class="ttc" id="a00191_html_gafa8d0bc8dfa7eeb928208305714f648d"><div class="ttname"><a href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">glm::bool2</a></div><div class="ttdeci">tvec2&lt; bool, highp &gt; bool2</div><div class="ttdoc">boolean type with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00093">compatibility.hpp:93</a></div></div>
-<div class="ttc" id="a00191_html_ga2eca687990bf3a08ef28bc4a9f2fe700"><div class="ttname"><a href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">glm::int2</a></div><div class="ttdeci">tvec2&lt; int, highp &gt; int2</div><div class="ttdoc">integer vector with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00109">compatibility.hpp:109</a></div></div>
-<div class="ttc" id="a00191_html_gade37cf30c69bacb41ceea7e32717eac7"><div class="ttname"><a href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">glm::double2x3</a></div><div class="ttdeci">tmat2x3&lt; double, highp &gt; double2x3</div><div class="ttdoc">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00147">compatibility.hpp:147</a></div></div>
-<div class="ttc" id="a00191_html_ga0fc7ecb53df5be5f9d766fbbfe5190d7"><div class="ttname"><a href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">glm::bool3x2</a></div><div class="ttdeci">tmat3x2&lt; bool, highp &gt; bool3x2</div><div class="ttdoc">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00101">compatibility.hpp:101</a></div></div>
-<div class="ttc" id="a00191_html_ga20c4d23defbc123ac4745c9b4262156f"><div class="ttname"><a href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">glm::int3x3</a></div><div class="ttdeci">tmat3x3&lt; int, highp &gt; int3x3</div><div class="ttdoc">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00118">compatibility.hpp:118</a></div></div>
-<div class="ttc" id="a00191_html_gaf30014e7b6874f45d58eb580d04764ff"><div class="ttname"><a href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">glm::float3x2</a></div><div class="ttdeci">tmat3x2&lt; float, highp &gt; float3x2</div><div class="ttdoc">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00133">compatibility.hpp:133</a></div></div>
-<div class="ttc" id="a00191_html_ga9770607032813e7b0ca7362a47efea1e"><div class="ttname"><a href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">glm::bool4x4</a></div><div class="ttdeci">tmat4x4&lt; bool, highp &gt; bool4x4</div><div class="ttdoc">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00106">compatibility.hpp:106</a></div></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;common.inl&quot;</span></div>
+<div class="ttc" id="a00186_html_ga74aa7c7462245d83bd5a9edf9c6c2d91"><div class="ttname"><a href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">glm::isdenormal</a></div><div class="ttdeci">GLM_FUNC_DECL genType::bool_type isdenormal(genType const &amp;x)</div><div class="ttdoc">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...</div></div>
+<div class="ttc" id="a00186_html_ga2580f50d4064557d62f4a533dfc6c7e3"><div class="ttname"><a href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">glm::fmod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fmod(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Similar to &#39;mod&#39; but with a different rounding and integer support. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00017.html b/3rdparty/glm/doc/api/a00017.html
index 30cad0c3f9b..d75205d4feb 100644
--- a/3rdparty/glm/doc/api/a00017.html
+++ b/3rdparty/glm/doc/api/a00017.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: component_wise.hpp File Reference</title>
+<title>0.9.9 API documenation: compatibility.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,48 +64,374 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">component_wise.hpp File Reference</div> </div>
+<div class="title">compatibility.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00187.html">GLM_GTX_compatibility</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00017_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
+typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
+<tr class="memdesc:gaddcd7aa2e30e61af5b38660613d3979e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
+typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
+<tr class="memdesc:ga7f895c936f0c29c8729afbbf22806090"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
+typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
+<tr class="memdesc:gafa8d0bc8dfa7eeb928208305714f648d"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
+typedef tmat2x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
+<tr class="memdesc:ga2bfb53bc320966c85149934fffb0329d"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
+typedef tmat2x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
+<tr class="memdesc:gad02e7dff74039bb1454643e293d85dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
+typedef tmat2x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
+<tr class="memdesc:ga379c0869949e8a69c3d06d7637caa5d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
+typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
+<tr class="memdesc:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
+typedef tmat3x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
+<tr class="memdesc:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
+typedef tmat3x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
+<tr class="memdesc:gae621c9eabcba552eea5f6ade1f403605"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
+typedef tmat3x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
+<tr class="memdesc:gad13f8250579ebf79760dcf64215ddb17"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
+typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
+<tr class="memdesc:ga6e79dbfab5917c467a154638ba27898e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
+typedef tmat4x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
+<tr class="memdesc:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
+typedef tmat4x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
+<tr class="memdesc:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
+typedef tmat4x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
+<tr class="memdesc:ga9770607032813e7b0ca7362a47efea1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
+typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
+<tr class="memdesc:ga20b861a9b6e2a300323671c57a02525b"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
+typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
+<tr class="memdesc:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
+typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
+<tr class="memdesc:gaa16a13c6f2768e83ca133430e82ab89e"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
+typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
+<tr class="memdesc:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
+typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
+<tr class="memdesc:gade37cf30c69bacb41ceea7e32717eac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
+typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
+<tr class="memdesc:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
+typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
+<tr class="memdesc:gaed4bc64196bd25d46f6a1f417320a391"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
+typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
+<tr class="memdesc:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
+typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
+<tr class="memdesc:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
+typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
+<tr class="memdesc:gaad84a1ea83be8fce04c1570c5e719413"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
+typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
+<tr class="memdesc:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
+typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
+<tr class="memdesc:ga2f87500119da15e35e4a74780ba512bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
+typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
+<tr class="memdesc:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
+typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
+<tr class="memdesc:ga686a3a5590f0a0e721faba08bda301d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
+typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
+<tr class="memdesc:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
+typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
+<tr class="memdesc:ga73720b8dc4620835b17f74d428f98c0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
+typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
+<tr class="memdesc:ga872a70333dd25af68b1ebba485be9e42"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
+typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
+<tr class="memdesc:gaad93cbc2b863e363d53d405d0451d03e"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
+typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
+<tr class="memdesc:ga098c33a30f901f4f6a76969d6db6b01b"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
+typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
+<tr class="memdesc:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
+typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
+<tr class="memdesc:ga2bfa618285894e34f299e4984f092d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
+typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
+<tr class="memdesc:gaf30014e7b6874f45d58eb580d04764ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
+typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
+<tr class="memdesc:ga2692a729a69615d72dbebbdd0eba2363"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
+typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
+<tr class="memdesc:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
+typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
+<tr class="memdesc:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
+typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
+<tr class="memdesc:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
+typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
+<tr class="memdesc:gad749b26be059f35394fd71c7f7a44034"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
+typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
+<tr class="memdesc:gaf40529862492ded2f3b96a6c886f6136"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
+typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
+<tr class="memdesc:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
+typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
+<tr class="memdesc:ga056ffe02d3a45af626f8e62221881c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
+typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
+<tr class="memdesc:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
+typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
+<tr class="memdesc:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
+typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
+<tr class="memdesc:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
+typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
+<tr class="memdesc:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
+typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
+<tr class="memdesc:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
+typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
+<tr class="memdesc:gaa98b1a06b802c975f02a5583f43632db"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
+typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
+<tr class="memdesc:ga20c4d23defbc123ac4745c9b4262156f"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
+typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
+<tr class="memdesc:ga7b00c53838143bce963177122ab92c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
+typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
+<tr class="memdesc:gab19c2df22e9b14081390fabd074081f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
+typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
+<tr class="memdesc:gaa53815539021200c4e10fd282832dcd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
+typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
+<tr class="memdesc:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
+typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
+<tr class="memdesc:ga3bacf576b4b29f2f2959abff7a36652d"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
+<tr class="memdesc:gac63011205bf6d0be82589dc56dd26708"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y)</td></tr>
+<tr class="memdesc:ga525f3e849d0fc64807f8ab571b4545f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y)</td></tr>
+<tr class="memdesc:gad328042b6734d3f2c49c0ec1328b14c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)</td></tr>
+<tr class="memdesc:ga09d39c391a509a045b6c7061f15bdff5"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
+template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga553e2e95b06a0f70c718605998889d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga1be9593d810fceb278a2854da8a25273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
+<tr class="memdesc:ga5494ba3a95ea6594c86fc75236886864"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, T a)</td></tr>
+<tr class="memdesc:ga0aa79a146332650a1eb18ae996c653fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, T a)</td></tr>
+<tr class="memdesc:gaf4c885ac72b8879b05777cb516c555c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, T a)</td></tr>
+<tr class="memdesc:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, const tvec2&lt; T, P &gt; &amp;a)</td></tr>
+<tr class="memdesc:ga7609b44d8aefc5a277efe73395ff4070"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, const tvec3&lt; T, P &gt; &amp;a)</td></tr>
+<tr class="memdesc:ga90a1d1364a8d078846857178bdcc9af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)</td></tr>
+<tr class="memdesc:gae4b0244b0d882657bed0a99dfa33f379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
+<tr class="memdesc:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga5815a26488231dfdf92242cf0c2d2107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga63791409bdef9745b956406afe3157f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00192.html">GLM_GTX_component_wise</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00187.html">GLM_GTX_compatibility</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00017_source.html">component_wise.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00017_source.html">compatibility.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00017_source.html b/3rdparty/glm/doc/api/a00017_source.html
index 627ad7de1bd..8b80d7ca0fe 100644
--- a/3rdparty/glm/doc/api/a00017_source.html
+++ b/3rdparty/glm/doc/api/a00017_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: component_wise.hpp Source File</title>
+<title>0.9.9 API documenation: compatibility.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,54 +64,213 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">component_wise.hpp</div> </div>
+<div class="title">compatibility.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00017.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_compatibility is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_compatibility extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># include &lt;cfloat&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># if(GLM_PLATFORM &amp; GLM_PLATFORM_ANDROID)</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># undef isfinite</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864"> 41</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe"> 42</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_component_wise extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; genType <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; genType <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; genType <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; genType <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#include &quot;component_wise.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00192_html_gaf71833350e15e74d31cbf8a3e7f27051"><div class="ttname"><a href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">glm::compAdd</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compAdd(genType const &amp;v)</div><div class="ttdoc">Add all vector components together. </div></div>
-<div class="ttc" id="a00192_html_gab5d0832b5c7bb01b8d7395973bfb1425"><div class="ttname"><a href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">glm::compMin</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMin(genType const &amp;v)</div><div class="ttdoc">Find the minimum value between single vector components. </div></div>
-<div class="ttc" id="a00192_html_gabfa4bb19298c8c73d4217ba759c496b6"><div class="ttname"><a href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">glm::compMax</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMax(genType const &amp;v)</div><div class="ttdoc">Find the maximum value between single vector components. </div></div>
-<div class="ttc" id="a00192_html_gae8ab88024197202c9479d33bdc5a8a5d"><div class="ttname"><a href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">glm::compMul</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMul(genType const &amp;v)</div><div class="ttdoc">Multiply all vector components together. </div></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9"> 44</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60"> 45</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070"> 46</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; y, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1"> 47</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; y, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379"> 48</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; y, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7"> 50</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107"> 51</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b"> 52</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00187.html#ga63791409bdef9745b956406afe3157f1"> 53</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00187.html#gac63011205bf6d0be82589dc56dd26708"> 55</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9"> 56</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec2&lt;T, P&gt; <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0"> 57</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec3&lt;T, P&gt; <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5"> 58</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_QUALIFIER tvec4&lt;T, P&gt; <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x, <span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(genType <span class="keyword">const</span> &amp; x); </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec1&lt;bool, P&gt; <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec1&lt;T, P&gt;&amp; x); </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec2&lt;bool, P&gt; <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec2&lt;T, P&gt;&amp; x); </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec3&lt;bool, P&gt; <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; x); </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec4&lt;T, P&gt;&amp; x); </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e"> 66</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a>; </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d"> 67</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, highp&gt; <a class="code" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a>; </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659"> 68</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, highp&gt; <a class="code" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a>; </div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e"> 69</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, highp&gt; <a class="code" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a>; </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090"> 71</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a>; </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d"> 72</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;bool, highp&gt; <a class="code" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a>; </div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe"> 73</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;bool, highp&gt; <a class="code" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a>; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7"> 74</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;bool, highp&gt; <a class="code" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a>; </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7"> 75</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;bool, highp&gt; <a class="code" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a>; </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605"> 76</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;bool, highp&gt; <a class="code" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a>; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17"> 77</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;bool, highp&gt; <a class="code" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a>; </div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db"> 78</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;bool, highp&gt; <a class="code" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a>; </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb"> 79</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;bool, highp&gt; <a class="code" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a>; </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e"> 80</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;bool, highp&gt; <a class="code" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a>; </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3"> 82</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a>; </div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700"> 83</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, highp&gt; <a class="code" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a>; </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88"> 84</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, highp&gt; <a class="code" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a>; </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00187.html#gab19c2df22e9b14081390fabd074081f1"> 85</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, highp&gt; <a class="code" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a>; </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a"> 87</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a>; </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc"> 88</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, highp&gt; <a class="code" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a>; </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434"> 89</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, highp&gt; <a class="code" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a>; </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e"> 90</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, highp&gt; <a class="code" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a>; </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db"> 91</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, highp&gt; <a class="code" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a>; </div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f"> 92</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, highp&gt; <a class="code" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a>; </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00187.html#ga7b00c53838143bce963177122ab92c39"> 93</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, highp&gt; <a class="code" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a>; </div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00187.html#gaa53815539021200c4e10fd282832dcd3"> 94</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, highp&gt; <a class="code" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a>; </div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe"> 95</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, highp&gt; <a class="code" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a>; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d"> 96</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, highp&gt; <a class="code" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a>; </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead"> 98</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a>; </div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42"> 99</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; <a class="code" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a>; </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00187.html#ga2bfa618285894e34f299e4984f092d56"> 100</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; <a class="code" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a>; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b"> 101</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; <a class="code" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a>; </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c"> 103</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a>; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e"> 104</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a>; </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b"> 105</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, highp&gt; <a class="code" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a>; </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde"> 106</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, highp&gt; <a class="code" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a>; </div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff"> 107</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, highp&gt; <a class="code" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a>; </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363"> 108</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a>; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e"> 109</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, highp&gt; <a class="code" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a>; </div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8"> 110</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, highp&gt; <a class="code" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a>; </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00187.html#gad749b26be059f35394fd71c7f7a44034"> 111</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, highp&gt; <a class="code" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a>; </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136"> 112</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a>; </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b"> 114</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a>; </div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e"> 115</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, highp&gt; <a class="code" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a>; </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391"> 116</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, highp&gt; <a class="code" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a>; </div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56"> 117</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, highp&gt; <a class="code" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a>; </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8"> 119</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a>; </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7"> 120</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, highp&gt; <a class="code" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a>; </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7"> 121</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, highp&gt; <a class="code" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a>; </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e"> 122</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, highp&gt; <a class="code" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a>; </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6"> 123</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, highp&gt; <a class="code" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a>; </div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a"> 124</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, highp&gt; <a class="code" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a>; </div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413"> 125</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, highp&gt; <a class="code" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a>; </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd"> 126</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, highp&gt; <a class="code" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a>; </div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37"> 127</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, highp&gt; <a class="code" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a>; </div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6"> 128</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, highp&gt; <a class="code" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a>; </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#include &quot;compatibility.inl&quot;</span></div>
+<div class="ttc" id="a00187_html_ga056ffe02d3a45af626f8e62221881c7a"><div class="ttname"><a href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">glm::int1x1</a></div><div class="ttdeci">int int1x1</div><div class="ttdoc">integer matrix with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00087">compatibility.hpp:87</a></div></div>
+<div class="ttc" id="a00187_html_gae621c9eabcba552eea5f6ade1f403605"><div class="ttname"><a href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">glm::bool3x3</a></div><div class="ttdeci">tmat3x3&lt; bool, highp &gt; bool3x3</div><div class="ttdoc">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00076">compatibility.hpp:76</a></div></div>
+<div class="ttc" id="a00187_html_ga2692a729a69615d72dbebbdd0eba2363"><div class="ttname"><a href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">glm::float3x3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; float3x3</div><div class="ttdoc">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00108">compatibility.hpp:108</a></div></div>
+<div class="ttc" id="a00187_html_gad5da9e1b4e0c64c5436b5696ab49540e"><div class="ttname"><a href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">glm::int2x4</a></div><div class="ttdeci">tmat2x4&lt; int, highp &gt; int2x4</div><div class="ttdoc">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00090">compatibility.hpp:90</a></div></div>
+<div class="ttc" id="a00187_html_gab2ce4c366abc06c8bf7fe097ecea0dde"><div class="ttname"><a href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">glm::float2x4</a></div><div class="ttdeci">tmat2x4&lt; float, highp &gt; float2x4</div><div class="ttdoc">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00106">compatibility.hpp:106</a></div></div>
+<div class="ttc" id="a00187_html_gad749b26be059f35394fd71c7f7a44034"><div class="ttname"><a href="a00187.html#gad749b26be059f35394fd71c7f7a44034">glm::float4x3</a></div><div class="ttdeci">tmat4x3&lt; float, highp &gt; float4x3</div><div class="ttdoc">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00111">compatibility.hpp:111</a></div></div>
+<div class="ttc" id="a00187_html_ga20b861a9b6e2a300323671c57a02525b"><div class="ttname"><a href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">glm::double1</a></div><div class="ttdeci">double double1</div><div class="ttdoc">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00114">compatibility.hpp:114</a></div></div>
+<div class="ttc" id="a00187_html_ga320d0a71a4ad9f14a1992d40546cffa7"><div class="ttname"><a href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">glm::double2x2</a></div><div class="ttdeci">tmat2x2&lt; double, highp &gt; double2x2</div><div class="ttdoc">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00120">compatibility.hpp:120</a></div></div>
+<div class="ttc" id="a00187_html_gaad84a1ea83be8fce04c1570c5e719413"><div class="ttname"><a href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">glm::double3x4</a></div><div class="ttdeci">tmat3x4&lt; double, highp &gt; double3x4</div><div class="ttdoc">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00125">compatibility.hpp:125</a></div></div>
+<div class="ttc" id="a00187_html_gab1c5d0631a6ae34e28bfb2851da387cc"><div class="ttname"><a href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">glm::int2x2</a></div><div class="ttdeci">tmat2x2&lt; int, highp &gt; int2x2</div><div class="ttdoc">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00088">compatibility.hpp:88</a></div></div>
+<div class="ttc" id="a00187_html_ga2eca687990bf3a08ef28bc4a9f2fe700"><div class="ttname"><a href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">glm::int2</a></div><div class="ttdeci">tvec2&lt; int, highp &gt; int2</div><div class="ttdoc">integer vector with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00083">compatibility.hpp:83</a></div></div>
+<div class="ttc" id="a00187_html_gaed4bc64196bd25d46f6a1f417320a391"><div class="ttname"><a href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">glm::double3</a></div><div class="ttdeci">tvec3&lt; double, highp &gt; double3</div><div class="ttdoc">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00116">compatibility.hpp:116</a></div></div>
+<div class="ttc" id="a00187_html_gae4b0244b0d882657bed0a99dfa33f379"><div class="ttname"><a href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt; lerp(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)</div><div class="ttdoc">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00048">compatibility.hpp:48</a></div></div>
+<div class="ttc" id="a00187_html_ga20c4d23defbc123ac4745c9b4262156f"><div class="ttname"><a href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">glm::int3x3</a></div><div class="ttdeci">tmat3x3&lt; int, highp &gt; int3x3</div><div class="ttdoc">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00092">compatibility.hpp:92</a></div></div>
+<div class="ttc" id="a00187_html_gac934f579ee5cf3cbdbb25b73f2640c0a"><div class="ttname"><a href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">glm::double3x3</a></div><div class="ttdeci">tmat3x3&lt; double, highp &gt; double3x3</div><div class="ttdoc">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00124">compatibility.hpp:124</a></div></div>
+<div class="ttc" id="a00187_html_gad02e7dff74039bb1454643e293d85dfe"><div class="ttname"><a href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">glm::bool2x3</a></div><div class="ttdeci">tmat2x3&lt; bool, highp &gt; bool2x3</div><div class="ttdoc">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00073">compatibility.hpp:73</a></div></div>
+<div class="ttc" id="a00187_html_ga9770607032813e7b0ca7362a47efea1e"><div class="ttname"><a href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">glm::bool4x4</a></div><div class="ttdeci">tmat4x4&lt; bool, highp &gt; bool4x4</div><div class="ttdoc">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00080">compatibility.hpp:80</a></div></div>
+<div class="ttc" id="a00187_html_ga83e4c62ab1addfe708dc3409cc0e5dfb"><div class="ttname"><a href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">glm::bool4x3</a></div><div class="ttdeci">tmat4x3&lt; bool, highp &gt; bool4x3</div><div class="ttdoc">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00079">compatibility.hpp:79</a></div></div>
+<div class="ttc" id="a00187_html_gaad93cbc2b863e363d53d405d0451d03e"><div class="ttname"><a href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">glm::float2x2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; float2x2</div><div class="ttdoc">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00104">compatibility.hpp:104</a></div></div>
+<div class="ttc" id="a00187_html_ga63791409bdef9745b956406afe3157f1"><div class="ttname"><a href="a00187.html#ga63791409bdef9745b956406afe3157f1">glm::saturate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt; saturate(const tvec4&lt; T, P &gt; &amp;x)</div><div class="ttdoc">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00053">compatibility.hpp:53</a></div></div>
+<div class="ttc" id="a00187_html_gafa8d0bc8dfa7eeb928208305714f648d"><div class="ttname"><a href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">glm::bool2</a></div><div class="ttdeci">tvec2&lt; bool, highp &gt; bool2</div><div class="ttdoc">boolean type with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00067">compatibility.hpp:67</a></div></div>
+<div class="ttc" id="a00187_html_ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><div class="ttname"><a href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">glm::isfinite</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; isfinite(const tvec4&lt; T, P &gt; &amp;x)</div><div class="ttdoc">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...</div></div>
+<div class="ttc" id="a00187_html_ga5d49ed44dd9a9e944abc30371fc9045b"><div class="ttname"><a href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">glm::float4</a></div><div class="ttdeci">tvec4&lt; float, highp &gt; float4</div><div class="ttdoc">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00101">compatibility.hpp:101</a></div></div>
+<div class="ttc" id="a00187_html_gaf40529862492ded2f3b96a6c886f6136"><div class="ttname"><a href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">glm::float4x4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; float4x4</div><div class="ttdoc">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00112">compatibility.hpp:112</a></div></div>
+<div class="ttc" id="a00187_html_ga39a2af7aa8f2d29ca40afd2256c0e7c8"><div class="ttname"><a href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">glm::float4x2</a></div><div class="ttdeci">tmat4x2&lt; float, highp &gt; float4x2</div><div class="ttdoc">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00110">compatibility.hpp:110</a></div></div>
+<div class="ttc" id="a00187_html_gaf5208d01f6c6fbcb7bb55d610b9c0ead"><div class="ttname"><a href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::float1</a></div><div class="ttdeci">float float1</div><div class="ttdoc">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00098">compatibility.hpp:98</a></div></div>
+<div class="ttc" id="a00187_html_gaf30014e7b6874f45d58eb580d04764ff"><div class="ttname"><a href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">glm::float3x2</a></div><div class="ttdeci">tmat3x2&lt; float, highp &gt; float3x2</div><div class="ttdoc">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00107">compatibility.hpp:107</a></div></div>
+<div class="ttc" id="a00187_html_ga2f87500119da15e35e4a74780ba512bd"><div class="ttname"><a href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">glm::double4x2</a></div><div class="ttdeci">tmat4x2&lt; double, highp &gt; double4x2</div><div class="ttdoc">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00126">compatibility.hpp:126</a></div></div>
+<div class="ttc" id="a00187_html_gaa4e6d53c03780dfa76bd399324f9fe37"><div class="ttname"><a href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">glm::double4x3</a></div><div class="ttdeci">tmat4x3&lt; double, highp &gt; double4x3</div><div class="ttdoc">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00127">compatibility.hpp:127</a></div></div>
+<div class="ttc" id="a00187_html_ga45f16a4dd0db1f199afaed9fd12fe9a8"><div class="ttname"><a href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::double1x1</a></div><div class="ttdeci">double double1x1</div><div class="ttdoc">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00119">compatibility.hpp:119</a></div></div>
+<div class="ttc" id="a00187_html_gaa53815539021200c4e10fd282832dcd3"><div class="ttname"><a href="a00187.html#gaa53815539021200c4e10fd282832dcd3">glm::int4x2</a></div><div class="ttdeci">tmat4x2&lt; int, highp &gt; int4x2</div><div class="ttdoc">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00094">compatibility.hpp:94</a></div></div>
+<div class="ttc" id="a00187_html_gab19c2df22e9b14081390fabd074081f1"><div class="ttname"><a href="a00187.html#gab19c2df22e9b14081390fabd074081f1">glm::int4</a></div><div class="ttdeci">tvec4&lt; int, highp &gt; int4</div><div class="ttdoc">integer vector with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00085">compatibility.hpp:85</a></div></div>
+<div class="ttc" id="a00187_html_gab8d74ea4c4f4bd980b650ffb27cdb659"><div class="ttname"><a href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">glm::bool3</a></div><div class="ttdeci">tvec3&lt; bool, highp &gt; bool3</div><div class="ttdoc">boolean type with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00068">compatibility.hpp:68</a></div></div>
+<div class="ttc" id="a00145_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00187_html_gaa98b1a06b802c975f02a5583f43632db"><div class="ttname"><a href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">glm::int3x2</a></div><div class="ttdeci">tmat3x2&lt; int, highp &gt; int3x2</div><div class="ttdoc">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00091">compatibility.hpp:91</a></div></div>
+<div class="ttc" id="a00187_html_gaeaac4d0e18164e4d2fe54432c0fbbcf6"><div class="ttname"><a href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">glm::double3x2</a></div><div class="ttdeci">tmat3x2&lt; double, highp &gt; double3x2</div><div class="ttdoc">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00123">compatibility.hpp:123</a></div></div>
+<div class="ttc" id="a00187_html_ga09d39c391a509a045b6c7061f15bdff5"><div class="ttname"><a href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">glm::atan2</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt; atan2(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)</div><div class="ttdoc">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00058">compatibility.hpp:58</a></div></div>
+<div class="ttc" id="a00187_html_gab8bbb086c9a6c2deffbe0e80afd6be56"><div class="ttname"><a href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">glm::double4</a></div><div class="ttdeci">tvec4&lt; double, highp &gt; double4</div><div class="ttdoc">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00117">compatibility.hpp:117</a></div></div>
+<div class="ttc" id="a00187_html_ga184ee05ac2bbbf0a91dd364ba8e528db"><div class="ttname"><a href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">glm::bool4x2</a></div><div class="ttdeci">tmat4x2&lt; bool, highp &gt; bool4x2</div><div class="ttdoc">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00078">compatibility.hpp:78</a></div></div>
+<div class="ttc" id="a00187_html_gaf923922adf744404d5bfb3fafb7d0d8e"><div class="ttname"><a href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">glm::double2x4</a></div><div class="ttdeci">tmat2x4&lt; double, highp &gt; double2x4</div><div class="ttdoc">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00122">compatibility.hpp:122</a></div></div>
+<div class="ttc" id="a00187_html_ga4a3bf0ecd6f6ff60836c5bee26c14abe"><div class="ttname"><a href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">glm::int4x3</a></div><div class="ttdeci">tmat4x3&lt; int, highp &gt; int4x3</div><div class="ttdoc">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00095">compatibility.hpp:95</a></div></div>
+<div class="ttc" id="a00187_html_gade37cf30c69bacb41ceea7e32717eac7"><div class="ttname"><a href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">glm::double2x3</a></div><div class="ttdeci">tmat2x3&lt; double, highp &gt; double2x3</div><div class="ttdoc">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00121">compatibility.hpp:121</a></div></div>
+<div class="ttc" id="a00187_html_ga098c33a30f901f4f6a76969d6db6b01b"><div class="ttname"><a href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">glm::float2x3</a></div><div class="ttdeci">tmat2x3&lt; float, highp &gt; float2x3</div><div class="ttdoc">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00105">compatibility.hpp:105</a></div></div>
+<div class="ttc" id="a00187_html_ga7b00c53838143bce963177122ab92c39"><div class="ttname"><a href="a00187.html#ga7b00c53838143bce963177122ab92c39">glm::int3x4</a></div><div class="ttdeci">tmat3x4&lt; int, highp &gt; int3x4</div><div class="ttdoc">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00093">compatibility.hpp:93</a></div></div>
+<div class="ttc" id="a00187_html_ga379c0869949e8a69c3d06d7637caa5d7"><div class="ttname"><a href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">glm::bool2x4</a></div><div class="ttdeci">tmat2x4&lt; bool, highp &gt; bool2x4</div><div class="ttdoc">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00074">compatibility.hpp:74</a></div></div>
+<div class="ttc" id="a00187_html_ga3bacf576b4b29f2f2959abff7a36652d"><div class="ttname"><a href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">glm::int4x4</a></div><div class="ttdeci">tmat4x4&lt; int, highp &gt; int4x4</div><div class="ttdoc">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00096">compatibility.hpp:96</a></div></div>
+<div class="ttc" id="a00187_html_ga0670a2111b5e4a6410bd027fa0232fc3"><div class="ttname"><a href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::int1</a></div><div class="ttdeci">int int1</div><div class="ttdoc">integer vector with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00082">compatibility.hpp:82</a></div></div>
+<div class="ttc" id="a00187_html_ga872a70333dd25af68b1ebba485be9e42"><div class="ttname"><a href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">glm::float2</a></div><div class="ttdeci">tvec2&lt; float, highp &gt; float2</div><div class="ttdoc">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00099">compatibility.hpp:99</a></div></div>
+<div class="ttc" id="a00187_html_ga2bfb53bc320966c85149934fffb0329d"><div class="ttname"><a href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">glm::bool2x2</a></div><div class="ttdeci">tmat2x2&lt; bool, highp &gt; bool2x2</div><div class="ttdoc">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00072">compatibility.hpp:72</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00187_html_ga6e79dbfab5917c467a154638ba27898e"><div class="ttname"><a href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">glm::bool4</a></div><div class="ttdeci">tvec4&lt; bool, highp &gt; bool4</div><div class="ttdoc">boolean type with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00069">compatibility.hpp:69</a></div></div>
+<div class="ttc" id="a00187_html_ga686a3a5590f0a0e721faba08bda301d6"><div class="ttname"><a href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">glm::double4x4</a></div><div class="ttdeci">tmat4x4&lt; double, highp &gt; double4x4</div><div class="ttdoc">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00128">compatibility.hpp:128</a></div></div>
+<div class="ttc" id="a00187_html_gaddcd7aa2e30e61af5b38660613d3979e"><div class="ttname"><a href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::bool1</a></div><div class="ttdeci">bool bool1</div><div class="ttdoc">boolean type with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00066">compatibility.hpp:66</a></div></div>
+<div class="ttc" id="a00187_html_gad13f8250579ebf79760dcf64215ddb17"><div class="ttname"><a href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">glm::bool3x4</a></div><div class="ttdeci">tmat3x4&lt; bool, highp &gt; bool3x4</div><div class="ttdoc">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00077">compatibility.hpp:77</a></div></div>
+<div class="ttc" id="a00145_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00151_html_ga461e769acb8b8cb695a5a89334546611"><div class="ttname"><a href="a00151.html#ga461e769acb8b8cb695a5a89334546611">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; atan(vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc tangent. </div></div>
+<div class="ttc" id="a00187_html_ga0fc7ecb53df5be5f9d766fbbfe5190d7"><div class="ttname"><a href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">glm::bool3x2</a></div><div class="ttdeci">tmat3x2&lt; bool, highp &gt; bool3x2</div><div class="ttdoc">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00075">compatibility.hpp:75</a></div></div>
+<div class="ttc" id="a00187_html_gac38c8929ccc87a2dc81eaab97ad5190e"><div class="ttname"><a href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">glm::float3x4</a></div><div class="ttdeci">tmat3x4&lt; float, highp &gt; float3x4</div><div class="ttdoc">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00109">compatibility.hpp:109</a></div></div>
+<div class="ttc" id="a00187_html_ga6dc93f0794eb5fadd7f68b85141a2434"><div class="ttname"><a href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">glm::int2x3</a></div><div class="ttdeci">tmat2x3&lt; int, highp &gt; int2x3</div><div class="ttdoc">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00089">compatibility.hpp:89</a></div></div>
+<div class="ttc" id="a00187_html_ga2bfa618285894e34f299e4984f092d56"><div class="ttname"><a href="a00187.html#ga2bfa618285894e34f299e4984f092d56">glm::float3</a></div><div class="ttdeci">tvec3&lt; float, highp &gt; float3</div><div class="ttdoc">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00100">compatibility.hpp:100</a></div></div>
+<div class="ttc" id="a00187_html_gaaa6ceedf08a85e5fd73a482bc8b77b88"><div class="ttname"><a href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">glm::int3</a></div><div class="ttdeci">tvec3&lt; int, highp &gt; int3</div><div class="ttdoc">integer vector with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00084">compatibility.hpp:84</a></div></div>
+<div class="ttc" id="a00187_html_ga73720b8dc4620835b17f74d428f98c0c"><div class="ttname"><a href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">glm::float1x1</a></div><div class="ttdeci">float float1x1</div><div class="ttdoc">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00103">compatibility.hpp:103</a></div></div>
+<div class="ttc" id="a00187_html_gaa16a13c6f2768e83ca133430e82ab89e"><div class="ttname"><a href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">glm::double2</a></div><div class="ttdeci">tvec2&lt; double, highp &gt; double2</div><div class="ttdoc">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00115">compatibility.hpp:115</a></div></div>
+<div class="ttc" id="a00187_html_ga7f895c936f0c29c8729afbbf22806090"><div class="ttname"><a href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">glm::bool1x1</a></div><div class="ttdeci">bool bool1x1</div><div class="ttdoc">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00071">compatibility.hpp:71</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00018.html b/3rdparty/glm/doc/api/a00018.html
index 99ea57e7e73..fbf03b13be4 100644
--- a/3rdparty/glm/doc/api/a00018.html
+++ b/3rdparty/glm/doc/api/a00018.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: constants.hpp File Reference</title>
+<title>0.9.9 API documenation: component_wise.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,125 +64,72 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">constants.hpp File Reference</div> </div>
+<div class="title">component_wise.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00188.html">GLM_GTX_component_wise</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00018_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a> ()</td></tr>
-<tr class="separator:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a> ()</td></tr>
-<tr class="separator:gacb41049b8d22c8aa90e362b96c524feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">euler</a> ()</td></tr>
-<tr class="separator:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">four_over_pi</a> ()</td></tr>
-<tr class="separator:gafb68d06c9c9dc234210ce91d6707faac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">golden_ratio</a> ()</td></tr>
-<tr class="separator:gafd53093ef2d756333865d774bea3cdf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">half_pi</a> ()</td></tr>
-<tr class="separator:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga650774609debe4a90bcac449b574de2c">ln_ln_two</a> ()</td></tr>
-<tr class="separator:ga650774609debe4a90bcac449b574de2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">ln_ten</a> ()</td></tr>
-<tr class="separator:ga48addf0cb0980277d208a71a1c59c073"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">ln_two</a> ()</td></tr>
-<tr class="separator:ga22fae798430edc3022766af4fd83e8a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">one</a> ()</td></tr>
-<tr class="separator:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">one_over_pi</a> ()</td></tr>
-<tr class="separator:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">one_over_root_two</a> ()</td></tr>
-<tr class="separator:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">one_over_two_pi</a> ()</td></tr>
-<tr class="separator:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a> ()</td></tr>
-<tr class="separator:gae671930537266a9a650ccb4b88757692"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">quarter_pi</a> ()</td></tr>
-<tr class="separator:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">root_five</a> ()</td></tr>
-<tr class="separator:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">root_half_pi</a> ()</td></tr>
-<tr class="separator:gaec5af85e2148c118aad7e797430fdeb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">root_ln_four</a> ()</td></tr>
-<tr class="separator:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">root_pi</a> ()</td></tr>
-<tr class="separator:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab3183635ac615473e2f95852f491be83">root_three</a> ()</td></tr>
-<tr class="separator:gab3183635ac615473e2f95852f491be83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">root_two</a> ()</td></tr>
-<tr class="separator:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae991b4d39c57b57990054eec3677597c">root_two_pi</a> ()</td></tr>
-<tr class="separator:gae991b4d39c57b57990054eec3677597c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gabf280496105e0ad070287417f840ebd8">third</a> ()</td></tr>
-<tr class="separator:gabf280496105e0ad070287417f840ebd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">three_over_two_pi</a> ()</td></tr>
-<tr class="separator:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga85729d38c47351686e8659f80447a7ea">two_over_pi</a> ()</td></tr>
-<tr class="separator:ga85729d38c47351686e8659f80447a7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">two_over_root_pi</a> ()</td></tr>
-<tr class="separator:ga767e539c20585bf60aa63595b0f0b259"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">two_pi</a> ()</td></tr>
-<tr class="separator:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">two_thirds</a> ()</td></tr>
-<tr class="separator:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">zero</a> ()</td></tr>
-<tr class="separator:ga5cc97dd01d37fc199264ff6030578435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gaf71833350e15e74d31cbf8a3e7f27051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add all vector components together. <a href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">More...</a><br /></td></tr>
+<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gabfa4bb19298c8c73d4217ba759c496b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the maximum value between single vector components. <a href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">More...</a><br /></td></tr>
+<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the minimum value between single vector components. <a href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">More...</a><br /></td></tr>
+<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gae8ab88024197202c9479d33bdc5a8a5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply all vector components together. <a href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">More...</a><br /></td></tr>
+<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplParams" colspan="2">template&lt;typename floatType , typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; floatType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an integer vector to a normalized float vector. <a href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">More...</a><br /></td></tr>
+<tr class="separator:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplParams" colspan="2">template&lt;typename T , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a> (vecType&lt; floatType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaea99a3271016bfd331d9fa7587f3db37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a normalized float vector to an integer vector. <a href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">More...</a><br /></td></tr>
+<tr class="separator:gaea99a3271016bfd331d9fa7587f3db37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00168.html">GLM_GTC_constants</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-09-30 / 2012-01-25 </dd></dl>
+<div class="textblock"><p><a class="el" href="a00188.html">GLM_GTX_component_wise</a> </p>
+<dl class="section date"><dt>Date</dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00018_source.html">constants.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00018_source.html">component_wise.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00018_source.html b/3rdparty/glm/doc/api/a00018_source.html
index b4087611e07..e0dd70e84a6 100644
--- a/3rdparty/glm/doc/api/a00018_source.html
+++ b/3rdparty/glm/doc/api/a00018_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: constants.hpp Source File</title>
+<title>0.9.9 API documenation: component_wise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,149 +64,76 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">constants.hpp</div> </div>
+<div class="title">component_wise.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00018.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_constants extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>();</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">zero</a>();</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">one</a>();</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a>();</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">two_pi</a>();</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">root_pi</a>();</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">half_pi</a>();</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">three_over_two_pi</a>();</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">quarter_pi</a>();</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">one_over_pi</a>();</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">one_over_two_pi</a>();</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga85729d38c47351686e8659f80447a7ea">two_over_pi</a>();</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">four_over_pi</a>();</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">two_over_root_pi</a>();</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">one_over_root_two</a>();</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">root_half_pi</a>();</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae991b4d39c57b57990054eec3677597c">root_two_pi</a>();</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">root_ln_four</a>();</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>();</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">euler</a>();</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">root_two</a>();</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab3183635ac615473e2f95852f491be83">root_three</a>();</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">root_five</a>();</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">ln_two</a>();</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">ln_ten</a>();</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga650774609debe4a90bcac449b574de2c">ln_ln_two</a>();</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gabf280496105e0ad070287417f840ebd8">third</a>();</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">two_thirds</a>();</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">golden_ratio</a>();</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#include &quot;constants.inl&quot;</span></div>
-<div class="ttc" id="a00168_html_ga6f14b46653b7ead1edcbd0fc6c9c5289"><div class="ttname"><a href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">glm::euler</a></div><div class="ttdeci">GLM_FUNC_DECL genType euler()</div><div class="ttdoc">Return Euler&#39;s constant. </div></div>
-<div class="ttc" id="a00168_html_ga85729d38c47351686e8659f80447a7ea"><div class="ttname"><a href="a00168.html#ga85729d38c47351686e8659f80447a7ea">glm::two_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_over_pi()</div><div class="ttdoc">Return 2 / pi. </div></div>
-<div class="ttc" id="a00168_html_ga9f3732bc75c0d0892f72e21cfe4f938b"><div class="ttname"><a href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">glm::three_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType three_over_two_pi()</div><div class="ttdoc">Return pi / 2 * 3. </div></div>
-<div class="ttc" id="a00168_html_ga1cfeb345f34f72697d14f4db8d5d4c6c"><div class="ttname"><a href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">glm::root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_pi()</div><div class="ttdoc">Return square root of pi. </div></div>
-<div class="ttc" id="a00168_html_ga8186ec2c330457d41d9686c47cd3b2d1"><div class="ttname"><a href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">glm::one</a></div><div class="ttdeci">GLM_FUNC_DECL genType one()</div><div class="ttdoc">Return 1. </div></div>
-<div class="ttc" id="a00168_html_ga9cae3fad9314e34c1d3aab71fcdef05f"><div class="ttname"><a href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">glm::root_ln_four</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_ln_four()</div><div class="ttdoc">Return sqrt(ln(4)). </div></div>
-<div class="ttc" id="a00168_html_ga00c3f7bc750ff62bbf47c8913a53daa5"><div class="ttname"><a href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">glm::two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_pi()</div><div class="ttdoc">Return pi * 2. </div></div>
-<div class="ttc" id="a00168_html_gace2b8dfed1ab9fabbb67dde08e7e5b58"><div class="ttname"><a href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">glm::root_five</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_five()</div><div class="ttdoc">Return sqrt(5). </div></div>
-<div class="ttc" id="a00168_html_gab83fb6de0f05d6c0d11bdf0479f8319e"><div class="ttname"><a href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL genType e()</div><div class="ttdoc">Return e constant. </div></div>
-<div class="ttc" id="a00168_html_ga0148d757b4bfda4d86251b8d1ea1dad3"><div class="ttname"><a href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">glm::quarter_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType quarter_pi()</div><div class="ttdoc">Return pi / 4. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00168_html_ga22fae798430edc3022766af4fd83e8a4"><div class="ttname"><a href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">glm::ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType ln_two()</div><div class="ttdoc">Return ln(2). </div></div>
-<div class="ttc" id="a00168_html_gab91b7799f88f9f2be33e385dec11b9c2"><div class="ttname"><a href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">glm::root_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_two()</div><div class="ttdoc">Return sqrt(2). </div></div>
-<div class="ttc" id="a00168_html_gab3183635ac615473e2f95852f491be83"><div class="ttname"><a href="a00168.html#gab3183635ac615473e2f95852f491be83">glm::root_three</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_three()</div><div class="ttdoc">Return sqrt(3). </div></div>
-<div class="ttc" id="a00168_html_gadde7f2efce3b14c8b26944fbafed4a10"><div class="ttname"><a href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">glm::two_thirds</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_thirds()</div><div class="ttdoc">Return 2 / 3. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00168_html_ga650774609debe4a90bcac449b574de2c"><div class="ttname"><a href="a00168.html#ga650774609debe4a90bcac449b574de2c">glm::ln_ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType ln_ln_two()</div><div class="ttdoc">Return ln(ln(2)). </div></div>
-<div class="ttc" id="a00168_html_ga5cc97dd01d37fc199264ff6030578435"><div class="ttname"><a href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">glm::zero</a></div><div class="ttdeci">GLM_FUNC_DECL genType zero()</div><div class="ttdoc">Return 0. </div></div>
-<div class="ttc" id="a00168_html_gac1a9b3248357fd9e9b740bed90e0b1b7"><div class="ttname"><a href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">glm::one_over_root_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType one_over_root_two()</div><div class="ttdoc">Return 1 / sqrt(2). </div></div>
-<div class="ttc" id="a00168_html_gae991b4d39c57b57990054eec3677597c"><div class="ttname"><a href="a00168.html#gae991b4d39c57b57990054eec3677597c">glm::root_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_two_pi()</div><div class="ttdoc">Return sqrt(2 * pi). </div></div>
-<div class="ttc" id="a00168_html_gaec5af85e2148c118aad7e797430fdeb0"><div class="ttname"><a href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">glm::root_half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_half_pi()</div><div class="ttdoc">Return sqrt(pi / 2). </div></div>
-<div class="ttc" id="a00168_html_ga9ba09a027db6d4f4e259b01cf5d6c178"><div class="ttname"><a href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">glm::one_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType one_over_pi()</div><div class="ttdoc">Return 1 / pi. </div></div>
-<div class="ttc" id="a00168_html_gafb68d06c9c9dc234210ce91d6707faac"><div class="ttname"><a href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">glm::four_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType four_over_pi()</div><div class="ttdoc">Return 4 / pi. </div></div>
-<div class="ttc" id="a00168_html_ga767e539c20585bf60aa63595b0f0b259"><div class="ttname"><a href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">glm::two_over_root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_over_root_pi()</div><div class="ttdoc">Return 2 / sqrt(pi). </div></div>
-<div class="ttc" id="a00168_html_ga48addf0cb0980277d208a71a1c59c073"><div class="ttname"><a href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">glm::ln_ten</a></div><div class="ttdeci">GLM_FUNC_DECL genType ln_ten()</div><div class="ttdoc">Return ln(10). </div></div>
-<div class="ttc" id="a00168_html_gac1e7dcb42b09c66df7a299c0f007b27d"><div class="ttname"><a href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">glm::one_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType one_over_two_pi()</div><div class="ttdoc">Return 1 / (pi * 2). </div></div>
-<div class="ttc" id="a00168_html_gae671930537266a9a650ccb4b88757692"><div class="ttname"><a href="a00168.html#gae671930537266a9a650ccb4b88757692">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
-<div class="ttc" id="a00168_html_gabf280496105e0ad070287417f840ebd8"><div class="ttname"><a href="a00168.html#gabf280496105e0ad070287417f840ebd8">glm::third</a></div><div class="ttdeci">GLM_FUNC_DECL genType third()</div><div class="ttdoc">Return 1 / 3. </div></div>
-<div class="ttc" id="a00168_html_gafd53093ef2d756333865d774bea3cdf9"><div class="ttname"><a href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">glm::golden_ratio</a></div><div class="ttdeci">GLM_FUNC_DECL genType golden_ratio()</div><div class="ttdoc">Return the golden ratio constant. </div></div>
-<div class="ttc" id="a00168_html_ga7f7a1050729f3b03b1873a06ba4a472f"><div class="ttname"><a href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">glm::half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType half_pi()</div><div class="ttdoc">Return pi / 2. </div></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_component_wise is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_component_wise extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">float</span>Type, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_FUNC_DECL vecType&lt;floatType, P&gt; <a class="code" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a>(vecType&lt;floatType, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a>(genType <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a>(genType <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a>(genType <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a>(genType <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;component_wise.inl&quot;</span></div>
+<div class="ttc" id="a00188_html_gaf71833350e15e74d31cbf8a3e7f27051"><div class="ttname"><a href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">glm::compAdd</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compAdd(genType const &amp;v)</div><div class="ttdoc">Add all vector components together. </div></div>
+<div class="ttc" id="a00188_html_gaea99a3271016bfd331d9fa7587f3db37"><div class="ttname"><a href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">glm::compScale</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; compScale(vecType&lt; floatType, P &gt; const &amp;v)</div><div class="ttdoc">Convert a normalized float vector to an integer vector. </div></div>
+<div class="ttc" id="a00188_html_gae8ab88024197202c9479d33bdc5a8a5d"><div class="ttname"><a href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">glm::compMul</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMul(genType const &amp;v)</div><div class="ttdoc">Multiply all vector components together. </div></div>
+<div class="ttc" id="a00188_html_gaeb34fdf090d2d4da9babcdfec267f09e"><div class="ttname"><a href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">glm::compNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; floatType, P &gt; compNormalize(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Convert an integer vector to a normalized float vector. </div></div>
+<div class="ttc" id="a00188_html_gab5d0832b5c7bb01b8d7395973bfb1425"><div class="ttname"><a href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">glm::compMin</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMin(genType const &amp;v)</div><div class="ttdoc">Find the minimum value between single vector components. </div></div>
+<div class="ttc" id="a00188_html_gabfa4bb19298c8c73d4217ba759c496b6"><div class="ttname"><a href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">glm::compMax</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMax(genType const &amp;v)</div><div class="ttdoc">Find the maximum value between single vector components. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00019.html b/3rdparty/glm/doc/api/a00019.html
index 2e7e60aa68d..329c127c101 100644
--- a/3rdparty/glm/doc/api/a00019.html
+++ b/3rdparty/glm/doc/api/a00019.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: dual_quaternion.hpp File Reference</title>
+<title>0.9.9 API documenation: constants.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,91 +64,162 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">dual_quaternion.hpp File Reference</div> </div>
+<div class="title">constants.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00162.html">GLM_GTC_constants</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00019_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
-<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
-<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
-<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
-<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
-<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
-<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
-<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
-<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
-<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
-<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
-<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
-<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> ()</td></tr>
+<tr class="memdesc:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return e constant. <a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">More...</a><br /></td></tr>
+<tr class="separator:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a> ()</td></tr>
+<tr class="memdesc:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the epsilon constant for floating point types. <a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">More...</a><br /></td></tr>
+<tr class="separator:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a> ()</td></tr>
+<tr class="memdesc:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return Euler's constant. <a href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">More...</a><br /></td></tr>
+<tr class="separator:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a> ()</td></tr>
+<tr class="memdesc:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 4 / pi. <a href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">More...</a><br /></td></tr>
+<tr class="separator:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a> ()</td></tr>
+<tr class="memdesc:ga748cf8642830657c5b7eae04d0a80899"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the golden ratio constant. <a href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">More...</a><br /></td></tr>
+<tr class="separator:ga748cf8642830657c5b7eae04d0a80899"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a> ()</td></tr>
+<tr class="memdesc:ga0c36b41d462e45641faf7d7938948bac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi / 2. <a href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">More...</a><br /></td></tr>
+<tr class="separator:ga0c36b41d462e45641faf7d7938948bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a> ()</td></tr>
+<tr class="memdesc:gaca94292c839ed31a405ab7a81ae7e850"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return ln(ln(2)). <a href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">More...</a><br /></td></tr>
+<tr class="separator:gaca94292c839ed31a405ab7a81ae7e850"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a> ()</td></tr>
+<tr class="memdesc:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return ln(10). <a href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">More...</a><br /></td></tr>
+<tr class="separator:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a> ()</td></tr>
+<tr class="memdesc:ga24f4d27765678116f41a2f336ab7975c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return ln(2). <a href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">More...</a><br /></td></tr>
+<tr class="separator:ga24f4d27765678116f41a2f336ab7975c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a> ()</td></tr>
+<tr class="memdesc:ga39c2fb227631ca25894326529bdd1ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1. <a href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">More...</a><br /></td></tr>
+<tr class="separator:ga39c2fb227631ca25894326529bdd1ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a> ()</td></tr>
+<tr class="memdesc:ga555150da2b06d23c8738981d5013e0eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / pi. <a href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">More...</a><br /></td></tr>
+<tr class="separator:ga555150da2b06d23c8738981d5013e0eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a> ()</td></tr>
+<tr class="memdesc:ga788fa23a0939bac4d1d0205fb4f35818"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / sqrt(2). <a href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">More...</a><br /></td></tr>
+<tr class="separator:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a> ()</td></tr>
+<tr class="memdesc:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / (pi * 2). <a href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">More...</a><br /></td></tr>
+<tr class="separator:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a> ()</td></tr>
+<tr class="memdesc:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pi constant. <a href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">More...</a><br /></td></tr>
+<tr class="separator:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a> ()</td></tr>
+<tr class="memdesc:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi / 4. <a href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">More...</a><br /></td></tr>
+<tr class="separator:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a> ()</td></tr>
+<tr class="memdesc:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(5). <a href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">More...</a><br /></td></tr>
+<tr class="separator:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a> ()</td></tr>
+<tr class="memdesc:ga4e276cb823cc5e612d4f89ed99c75039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(pi / 2). <a href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">More...</a><br /></td></tr>
+<tr class="separator:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a> ()</td></tr>
+<tr class="memdesc:ga4129412e96b33707a77c1a07652e23e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(ln(4)). <a href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">More...</a><br /></td></tr>
+<tr class="separator:ga4129412e96b33707a77c1a07652e23e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a> ()</td></tr>
+<tr class="memdesc:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return square root of pi. <a href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">More...</a><br /></td></tr>
+<tr class="separator:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a> ()</td></tr>
+<tr class="memdesc:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(3). <a href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">More...</a><br /></td></tr>
+<tr class="separator:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a> ()</td></tr>
+<tr class="memdesc:ga74e607d29020f100c0d0dc46ce2ca950"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(2). <a href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">More...</a><br /></td></tr>
+<tr class="separator:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a> ()</td></tr>
+<tr class="memdesc:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(2 * pi). <a href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">More...</a><br /></td></tr>
+<tr class="separator:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a> ()</td></tr>
+<tr class="memdesc:ga3077c6311010a214b69ddc8214ec13b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / 3. <a href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">More...</a><br /></td></tr>
+<tr class="separator:ga3077c6311010a214b69ddc8214ec13b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a> ()</td></tr>
+<tr class="memdesc:gae94950df74b0ce382b1fc1d978ef7394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi / 2 * 3. <a href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">More...</a><br /></td></tr>
+<tr class="separator:gae94950df74b0ce382b1fc1d978ef7394"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a> ()</td></tr>
+<tr class="memdesc:ga74eadc8a211253079683219a3ea0462a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 2 / pi. <a href="a00162.html#ga74eadc8a211253079683219a3ea0462a">More...</a><br /></td></tr>
+<tr class="separator:ga74eadc8a211253079683219a3ea0462a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a> ()</td></tr>
+<tr class="memdesc:ga5827301817640843cf02026a8d493894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 2 / sqrt(pi). <a href="a00162.html#ga5827301817640843cf02026a8d493894">More...</a><br /></td></tr>
+<tr class="separator:ga5827301817640843cf02026a8d493894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a> ()</td></tr>
+<tr class="memdesc:gaa5276a4617566abcfe49286f40e3a256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi * 2. <a href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">More...</a><br /></td></tr>
+<tr class="separator:gaa5276a4617566abcfe49286f40e3a256"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a> ()</td></tr>
+<tr class="memdesc:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 2 / 3. <a href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">More...</a><br /></td></tr>
+<tr class="separator:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a> ()</td></tr>
+<tr class="memdesc:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 0. <a href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">More...</a><br /></td></tr>
+<tr class="separator:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00193.html">GLM_GTX_dual_quaternion</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-02-10 / 2013-02-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Maksim Vorobiev (<a href="#" onclick="location.href='mai'+'lto:'+'mso'+'me'+'one'+'@g'+'mai'+'l.'+'com'; return false;">msome<span style="display: none;">.nosp@m.</span>one@<span style="display: none;">.nosp@m.</span>gmail<span style="display: none;">.nosp@m.</span>.com</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00162.html">GLM_GTC_constants</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00019_source.html">constants.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00019_source.html b/3rdparty/glm/doc/api/a00019_source.html
index fcc5e329ed4..a30280aa89d 100644
--- a/3rdparty/glm/doc/api/a00019_source.html
+++ b/3rdparty/glm/doc/api/a00019_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: dual_quaternion.hpp Source File</title>
+<title>0.9.9 API documenation: constants.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,229 +64,163 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">dual_quaternion.hpp</div> </div>
+<div class="title">constants.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00019.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_constants extension included&quot;)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>();</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a>();</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a>();</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a>();</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a>();</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_dual_quaternion extension included&quot;)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">struct </span>tdualquat</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> glm::tquat&lt;T, P&gt; part_type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; glm::tquat&lt;T, P&gt; real, dual;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL part_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL part_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a>();</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a>();</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a>();</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a>();</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a>();</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a>();</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a>();</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a>();</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL part_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL part_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tdualquat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tdualquat(tdualquat&lt;T, P&gt; const &amp; d) GLM_DEFAULT;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tdualquat(tdualquat&lt;T, Q&gt; const &amp; d);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL explicit tdualquat(ctor);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL explicit tdualquat(tquat&lt;T, P&gt; const &amp; real);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tdualquat(tquat&lt;T, P&gt; const &amp; <a class="code" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3&lt;T, P&gt; const &amp; translation);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tdualquat(tquat&lt;T, P&gt; const &amp; real, tquat&lt;T, P&gt; const &amp; dual);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a>();</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a>();</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a>();</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a>();</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tdualquat&lt;U, Q&gt; const &amp; q);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL explicit tdualquat(tmat2x4&lt;T, P&gt; const &amp; holder_mat);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL explicit tdualquat(tmat3x4&lt;T, P&gt; const &amp; aug_mat);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator=(tdualquat&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a>();</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; template &lt;typename U&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator=(tdualquat&lt;U, P&gt; const &amp; m);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template &lt;typename U&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; template &lt;typename U&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; };</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a>();</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a>();</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator-(tquat&lt;T, P&gt; const &amp; q);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a>();</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator+(tdualquat&lt;T, P&gt; const &amp; q, tdualquat&lt;T, P&gt; const &amp; p);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator*(tdualquat&lt;T, P&gt; const &amp; q, tdualquat&lt;T, P&gt; const &amp; p);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tquat&lt;T, P&gt; const &amp; q, tvec3&lt;T, P&gt; const &amp; v);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; const &amp; v, tquat&lt;T, P&gt; const &amp; q);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tquat&lt;T, P&gt; const &amp; q, tvec4&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a>();</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a>();</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a>();</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; const &amp; v, tquat&lt;T, P&gt; const &amp; q);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator*(tdualquat&lt;T, P&gt; const &amp; q, T const &amp; s);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator*(T const &amp; s, tdualquat&lt;T, P&gt; const &amp; q);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator/(tdualquat&lt;T, P&gt; const &amp; q, T const &amp; s);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a>(tdualquat&lt;T, P&gt; const &amp; q);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00193.html#ga8039b88397ca09275be924a26a806a59">lerp</a>(tdualquat&lt;T, P&gt; const &amp; x, tdualquat&lt;T, P&gt; const &amp; y, T const &amp; a);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a>(tdualquat&lt;T, P&gt; const &amp; q);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; <a class="code" href="a00193.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a>(tdualquat&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; <a class="code" href="a00193.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a>(tdualquat&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa"> 210</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, lowp&gt; <a class="code" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a>;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad"> 215</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, mediump&gt; <a class="code" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf"> 220</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, highp&gt; <a class="code" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a>;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860"> 226</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, lowp&gt; <a class="code" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431"> 231</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, mediump&gt; <a class="code" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a>;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564"> 236</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, highp&gt; <a class="code" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a>;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a"> 242</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">double</span>, lowp&gt; <a class="code" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4"> 247</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">double</span>, mediump&gt; <a class="code" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a>;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a"> 252</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">double</span>, highp&gt; <a class="code" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a>;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930"> 264</a></span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for single-precision floating-point types&quot;</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">typedef</span> mediump_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">typedef</span> lowp_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># error &quot;GLM error: Multiple default precision requested for double-precision floating-point types&quot;</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#include &quot;dual_quaternion.inl&quot;</span></div>
-<div class="ttc" id="a00193_html_ga20eb5758beb73cc6dbc2d9104f03ec20"><div class="ttname"><a href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">glm::dualquat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; dualquat_cast(tmat3x4&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </div></div>
-<div class="ttc" id="a00193_html_gab4c5103338af3dac7e0fbc86895a3f1a"><div class="ttname"><a href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">glm::lowp_ddualquat</a></div><div class="ttdeci">tdualquat&lt; double, lowp &gt; lowp_ddualquat</div><div class="ttdoc">Dual-quaternion of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00242">dual_quaternion.hpp:242</a></div></div>
-<div class="ttc" id="a00193_html_ga495818aa48c23e9e730f87a3c337d1d5"><div class="ttname"><a href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; normalize(tdualquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
-<div class="ttc" id="a00193_html_ga9ef5bf1da52a9d4932335a517086ceaf"><div class="ttname"><a href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">glm::highp_dualquat</a></div><div class="ttdeci">tdualquat&lt; float, highp &gt; highp_dualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00220">dual_quaternion.hpp:220</a></div></div>
-<div class="ttc" id="a00228_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientation(tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
-<div class="ttc" id="a00193_html_ga4a6b594ff7e81150d8143001367a9431"><div class="ttname"><a href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">glm::mediump_fdualquat</a></div><div class="ttdeci">tdualquat&lt; float, mediump &gt; mediump_fdualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00231">dual_quaternion.hpp:231</a></div></div>
-<div class="ttc" id="a00193_html_ga237c2b9b42c9a930e49de5840ae0f930"><div class="ttname"><a href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">glm::fdualquat</a></div><div class="ttdeci">highp_fdualquat fdualquat</div><div class="ttdoc">Dual-quaternion of single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00264">dual_quaternion.hpp:264</a></div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00193_html_gade05d29ebd4deea0f883d0e1bb4169aa"><div class="ttname"><a href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">glm::lowp_dualquat</a></div><div class="ttdeci">tdualquat&lt; float, lowp &gt; lowp_dualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00210">dual_quaternion.hpp:210</a></div></div>
-<div class="ttc" id="a00193_html_ga8039b88397ca09275be924a26a806a59"><div class="ttname"><a href="a00193.html#ga8039b88397ca09275be924a26a806a59">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; lerp(tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Returns the linear interpolation of two dual quaternion. </div></div>
-<div class="ttc" id="a00193_html_ga2d124748183e12db8288eeaca350298e"><div class="ttname"><a href="a00193.html#ga2d124748183e12db8288eeaca350298e">glm::mat2x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4&lt; T, P &gt; mat2x4_cast(tdualquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 2 * 4 matrix. </div></div>
-<div class="ttc" id="a00193_html_ga3d71f98d84ba59dfe4e369fde4714cd6"><div class="ttname"><a href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">glm::ddualquat</a></div><div class="ttdeci">highp_ddualquat ddualquat</div><div class="ttdoc">Dual-quaternion of default double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00283">dual_quaternion.hpp:283</a></div></div>
-<div class="ttc" id="a00193_html_ga8f67eafa7197d7a668dad5105a463d2a"><div class="ttname"><a href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">glm::highp_ddualquat</a></div><div class="ttdeci">tdualquat&lt; double, highp &gt; highp_ddualquat</div><div class="ttdoc">Dual-quaternion of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00252">dual_quaternion.hpp:252</a></div></div>
-<div class="ttc" id="a00193_html_ga4c4e55e9c99dc57b299ed590968da564"><div class="ttname"><a href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">glm::highp_fdualquat</a></div><div class="ttdeci">tdualquat&lt; float, highp &gt; highp_fdualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00236">dual_quaternion.hpp:236</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00193_html_ga2149d3cb8af04d9530de0cd16aa1aab2"><div class="ttname"><a href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; inverse(tdualquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q inverse. </div></div>
-<div class="ttc" id="a00193_html_gaa7aeb54c167712b38f2178a1be2360ad"><div class="ttname"><a href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">glm::mediump_dualquat</a></div><div class="ttdeci">tdualquat&lt; float, mediump &gt; mediump_dualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00215">dual_quaternion.hpp:215</a></div></div>
-<div class="ttc" id="a00193_html_ga0fb11e48e2d16348ccb06a25213641b4"><div class="ttname"><a href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">glm::mediump_ddualquat</a></div><div class="ttdeci">tdualquat&lt; double, mediump &gt; mediump_ddualquat</div><div class="ttdoc">Dual-quaternion of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00247">dual_quaternion.hpp:247</a></div></div>
-<div class="ttc" id="a00193_html_ga576745d979e3c079a64152490c816954"><div class="ttname"><a href="a00193.html#ga576745d979e3c079a64152490c816954">glm::mat3x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4&lt; T, P &gt; mat3x4_cast(tdualquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 4 matrix. </div></div>
-<div class="ttc" id="a00193_html_gaa38f671be25a7f3b136a452a8bb42860"><div class="ttname"><a href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">glm::lowp_fdualquat</a></div><div class="ttdeci">tdualquat&lt; float, lowp &gt; lowp_fdualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00226">dual_quaternion.hpp:226</a></div></div>
-<div class="ttc" id="a00193_html_gae93abee0c979902fbec6a7bee0f6fae1"><div class="ttname"><a href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">glm::dualquat</a></div><div class="ttdeci">highp_fdualquat dualquat</div><div class="ttdoc">Dual-quaternion of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00259">dual_quaternion.hpp:259</a></div></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a>();</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a>();</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a>();</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a>();</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#include &quot;constants.inl&quot;</span></div>
+<div class="ttc" id="a00162_html_ga74e607d29020f100c0d0dc46ce2ca950"><div class="ttname"><a href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">glm::root_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_two()</div><div class="ttdoc">Return sqrt(2). </div></div>
+<div class="ttc" id="a00162_html_ga261380796b2cd496f68d2cf1d08b8eb9"><div class="ttname"><a href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">glm::root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi()</div><div class="ttdoc">Return square root of pi. </div></div>
+<div class="ttc" id="a00162_html_ga788f5a421fc0f40a1296ebc094cbaa8a"><div class="ttname"><a href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">glm::zero</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType zero()</div><div class="ttdoc">Return 0. </div></div>
+<div class="ttc" id="a00162_html_ga39c2fb227631ca25894326529bdd1ee5"><div class="ttname"><a href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">glm::one</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one()</div><div class="ttdoc">Return 1. </div></div>
+<div class="ttc" id="a00162_html_gad8fe2e6f90bce9d829e9723b649fbd42"><div class="ttname"><a href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">glm::euler</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType euler()</div><div class="ttdoc">Return Euler&#39;s constant. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00162_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant. </div></div>
+<div class="ttc" id="a00162_html_ga5827301817640843cf02026a8d493894"><div class="ttname"><a href="a00162.html#ga5827301817640843cf02026a8d493894">glm::two_over_root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi()</div><div class="ttdoc">Return 2 / sqrt(pi). </div></div>
+<div class="ttc" id="a00162_html_ga4f286be4abe88be1eed7d2a9f6cb193e"><div class="ttname"><a href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">glm::root_three</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_three()</div><div class="ttdoc">Return sqrt(3). </div></div>
+<div class="ttc" id="a00162_html_gaf97ebc6c059ffd788e6c4946f71ef66c"><div class="ttname"><a href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">glm::ln_ten</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten()</div><div class="ttdoc">Return ln(10). </div></div>
+<div class="ttc" id="a00162_html_ga3077c6311010a214b69ddc8214ec13b5"><div class="ttname"><a href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">glm::third</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType third()</div><div class="ttdoc">Return 1 / 3. </div></div>
+<div class="ttc" id="a00162_html_ga24f4d27765678116f41a2f336ab7975c"><div class="ttname"><a href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">glm::ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two()</div><div class="ttdoc">Return ln(2). </div></div>
+<div class="ttc" id="a00162_html_ga788fa23a0939bac4d1d0205fb4f35818"><div class="ttname"><a href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">glm::one_over_root_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two()</div><div class="ttdoc">Return 1 / sqrt(2). </div></div>
+<div class="ttc" id="a00162_html_gaca94292c839ed31a405ab7a81ae7e850"><div class="ttname"><a href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">glm::ln_ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two()</div><div class="ttdoc">Return ln(ln(2)). </div></div>
+<div class="ttc" id="a00162_html_gae94950df74b0ce382b1fc1d978ef7394"><div class="ttname"><a href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">glm::three_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi()</div><div class="ttdoc">Return pi / 2 * 3. </div></div>
+<div class="ttc" id="a00162_html_ga0c36b41d462e45641faf7d7938948bac"><div class="ttname"><a href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">glm::half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi()</div><div class="ttdoc">Return pi / 2. </div></div>
+<div class="ttc" id="a00162_html_ga7c922b427986cbb2e4c6ac69874eefbc"><div class="ttname"><a href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">glm::one_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi()</div><div class="ttdoc">Return 1 / (pi * 2). </div></div>
+<div class="ttc" id="a00162_html_gae9ebbded75b53d4faeb1e4ef8b3347a2"><div class="ttname"><a href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">glm::root_five</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_five()</div><div class="ttdoc">Return sqrt(5). </div></div>
+<div class="ttc" id="a00162_html_ga4e276cb823cc5e612d4f89ed99c75039"><div class="ttname"><a href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">glm::root_half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi()</div><div class="ttdoc">Return sqrt(pi / 2). </div></div>
+<div class="ttc" id="a00162_html_ga2bcedc575039fe0cd765742f8bbb0bd3"><div class="ttname"><a href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">glm::root_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi()</div><div class="ttdoc">Return sqrt(2 * pi). </div></div>
+<div class="ttc" id="a00162_html_ga753950e5140e4ea6a88e4a18ba61dc09"><div class="ttname"><a href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">glm::four_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi()</div><div class="ttdoc">Return 4 / pi. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00162_html_ga4129412e96b33707a77c1a07652e23e2"><div class="ttname"><a href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">glm::root_ln_four</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four()</div><div class="ttdoc">Return sqrt(ln(4)). </div></div>
+<div class="ttc" id="a00162_html_ga555150da2b06d23c8738981d5013e0eb"><div class="ttname"><a href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">glm::one_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi()</div><div class="ttdoc">Return 1 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga9b4d2f4322edcf63a6737b92a29dd1f5"><div class="ttname"><a href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">glm::two_thirds</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds()</div><div class="ttdoc">Return 2 / 3. </div></div>
+<div class="ttc" id="a00162_html_ga3c9df42bd73c519a995c43f0f99e77e0"><div class="ttname"><a href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">glm::quarter_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi()</div><div class="ttdoc">Return pi / 4. </div></div>
+<div class="ttc" id="a00162_html_ga94bafeb2a0f23ab6450fed1f98ee4e45"><div class="ttname"><a href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
+<div class="ttc" id="a00162_html_ga74eadc8a211253079683219a3ea0462a"><div class="ttname"><a href="a00162.html#ga74eadc8a211253079683219a3ea0462a">glm::two_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi()</div><div class="ttdoc">Return 2 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga748cf8642830657c5b7eae04d0a80899"><div class="ttname"><a href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">glm::golden_ratio</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio()</div><div class="ttdoc">Return the golden ratio constant. </div></div>
+<div class="ttc" id="a00162_html_gaa5276a4617566abcfe49286f40e3a256"><div class="ttname"><a href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">glm::two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi()</div><div class="ttdoc">Return pi * 2. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00020.html b/3rdparty/glm/doc/api/a00020.html
index 9972355877c..ee47e7c5f40 100644
--- a/3rdparty/glm/doc/api/a00020.html
+++ b/3rdparty/glm/doc/api/a00020.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: epsilon.hpp File Reference</title>
+<title>0.9.9 API documenation: dual_quaternion.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,52 +64,119 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">epsilon.hpp File Reference</div> </div>
+<div class="title">dual_quaternion.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00020_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
+<tr class="memdesc:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of default double-precision floating-point numbers. <a href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">More...</a><br /></td></tr>
+<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
+<tr class="memdesc:gae93abee0c979902fbec6a7bee0f6fae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of floating-point numbers. <a href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">More...</a><br /></td></tr>
+<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
+<tr class="memdesc:ga237c2b9b42c9a930e49de5840ae0f930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of single-precision floating-point numbers. <a href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">More...</a><br /></td></tr>
+<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
+<tr class="memdesc:ga8f67eafa7197d7a668dad5105a463d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of high double-precision floating-point numbers. <a href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">More...</a><br /></td></tr>
+<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
+<tr class="memdesc:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of high single-precision floating-point numbers. <a href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">More...</a><br /></td></tr>
+<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
+<tr class="memdesc:ga4c4e55e9c99dc57b299ed590968da564"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of high single-precision floating-point numbers. <a href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">More...</a><br /></td></tr>
+<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
+<tr class="memdesc:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of low double-precision floating-point numbers. <a href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">More...</a><br /></td></tr>
+<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
+<tr class="memdesc:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of low single-precision floating-point numbers. <a href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">More...</a><br /></td></tr>
+<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
+<tr class="memdesc:gaa38f671be25a7f3b136a452a8bb42860"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of low single-precision floating-point numbers. <a href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">More...</a><br /></td></tr>
+<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
+<tr class="memdesc:ga0fb11e48e2d16348ccb06a25213641b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of medium double-precision floating-point numbers. <a href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">More...</a><br /></td></tr>
+<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
+<tr class="memdesc:gaa7aeb54c167712b38f2178a1be2360ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of medium single-precision floating-point numbers. <a href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">More...</a><br /></td></tr>
+<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
+<tr class="memdesc:ga4a6b594ff7e81150d8143001367a9431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of medium single-precision floating-point numbers. <a href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">More...</a><br /></td></tr>
+<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, T const &amp;epsilon)</td></tr>
-<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
-<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, typename genType::value_type const &amp;epsilon)</td></tr>
-<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
-<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gada9799afe2b62394dc498534beb5bc78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. <a href="a00189.html#gada9799afe2b62394dc498534beb5bc78">More...</a><br /></td></tr>
+<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. <a href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">More...</a><br /></td></tr>
+<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q inverse. <a href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">More...</a><br /></td></tr>
+<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:ga8039b88397ca09275be924a26a806a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the linear interpolation of two dual quaternion. <a href="a00189.html#ga8039b88397ca09275be924a26a806a59">More...</a><br /></td></tr>
+<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2d124748183e12db8288eeaca350298e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 2 * 4 matrix. <a href="a00189.html#ga2d124748183e12db8288eeaca350298e">More...</a><br /></td></tr>
+<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga576745d979e3c079a64152490c816954"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 3 * 4 matrix. <a href="a00189.html#ga576745d979e3c079a64152490c816954">More...</a><br /></td></tr>
+<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga495818aa48c23e9e730f87a3c337d1d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the normalized quaternion. <a href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">More...</a><br /></td></tr>
+<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00169.html">GLM_GTC_epsilon</a></p>
-<dl class="section date"><dt>Date</dt><dd>2012-04-07 / 2012-04-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Maksim Vorobiev (<a href="#" onclick="location.href='mai'+'lto:'+'mso'+'me'+'one'+'@g'+'mai'+'l.'+'com'; return false;">msome<span style="display: none;">.nosp@m.</span>one@<span style="display: none;">.nosp@m.</span>gmail<span style="display: none;">.nosp@m.</span>.com</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-gtc_half_float (dependence) </dd>
+<a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd>
<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00020_source.html">epsilon.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00020_source.html b/3rdparty/glm/doc/api/a00020_source.html
index 423bb841e2d..53e61c79763 100644
--- a/3rdparty/glm/doc/api/a00020_source.html
+++ b/3rdparty/glm/doc/api/a00020_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: epsilon.hpp Source File</title>
+<title>0.9.9 API documenation: dual_quaternion.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,61 +64,245 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">epsilon.hpp</div> </div>
+<div class="title">dual_quaternion.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00020.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_dual_quaternion is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_dual_quaternion extension included&quot;)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">struct </span>tdualquat</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> glm::tquat&lt;T, P&gt; part_type;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// -- Data --</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; glm::tquat&lt;T, P&gt; real, dual;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// -- Component accesses --</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_epsilon extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 2;}</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL part_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL part_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat&lt;T, P&gt; const &amp; d) GLM_DEFAULT;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat&lt;T, Q&gt; const &amp; d);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tdualquat(ctor);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat&lt;T, P&gt; const &amp; real);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat&lt;T, P&gt; const &amp; <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3&lt;T, P&gt; const &amp; translation);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat&lt;T, P&gt; const &amp; real, tquat&lt;T, P&gt; const &amp; dual);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat&lt;U, Q&gt; const &amp; q);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat2x4&lt;T, P&gt; const &amp; holder_mat);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat3x4&lt;T, P&gt; const &amp; aug_mat);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::boolType <a class="code" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator=(tdualquat&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator=(tdualquat&lt;U, P&gt; const &amp; m);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator+(tdualquat&lt;T, P&gt; const &amp; q);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator-(tdualquat&lt;T, P&gt; const &amp; q);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#include &quot;epsilon.inl&quot;</span></div>
-<div class="ttc" id="a00169_html_ga50a92103fb0cbd796908e1bf20c79aaf"><div class="ttname"><a href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">glm::epsilonNotEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonNotEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| >= epsilon. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00169_html_gaa7f227999ca09e7ca994e8b35aba47bb"><div class="ttname"><a href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">glm::epsilonEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| < epsilon. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator+(tdualquat&lt;T, P&gt; const &amp; q, tdualquat&lt;T, P&gt; const &amp; p);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator*(tdualquat&lt;T, P&gt; const &amp; q, tdualquat&lt;T, P&gt; const &amp; p);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tdualquat&lt;T, P&gt; const &amp; q, tvec3&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; const &amp; v, tdualquat&lt;T, P&gt; const &amp; q);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tdualquat&lt;T, P&gt; const &amp; q, tvec4&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; const &amp; v, tdualquat&lt;T, P&gt; const &amp; q);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator*(tdualquat&lt;T, P&gt; const &amp; q, T const &amp; s);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator*(T const &amp; s, tdualquat&lt;T, P&gt; const &amp; q);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; operator/(tdualquat&lt;T, P&gt; const &amp; q, T const &amp; s);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tdualquat&lt;T, P&gt; const &amp; q1, tdualquat&lt;T, P&gt; const &amp; q2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tdualquat&lt;T, P&gt; const &amp; q1, tdualquat&lt;T, P&gt; const &amp; q2);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a>(tdualquat&lt;T, P&gt; const &amp; q);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a>(tdualquat&lt;T, P&gt; const &amp; x, tdualquat&lt;T, P&gt; const &amp; y, T const &amp; a);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a>(tdualquat&lt;T, P&gt; const &amp; q);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; <a class="code" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a>(tdualquat&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; <a class="code" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a>(tdualquat&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tdualquat&lt;T, P&gt; <a class="code" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa"> 182</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, lowp&gt; <a class="code" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad"> 187</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, mediump&gt; <a class="code" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a>;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf"> 192</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, highp&gt; <a class="code" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860"> 198</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, lowp&gt; <a class="code" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431"> 203</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, mediump&gt; <a class="code" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564"> 208</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">float</span>, highp&gt; <a class="code" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a"> 214</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">double</span>, lowp&gt; <a class="code" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4"> 219</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">double</span>, mediump&gt; <a class="code" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a"> 224</a></span>&#160; typedef tdualquat&lt;<span class="keywordtype">double</span>, highp&gt; <a class="code" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930"> 236</a></span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for single-precision floating-point types&quot;</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">typedef</span> mediump_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">typedef</span> lowp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"># error &quot;GLM error: Multiple default precision requested for double-precision floating-point types&quot;</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#include &quot;dual_quaternion.inl&quot;</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientation(tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00189_html_gaa38f671be25a7f3b136a452a8bb42860"><div class="ttname"><a href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">glm::lowp_fdualquat</a></div><div class="ttdeci">tdualquat&lt; float, lowp &gt; lowp_fdualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00198">dual_quaternion.hpp:198</a></div></div>
+<div class="ttc" id="a00189_html_ga20eb5758beb73cc6dbc2d9104f03ec20"><div class="ttname"><a href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">glm::dualquat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; dualquat_cast(tmat3x4&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga237c2b9b42c9a930e49de5840ae0f930"><div class="ttname"><a href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">glm::fdualquat</a></div><div class="ttdeci">highp_fdualquat fdualquat</div><div class="ttdoc">Dual-quaternion of single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00236">dual_quaternion.hpp:236</a></div></div>
+<div class="ttc" id="a00189_html_ga0fb11e48e2d16348ccb06a25213641b4"><div class="ttname"><a href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">glm::mediump_ddualquat</a></div><div class="ttdeci">tdualquat&lt; double, mediump &gt; mediump_ddualquat</div><div class="ttdoc">Dual-quaternion of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00219">dual_quaternion.hpp:219</a></div></div>
+<div class="ttc" id="a00189_html_ga495818aa48c23e9e730f87a3c337d1d5"><div class="ttname"><a href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; normalize(tdualquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga4a6b594ff7e81150d8143001367a9431"><div class="ttname"><a href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">glm::mediump_fdualquat</a></div><div class="ttdeci">tdualquat&lt; float, mediump &gt; mediump_fdualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00203">dual_quaternion.hpp:203</a></div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00189_html_gab4c5103338af3dac7e0fbc86895a3f1a"><div class="ttname"><a href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">glm::lowp_ddualquat</a></div><div class="ttdeci">tdualquat&lt; double, lowp &gt; lowp_ddualquat</div><div class="ttdoc">Dual-quaternion of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00214">dual_quaternion.hpp:214</a></div></div>
+<div class="ttc" id="a00189_html_ga3d71f98d84ba59dfe4e369fde4714cd6"><div class="ttname"><a href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">glm::ddualquat</a></div><div class="ttdeci">highp_ddualquat ddualquat</div><div class="ttdoc">Dual-quaternion of default double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00255">dual_quaternion.hpp:255</a></div></div>
+<div class="ttc" id="a00189_html_gae93abee0c979902fbec6a7bee0f6fae1"><div class="ttname"><a href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">glm::dualquat</a></div><div class="ttdeci">highp_fdualquat dualquat</div><div class="ttdoc">Dual-quaternion of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00231">dual_quaternion.hpp:231</a></div></div>
+<div class="ttc" id="a00189_html_ga4c4e55e9c99dc57b299ed590968da564"><div class="ttname"><a href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">glm::highp_fdualquat</a></div><div class="ttdeci">tdualquat&lt; float, highp &gt; highp_fdualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00208">dual_quaternion.hpp:208</a></div></div>
+<div class="ttc" id="a00189_html_gaa7aeb54c167712b38f2178a1be2360ad"><div class="ttname"><a href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">glm::mediump_dualquat</a></div><div class="ttdeci">tdualquat&lt; float, mediump &gt; mediump_dualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00187">dual_quaternion.hpp:187</a></div></div>
+<div class="ttc" id="a00189_html_ga8039b88397ca09275be924a26a806a59"><div class="ttname"><a href="a00189.html#ga8039b88397ca09275be924a26a806a59">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; lerp(tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Returns the linear interpolation of two dual quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga576745d979e3c079a64152490c816954"><div class="ttname"><a href="a00189.html#ga576745d979e3c079a64152490c816954">glm::mat3x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4&lt; T, P &gt; mat3x4_cast(tdualquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 4 matrix. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00189_html_ga9ef5bf1da52a9d4932335a517086ceaf"><div class="ttname"><a href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">glm::highp_dualquat</a></div><div class="ttdeci">tdualquat&lt; float, highp &gt; highp_dualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00192">dual_quaternion.hpp:192</a></div></div>
+<div class="ttc" id="a00189_html_ga2d124748183e12db8288eeaca350298e"><div class="ttname"><a href="a00189.html#ga2d124748183e12db8288eeaca350298e">glm::mat2x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4&lt; T, P &gt; mat2x4_cast(tdualquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 2 * 4 matrix. </div></div>
+<div class="ttc" id="a00189_html_gade05d29ebd4deea0f883d0e1bb4169aa"><div class="ttname"><a href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">glm::lowp_dualquat</a></div><div class="ttdeci">tdualquat&lt; float, lowp &gt; lowp_dualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00182">dual_quaternion.hpp:182</a></div></div>
+<div class="ttc" id="a00189_html_ga2149d3cb8af04d9530de0cd16aa1aab2"><div class="ttname"><a href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat&lt; T, P &gt; inverse(tdualquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q inverse. </div></div>
+<div class="ttc" id="a00189_html_ga8f67eafa7197d7a668dad5105a463d2a"><div class="ttname"><a href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">glm::highp_ddualquat</a></div><div class="ttdeci">tdualquat&lt; double, highp &gt; highp_ddualquat</div><div class="ttdoc">Dual-quaternion of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00224">dual_quaternion.hpp:224</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00021.html b/3rdparty/glm/doc/api/a00021.html
index b690e8d752c..1b0d7e1d8cf 100644
--- a/3rdparty/glm/doc/api/a00021.html
+++ b/3rdparty/glm/doc/api/a00021.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: euler_angles.hpp File Reference</title>
+<title>0.9.9 API documenation: epsilon.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,89 +64,64 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">euler_angles.hpp File Reference</div> </div>
+<div class="title">epsilon.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00163.html">GLM_GTC_epsilon</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00021_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &amp;angleX)</td></tr>
-<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &amp;angleX, T const &amp;angleY)</td></tr>
-<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &amp;t1, T const &amp;t2, T const &amp;t3)</td></tr>
-<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &amp;angleX, T const &amp;angleZ)</td></tr>
-<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &amp;angleY)</td></tr>
-<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &amp;angleY, T const &amp;angleX)</td></tr>
-<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
-<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &amp;angleY, T const &amp;angleZ)</td></tr>
-<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &amp;angleZ)</td></tr>
-<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &amp;angle, T const &amp;angleX)</td></tr>
-<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &amp;angleZ, T const &amp;angleY)</td></tr>
-<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">extractEulerAngleXYZ</a> (tmat4x4&lt; T, defaultp &gt; &amp;M, T &amp;t1, T &amp;t2, T &amp;t3)</td></tr>
-<tr class="separator:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &amp;angle)</td></tr>
-<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &amp;angle)</td></tr>
-<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
-<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
-<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
-<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gaca9443f217dc36587624247245522331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &lt; epsilon. <a href="a00163.html#gaca9443f217dc36587624247245522331">More...</a><br /></td></tr>
+<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
+<tr class="memdesc:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &lt; epsilon. <a href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">More...</a><br /></td></tr>
+<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, typename genType::value_type const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga14e2888a304654ade8a3996024e2739c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &lt; epsilon. <a href="a00163.html#ga14e2888a304654ade8a3996024e2739c">More...</a><br /></td></tr>
+<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &gt;= epsilon. <a href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">More...</a><br /></td></tr>
+<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00194.html">GLM_GTX_euler_angles</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00163.html">GLM_GTC_epsilon</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-gtc_half_float (dependence) </dd></dl>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00021_source.html">euler_angles.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00021_source.html">epsilon.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00021_source.html b/3rdparty/glm/doc/api/a00021_source.html
index 96ff6ebad2b..6d4b1606e6e 100644
--- a/3rdparty/glm/doc/api/a00021_source.html
+++ b/3rdparty/glm/doc/api/a00021_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: euler_angles.hpp Source File</title>
+<title>0.9.9 API documenation: epsilon.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,131 +64,75 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">euler_angles.hpp</div> </div>
+<div class="title">epsilon.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00021.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_euler_angles extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; angleX);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; T <span class="keyword">const</span> &amp; angleY);</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_epsilon extension included&quot;)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::boolType <a class="code" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; genType <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; genType <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; T <span class="keyword">const</span> &amp; angleZ);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; T <span class="keyword">const</span> &amp; angleX,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; T <span class="keyword">const</span> &amp; angleY);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a>(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; T <span class="keyword">const</span> &amp; angleY,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; T <span class="keyword">const</span> &amp; angleX);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a>(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; T <span class="keyword">const</span> &amp; angleX,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; T <span class="keyword">const</span> &amp; angleZ);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a>(</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; T <span class="keyword">const</span> &amp; angleX);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a>(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; T <span class="keyword">const</span> &amp; angleY,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; T <span class="keyword">const</span> &amp; angleZ);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a>(</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; T <span class="keyword">const</span> &amp; angleZ,</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; T <span class="keyword">const</span> &amp; angleY);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a>(</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; T <span class="keyword">const</span> &amp; t1,</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; T <span class="keyword">const</span> &amp; t2,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; T <span class="keyword">const</span> &amp; t3);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a>(</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; <a class="code" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; angles);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; angles);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">extractEulerAngleXYZ</a>(tmat4x4&lt;T, defaultp&gt; &amp; M,</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; T &amp; t1,</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; T &amp; t2,</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; T &amp; t3);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor">#include &quot;euler_angles.inl&quot;</span></div>
-<div class="ttc" id="a00194_html_gaef83cf40bd9ae780011b29970f16f622"><div class="ttname"><a href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">glm::eulerAngleZX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleZX(T const &amp;angle, T const &amp;angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </div></div>
-<div class="ttc" id="a00177_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00194_html_ga4e25c9468b6f002c76e9a2412bcfa503"><div class="ttname"><a href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">glm::orientate4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientate4(tvec3&lt; T, P &gt; const &amp;angles)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00194_html_ga1033f84f51d61646145352ef0c1bb58c"><div class="ttname"><a href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">glm::eulerAngleYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleYZ(T const &amp;angleY, T const &amp;angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </div></div>
-<div class="ttc" id="a00194_html_gafdd02f9a37511190962119adef5c1c25"><div class="ttname"><a href="a00194.html#gafdd02f9a37511190962119adef5c1c25">glm::eulerAngleYX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleYX(T const &amp;angleY, T const &amp;angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </div></div>
-<div class="ttc" id="a00194_html_ga77ab6440250bd8b7e87a06c5643d6e74"><div class="ttname"><a href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">glm::extractEulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4&lt; T, defaultp &gt; &amp;M, T &amp;t1, T &amp;t2, T &amp;t3)</div><div class="ttdoc">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </div></div>
-<div class="ttc" id="a00194_html_ga8bf84f92ca976a7f50dbe4b30ceb72dd"><div class="ttname"><a href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">glm::eulerAngleXY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleXY(T const &amp;angleX, T const &amp;angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </div></div>
-<div class="ttc" id="a00194_html_ga02f037926568bbd12dfece3b28b20343"><div class="ttname"><a href="a00194.html#ga02f037926568bbd12dfece3b28b20343">glm::eulerAngleZY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleZY(T const &amp;angleZ, T const &amp;angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </div></div>
-<div class="ttc" id="a00194_html_ga33f0d790cecd8337ee83f8e3a8109b11"><div class="ttname"><a href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">glm::orientate3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; orientate3(tvec3&lt; T, P &gt; const &amp;angles)</div><div class="ttdoc">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00194_html_ga6f465681cbbc575ad93a53ec918dacf3"><div class="ttname"><a href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">glm::orientate2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt; orientate2(T const &amp;angle)</div><div class="ttdoc">Creates a 2D 2 * 2 rotation matrix from an euler angle. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00194_html_gab59c4fe7f735568255cc19fddd3ddfcd"><div class="ttname"><a href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">glm::eulerAngleZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleZ(T const &amp;angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </div></div>
-<div class="ttc" id="a00194_html_gaf9c8d0f1df88c5344165600774489bc5"><div class="ttname"><a href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">glm::yawPitchRoll</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; yawPitchRoll(T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00194_html_ga82cd3b8a04943f1a0d1a562aff358dc8"><div class="ttname"><a href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">glm::eulerAngleX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleX(T const &amp;angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00194_html_gab2d7dc94b9a7519d741aaa208c7a335b"><div class="ttname"><a href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">glm::eulerAngleXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleXZ(T const &amp;angleX, T const &amp;angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </div></div>
-<div class="ttc" id="a00177_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00194_html_gaeb193af1184bdf39c23636d756e1ff33"><div class="ttname"><a href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">glm::eulerAngleY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleY(T const &amp;angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </div></div>
-<div class="ttc" id="a00194_html_gaaedda1657a1aebe0a904d864b33844e8"><div class="ttname"><a href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">glm::eulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleXYZ(T const &amp;t1, T const &amp;t2, T const &amp;t3)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </div></div>
-<div class="ttc" id="a00194_html_ga0242b5ab68651db70c6025815549427f"><div class="ttname"><a href="a00194.html#ga0242b5ab68651db70c6025815549427f">glm::eulerAngleYXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleYXZ(T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00177_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;epsilon.inl&quot;</span></div>
+<div class="ttc" id="a00163_html_ga50a92103fb0cbd796908e1bf20c79aaf"><div class="ttname"><a href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">glm::epsilonNotEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonNotEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| >= epsilon. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00163_html_gaa7f227999ca09e7ca994e8b35aba47bb"><div class="ttname"><a href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">glm::epsilonEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| < epsilon. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00022.html b/3rdparty/glm/doc/api/a00022.html
index d4fca8ea93c..9ad8dbccb21 100644
--- a/3rdparty/glm/doc/api/a00022.html
+++ b/3rdparty/glm/doc/api/a00022.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: exponential.hpp File Reference</title>
+<title>0.9.9 API documenation: euler_angles.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,114 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">exponential.hpp File Reference</div> </div>
+<div class="title">euler_angles.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00190.html">GLM_GTX_euler_angles</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00022_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &amp;angleX)</td></tr>
+<tr class="memdesc:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. <a href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">More...</a><br /></td></tr>
+<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &amp;angleX, T const &amp;angleY)</td></tr>
+<tr class="memdesc:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). <a href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">More...</a><br /></td></tr>
+<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &amp;t1, T const &amp;t2, T const &amp;t3)</td></tr>
+<tr class="memdesc:gaaedda1657a1aebe0a904d864b33844e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). <a href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">More...</a><br /></td></tr>
+<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &amp;angleX, T const &amp;angleZ)</td></tr>
+<tr class="memdesc:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). <a href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">More...</a><br /></td></tr>
+<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &amp;angleY)</td></tr>
+<tr class="memdesc:gaeb193af1184bdf39c23636d756e1ff33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. <a href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">More...</a><br /></td></tr>
+<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &amp;angleY, T const &amp;angleX)</td></tr>
+<tr class="memdesc:gafdd02f9a37511190962119adef5c1c25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). <a href="a00190.html#gafdd02f9a37511190962119adef5c1c25">More...</a><br /></td></tr>
+<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
+<tr class="memdesc:ga0242b5ab68651db70c6025815549427f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#ga0242b5ab68651db70c6025815549427f">More...</a><br /></td></tr>
+<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &amp;angleY, T const &amp;angleZ)</td></tr>
+<tr class="memdesc:ga1033f84f51d61646145352ef0c1bb58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). <a href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">More...</a><br /></td></tr>
+<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &amp;angleZ)</td></tr>
+<tr class="memdesc:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. <a href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">More...</a><br /></td></tr>
+<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &amp;angle, T const &amp;angleX)</td></tr>
+<tr class="memdesc:gaef83cf40bd9ae780011b29970f16f622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). <a href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">More...</a><br /></td></tr>
+<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &amp;angleZ, T const &amp;angleY)</td></tr>
+<tr class="memdesc:ga02f037926568bbd12dfece3b28b20343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). <a href="a00190.html#ga02f037926568bbd12dfece3b28b20343">More...</a><br /></td></tr>
+<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a> (tmat4x4&lt; T, defaultp &gt; const &amp;M, T &amp;t1, T &amp;t2, T &amp;t3)</td></tr>
+<tr class="memdesc:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. <a href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">More...</a><br /></td></tr>
+<tr class="separator:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &amp;angle)</td></tr>
+<tr class="memdesc:ga6f465681cbbc575ad93a53ec918dacf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 2D 2 * 2 rotation matrix from an euler angle. <a href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">More...</a><br /></td></tr>
+<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &amp;angle)</td></tr>
+<tr class="memdesc:gab188e2526dea3c003e86e298f618085e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. <a href="a00190.html#gab188e2526dea3c003e86e298f618085e">More...</a><br /></td></tr>
+<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
+<tr class="memdesc:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">More...</a><br /></td></tr>
+<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
+<tr class="memdesc:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">More...</a><br /></td></tr>
+<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
+<tr class="memdesc:gaf9c8d0f1df88c5344165600774489bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">More...</a><br /></td></tr>
+<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00190.html">GLM_GTX_euler_angles</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00022_source.html">exponential.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00022_source.html">euler_angles.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00022_source.html b/3rdparty/glm/doc/api/a00022_source.html
index 7f9c7c35327..53103fcd4d9 100644
--- a/3rdparty/glm/doc/api/a00022_source.html
+++ b/3rdparty/glm/doc/api/a00022_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: exponential.hpp Source File</title>
+<title>0.9.9 API documenation: euler_angles.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,149 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">exponential.hpp</div> </div>
+<div class="title">euler_angles.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00022.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00030.html">detail/func_exponential.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">func_exponential.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_euler_angles is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_euler_angles extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; T <span class="keyword">const</span> &amp; angleX);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; T <span class="keyword">const</span> &amp; angleY);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; T <span class="keyword">const</span> &amp; angleZ);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; T <span class="keyword">const</span> &amp; angleX,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; T <span class="keyword">const</span> &amp; angleY);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a>(</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; T <span class="keyword">const</span> &amp; angleY,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; angleX);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a>(</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; T <span class="keyword">const</span> &amp; angleX,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; T <span class="keyword">const</span> &amp; angleZ);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a>(</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T <span class="keyword">const</span> &amp; angleX);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a>(</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; T <span class="keyword">const</span> &amp; angleY,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; T <span class="keyword">const</span> &amp; angleZ);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a>(</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; T <span class="keyword">const</span> &amp; angleZ,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; T <span class="keyword">const</span> &amp; angleY);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a>(</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; T <span class="keyword">const</span> &amp; t1,</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; T <span class="keyword">const</span> &amp; t2,</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; T <span class="keyword">const</span> &amp; t3);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a>(</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a>(</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; <a class="code" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; angles);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; angles);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a>(tmat4x4&lt;T, defaultp&gt; <span class="keyword">const</span> &amp; M,</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; T &amp; t1,</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; T &amp; t2,</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; T &amp; t3);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#include &quot;euler_angles.inl&quot;</span></div>
+<div class="ttc" id="a00172_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_ga82cd3b8a04943f1a0d1a562aff358dc8"><div class="ttname"><a href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">glm::eulerAngleX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleX(T const &amp;angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </div></div>
+<div class="ttc" id="a00190_html_gab2d7dc94b9a7519d741aaa208c7a335b"><div class="ttname"><a href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">glm::eulerAngleXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleXZ(T const &amp;angleX, T const &amp;angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </div></div>
+<div class="ttc" id="a00190_html_ga1033f84f51d61646145352ef0c1bb58c"><div class="ttname"><a href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">glm::eulerAngleYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleYZ(T const &amp;angleY, T const &amp;angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </div></div>
+<div class="ttc" id="a00172_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_gaf9c8d0f1df88c5344165600774489bc5"><div class="ttname"><a href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">glm::yawPitchRoll</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; yawPitchRoll(T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gaaedda1657a1aebe0a904d864b33844e8"><div class="ttname"><a href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">glm::eulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleXYZ(T const &amp;t1, T const &amp;t2, T const &amp;t3)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </div></div>
+<div class="ttc" id="a00190_html_ga0242b5ab68651db70c6025815549427f"><div class="ttname"><a href="a00190.html#ga0242b5ab68651db70c6025815549427f">glm::eulerAngleYXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleYXZ(T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gaeb193af1184bdf39c23636d756e1ff33"><div class="ttname"><a href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">glm::eulerAngleY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleY(T const &amp;angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </div></div>
+<div class="ttc" id="a00190_html_ga02f037926568bbd12dfece3b28b20343"><div class="ttname"><a href="a00190.html#ga02f037926568bbd12dfece3b28b20343">glm::eulerAngleZY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleZY(T const &amp;angleZ, T const &amp;angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </div></div>
+<div class="ttc" id="a00190_html_gaef83cf40bd9ae780011b29970f16f622"><div class="ttname"><a href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">glm::eulerAngleZX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleZX(T const &amp;angle, T const &amp;angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </div></div>
+<div class="ttc" id="a00190_html_ga4e25c9468b6f002c76e9a2412bcfa503"><div class="ttname"><a href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">glm::orientate4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientate4(tvec3&lt; T, P &gt; const &amp;angles)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gab59c4fe7f735568255cc19fddd3ddfcd"><div class="ttname"><a href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">glm::eulerAngleZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleZ(T const &amp;angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00190_html_gafdd02f9a37511190962119adef5c1c25"><div class="ttname"><a href="a00190.html#gafdd02f9a37511190962119adef5c1c25">glm::eulerAngleYX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleYX(T const &amp;angleY, T const &amp;angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </div></div>
+<div class="ttc" id="a00190_html_ga33f0d790cecd8337ee83f8e3a8109b11"><div class="ttname"><a href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">glm::orientate3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; orientate3(tvec3&lt; T, P &gt; const &amp;angles)</div><div class="ttdoc">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_ga8bf84f92ca976a7f50dbe4b30ceb72dd"><div class="ttname"><a href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">glm::eulerAngleXY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; eulerAngleXY(T const &amp;angleX, T const &amp;angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </div></div>
+<div class="ttc" id="a00190_html_gad5838a4c87ce2b8ee4c4e17bd162fd14"><div class="ttname"><a href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">glm::extractEulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4&lt; T, defaultp &gt; const &amp;M, T &amp;t1, T &amp;t2, T &amp;t3)</div><div class="ttdoc">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </div></div>
+<div class="ttc" id="a00172_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_ga6f465681cbbc575ad93a53ec918dacf3"><div class="ttname"><a href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">glm::orientate2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt; orientate2(T const &amp;angle)</div><div class="ttdoc">Creates a 2D 2 * 2 rotation matrix from an euler angle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00023.html b/3rdparty/glm/doc/api/a00023.html
new file mode 100644
index 00000000000..2dc7ad19326
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00023.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: exponential.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">exponential.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
+<p><a href="a00023_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00023_source.html">exponential.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00023_source.html b/3rdparty/glm/doc/api/a00023_source.html
index 43858df1054..e3d76a64fe9 100644
--- a/3rdparty/glm/doc/api/a00023_source.html
+++ b/3rdparty/glm/doc/api/a00023_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: ext.hpp Source File</title>
+<title>0.9.9 API documenation: exponential.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,172 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">ext.hpp</div> </div>
+<div class="title">exponential.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: All extensions included (not recommanded)&quot;)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00009.html">./gtc/bitfield.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00018.html">./gtc/constants.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00020.html">./gtc/epsilon.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00044.html">./gtc/integer.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">./gtc/matrix_access.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00071.html">./gtc/matrix_integer.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00073.html">./gtc/matrix_inverse.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">./gtc/matrix_transform.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">./gtc/noise.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00087.html">./gtc/packing.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00094.html">./gtc/quaternion.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00096.html">./gtc/random.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">./gtc/reciprocal.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00102.html">./gtc/round.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00130.html">./gtc/type_precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00131.html">./gtc/type_ptr.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00137.html">./gtc/ulp.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00138.html">./gtc/vec1.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00007.html">./gtx/associated_min_max.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00008.html">./gtx/bit.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00010.html">./gtx/closest_point.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00012.html">./gtx/color_space.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00013.html">./gtx/color_space_YCoCg.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00016.html">./gtx/compatibility.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00017.html">./gtx/component_wise.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00019.html">./gtx/dual_quaternion.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00021.html">./gtx/euler_angles.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00024.html">./gtx/extend.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00025.html">./gtx/extented_min_max.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00026.html">./gtx/fast_exponential.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00027.html">./gtx/fast_square_root.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00028.html">./gtx/fast_trigonometry.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00041.html">./gtx/gradient_paint.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00042.html">./gtx/handed_coordinate_space.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00045.html">./gtx/integer.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00047.html">./gtx/intersect.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00056.html">./gtx/log_base.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">./gtx/matrix_cross_product.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00072.html">./gtx/matrix_interpolation.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">./gtx/matrix_major_storage.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00075.html">./gtx/matrix_operation.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00076.html">./gtx/matrix_query.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00079.html">./gtx/mixed_product.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00081.html">./gtx/norm.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00082.html">./gtx/normal.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00083.html">./gtx/normalize_dot.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00084.html">./gtx/number_precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00085.html">./gtx/optimum_pow.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">./gtx/orthonormalize.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00090.html">./gtx/perpendicular.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00091.html">./gtx/polar_coordinates.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00093.html">./gtx/projection.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00095.html">./gtx/quaternion.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00098.html">./gtx/raw_data.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00101.html">./gtx/rotate_vector.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00109.html">./gtx/spline.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00110.html">./gtx/std_based_type.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#if !(GLM_COMPILER &amp; GLM_COMPILER_CUDA)</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00111.html">./gtx/string_cast.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">./gtx/transform.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00113.html">./gtx/transform2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00115.html">./gtx/type_aligned.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00142.html">./gtx/vector_angle.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00143.html">./gtx/vector_query.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00145.html">./gtx/wrap.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#if GLM_HAS_TEMPLATE_ALIASES</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00103.html">./gtx/scalar_multiplication.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#if GLM_HAS_RANGE_FOR</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00097.html">./gtx/range.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#if GLM_ARCH &amp; GLM_ARCH_SSE2</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00108.html">./gtx/simd_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00106.html">./gtx/simd_mat4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00024_html"><div class="ttname"><a href="a00024.html">extend.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00010_html"><div class="ttname"><a href="a00010.html">closest_point.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00093_html"><div class="ttname"><a href="a00093.html">projection.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00110_html"><div class="ttname"><a href="a00110.html">std_based_type.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">matrix_access.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00091_html"><div class="ttname"><a href="a00091.html">polar_coordinates.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00056_html"><div class="ttname"><a href="a00056.html">log_base.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00027_html"><div class="ttname"><a href="a00027.html">fast_square_root.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00044_html"><div class="ttname"><a href="a00044.html">integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00115_html"><div class="ttname"><a href="a00115.html">type_aligned.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00042_html"><div class="ttname"><a href="a00042.html">handed_coordinate_space.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00142_html"><div class="ttname"><a href="a00142.html">vector_angle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00103_html"><div class="ttname"><a href="a00103.html">scalar_multiplication.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00101_html"><div class="ttname"><a href="a00101.html">rotate_vector.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00076_html"><div class="ttname"><a href="a00076.html">matrix_query.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00047_html"><div class="ttname"><a href="a00047.html">intersect.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00021_html"><div class="ttname"><a href="a00021.html">euler_angles.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00079_html"><div class="ttname"><a href="a00079.html">mixed_product.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00096_html"><div class="ttname"><a href="a00096.html">random.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00084_html"><div class="ttname"><a href="a00084.html">number_precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00082_html"><div class="ttname"><a href="a00082.html">normal.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00018_html"><div class="ttname"><a href="a00018.html">constants.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00143_html"><div class="ttname"><a href="a00143.html">vector_query.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00041_html"><div class="ttname"><a href="a00041.html">gradient_paint.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">reciprocal.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00106_html"><div class="ttname"><a href="a00106.html">simd_mat4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00087_html"><div class="ttname"><a href="a00087.html">packing.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00075_html"><div class="ttname"><a href="a00075.html">matrix_operation.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00009_html"><div class="ttname"><a href="a00009.html">bitfield.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00138_html"><div class="ttname"><a href="a00138.html">vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00090_html"><div class="ttname"><a href="a00090.html">perpendicular.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00109_html"><div class="ttname"><a href="a00109.html">spline.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00026_html"><div class="ttname"><a href="a00026.html">fast_exponential.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00012_html"><div class="ttname"><a href="a00012.html">color_space.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00095_html"><div class="ttname"><a href="a00095.html">quaternion.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">transform.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00083_html"><div class="ttname"><a href="a00083.html">normalize_dot.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00081_html"><div class="ttname"><a href="a00081.html">norm.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00017_html"><div class="ttname"><a href="a00017.html">component_wise.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00020_html"><div class="ttname"><a href="a00020.html">epsilon.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00137_html"><div class="ttname"><a href="a00137.html">ulp.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00025_html"><div class="ttname"><a href="a00025.html">extented_min_max.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00013_html"><div class="ttname"><a href="a00013.html">color_space_YCoCg.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">transform2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">raw_data.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00111_html"><div class="ttname"><a href="a00111.html">string_cast.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">matrix_cross_product.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">orthonormalize.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">matrix_major_storage.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00045_html"><div class="ttname"><a href="a00045.html">integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00145_html"><div class="ttname"><a href="a00145.html">wrap.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00072_html"><div class="ttname"><a href="a00072.html">matrix_interpolation.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00008_html"><div class="ttname"><a href="a00008.html">bit.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00108_html"><div class="ttname"><a href="a00108.html">simd_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_ptr.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00077_html"><div class="ttname"><a href="a00077.html">matrix_transform.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00094_html"><div class="ttname"><a href="a00094.html">quaternion.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">fast_trigonometry.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00080_html"><div class="ttname"><a href="a00080.html">noise.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00016_html"><div class="ttname"><a href="a00016.html">compatibility.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00097_html"><div class="ttname"><a href="a00097.html">range.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">optimum_pow.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00102_html"><div class="ttname"><a href="a00102.html">round.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00073_html"><div class="ttname"><a href="a00073.html">matrix_inverse.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00019_html"><div class="ttname"><a href="a00019.html">dual_quaternion.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00071_html"><div class="ttname"><a href="a00071.html">matrix_integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">associated_min_max.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<a href="a00023.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00031.html">detail/func_exponential.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00031_html"><div class="ttname"><a href="a00031.html">func_exponential.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00024.html b/3rdparty/glm/doc/api/a00024.html
index f7f44b40f15..f1bc8e5bb56 100644
--- a/3rdparty/glm/doc/api/a00024.html
+++ b/3rdparty/glm/doc/api/a00024.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extend.hpp File Reference</title>
+<title>0.9.9 API documenation: ext.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,39 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">extend.hpp File Reference</div> </div>
+<div class="title">ext.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a> (Dependence)
+<a href="#details">More...</a></p>
+
<p><a href="a00024_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
-<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00195.html">GLM_GTX_extend</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-07 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> (Dependence) </p>
-<p>Definition in file <a class="el" href="a00024_source.html">extend.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00024_source.html">ext.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00024_source.html b/3rdparty/glm/doc/api/a00024_source.html
index ea344a17be5..f27ae71377a 100644
--- a/3rdparty/glm/doc/api/a00024_source.html
+++ b/3rdparty/glm/doc/api/a00024_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extend.hpp Source File</title>
+<title>0.9.9 API documenation: ext.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,40 +64,195 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">extend.hpp</div> </div>
+<div class="title">ext.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00024.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; genType <span class="keyword">const</span> &amp; Origin, </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; genType <span class="keyword">const</span> &amp; Source, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;extend.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00195_html_ga8140caae613b0f847ab0d7175dc03a37"><div class="ttname"><a href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">glm::extend</a></div><div class="ttdeci">GLM_FUNC_DECL genType extend(genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</div><div class="ttdoc">Extends of Length the Origin position using the (Source - Origin) direction. </div></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00041.html">glm.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: All extensions included (not recommanded)&quot;)</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00009.html">./gtc/bitfield.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00011.html">./gtc/color_encoding.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00012.html">./gtc/color_space.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00019.html">./gtc/constants.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00021.html">./gtc/epsilon.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00038.html">./gtc/functions.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00045.html">./gtc/integer.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00062.html">./gtc/matrix_access.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00065.html">./gtc/matrix_integer.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">./gtc/matrix_inverse.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00071.html">./gtc/matrix_transform.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00074.html">./gtc/noise.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00081.html">./gtc/packing.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00088.html">./gtc/quaternion.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00090.html">./gtc/random.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00093.html">./gtc/reciprocal.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00096.html">./gtc/round.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">//#include &quot;./gtc/type_aligned.hpp&quot;</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00122.html">./gtc/type_precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00123.html">./gtc/type_ptr.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00130.html">./gtc/ulp.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00131.html">./gtc/vec1.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00106.html">./gtc/type_aligned.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#ifdef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00007.html">./gtx/associated_min_max.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00008.html">./gtx/bit.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00010.html">./gtx/closest_point.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00013.html">./gtx/color_space.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00014.html">./gtx/color_space_YCoCg.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00017.html">./gtx/compatibility.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00018.html">./gtx/component_wise.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00020.html">./gtx/dual_quaternion.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00022.html">./gtx/euler_angles.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00025.html">./gtx/extend.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00026.html">./gtx/extended_min_max.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00027.html">./gtx/fast_exponential.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00028.html">./gtx/fast_square_root.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00029.html">./gtx/fast_trigonometry.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00042.html">./gtx/gradient_paint.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00043.html">./gtx/handed_coordinate_space.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00046.html">./gtx/integer.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00048.html">./gtx/intersect.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00050.html">./gtx/log_base.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">./gtx/matrix_cross_product.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">./gtx/matrix_interpolation.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">./gtx/matrix_major_storage.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">./gtx/matrix_operation.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00070.html">./gtx/matrix_query.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00073.html">./gtx/mixed_product.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00075.html">./gtx/norm.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00076.html">./gtx/normal.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00077.html">./gtx/normalize_dot.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00078.html">./gtx/number_precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00079.html">./gtx/optimum_pow.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00080.html">./gtx/orthonormalize.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00084.html">./gtx/perpendicular.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00085.html">./gtx/polar_coordinates.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00087.html">./gtx/projection.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00089.html">./gtx/quaternion.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">./gtx/raw_data.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00095.html">./gtx/rotate_vector.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00100.html">./gtx/spline.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00101.html">./gtx/std_based_type.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#if !(GLM_COMPILER &amp; GLM_COMPILER_CUDA)</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00102.html">./gtx/string_cast.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00103.html">./gtx/transform.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00104.html">./gtx/transform2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">./gtx/vec_swizzle.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">./gtx/vector_angle.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00137.html">./gtx/vector_query.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00139.html">./gtx/wrap.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#if GLM_HAS_TEMPLATE_ALIASES</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00097.html">./gtx/scalar_multiplication.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#if GLM_HAS_RANGE_FOR</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00091.html">./gtx/range.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#endif//GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="ttc" id="a00022_html"><div class="ttname"><a href="a00022.html">euler_angles.hpp</a></div><div class="ttdoc">GLM_GTX_euler_angles </div></div>
+<div class="ttc" id="a00122_html"><div class="ttname"><a href="a00122.html">type_precision.hpp</a></div><div class="ttdoc">GLM_GTC_type_precision </div></div>
+<div class="ttc" id="a00010_html"><div class="ttname"><a href="a00010.html">closest_point.hpp</a></div><div class="ttdoc">GLM_GTX_closest_point </div></div>
+<div class="ttc" id="a00093_html"><div class="ttname"><a href="a00093.html">reciprocal.hpp</a></div><div class="ttdoc">GLM_GTC_reciprocal </div></div>
+<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">matrix_major_storage.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_major_storage </div></div>
+<div class="ttc" id="a00139_html"><div class="ttname"><a href="a00139.html">wrap.hpp</a></div><div class="ttdoc">GLM_GTX_wrap </div></div>
+<div class="ttc" id="a00091_html"><div class="ttname"><a href="a00091.html">range.hpp</a></div><div class="ttdoc">GLM_GTX_range </div></div>
+<div class="ttc" id="a00027_html"><div class="ttname"><a href="a00027.html">fast_exponential.hpp</a></div><div class="ttdoc">GLM_GTX_fast_exponential </div></div>
+<div class="ttc" id="a00042_html"><div class="ttname"><a href="a00042.html">gradient_paint.hpp</a></div><div class="ttdoc">GLM_GTX_gradient_paint </div></div>
+<div class="ttc" id="a00103_html"><div class="ttname"><a href="a00103.html">transform.hpp</a></div><div class="ttdoc">GLM_GTX_transform </div></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">ulp.hpp</a></div><div class="ttdoc">GLM_GTC_ulp </div></div>
+<div class="ttc" id="a00088_html"><div class="ttname"><a href="a00088.html">quaternion.hpp</a></div><div class="ttdoc">GLM_GTC_quaternion </div></div>
+<div class="ttc" id="a00101_html"><div class="ttname"><a href="a00101.html">std_based_type.hpp</a></div><div class="ttdoc">GLM_GTX_std_based_type </div></div>
+<div class="ttc" id="a00076_html"><div class="ttname"><a href="a00076.html">normal.hpp</a></div><div class="ttdoc">GLM_GTX_normal </div></div>
+<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">vec_swizzle.hpp</a></div><div class="ttdoc">GLM_GTX_vec_swizzle </div></div>
+<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">matrix_access.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_access </div></div>
+<div class="ttc" id="a00123_html"><div class="ttname"><a href="a00123.html">type_ptr.hpp</a></div><div class="ttdoc">GLM_GTC_type_ptr </div></div>
+<div class="ttc" id="a00050_html"><div class="ttname"><a href="a00050.html">log_base.hpp</a></div><div class="ttdoc">GLM_GTX_log_base </div></div>
+<div class="ttc" id="a00021_html"><div class="ttname"><a href="a00021.html">epsilon.hpp</a></div><div class="ttdoc">GLM_GTC_epsilon </div></div>
+<div class="ttc" id="a00079_html"><div class="ttname"><a href="a00079.html">optimum_pow.hpp</a></div><div class="ttdoc">GLM_GTX_optimum_pow </div></div>
+<div class="ttc" id="a00096_html"><div class="ttname"><a href="a00096.html">round.hpp</a></div><div class="ttdoc">GLM_GTC_round </div></div>
+<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">matrix_inverse.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_inverse </div></div>
+<div class="ttc" id="a00084_html"><div class="ttname"><a href="a00084.html">perpendicular.hpp</a></div><div class="ttdoc">GLM_GTX_perpendicular </div></div>
+<div class="ttc" id="a00043_html"><div class="ttname"><a href="a00043.html">handed_coordinate_space.hpp</a></div><div class="ttdoc">GLM_GTX_handed_coordinate_space </div></div>
+<div class="ttc" id="a00018_html"><div class="ttname"><a href="a00018.html">component_wise.hpp</a></div><div class="ttdoc">GLM_GTX_component_wise </div></div>
+<div class="ttc" id="a00070_html"><div class="ttname"><a href="a00070.html">matrix_query.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_query </div></div>
+<div class="ttc" id="a00041_html"><div class="ttname"><a href="a00041.html">glm.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00106_html"><div class="ttname"><a href="a00106.html">type_aligned.hpp</a></div><div class="ttdoc">GLM_GTC_type_aligned </div></div>
+<div class="ttc" id="a00087_html"><div class="ttname"><a href="a00087.html">projection.hpp</a></div><div class="ttdoc">GLM_GTX_projection </div></div>
+<div class="ttc" id="a00075_html"><div class="ttname"><a href="a00075.html">norm.hpp</a></div><div class="ttdoc">GLM_GTX_norm </div></div>
+<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">matrix_cross_product.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_cross_product </div></div>
+<div class="ttc" id="a00038_html"><div class="ttname"><a href="a00038.html">functions.hpp</a></div><div class="ttdoc">GLM_GTC_functions </div></div>
+<div class="ttc" id="a00009_html"><div class="ttname"><a href="a00009.html">bitfield.hpp</a></div><div class="ttdoc">GLM_GTC_bitfield </div></div>
+<div class="ttc" id="a00090_html"><div class="ttname"><a href="a00090.html">random.hpp</a></div><div class="ttdoc">GLM_GTC_random </div></div>
+<div class="ttc" id="a00026_html"><div class="ttname"><a href="a00026.html">extended_min_max.hpp</a></div><div class="ttdoc">gtx_extended_min_max </div></div>
+<div class="ttc" id="a00014_html"><div class="ttname"><a href="a00014.html">color_space_YCoCg.hpp</a></div><div class="ttdoc">GLM_GTX_color_space_YCoCg </div></div>
+<div class="ttc" id="a00012_html"><div class="ttname"><a href="a00012.html">color_space.hpp</a></div><div class="ttdoc">GLM_GTC_color_space </div></div>
+<div class="ttc" id="a00095_html"><div class="ttname"><a href="a00095.html">rotate_vector.hpp</a></div><div class="ttdoc">GLM_GTX_rotate_vector </div></div>
+<div class="ttc" id="a00100_html"><div class="ttname"><a href="a00100.html">spline.hpp</a></div><div class="ttdoc">GLM_GTX_spline </div></div>
+<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">fast_trigonometry.hpp</a></div><div class="ttdoc">GLM_GTX_fast_trigonometry </div></div>
+<div class="ttc" id="a00081_html"><div class="ttname"><a href="a00081.html">packing.hpp</a></div><div class="ttdoc">GLM_GTC_packing </div></div>
+<div class="ttc" id="a00046_html"><div class="ttname"><a href="a00046.html">integer.hpp</a></div><div class="ttdoc">GLM_GTX_integer </div></div>
+<div class="ttc" id="a00017_html"><div class="ttname"><a href="a00017.html">compatibility.hpp</a></div><div class="ttdoc">GLM_GTX_compatibility </div></div>
+<div class="ttc" id="a00020_html"><div class="ttname"><a href="a00020.html">dual_quaternion.hpp</a></div><div class="ttdoc">GLM_GTX_dual_quaternion </div></div>
+<div class="ttc" id="a00078_html"><div class="ttname"><a href="a00078.html">number_precision.hpp</a></div><div class="ttdoc">GLM_GTX_number_precision </div></div>
+<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">matrix_interpolation.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_interpolation </div></div>
+<div class="ttc" id="a00137_html"><div class="ttname"><a href="a00137.html">vector_query.hpp</a></div><div class="ttdoc">GLM_GTX_vector_query </div></div>
+<div class="ttc" id="a00025_html"><div class="ttname"><a href="a00025.html">extend.hpp</a></div><div class="ttdoc">GLM_GTX_extend </div></div>
+<div class="ttc" id="a00013_html"><div class="ttname"><a href="a00013.html">color_space.hpp</a></div><div class="ttdoc">GLM_GTX_color_space </div></div>
+<div class="ttc" id="a00011_html"><div class="ttname"><a href="a00011.html">color_encoding.hpp</a></div><div class="ttdoc">GLM_GTC_color_encoding </div></div>
+<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">matrix_operation.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_operation </div></div>
+<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">noise.hpp</a></div><div class="ttdoc">GLM_GTC_noise </div></div>
+<div class="ttc" id="a00045_html"><div class="ttname"><a href="a00045.html">integer.hpp</a></div><div class="ttdoc">GLM_GTC_integer </div></div>
+<div class="ttc" id="a00008_html"><div class="ttname"><a href="a00008.html">bit.hpp</a></div><div class="ttdoc">GLM_GTX_bit </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">vec1.hpp</a></div><div class="ttdoc">GLM_GTC_vec1 </div></div>
+<div class="ttc" id="a00089_html"><div class="ttname"><a href="a00089.html">quaternion.hpp</a></div><div class="ttdoc">GLM_GTX_quaternion </div></div>
+<div class="ttc" id="a00077_html"><div class="ttname"><a href="a00077.html">normalize_dot.hpp</a></div><div class="ttdoc">GLM_GTX_normalize_dot </div></div>
+<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">matrix_integer.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_integer </div></div>
+<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">raw_data.hpp</a></div><div class="ttdoc">GLM_GTX_raw_data </div></div>
+<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">fast_square_root.hpp</a></div><div class="ttdoc">GLM_GTX_fast_square_root </div></div>
+<div class="ttc" id="a00080_html"><div class="ttname"><a href="a00080.html">orthonormalize.hpp</a></div><div class="ttdoc">GLM_GTX_orthonormalize </div></div>
+<div class="ttc" id="a00097_html"><div class="ttname"><a href="a00097.html">scalar_multiplication.hpp</a></div><div class="ttdoc">GTX Extensions (Experimental) </div></div>
+<div class="ttc" id="a00104_html"><div class="ttname"><a href="a00104.html">transform2.hpp</a></div><div class="ttdoc">GLM_GTX_transform2 </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">polar_coordinates.hpp</a></div><div class="ttdoc">GLM_GTX_polar_coordinates </div></div>
+<div class="ttc" id="a00102_html"><div class="ttname"><a href="a00102.html">string_cast.hpp</a></div><div class="ttdoc">GLM_GTX_string_cast </div></div>
+<div class="ttc" id="a00073_html"><div class="ttname"><a href="a00073.html">mixed_product.hpp</a></div><div class="ttdoc">GLM_GTX_mixed_producte </div></div>
+<div class="ttc" id="a00048_html"><div class="ttname"><a href="a00048.html">intersect.hpp</a></div><div class="ttdoc">GLM_GTX_intersect </div></div>
+<div class="ttc" id="a00019_html"><div class="ttname"><a href="a00019.html">constants.hpp</a></div><div class="ttdoc">GLM_GTC_constants </div></div>
+<div class="ttc" id="a00071_html"><div class="ttname"><a href="a00071.html">matrix_transform.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_transform </div></div>
+<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">associated_min_max.hpp</a></div><div class="ttdoc">GLM_GTX_associated_min_max </div></div>
+<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">vector_angle.hpp</a></div><div class="ttdoc">GLM_GTX_vector_angle </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00025.html b/3rdparty/glm/doc/api/a00025.html
index d8974adac91..8c3ade67387 100644
--- a/3rdparty/glm/doc/api/a00025.html
+++ b/3rdparty/glm/doc/api/a00025.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extented_min_max.hpp File Reference</title>
+<title>0.9.9 API documenation: extend.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,74 +64,50 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">extented_min_max.hpp File Reference</div> </div>
+<div class="title">extend.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00191.html">GLM_GTX_extend</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00025_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
-<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
-<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
-<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
-<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
-<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
-<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
-<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
-<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
-<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga95466987024d03039607f09e69813d69">min</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
-<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
-<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
-<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
+<tr class="memdesc:ga8140caae613b0f847ab0d7175dc03a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extends of Length the Origin position using the (Source - Origin) direction. <a href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">More...</a><br /></td></tr>
+<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00196.html">GLM_GTX_extented_min_max</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtx_half_float (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00191.html">GLM_GTX_extend</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00025_source.html">extented_min_max.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00025_source.html">extend.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00025_source.html b/3rdparty/glm/doc/api/a00025_source.html
index 495dfcefb99..5e497559e66 100644
--- a/3rdparty/glm/doc/api/a00025_source.html
+++ b/3rdparty/glm/doc/api/a00025_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extented_min_max.hpp Source File</title>
+<title>0.9.9 API documenation: extend.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,113 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">extented_min_max.hpp</div> </div>
+<div class="title">extend.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00025.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extented_min_max extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; T <span class="keyword">const</span> &amp; z);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; T <span class="keyword">const</span> &amp; z, </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; T <span class="keyword">const</span> &amp; w);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z, </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; w);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; w);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; T <span class="keyword">const</span> &amp; z);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; T <span class="keyword">const</span> &amp; z, </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; T <span class="keyword">const</span> &amp; w);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z, </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; w);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z, </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; w);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#include &quot;extented_min_max.inl&quot;</span></div>
-<div class="ttc" id="a00196_html_gaacffbc466c2d08c140b181e7fd8a4858"><div class="ttname"><a href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL C&lt; T &gt; max(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</div><div class="ttdoc">Return the maximum component-wise values of 4 inputs. </div></div>
-<div class="ttc" id="a00196_html_ga7471ea4159eed8dd9ea4ac5d46c2fead"><div class="ttname"><a href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL C&lt; T &gt; min(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</div><div class="ttdoc">Return the minimum component-wise values of 4 inputs. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_extend is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; genType <span class="keyword">const</span> &amp; Origin, </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; genType <span class="keyword">const</span> &amp; Source, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;extend.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00191_html_ga8140caae613b0f847ab0d7175dc03a37"><div class="ttname"><a href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">glm::extend</a></div><div class="ttdeci">GLM_FUNC_DECL genType extend(genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</div><div class="ttdoc">Extends of Length the Origin position using the (Source - Origin) direction. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00026.html b/3rdparty/glm/doc/api/a00026.html
index 2de7c62f1a7..17a42ce4b03 100644
--- a/3rdparty/glm/doc/api/a00026.html
+++ b/3rdparty/glm/doc/api/a00026.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_exponential.hpp File Reference</title>
+<title>0.9.9 API documenation: extended_min_max.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,74 +64,94 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">fast_exponential.hpp File Reference</div> </div>
+<div class="title">extended_min_max.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p>gtx_extended_min_max
+<a href="#details">More...</a></p>
+
<p><a href="a00026_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
-<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
-<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
-<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
-<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
-<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
+<tr class="memdesc:ga04991ccb9865c4c4e58488cfb209ce69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 3 inputs. <a href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">More...</a><br /></td></tr>
+<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
+<tr class="memdesc:gae1b7bbe5c91de4924835ea3e14530744"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 3 inputs. <a href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">More...</a><br /></td></tr>
+<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
+<tr class="memdesc:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 3 inputs. <a href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">More...</a><br /></td></tr>
+<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
+<tr class="memdesc:ga78e04a0cef1c4863fcae1a2130500d87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 4 inputs. <a href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">More...</a><br /></td></tr>
+<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
+<tr class="memdesc:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 4 inputs. <a href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">More...</a><br /></td></tr>
+<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
+<tr class="memdesc:gaacffbc466c2d08c140b181e7fd8a4858"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 4 inputs. <a href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">More...</a><br /></td></tr>
+<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
+<tr class="memdesc:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 3 inputs. <a href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">More...</a><br /></td></tr>
+<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
+<tr class="memdesc:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 3 inputs. <a href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">More...</a><br /></td></tr>
+<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
+<tr class="memdesc:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 3 inputs. <a href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">More...</a><br /></td></tr>
+<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga95466987024d03039607f09e69813d69">min</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
+<tr class="memdesc:ga95466987024d03039607f09e69813d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 4 inputs. <a href="a00192.html#ga95466987024d03039607f09e69813d69">More...</a><br /></td></tr>
+<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
+<tr class="memdesc:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 4 inputs. <a href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">More...</a><br /></td></tr>
+<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
+<tr class="memdesc:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 4 inputs. <a href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">More...</a><br /></td></tr>
+<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00197.html">GLM_GTX_fast_exponential</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-09 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtx_half_float (dependence) </dd></dl>
+<div class="textblock"><p>gtx_extended_min_max </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00026_source.html">fast_exponential.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00026_source.html">extended_min_max.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00026_source.html b/3rdparty/glm/doc/api/a00026_source.html
index 1d11cddf2c2..1760b0e8247 100644
--- a/3rdparty/glm/doc/api/a00026_source.html
+++ b/3rdparty/glm/doc/api/a00026_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_exponential.hpp Source File</title>
+<title>0.9.9 API documenation: extended_min_max.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,74 +64,131 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">fast_exponential.hpp</div> </div>
+<div class="title">extended_min_max.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00026.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_exponential extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genType x, genType y);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL genTypeT <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genTypeT x, genTypeU y);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(T x);</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_extented_min_max is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extented_min_max extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T <span class="keyword">const</span> &amp; z);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; z, </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T <span class="keyword">const</span> &amp; w);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z, </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; w);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; w);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(T x);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(T x);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(T x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#include &quot;fast_exponential.inl&quot;</span></div>
-<div class="ttc" id="a00197_html_ga789abcbc34d08008d2f5a4547dd6e5e3"><div class="ttname"><a href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">glm::fastLog</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastLog(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
-<div class="ttc" id="a00197_html_ga29924aea1aa11c5c504fb2d621221906"><div class="ttname"><a href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">glm::fastPow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastPow(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common pow function but less accurate. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00197_html_ga4faf0b61115de36efcf47c4ecb55a5fa"><div class="ttname"><a href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">glm::fastExp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastExp(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common exp function but less accurate. </div></div>
-<div class="ttc" id="a00197_html_gabc46086fe6636b8be87f09e6c5d2bb58"><div class="ttname"><a href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">glm::fastLog2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastLog2(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common log2 function but less accurate. </div></div>
-<div class="ttc" id="a00197_html_ga9e6219327b7a33077dbec7620d981fff"><div class="ttname"><a href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">glm::fastExp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastExp2(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; T <span class="keyword">const</span> &amp; z);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; T <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; T <span class="keyword">const</span> &amp; z, </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; T <span class="keyword">const</span> &amp; w);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; z, </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typename</span> C&lt;T&gt;::T <span class="keyword">const</span> &amp; w);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>C&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL C&lt;T&gt; <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; y, </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; z, </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; C&lt;T&gt; <span class="keyword">const</span> &amp; w);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#include &quot;extended_min_max.inl&quot;</span></div>
+<div class="ttc" id="a00192_html_ga7471ea4159eed8dd9ea4ac5d46c2fead"><div class="ttname"><a href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL C&lt; T &gt; min(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</div><div class="ttdoc">Return the minimum component-wise values of 4 inputs. </div></div>
+<div class="ttc" id="a00192_html_gaacffbc466c2d08c140b181e7fd8a4858"><div class="ttname"><a href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL C&lt; T &gt; max(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</div><div class="ttdoc">Return the maximum component-wise values of 4 inputs. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00027.html b/3rdparty/glm/doc/api/a00027.html
index ceb17552a45..28a2f032d13 100644
--- a/3rdparty/glm/doc/api/a00027.html
+++ b/3rdparty/glm/doc/api/a00027.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_square_root.hpp File Reference</title>
+<title>0.9.9 API documenation: fast_exponential.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,63 +64,96 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">fast_square_root.hpp File Reference</div> </div>
+<div class="title">fast_exponential.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00027_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
-<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
-<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
-<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
-<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
+<tr class="memdesc:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp function but less accurate. <a href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">More...</a><br /></td></tr>
+<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp function but less accurate. <a href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">More...</a><br /></td></tr>
+<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
+<tr class="memdesc:ga0af50585955eb14c60bb286297fabab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp2 function but less accurate. <a href="a00193.html#ga0af50585955eb14c60bb286297fabab2">More...</a><br /></td></tr>
+<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga9e6219327b7a33077dbec7620d981fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp2 function but less accurate. <a href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">More...</a><br /></td></tr>
+<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
+<tr class="memdesc:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common log function but less accurate. <a href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">More...</a><br /></td></tr>
+<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp2 function but less accurate. <a href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">More...</a><br /></td></tr>
+<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
+<tr class="memdesc:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common log2 function but less accurate. <a href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">More...</a><br /></td></tr>
+<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common log2 function but less accurate. <a href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">More...</a><br /></td></tr>
+<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga5340e98a11fcbbd936ba6e983a154d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">More...</a><br /></td></tr>
+<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga07b73976a9af4005945bc338b45d8466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga07b73976a9af4005945bc338b45d8466">More...</a><br /></td></tr>
+<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
+<tr class="memdesc:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">More...</a><br /></td></tr>
+<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga29924aea1aa11c5c504fb2d621221906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">More...</a><br /></td></tr>
+<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00198.html">GLM_GTX_fast_square_root</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-04 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtx_half_float (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00027_source.html">fast_square_root.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00027_source.html">fast_exponential.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00027_source.html b/3rdparty/glm/doc/api/a00027_source.html
index dcced692756..14ecf8fddd1 100644
--- a/3rdparty/glm/doc/api/a00027_source.html
+++ b/3rdparty/glm/doc/api/a00027_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_square_root.hpp Source File</title>
+<title>0.9.9 API documenation: fast_exponential.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,67 +64,92 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">fast_square_root.hpp</div> </div>
+<div class="title">fast_exponential.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00027.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../exponential.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_square_root extension included&quot;)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(genType x);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_fast_exponential is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_exponential extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genType x, genType y);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL genTypeT <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genTypeT x, genTypeU y);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(T x);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(T x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(genType x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(genType x);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(genType x, genType y);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#include &quot;fast_square_root.inl&quot;</span></div>
-<div class="ttc" id="a00198_html_gaad9f601bbc3faa04dda384e4c4e1592c"><div class="ttname"><a href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastSqrt(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_gae28a3099cbd6404a4ea8ef22147ed7b0"><div class="ttname"><a href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL T fastLength(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_ga6d1ac559cd77d69119e30c3aca0e14b5"><div class="ttname"><a href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">glm::fastDistance</a></div><div class="ttdeci">GLM_FUNC_DECL T fastDistance(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Faster than the common distance function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_ga903878071f92e51e551791e584a171a1"><div class="ttname"><a href="a00198.html#ga903878071f92e51e551791e584a171a1">glm::fastInverseSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastInverseSqrt(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common inversesqrt function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &amp;x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(T x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(T x);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#include &quot;fast_exponential.inl&quot;</span></div>
+<div class="ttc" id="a00193_html_ga789abcbc34d08008d2f5a4547dd6e5e3"><div class="ttname"><a href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">glm::fastLog</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastLog(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga29924aea1aa11c5c504fb2d621221906"><div class="ttname"><a href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">glm::fastPow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastPow(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common pow function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga4faf0b61115de36efcf47c4ecb55a5fa"><div class="ttname"><a href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">glm::fastExp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastExp(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common exp function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga9e6219327b7a33077dbec7620d981fff"><div class="ttname"><a href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">glm::fastExp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastExp2(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00193_html_gabc46086fe6636b8be87f09e6c5d2bb58"><div class="ttname"><a href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">glm::fastLog2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastLog2(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common log2 function but less accurate. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00028.html b/3rdparty/glm/doc/api/a00028.html
index 7e007d7713f..6485cfd9677 100644
--- a/3rdparty/glm/doc/api/a00028.html
+++ b/3rdparty/glm/doc/api/a00028.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_trigonometry.hpp File Reference</title>
+<title>0.9.9 API documenation: fast_square_root.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,60 +64,82 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">fast_trigonometry.hpp File Reference</div> </div>
+<div class="title">fast_square_root.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00028_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
-<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
-<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
-<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
-<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
-<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
-<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
-<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
-<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:gaac333418d0c4e0cc6d3d219ed606c238"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common distance function but less accurate. <a href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">More...</a><br /></td></tr>
+<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common distance function but less accurate. <a href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">More...</a><br /></td></tr>
+<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
+<tr class="memdesc:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common inversesqrt function but less accurate. <a href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">More...</a><br /></td></tr>
+<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga903878071f92e51e551791e584a171a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common inversesqrt function but less accurate. <a href="a00194.html#ga903878071f92e51e551791e584a171a1">More...</a><br /></td></tr>
+<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
+<tr class="memdesc:gafe697d6287719538346bbdf8b1367c59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common length function but less accurate. <a href="a00194.html#gafe697d6287719538346bbdf8b1367c59">More...</a><br /></td></tr>
+<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common length function but less accurate. <a href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">More...</a><br /></td></tr>
+<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common normalize function but less accurate. <a href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">More...</a><br /></td></tr>
+<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
+<tr class="memdesc:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common sqrt function but less accurate. <a href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">More...</a><br /></td></tr>
+<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common sqrt function but less accurate. <a href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">More...</a><br /></td></tr>
+<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00199.html">GLM_GTX_fast_trigonometry</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-08 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00028_source.html">fast_trigonometry.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00028_source.html">fast_square_root.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00028_source.html b/3rdparty/glm/doc/api/a00028_source.html
index e37c39eb944..86f827af28d 100644
--- a/3rdparty/glm/doc/api/a00028_source.html
+++ b/3rdparty/glm/doc/api/a00028_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_trigonometry.hpp Source File</title>
+<title>0.9.9 API documenation: fast_square_root.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,65 +64,85 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">fast_trigonometry.hpp</div> </div>
+<div class="title">fast_square_root.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00028.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../exponential.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_fast_square_root is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_square_root extension included&quot;)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(genType x);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_trigonometry extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(genType x);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(genType x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(genType x, genType y);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(genType <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T y, T x);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#include &quot;fast_trigonometry.inl&quot;</span></div>
-<div class="ttc" id="a00199_html_gae25de86a968490ff56856fa425ec9d30"><div class="ttname"><a href="a00199.html#gae25de86a968490ff56856fa425ec9d30">glm::fastAtan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAtan(T angle)</div><div class="ttdoc">Faster than the common atan function but less accurate. </div></div>
-<div class="ttc" id="a00199_html_ga9721d63356e5d94fdc4b393a426ab26b"><div class="ttname"><a href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">glm::fastAcos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAcos(T angle)</div><div class="ttdoc">Faster than the common acos function but less accurate. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00199_html_gab34c8b45c23c0165a64dcecfcc3b302a"><div class="ttname"><a href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">glm::fastCos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastCos(T angle)</div><div class="ttdoc">Faster than the common cos function but less accurate. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00199_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
-<div class="ttc" id="a00199_html_ga069527c6dbd64f53435b8ebc4878b473"><div class="ttname"><a href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">glm::wrapAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T wrapAngle(T angle)</div><div class="ttdoc">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </div></div>
-<div class="ttc" id="a00199_html_ga562cb62c51fbfe7fac7db0bce706b81f"><div class="ttname"><a href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">glm::fastAsin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAsin(T angle)</div><div class="ttdoc">Faster than the common asin function but less accurate. </div></div>
-<div class="ttc" id="a00199_html_gaf29b9c1101a10007b4f79ee89df27ba2"><div class="ttname"><a href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">glm::fastTan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastTan(T angle)</div><div class="ttdoc">Faster than the common tan function but less accurate. </div></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &quot;fast_square_root.inl&quot;</span></div>
+<div class="ttc" id="a00194_html_ga6d1ac559cd77d69119e30c3aca0e14b5"><div class="ttname"><a href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">glm::fastDistance</a></div><div class="ttdeci">GLM_FUNC_DECL T fastDistance(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Faster than the common distance function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &amp;x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga903878071f92e51e551791e584a171a1"><div class="ttname"><a href="a00194.html#ga903878071f92e51e551791e584a171a1">glm::fastInverseSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastInverseSqrt(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common inversesqrt function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_gaad9f601bbc3faa04dda384e4c4e1592c"><div class="ttname"><a href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; fastSqrt(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_gae28a3099cbd6404a4ea8ef22147ed7b0"><div class="ttname"><a href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL T fastLength(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00029.html b/3rdparty/glm/doc/api/a00029.html
index 3cfde3bcd60..91670344d4f 100644
--- a/3rdparty/glm/doc/api/a00029.html
+++ b/3rdparty/glm/doc/api/a00029.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_common.hpp File Reference</title>
+<title>0.9.9 API documenation: fast_trigonometry.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,131 +64,78 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_common.hpp File Reference</div> </div>
+<div class="title">fast_trigonometry.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00029_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
-<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
-<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &amp;v)</td></tr>
-<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &amp;v)</td></tr>
-<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
-<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
-<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
-<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &amp;v)</td></tr>
-<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType&lt; int, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
-<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</td></tr>
-<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType&lt; T, P &gt; const &amp;x, T y)</td></tr>
-<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
-<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
-<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
-<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &amp;v)</td></tr>
-<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType&lt; uint, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
+<tr class="memdesc:ga9721d63356e5d94fdc4b393a426ab26b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common acos function but less accurate. <a href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">More...</a><br /></td></tr>
+<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
+<tr class="memdesc:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common asin function but less accurate. <a href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">More...</a><br /></td></tr>
+<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
+<tr class="memdesc:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common atan function but less accurate. <a href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">More...</a><br /></td></tr>
+<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
+<tr class="memdesc:gae25de86a968490ff56856fa425ec9d30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common atan function but less accurate. <a href="a00195.html#gae25de86a968490ff56856fa425ec9d30">More...</a><br /></td></tr>
+<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
+<tr class="memdesc:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common cos function but less accurate. <a href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">More...</a><br /></td></tr>
+<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
+<tr class="memdesc:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common sin function but less accurate. <a href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">More...</a><br /></td></tr>
+<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
+<tr class="memdesc:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common tan function but less accurate. <a href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">More...</a><br /></td></tr>
+<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
+<tr class="memdesc:ga069527c6dbd64f53435b8ebc4878b473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. <a href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">More...</a><br /></td></tr>
+<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-03-08 / 2010-01-26 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00029_source.html">func_common.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00029_source.html">fast_trigonometry.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00029_source.html b/3rdparty/glm/doc/api/a00029_source.html
index 7dec686ef4b..2afb2257d83 100644
--- a/3rdparty/glm/doc/api/a00029_source.html
+++ b/3rdparty/glm/doc/api/a00029_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_common.hpp Source File</title>
+<title>0.9.9 API documenation: fast_trigonometry.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,194 +64,83 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_common.hpp</div> </div>
+<div class="title">fast_trigonometry.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00029.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00119.html">type_int.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00002.html">_fixes.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_fast_trigonometry is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_fast_trigonometry extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a>(genType x);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(genType x);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(genType x, genType y);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType &amp; i);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(genType x, genType y);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(genType x, genType y);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(genType x, genType minVal, genType maxVal);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T minVal, T maxVal);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; minVal, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; maxVal);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U a);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; GLM_FUNC_DECL genTypeT <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a>(genType edge, genType x);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a>(T edge, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; edge, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; edge0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; edge1, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(vecType&lt;float, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(vecType&lt;float, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; GLM_FUNC_DECL vecType&lt;float, P&gt; <a class="code" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(vecType&lt;int, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; GLM_FUNC_DECL vecType&lt;float, P&gt; <a class="code" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span> &amp; a, genType <span class="keyword">const</span> &amp; b, genType <span class="keyword">const</span> &amp; c);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a>(genType <span class="keyword">const</span> &amp; x, genIType &amp; <a class="code" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a>(genType <span class="keyword">const</span> &amp; x, genIType <span class="keyword">const</span> &amp; <a class="code" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor">#include &quot;func_common.inl&quot;</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
-<div class="ttc" id="a00151_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="a00151_html_ga3acab37650ecd792dc84548094b58684"><div class="ttname"><a href="a00151.html#ga3acab37650ecd792dc84548094b58684">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; float, P &gt; uintBitsToFloat(vecType&lt; uint, P &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
-<div class="ttc" id="a00151_html_gac4a0710238ae54c67931dd29a0b0f873"><div class="ttname"><a href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; floatBitsToInt(vecType&lt; float, P &gt; const &amp;v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value. </div></div>
-<div class="ttc" id="a00151_html_ga52e319d7289b849ec92055abd4830533"><div class="ttname"><a href="a00151.html#ga52e319d7289b849ec92055abd4830533">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &amp;x, genIType const &amp;exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp...</div></div>
-<div class="ttc" id="a00151_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
-<div class="ttc" id="a00151_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floor(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga6cb8f202a52eed2331724a3800198ebf"><div class="ttname"><a href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isnan(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...</div></div>
-<div class="ttc" id="a00151_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
-<div class="ttc" id="a00151_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceil(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
-<div class="ttc" id="a00151_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; trunc(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
-<div class="ttc" id="a00151_html_ga1804d4c443605d8a27be644aa461afe4"><div class="ttname"><a href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; floatBitsToUint(vecType&lt; float, P &gt; const &amp;v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value. </div></div>
-<div class="ttc" id="a00151_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00151.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; round(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00151_html_ga655598104195a60a950291485e84a97e"><div class="ttname"><a href="a00151.html#ga655598104195a60a950291485e84a97e">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; roundEven(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
-<div class="ttc" id="a00151_html_ga20620e83544d1a988857a3bc4ebe0e1d"><div class="ttname"><a href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType const &amp;x, genIType &amp;exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...</div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00151_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sign(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
-<div class="ttc" id="a00151_html_gad21ab176dd0e6b59d923db5efca87f4e"><div class="ttname"><a href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; float, P &gt; intBitsToFloat(vecType&lt; int, P &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...</div></div>
-<div class="ttc" id="a00151_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00170_html_gaf5ae5330f6b30b4a35fb95f9a73d6134"><div class="ttname"><a href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mod(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Modulus. </div></div>
-<div class="ttc" id="a00151_html_ga6d84170051fb87c183c38883ec85b411"><div class="ttname"><a href="a00151.html#ga6d84170051fb87c183c38883ec85b411">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; step(vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0. </div></div>
-<div class="ttc" id="a00151_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00151.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
-<div class="ttc" id="a00151_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00151_html_gaf28f7a4696746f081685c9fd05c7e2de"><div class="ttname"><a href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isinf(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
-<div class="ttc" id="a00152_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; exp(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00151_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &amp;i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
-<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_int.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T y, T x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;fast_trigonometry.inl&quot;</span></div>
+<div class="ttc" id="a00195_html_ga9721d63356e5d94fdc4b393a426ab26b"><div class="ttname"><a href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">glm::fastAcos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAcos(T angle)</div><div class="ttdoc">Faster than the common acos function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_ga069527c6dbd64f53435b8ebc4878b473"><div class="ttname"><a href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">glm::wrapAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T wrapAngle(T angle)</div><div class="ttdoc">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </div></div>
+<div class="ttc" id="a00195_html_ga562cb62c51fbfe7fac7db0bce706b81f"><div class="ttname"><a href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">glm::fastAsin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAsin(T angle)</div><div class="ttdoc">Faster than the common asin function but less accurate. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00195_html_gaf29b9c1101a10007b4f79ee89df27ba2"><div class="ttname"><a href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">glm::fastTan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastTan(T angle)</div><div class="ttdoc">Faster than the common tan function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_gab34c8b45c23c0165a64dcecfcc3b302a"><div class="ttname"><a href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">glm::fastCos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastCos(T angle)</div><div class="ttdoc">Faster than the common cos function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_gae25de86a968490ff56856fa425ec9d30"><div class="ttname"><a href="a00195.html#gae25de86a968490ff56856fa425ec9d30">glm::fastAtan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAtan(T angle)</div><div class="ttdoc">Faster than the common atan function but less accurate. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00030.html b/3rdparty/glm/doc/api/a00030.html
index c1cff0947ee..04b40fe6e59 100644
--- a/3rdparty/glm/doc/api/a00030.html
+++ b/3rdparty/glm/doc/api/a00030.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_exponential.hpp File Reference</title>
+<title>0.9.9 API documenation: func_common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,57 +64,174 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_exponential.hpp File Reference</div> </div>
+<div class="title">func_common.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00030_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)</td></tr>
-<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
+<tr class="memdesc:ga693d77696ff36572a0da79efec965acd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x. <a href="a00145.html#ga693d77696ff36572a0da79efec965acd">More...</a><br /></td></tr>
+<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is greater than or equal to x. <a href="a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8">More...</a><br /></td></tr>
+<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
+<tr class="memdesc:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">More...</a><br /></td></tr>
+<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &amp;v)</td></tr>
+<tr class="memdesc:ga1425c1c3160ec51214b03a0469a3013d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00145.html#ga1425c1c3160ec51214b03a0469a3013d">More...</a><br /></td></tr>
+<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gac4a0710238ae54c67931dd29a0b0f873"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">More...</a><br /></td></tr>
+<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &amp;v)</td></tr>
+<tr class="memdesc:ga70e0271c34af52f3100c7960e18c3f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00145.html#ga70e0271c34af52f3100c7960e18c3f2b">More...</a><br /></td></tr>
+<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1804d4c443605d8a27be644aa461afe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">More...</a><br /></td></tr>
+<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga568b822b78f045f77c3325e165b44d5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is less then or equal to x. <a href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">More...</a><br /></td></tr>
+<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
+<tr class="memdesc:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns a * b + c. <a href="a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2">More...</a><br /></td></tr>
+<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
+<tr class="memdesc:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x). <a href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">More...</a><br /></td></tr>
+<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
+<tr class="memdesc:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">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) <a href="a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d">More...</a><br /></td></tr>
+<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &amp;v)</td></tr>
+<tr class="memdesc:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00145.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">More...</a><br /></td></tr>
+<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType&lt; int, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gad21ab176dd0e6b59d923db5efca87f4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">More...</a><br /></td></tr>
+<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaf28f7a4696746f081685c9fd05c7e2de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. <a href="a00145.html#gaf28f7a4696746f081685c9fd05c7e2de">More...</a><br /></td></tr>
+<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga6cb8f202a52eed2331724a3800198ebf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. <a href="a00145.html#ga6cb8f202a52eed2331724a3800198ebf">More...</a><br /></td></tr>
+<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
+<tr class="memdesc:ga52e319d7289b849ec92055abd4830533"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) <a href="a00145.html#ga52e319d7289b849ec92055abd4830533">More...</a><br /></td></tr>
+<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga98caa7f95a94c86a86ebce893a45326c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">More...</a><br /></td></tr>
+<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga2c2bde1cec025b7ddff83c74a1113719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">More...</a><br /></td></tr>
+<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</td></tr>
+<tr class="memdesc:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">More...</a><br /></td></tr>
+<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga12201563ef902e3b07e0d1d7656efdb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00145.html#ga12201563ef902e3b07e0d1d7656efdb1">More...</a><br /></td></tr>
+<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType&lt; T, P &gt; const &amp;x, T y)</td></tr>
+<tr class="memdesc:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">More...</a><br /></td></tr>
+<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">More...</a><br /></td></tr>
+<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
+<tr class="memdesc:ga85e33f139b8db1b39b590a5713b9e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). <a href="a00145.html#ga85e33f139b8db1b39b590a5713b9e679">More...</a><br /></td></tr>
+<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gada0165544c0618d634c8056a88082ce9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00145.html#gada0165544c0618d634c8056a88082ce9">More...</a><br /></td></tr>
+<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga655598104195a60a950291485e84a97e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00145.html#ga655598104195a60a950291485e84a97e">More...</a><br /></td></tr>
+<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gac3446b4138e0b8757561c07cd19f084d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. <a href="a00145.html#gac3446b4138e0b8757561c07cd19f084d">More...</a><br /></td></tr>
+<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
+<tr class="memdesc:ga562edf7eca082cc5b7a0aaf180436daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. <a href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">More...</a><br /></td></tr>
+<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
+<tr class="memdesc:ga015a1261ff23e12650211aa872863cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType. <a href="a00145.html#ga015a1261ff23e12650211aa872863cce">More...</a><br /></td></tr>
+<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaf15b74ab672af2c7d7b535a9b4803700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00145.html#gaf15b74ab672af2c7d7b535a9b4803700">More...</a><br /></td></tr>
+<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga6d84170051fb87c183c38883ec85b411"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00145.html#ga6d84170051fb87c183c38883ec85b411">More...</a><br /></td></tr>
+<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga634cdbf8b37edca03f2248450570fd54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. <a href="a00145.html#ga634cdbf8b37edca03f2248450570fd54">More...</a><br /></td></tr>
+<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &amp;v)</td></tr>
+<tr class="memdesc:gab2bae0d15dcdca6093f88f76b3975d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00145.html#gab2bae0d15dcdca6093f88f76b3975d97">More...</a><br /></td></tr>
+<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType&lt; uint, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga3acab37650ecd792dc84548094b58684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00145.html#ga3acab37650ecd792dc84548094b58684">More...</a><br /></td></tr>
+<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-08 / 2011-06-14 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00030_source.html">func_exponential.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00030_source.html">func_common.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00030_source.html b/3rdparty/glm/doc/api/a00030_source.html
index 437f34e9d02..f2e1d3ea1e1 100644
--- a/3rdparty/glm/doc/api/a00030_source.html
+++ b/3rdparty/glm/doc/api/a00030_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_exponential.hpp Source File</title>
+<title>0.9.9 API documenation: func_common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,66 +64,208 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_exponential.hpp</div> </div>
+<div class="title">func_common.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00030.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00133.html">type_vec1.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00111.html">type_int.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00002.html">_fixes.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga693d77696ff36572a0da79efec965acd">abs</a>(genType x);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga693d77696ff36572a0da79efec965acd">abs</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; base, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; exponent);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#gada0165544c0618d634c8056a88082ce9">round</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga655598104195a60a950291485e84a97e">roundEven</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(genType x);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">//template &lt;typename genType&gt;</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">//GLM_FUNC_DECL genType sqrt(genType const &amp; x);</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#include &quot;func_exponential.inl&quot;</span></div>
-<div class="ttc" id="a00152_html_ga082b332a4b7c6ad1d43e09ff19e214dd"><div class="ttname"><a href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; pow(vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)</div><div class="ttdoc">Returns &#39;base&#39; raised to the power &#39;exponent&#39;. </div></div>
-<div class="ttc" id="a00152_html_ga21efca311e62d233de0ae96bab126b83"><div class="ttname"><a href="a00152.html#ga21efca311e62d233de0ae96bab126b83">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; log(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...</div></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00152_html_ga42ca440d9062f1f456f5a9e896378f9c"><div class="ttname"><a href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; exp2(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns 2 raised to the v power. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">type_vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00152_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; exp(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
-<div class="ttc" id="a00152_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; inversesqrt(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
-<div class="ttc" id="a00152_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sqrt(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
-<div class="ttc" id="a00152_html_gabae30945338a555a03733f00dad95d0d"><div class="ttname"><a href="a00152.html#gabae30945338a555a03733f00dad95d0d">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; log2(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...</div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(genType x, genType y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType &amp; i);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(genType x, genType y);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(genType x, genType y);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(genType x, genType minVal, genType maxVal);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T minVal, T maxVal);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; minVal, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; maxVal);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;U, P&gt; <span class="keyword">const</span> &amp; a);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, U a);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; GLM_FUNC_DECL genTypeT <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga6d84170051fb87c183c38883ec85b411">step</a>(genType edge, genType x);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga6d84170051fb87c183c38883ec85b411">step</a>(T edge, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga6d84170051fb87c183c38883ec85b411">step</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; edge, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; edge0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; edge1, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00145.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00145.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(vecType&lt;float, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(vecType&lt;float, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL vecType&lt;float, P&gt; <a class="code" href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(vecType&lt;int, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00145.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, precision P&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; GLM_FUNC_DECL vecType&lt;float, P&gt; <a class="code" href="a00145.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span> &amp; a, genType <span class="keyword">const</span> &amp; b, genType <span class="keyword">const</span> &amp; c);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a>(genType <span class="keyword">const</span> &amp; x, genIType &amp; <a class="code" href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType&gt;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00145.html#ga52e319d7289b849ec92055abd4830533">ldexp</a>(genType <span class="keyword">const</span> &amp; x, genIType <span class="keyword">const</span> &amp; <a class="code" href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor">#include &quot;func_common.inl&quot;</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
+<div class="ttc" id="a00145_html_ga20620e83544d1a988857a3bc4ebe0e1d"><div class="ttname"><a href="a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType const &amp;x, genIType &amp;exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...</div></div>
+<div class="ttc" id="a00145_html_ga1804d4c443605d8a27be644aa461afe4"><div class="ttname"><a href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; floatBitsToUint(vecType&lt; float, P &gt; const &amp;v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value. </div></div>
+<div class="ttc" id="a00146_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; exp(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
+<div class="ttc" id="a00157_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00145_html_ga6d84170051fb87c183c38883ec85b411"><div class="ttname"><a href="a00145.html#ga6d84170051fb87c183c38883ec85b411">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; step(vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0. </div></div>
+<div class="ttc" id="a00145_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
+<div class="ttc" id="a00145_html_gaf28f7a4696746f081685c9fd05c7e2de"><div class="ttname"><a href="a00145.html#gaf28f7a4696746f081685c9fd05c7e2de">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isinf(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
+<div class="ttc" id="a00145_html_ga3acab37650ecd792dc84548094b58684"><div class="ttname"><a href="a00145.html#ga3acab37650ecd792dc84548094b58684">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; float, P &gt; uintBitsToFloat(vecType&lt; uint, P &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00145_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floor(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
+<div class="ttc" id="a00145_html_gac4a0710238ae54c67931dd29a0b0f873"><div class="ttname"><a href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; floatBitsToInt(vecType&lt; float, P &gt; const &amp;v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value. </div></div>
+<div class="ttc" id="a00145_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00145_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00145_html_gad21ab176dd0e6b59d923db5efca87f4e"><div class="ttname"><a href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; float, P &gt; intBitsToFloat(vecType&lt; int, P &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="a00145_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00145.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sign(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
+<div class="ttc" id="a00145_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceil(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
+<div class="ttc" id="a00145_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00111_html"><div class="ttname"><a href="a00111.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00145_html_ga52e319d7289b849ec92055abd4830533"><div class="ttname"><a href="a00145.html#ga52e319d7289b849ec92055abd4830533">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &amp;x, genIType const &amp;exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp...</div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00145_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
+<div class="ttc" id="a00145_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00145.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; round(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00145_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00145.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &amp;i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
+<div class="ttc" id="a00145_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00165_html_gaf5ae5330f6b30b4a35fb95f9a73d6134"><div class="ttname"><a href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mod(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00145_html_ga6cb8f202a52eed2331724a3800198ebf"><div class="ttname"><a href="a00145.html#ga6cb8f202a52eed2331724a3800198ebf">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isnan(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...</div></div>
+<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00145_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00145_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00145.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; trunc(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
+<div class="ttc" id="a00145_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00145.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
+<div class="ttc" id="a00145_html_ga655598104195a60a950291485e84a97e"><div class="ttname"><a href="a00145.html#ga655598104195a60a950291485e84a97e">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; roundEven(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00031.html b/3rdparty/glm/doc/api/a00031.html
index c2d5b2b5b16..bb420134629 100644
--- a/3rdparty/glm/doc/api/a00031.html
+++ b/3rdparty/glm/doc/api/a00031.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_geometric.hpp File Reference</title>
+<title>0.9.9 API documenation: func_exponential.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,60 +64,74 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_geometric.hpp File Reference</div> </div>
+<div class="title">func_exponential.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00031_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</td></tr>
-<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType&lt; T, P &gt; const &amp;N, vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;Nref)</td></tr>
-<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
-<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</td></tr>
-<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural exponentiation of x, i.e., e^x. <a href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">More...</a><br /></td></tr>
+<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga42ca440d9062f1f456f5a9e896378f9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 2 raised to the v power. <a href="a00146.html#ga42ca440d9062f1f456f5a9e896378f9c">More...</a><br /></td></tr>
+<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga599103d4fe4ef2234761ba8da7268627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reciprocal of the positive square root of v. <a href="a00146.html#ga599103d4fe4ef2234761ba8da7268627">More...</a><br /></td></tr>
+<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga21efca311e62d233de0ae96bab126b83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. <a href="a00146.html#ga21efca311e62d233de0ae96bab126b83">More...</a><br /></td></tr>
+<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gabae30945338a555a03733f00dad95d0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. <a href="a00146.html#gabae30945338a555a03733f00dad95d0d">More...</a><br /></td></tr>
+<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)</td></tr>
+<tr class="memdesc:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 'base' raised to the power 'exponent'. <a href="a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd">More...</a><br /></td></tr>
+<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of v. <a href="a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">More...</a><br /></td></tr>
+<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-03 / 2011-06-14 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00031_source.html">func_geometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00031_source.html">func_exponential.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00031_source.html b/3rdparty/glm/doc/api/a00031_source.html
index 6cdd1af3451..41f654f4a8a 100644
--- a/3rdparty/glm/doc/api/a00031_source.html
+++ b/3rdparty/glm/doc/api/a00031_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_geometric.hpp Source File</title>
+<title>0.9.9 API documenation: func_exponential.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,77 +64,80 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_geometric.hpp</div> </div>
+<div class="title">func_exponential.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00031.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p0,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p1);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00126.html">type_vec1.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; base, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; exponent);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#ga21efca311e62d233de0ae96bab126b83">log</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#gabae30945338a555a03733f00dad95d0d">log2</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">//template &lt;typename genType&gt;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">//GLM_FUNC_DECL genType sqrt(genType const &amp; x);</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a>(</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; N,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; I,</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Nref);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; genType <span class="keyword">const</span> &amp; I,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; genType <span class="keyword">const</span> &amp; N);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; I,</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; N,</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; T eta);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#include &quot;func_geometric.inl&quot;</span></div>
-<div class="ttc" id="a00153_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00153_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; refract(vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
-<div class="ttc" id="a00153_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00153.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; normalize(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00153_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &amp;I, genType const &amp;N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
-<div class="ttc" id="a00153_html_gaea854e5aec1b5839832ac2dfc7cd3c0d"><div class="ttname"><a href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">glm::faceforward</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; faceforward(vecType&lt; T, P &gt; const &amp;N, vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;Nref)</div><div class="ttdoc">If dot(Nref, I) < 0.0, return N, otherwise, return -N. </div></div>
-<div class="ttc" id="a00153_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
-<div class="ttc" id="a00153_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; cross(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00146.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#include &quot;func_exponential.inl&quot;</span></div>
+<div class="ttc" id="a00146_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; exp(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
+<div class="ttc" id="a00146_html_ga21efca311e62d233de0ae96bab126b83"><div class="ttname"><a href="a00146.html#ga21efca311e62d233de0ae96bab126b83">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; log(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...</div></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00126_html"><div class="ttname"><a href="a00126.html">type_vec1.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00146.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; inversesqrt(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00146_html_ga082b332a4b7c6ad1d43e09ff19e214dd"><div class="ttname"><a href="a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; pow(vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)</div><div class="ttdoc">Returns &#39;base&#39; raised to the power &#39;exponent&#39;. </div></div>
+<div class="ttc" id="a00146_html_gabae30945338a555a03733f00dad95d0d"><div class="ttname"><a href="a00146.html#gabae30945338a555a03733f00dad95d0d">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; log2(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...</div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga42ca440d9062f1f456f5a9e896378f9c"><div class="ttname"><a href="a00146.html#ga42ca440d9062f1f456f5a9e896378f9c">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; exp2(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns 2 raised to the v power. </div></div>
+<div class="ttc" id="a00146_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sqrt(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00032.html b/3rdparty/glm/doc/api/a00032.html
index c06dd612436..1a9dfce3ff8 100644
--- a/3rdparty/glm/doc/api/a00032.html
+++ b/3rdparty/glm/doc/api/a00032.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_integer.hpp File Reference</title>
+<title>0.9.9 API documenation: func_geometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,75 +64,78 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_integer.hpp File Reference</div> </div>
+<div class="title">func_geometric.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00032_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
-<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType&lt; T, P &gt; const &amp;Value, int Offset, int Bits)</td></tr>
-<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType&lt; T, P &gt; const &amp;Base, vecType&lt; T, P &gt; const &amp;Insert, int Offset, int Bits)</td></tr>
-<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
-<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
-<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType&lt; int, P &gt; const &amp;x, vecType&lt; int, P &gt; const &amp;y, vecType&lt; int, P &gt; &amp;msb, vecType&lt; int, P &gt; &amp;lsb)</td></tr>
-<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;carry)</td></tr>
-<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;msb, vecType&lt; uint, P &gt; &amp;lsb)</td></tr>
-<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;borrow)</td></tr>
-<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gafe2cae8cb26fd44be62aee97369d0af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the cross product of x and y. <a href="a00147.html#gafe2cae8cb26fd44be62aee97369d0af8">More...</a><br /></td></tr>
+<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</td></tr>
+<tr class="memdesc:ga7ca317dde0d7e94d920153554d4a02a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). <a href="a00147.html#ga7ca317dde0d7e94d920153554d4a02a8">More...</a><br /></td></tr>
+<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dot product of x and y, i.e., result = x * y. <a href="a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b">More...</a><br /></td></tr>
+<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType&lt; T, P &gt; const &amp;N, vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;Nref)</td></tr>
+<tr class="memdesc:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. <a href="a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">More...</a><br /></td></tr>
+<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga18d45e3d4c7705e67ccfabd99e521604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of x, i.e., sqrt(x * x). <a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">More...</a><br /></td></tr>
+<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gada9451ec170a36fe53552812b9c03a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a vector in the same direction as x but with length of 1. <a href="a00147.html#gada9451ec170a36fe53552812b9c03a68">More...</a><br /></td></tr>
+<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
+<tr class="memdesc:gab63646fc36b81cf69d3ce123a72f76f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. <a href="a00147.html#gab63646fc36b81cf69d3ce123a72f76f2">More...</a><br /></td></tr>
+<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</td></tr>
+<tr class="memdesc:gab7e7cdf4403931a5f7b74560ad64159b"><td class="mdescLeft">&#160;</td><td class="mdescRight">For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. <a href="a00147.html#gab7e7cdf4403931a5f7b74560ad64159b">More...</a><br /></td></tr>
+<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-03-17 / 2011-06-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00032_source.html">func_integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00032_source.html">func_geometric.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00032_source.html b/3rdparty/glm/doc/api/a00032_source.html
index 5b30d62b51e..9ed30e03082 100644
--- a/3rdparty/glm/doc/api/a00032_source.html
+++ b/3rdparty/glm/doc/api/a00032_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_integer.hpp Source File</title>
+<title>0.9.9 API documenation: func_geometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,105 +64,91 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_integer.hpp</div> </div>
+<div class="title">func_geometric.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00032.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00029.html">func_common.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">func_vector_relational.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; vecType&lt;uint, P&gt; &amp; carry);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; vecType&lt;uint, P&gt; &amp; borrow);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a>(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; vecType&lt;uint, P&gt; &amp; msb,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; vecType&lt;uint, P&gt; &amp; lsb);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a>(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; vecType&lt;int, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; vecType&lt;int, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; vecType&lt;int, P&gt; &amp; msb,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; vecType&lt;int, P&gt; &amp; lsb);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">int</span> Offset,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">int</span> Bits);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a>(</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Base,</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Insert,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">int</span> Offset,</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">int</span> Bits);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(genType v);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(genIUType x);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(genIUType x);</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#include &quot;func_integer.inl&quot;</span></div>
-<div class="ttc" id="a00154_html_ga5681dfac9239beb1b8bd995e3c6496d7"><div class="ttname"><a href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">glm::bitfieldInsert</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldInsert(vecType&lt; T, P &gt; const &amp;Base, vecType&lt; T, P &gt; const &amp;Insert, int Offset, int Bits)</div><div class="ttdoc">Returns the insertion the bits least-significant bits of insert into base. </div></div>
-<div class="ttc" id="a00154_html_ga22a889bf08313b7e547e2cdb8bb15ee4"><div class="ttname"><a href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">glm::usubBorrow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; usubBorrow(vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;borrow)</div><div class="ttdoc">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </div></div>
-<div class="ttc" id="a00154_html_gab84b88f3a8e367774e5dd1c618c353cf"><div class="ttname"><a href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">glm::bitfieldExtract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldExtract(vecType&lt; T, P &gt; const &amp;Value, int Offset, int Bits)</div><div class="ttdoc">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...</div></div>
-<div class="ttc" id="a00154_html_ga014a72009e68233c34c06a6dc2251b8c"><div class="ttname"><a href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">glm::findLSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; findLSB(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the bit number of the least significant bit set to 1 in the binary representation of value...</div></div>
-<div class="ttc" id="a00154_html_ga433104d77ec2ba58888aaefb77e9183f"><div class="ttname"><a href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">glm::findMSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; findMSB(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the bit number of the most significant bit in the binary representation of value...</div></div>
-<div class="ttc" id="a00154_html_ga153e7e8d0c035f83cce50fc3e580930f"><div class="ttname"><a href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">glm::bitfieldReverse</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldReverse(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the reversal of the bits of value. </div></div>
-<div class="ttc" id="a00154_html_ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><div class="ttname"><a href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">glm::uaddCarry</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; uaddCarry(vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;carry)</div><div class="ttdoc">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </div></div>
-<div class="ttc" id="a00154_html_ga456ff9dcec42f6769a9ae2a2af7f1ce1"><div class="ttname"><a href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">glm::umulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void umulExtended(vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;msb, vecType&lt; uint, P &gt; &amp;lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
-<div class="ttc" id="a00154_html_ga6e6e8b29ca40d8ca2df10b58ed17d426"><div class="ttname"><a href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">glm::imulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void imulExtended(vecType&lt; int, P &gt; const &amp;x, vecType&lt; int, P &gt; const &amp;y, vecType&lt; int, P &gt; &amp;msb, vecType&lt; int, P &gt; &amp;lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
-<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">func_vector_relational.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00154_html_ga1f29640969a3c54564da06ac67a5392e"><div class="ttname"><a href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">glm::bitCount</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; bitCount(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the number of bits set to 1 in the binary representation of value. </div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00147.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00147.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00147.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; N,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; I,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Nref);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00147.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; genType <span class="keyword">const</span> &amp; I,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; genType <span class="keyword">const</span> &amp; N);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00147.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; I,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; N,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; T eta);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#include &quot;func_geometric.inl&quot;</span></div>
+<div class="ttc" id="a00147_html_gaea854e5aec1b5839832ac2dfc7cd3c0d"><div class="ttname"><a href="a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">glm::faceforward</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; faceforward(vecType&lt; T, P &gt; const &amp;N, vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;Nref)</div><div class="ttdoc">If dot(Nref, I) < 0.0, return N, otherwise, return -N. </div></div>
+<div class="ttc" id="a00147_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00147.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; normalize(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
+<div class="ttc" id="a00147_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00147.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
+<div class="ttc" id="a00147_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00147.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; cross(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00147_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00147.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; refract(vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
+<div class="ttc" id="a00147_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00147.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &amp;I, genType const &amp;N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00033.html b/3rdparty/glm/doc/api/a00033.html
index a8504c463fc..982dd07f886 100644
--- a/3rdparty/glm/doc/api/a00033.html
+++ b/3rdparty/glm/doc/api/a00033.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_matrix.hpp File Reference</title>
+<title>0.9.9 API documenation: func_integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,48 +64,98 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_matrix.hpp File Reference</div> </div>
+<div class="title">func_integer.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00033_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecTypeA, template&lt; typename, precision &gt; class vecTypeB&gt; </td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</td></tr>
-<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
+<tr class="memdesc:ga44abfe3379e11cbd29425a843420d0d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bits set to 1 in the binary representation of value. <a href="a00148.html#ga44abfe3379e11cbd29425a843420d0d6">More...</a><br /></td></tr>
+<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1f29640969a3c54564da06ac67a5392e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bits set to 1 in the binary representation of value. <a href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">More...</a><br /></td></tr>
+<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType&lt; T, P &gt; const &amp;Value, int Offset, int Bits)</td></tr>
+<tr class="memdesc:gab84b88f3a8e367774e5dd1c618c353cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. <a href="a00148.html#gab84b88f3a8e367774e5dd1c618c353cf">More...</a><br /></td></tr>
+<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType&lt; T, P &gt; const &amp;Base, vecType&lt; T, P &gt; const &amp;Insert, int Offset, int Bits)</td></tr>
+<tr class="memdesc:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the insertion the bits least-significant bits of insert into base. <a href="a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7">More...</a><br /></td></tr>
+<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga153e7e8d0c035f83cce50fc3e580930f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reversal of the bits of value. <a href="a00148.html#ga153e7e8d0c035f83cce50fc3e580930f">More...</a><br /></td></tr>
+<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
+<tr class="memdesc:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the least significant bit set to 1 in the binary representation of value. <a href="a00148.html#gaf74c4d969fa34ab8acb9d390f5ca5274">More...</a><br /></td></tr>
+<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga014a72009e68233c34c06a6dc2251b8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the least significant bit set to 1 in the binary representation of value. <a href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">More...</a><br /></td></tr>
+<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
+<tr class="memdesc:ga7e4a794d766861c70bc961630f8ef621"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the most significant bit in the binary representation of value. <a href="a00148.html#ga7e4a794d766861c70bc961630f8ef621">More...</a><br /></td></tr>
+<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga433104d77ec2ba58888aaefb77e9183f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the most significant bit in the binary representation of value. <a href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">More...</a><br /></td></tr>
+<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType&lt; int, P &gt; const &amp;x, vecType&lt; int, P &gt; const &amp;y, vecType&lt; int, P &gt; &amp;msb, vecType&lt; int, P &gt; &amp;lsb)</td></tr>
+<tr class="memdesc:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplies 32-bit integers x and y, producing a 64-bit result. <a href="a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">More...</a><br /></td></tr>
+<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;carry)</td></tr>
+<tr class="memdesc:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). <a href="a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">More...</a><br /></td></tr>
+<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;msb, vecType&lt; uint, P &gt; &amp;lsb)</td></tr>
+<tr class="memdesc:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplies 32-bit integers x and y, producing a 64-bit result. <a href="a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">More...</a><br /></td></tr>
+<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;borrow)</td></tr>
+<tr class="memdesc:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. <a href="a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4">More...</a><br /></td></tr>
+<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00033_source.html">func_matrix.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00033_source.html">func_integer.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00033_source.html b/3rdparty/glm/doc/api/a00033_source.html
index 8ea2d7cf50f..118de38acaa 100644
--- a/3rdparty/glm/doc/api/a00033_source.html
+++ b/3rdparty/glm/doc/api/a00033_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_matrix.hpp Source File</title>
+<title>0.9.9 API documenation: func_integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,121 +64,119 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_matrix.hpp</div> </div>
+<div class="title">func_integer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00033.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec2, tvec2&gt;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; };</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec2, tvec3&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec2, tvec4&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec3, tvec2&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; };</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec3, tvec3&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec3, tvec4&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; };</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec4, tvec2&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec4, tvec3&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec4, tvec4&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00030.html">func_common.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">func_vector_relational.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; vecType&lt;uint, P&gt; &amp; carry);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; vecType&lt;uint, P&gt; &amp; borrow);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; vecType&lt;uint, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; vecType&lt;uint, P&gt; &amp; msb,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; vecType&lt;uint, P&gt; &amp; lsb);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a>(</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; vecType&lt;int, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; vecType&lt;int, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; vecType&lt;int, P&gt; &amp; msb,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; vecType&lt;int, P&gt; &amp; lsb);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00148.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">int</span> Offset,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">int</span> Bits);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a>(</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Base,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Insert,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">int</span> Offset,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">int</span> Bits);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL matType&lt;T, P&gt; <a class="code" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, matType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecTypeA, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecTypeB&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> detail::outerProduct_trait&lt;T, P, vecTypeA, vecTypeB&gt;::type <a class="code" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(vecTypeA&lt;T, P&gt; <span class="keyword">const</span> &amp; c, vecTypeB&lt;T, P&gt; <span class="keyword">const</span> &amp; r);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2012))</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> matType&lt;T, P&gt;::transpose_type transpose(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL matType&lt;T, P&gt; <a class="code" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#include &quot;func_matrix.inl&quot;</span></div>
-<div class="ttc" id="a00155_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00155_html_ga7635d3dbe5aa10ff73a0e6903bf6bea5"><div class="ttname"><a href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; inverse(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
-<div class="ttc" id="a00155_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type outerProduct(vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</div></div>
-<div class="ttc" id="a00155_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; matrixCompMult(matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00148.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(genType v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(genIUType x);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(genIUType x);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#include &quot;func_integer.inl&quot;</span></div>
+<div class="ttc" id="a00148_html_ga433104d77ec2ba58888aaefb77e9183f"><div class="ttname"><a href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">glm::findMSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; findMSB(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the bit number of the most significant bit in the binary representation of value...</div></div>
+<div class="ttc" id="a00148_html_ga6e6e8b29ca40d8ca2df10b58ed17d426"><div class="ttname"><a href="a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">glm::imulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void imulExtended(vecType&lt; int, P &gt; const &amp;x, vecType&lt; int, P &gt; const &amp;y, vecType&lt; int, P &gt; &amp;msb, vecType&lt; int, P &gt; &amp;lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
+<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">func_common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga1f29640969a3c54564da06ac67a5392e"><div class="ttname"><a href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">glm::bitCount</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; bitCount(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the number of bits set to 1 in the binary representation of value. </div></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><div class="ttname"><a href="a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">glm::uaddCarry</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; uaddCarry(vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;carry)</div><div class="ttdoc">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </div></div>
+<div class="ttc" id="a00148_html_ga456ff9dcec42f6769a9ae2a2af7f1ce1"><div class="ttname"><a href="a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">glm::umulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void umulExtended(vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;msb, vecType&lt; uint, P &gt; &amp;lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
+<div class="ttc" id="a00148_html_gab84b88f3a8e367774e5dd1c618c353cf"><div class="ttname"><a href="a00148.html#gab84b88f3a8e367774e5dd1c618c353cf">glm::bitfieldExtract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldExtract(vecType&lt; T, P &gt; const &amp;Value, int Offset, int Bits)</div><div class="ttdoc">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...</div></div>
+<div class="ttc" id="a00148_html_ga153e7e8d0c035f83cce50fc3e580930f"><div class="ttname"><a href="a00148.html#ga153e7e8d0c035f83cce50fc3e580930f">glm::bitfieldReverse</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldReverse(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the reversal of the bits of value. </div></div>
+<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">func_vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00148_html_ga22a889bf08313b7e547e2cdb8bb15ee4"><div class="ttname"><a href="a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4">glm::usubBorrow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; usubBorrow(vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;borrow)</div><div class="ttdoc">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga5681dfac9239beb1b8bd995e3c6496d7"><div class="ttname"><a href="a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7">glm::bitfieldInsert</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; bitfieldInsert(vecType&lt; T, P &gt; const &amp;Base, vecType&lt; T, P &gt; const &amp;Insert, int Offset, int Bits)</div><div class="ttdoc">Returns the insertion the bits least-significant bits of insert into base. </div></div>
+<div class="ttc" id="a00148_html_ga014a72009e68233c34c06a6dc2251b8c"><div class="ttname"><a href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">glm::findLSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; findLSB(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the bit number of the least significant bit set to 1 in the binary representation of value...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00034.html b/3rdparty/glm/doc/api/a00034.html
index 8ad57127547..fa793867d6b 100644
--- a/3rdparty/glm/doc/api/a00034.html
+++ b/3rdparty/glm/doc/api/a00034.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_noise.hpp File Reference</title>
+<title>0.9.9 API documenation: func_matrix.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,48 +64,62 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_noise.hpp File Reference</div> </div>
+<div class="title">func_matrix.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00034_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gadcbf14e3390990f33fda02bb20836960">noise1</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gadcbf14e3390990f33fda02bb20836960"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; typename genType::value_type, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gad88de7f308dc57edb80690373a1380a9">noise2</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gad88de7f308dc57edb80690373a1380a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; typename genType::value_type, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">noise3</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; typename genType::value_type, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">noise4</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gaed96a491dd0c552040d59f9178bc626d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga26ea77c574802bc6fc193c40478718d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the transposed matrix of x. <a href="a00149.html#ga26ea77c574802bc6fc193c40478718d2">More...</a><br /></td></tr>
+<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:gaa7e1d5586cd499126cec76e0f11871e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the inverse of a squared matrix. <a href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">More...</a><br /></td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga4a54992e4741188ee624b21e3ba91814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. <a href="a00149.html#ga4a54992e4741188ee624b21e3ba91814">More...</a><br /></td></tr>
+<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecTypeA, template&lt; typename, precision &gt; class vecTypeB&gt; </td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</td></tr>
+<tr class="memdesc:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. <a href="a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09">More...</a><br /></td></tr>
+<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-01 / 2011-06-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00034_source.html">func_noise.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00034_source.html">func_matrix.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00034_source.html b/3rdparty/glm/doc/api/a00034_source.html
index 699eb71f65d..b99fa978f7b 100644
--- a/3rdparty/glm/doc/api/a00034_source.html
+++ b/3rdparty/glm/doc/api/a00034_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_noise.hpp Source File</title>
+<title>0.9.9 API documenation: func_matrix.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,51 +64,135 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_noise.hpp</div> </div>
+<div class="title">func_matrix.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00034.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00133.html">type_vec1.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec2, tvec2&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; };</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec2, tvec3&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; };</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00156.html#gadcbf14e3390990f33fda02bb20836960">noise1</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL tvec2&lt;typename genType::value_type, defaultp&gt; <a class="code" href="a00156.html#gad88de7f308dc57edb80690373a1380a9">noise2</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL tvec3&lt;typename genType::value_type, defaultp&gt; <a class="code" href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">noise3</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tvec4&lt;typename genType::value_type, defaultp&gt; <a class="code" href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">noise4</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec2, tvec4&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec3, tvec2&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec3, tvec3&gt;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; };</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec3, tvec4&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec4, tvec2&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; };</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec4, tvec3&gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; };</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">struct </span>outerProduct_trait&lt;T, P, tvec4, tvec4&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#include &quot;func_noise.inl&quot;</span></div>
-<div class="ttc" id="a00156_html_gaed96a491dd0c552040d59f9178bc626d"><div class="ttname"><a href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">glm::noise4</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; typename genType::value_type, defaultp &gt; noise4(genType const &amp;x)</div><div class="ttdoc">Returns a 4D noise value based on the input value x. </div></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00156_html_gad88de7f308dc57edb80690373a1380a9"><div class="ttname"><a href="a00156.html#gad88de7f308dc57edb80690373a1380a9">glm::noise2</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; typename genType::value_type, defaultp &gt; noise2(genType const &amp;x)</div><div class="ttdoc">Returns a 2D noise value based on the input value x. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">type_vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00156_html_gadcbf14e3390990f33fda02bb20836960"><div class="ttname"><a href="a00156.html#gadcbf14e3390990f33fda02bb20836960">glm::noise1</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type noise1(genType const &amp;x)</div><div class="ttdoc">Returns a 1D noise value based on the input value x. </div></div>
-<div class="ttc" id="a00156_html_ga3359a5e2b61cee8cf4498470a63f7283"><div class="ttname"><a href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">glm::noise3</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; typename genType::value_type, defaultp &gt; noise3(genType const &amp;x)</div><div class="ttdoc">Returns a 3D noise value based on the input value x. </div></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL matType&lt;T, P&gt; <a class="code" href="a00149.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, matType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecTypeA, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecTypeB&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> detail::outerProduct_trait&lt;T, P, vecTypeA, vecTypeB&gt;::type <a class="code" href="a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(vecTypeA&lt;T, P&gt; <span class="keyword">const</span> &amp; c, vecTypeB&lt;T, P&gt; <span class="keyword">const</span> &amp; r);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC11))</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> matType&lt;T, P&gt;::transpose_type transpose(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00149.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL matType&lt;T, P&gt; <a class="code" href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#include &quot;func_matrix.inl&quot;</span></div>
+<div class="ttc" id="a00149_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00149.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
+<div class="ttc" id="a00149_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; inverse(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00149_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type outerProduct(vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</div></div>
+<div class="ttc" id="a00149_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00149.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; matrixCompMult(matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00035.html b/3rdparty/glm/doc/api/a00035.html
index f92d887082f..61a7f14417c 100644
--- a/3rdparty/glm/doc/api/a00035.html
+++ b/3rdparty/glm/doc/api/a00035.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_packing.hpp File Reference</title>
+<title>0.9.9 API documenation: func_packing.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,47 +91,55 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00035_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &amp;v)</td></tr>
+<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &amp;v)</td></tr>
+<tr class="memdesc:gaa916ca426b2bb0343ba17e3753e245c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a double-precision value obtained by packing the components of v into a 64-bit value. <a href="a00150.html#gaa916ca426b2bb0343ba17e3753e245c2">More...</a><br /></td></tr>
<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga20f134b07db3a3d3a38efb2617388c92"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga20f134b07db3a3d3a38efb2617388c92">More...</a><br /></td></tr>
<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga977ab172da5494e5ac63e952afacfbe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#ga977ab172da5494e5ac63e952afacfbe2">More...</a><br /></td></tr>
<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &amp;v)</td></tr>
+<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga85e8f17627516445026ab7a9c2e3531a"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#ga85e8f17627516445026ab7a9c2e3531a">More...</a><br /></td></tr>
<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga0e2d107039fe608a209497af867b85fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#ga0e2d107039fe608a209497af867b85fb">More...</a><br /></td></tr>
<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &amp;v)</td></tr>
+<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">More...</a><br /></td></tr>
<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
+<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
+<tr class="memdesc:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a two-component unsigned integer vector representation of v. <a href="a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483">More...</a><br /></td></tr>
<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
+<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
+<tr class="memdesc:gaf59b52e6b28da9335322c4ae19b5d745"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#gaf59b52e6b28da9335322c4ae19b5d745">More...</a><br /></td></tr>
<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
+<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
+<tr class="memdesc:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38">More...</a><br /></td></tr>
<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
+<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
+<tr class="memdesc:ga2db488646d48b7c43d3218954523fe82"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga2db488646d48b7c43d3218954523fe82">More...</a><br /></td></tr>
<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
+<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
+<tr class="memdesc:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007">More...</a><br /></td></tr>
<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
+<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
+<tr class="memdesc:ga7f903259150b67e9466f5f8edffcd197"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga7f903259150b67e9466f5f8edffcd197">More...</a><br /></td></tr>
<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-03-17 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd>
<dd>
-<a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd></dl>
+<a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd></dl>
<p>Definition in file <a class="el" href="a00035_source.html">func_packing.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/a00035_source.html b/3rdparty/glm/doc/api/a00035_source.html
index 794624ae24f..a3af8053e80 100644
--- a/3rdparty/glm/doc/api/a00035_source.html
+++ b/3rdparty/glm/doc/api/a00035_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_packing.hpp Source File</title>
+<title>0.9.9 API documenation: func_packing.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,60 +89,60 @@
</div><!--header-->
<div class="contents">
<a href="a00035.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00157.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL <span class="keywordtype">double</span> <a class="code" href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a>(<a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <a class="code" href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a>(<span class="keywordtype">double</span> v);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> v);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#include &quot;func_packing.inl&quot;</span></div>
-<div class="ttc" id="a00157_html_ga20f134b07db3a3d3a38efb2617388c92"><div class="ttname"><a href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">glm::packHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packHalf2x16(vec2 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a two-component floating-point v...</div></div>
-<div class="ttc" id="a00157_html_ga1f66188e5d65afeb9ffba1ad971e4007"><div class="ttname"><a href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">glm::unpackUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00157_html_ga7f903259150b67e9466f5f8edffcd197"><div class="ttname"><a href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">glm::unpackUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00157_html_ga5f4296dc5f12f0aa67ac05b8bb322483"><div class="ttname"><a href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">glm::unpackDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)</div><div class="ttdoc">Returns a two-component unsigned integer vector representation of v. </div></div>
-<div class="ttc" id="a00157_html_ga0e2d107039fe608a209497af867b85fb"><div class="ttname"><a href="a00157.html#ga0e2d107039fe608a209497af867b85fb">glm::packUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm2x16(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00157_html_ga85e8f17627516445026ab7a9c2e3531a"><div class="ttname"><a href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">glm::packSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm4x8(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00471">type_vec.hpp:471</a></div></div>
-<div class="ttc" id="a00157_html_ga977ab172da5494e5ac63e952afacfbe2"><div class="ttname"><a href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">glm::packSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm2x16(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00157_html_gacd8f8971a3fe28418be0d0fa1f786b38"><div class="ttname"><a href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">glm::unpackSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00157_html_gaf7d2f7341a9eeb4a436929d6f9ad08f2"><div class="ttname"><a href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">glm::packUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm4x8(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00157_html_gaa916ca426b2bb0343ba17e3753e245c2"><div class="ttname"><a href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">glm::packDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL double packDouble2x32(uvec2 const &amp;v)</div><div class="ttdoc">Returns a double-precision value obtained by packing the components of v into a 64-bit value...</div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00157_html_ga2db488646d48b7c43d3218954523fe82"><div class="ttname"><a href="a00157.html#ga2db488646d48b7c43d3218954523fe82">glm::unpackSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00157_html_gaf59b52e6b28da9335322c4ae19b5d745"><div class="ttname"><a href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">glm::unpackHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)</div><div class="ttdoc">Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...</div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00150.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00150.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00150.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00150.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00150.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL <span class="keywordtype">double</span> <a class="code" href="a00150.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a>(<a class="code" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <a class="code" href="a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a>(<span class="keywordtype">double</span> v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00150.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00150.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> v);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#include &quot;func_packing.inl&quot;</span></div>
+<div class="ttc" id="a00150_html_ga2db488646d48b7c43d3218954523fe82"><div class="ttname"><a href="a00150.html#ga2db488646d48b7c43d3218954523fe82">glm::unpackSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00150_html_gacd8f8971a3fe28418be0d0fa1f786b38"><div class="ttname"><a href="a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38">glm::unpackSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00157_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00150_html_gaf59b52e6b28da9335322c4ae19b5d745"><div class="ttname"><a href="a00150.html#gaf59b52e6b28da9335322c4ae19b5d745">glm::unpackHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)</div><div class="ttdoc">Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...</div></div>
+<div class="ttc" id="a00150_html_ga1f66188e5d65afeb9ffba1ad971e4007"><div class="ttname"><a href="a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007">glm::unpackUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00150_html_ga977ab172da5494e5ac63e952afacfbe2"><div class="ttname"><a href="a00150.html#ga977ab172da5494e5ac63e952afacfbe2">glm::packSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm2x16(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00150_html_gaf7d2f7341a9eeb4a436929d6f9ad08f2"><div class="ttname"><a href="a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">glm::packUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm4x8(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00150_html_ga0e2d107039fe608a209497af867b85fb"><div class="ttname"><a href="a00150.html#ga0e2d107039fe608a209497af867b85fb">glm::packUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm2x16(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00150_html_ga7f903259150b67e9466f5f8edffcd197"><div class="ttname"><a href="a00150.html#ga7f903259150b67e9466f5f8edffcd197">glm::unpackUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00156_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00535">type_vec.hpp:535</a></div></div>
+<div class="ttc" id="a00150_html_gaa916ca426b2bb0343ba17e3753e245c2"><div class="ttname"><a href="a00150.html#gaa916ca426b2bb0343ba17e3753e245c2">glm::packDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL double packDouble2x32(uvec2 const &amp;v)</div><div class="ttdoc">Returns a double-precision value obtained by packing the components of v into a 64-bit value...</div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00150_html_ga85e8f17627516445026ab7a9c2e3531a"><div class="ttname"><a href="a00150.html#ga85e8f17627516445026ab7a9c2e3531a">glm::packSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm4x8(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00150_html_ga20f134b07db3a3d3a38efb2617388c92"><div class="ttname"><a href="a00150.html#ga20f134b07db3a3d3a38efb2617388c92">glm::packHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packHalf2x16(vec2 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a two-component floating-point v...</div></div>
+<div class="ttc" id="a00150_html_ga5f4296dc5f12f0aa67ac05b8bb322483"><div class="ttname"><a href="a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483">glm::unpackDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)</div><div class="ttdoc">Returns a two-component unsigned integer vector representation of v. </div></div>
+<div class="ttc" id="a00156_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00454">type_vec.hpp:454</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00156_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00464">type_vec.hpp:464</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00036.html b/3rdparty/glm/doc/api/a00036.html
index 46779db7bf7..3f1eb1064c7 100644
--- a/3rdparty/glm/doc/api/a00036.html
+++ b/3rdparty/glm/doc/api/a00036.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_trigonometric.hpp File Reference</title>
+<title>0.9.9 API documenation: func_trigonometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,65 +91,76 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00036_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc cosine. <a href="a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc">More...</a><br /></td></tr>
<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga3f368ad3e1883b60748ca2634d816104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc hyperbolic cosine; returns the non-negative inverse of cosh. <a href="a00151.html#ga3f368ad3e1883b60748ca2634d816104">More...</a><br /></td></tr>
<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga88e29b8289e882859d76a25798dd9490"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc sine. <a href="a00151.html#ga88e29b8289e882859d76a25798dd9490">More...</a><br /></td></tr>
<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga72bf44c1984e1afb63acf821ba33cac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc hyperbolic sine; returns the inverse of sinh. <a href="a00151.html#ga72bf44c1984e1afb63acf821ba33cac7">More...</a><br /></td></tr>
<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga461e769acb8b8cb695a5a89334546611"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. <a href="a00151.html#ga461e769acb8b8cb695a5a89334546611">More...</a><br /></td></tr>
<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType&lt; T, P &gt; const &amp;y_over_x)</td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType&lt; T, P &gt; const &amp;y_over_x)</td></tr>
+<tr class="memdesc:gae8f22458bba8f2321ceb1bfc4a543216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. <a href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">More...</a><br /></td></tr>
<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaffa8decdd8620759f4e6fe4834768b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc hyperbolic tangent; returns the inverse of tanh. <a href="a00151.html#gaffa8decdd8620759f4e6fe4834768b87">More...</a><br /></td></tr>
<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga728fd86f14609e37d83f82429995b7b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard trigonometric cosine function. <a href="a00151.html#ga728fd86f14609e37d83f82429995b7b3">More...</a><br /></td></tr>
<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga660582a4e5e843b6c1cd535777e8c295"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. <a href="a00151.html#ga660582a4e5e843b6c1cd535777e8c295">More...</a><br /></td></tr>
<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a> (vecType&lt; T, P &gt; const &amp;radians)</td></tr>
-<tr class="separator:ga402144a18234e642b702bf585599b46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a> (vecType&lt; T, P &gt; const &amp;degrees)</td></tr>
-<tr class="separator:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a> (vecType&lt; T, P &gt; const &amp;radians)</td></tr>
+<tr class="memdesc:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts radians to degrees and returns the result. <a href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">More...</a><br /></td></tr>
+<tr class="separator:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a> (vecType&lt; T, P &gt; const &amp;degrees)</td></tr>
+<tr class="memdesc:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts degrees to radians and returns the result. <a href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">More...</a><br /></td></tr>
+<tr class="separator:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard trigonometric sine function. <a href="a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">More...</a><br /></td></tr>
<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:gad8f89c12efe6f8d3ae8046625b266254"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. <a href="a00151.html#gad8f89c12efe6f8d3ae8046625b266254">More...</a><br /></td></tr>
<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard trigonometric tangent function. <a href="a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2">More...</a><br /></td></tr>
<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga234e904a0075f88654a594b5f837711f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) <a href="a00151.html#ga234e904a0075f88654a594b5f837711f">More...</a><br /></td></tr>
<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-01 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00036_source.html">func_trigonometric.hpp</a>.</p>
diff --git a/3rdparty/glm/doc/api/a00036_source.html b/3rdparty/glm/doc/api/a00036_source.html
index 271e567a2b9..e35761f0eb9 100644
--- a/3rdparty/glm/doc/api/a00036_source.html
+++ b/3rdparty/glm/doc/api/a00036_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_trigonometric.hpp Source File</title>
+<title>0.9.9 API documenation: func_trigonometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,80 +89,80 @@
</div><!--header-->
<div class="contents">
<a href="a00036.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt;T, P&gt; <a class="code" href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a>);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt;T, P&gt; <a class="code" href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a>);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga728fd86f14609e37d83f82429995b7b3">cos</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a>);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>); </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">cos</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>); </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga88e29b8289e882859d76a25798dd9490">asin</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y_over_x);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga88e29b8289e882859d76a25798dd9490">asin</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y_over_x);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga234e904a0075f88654a594b5f837711f">tanh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga234e904a0075f88654a594b5f837711f">tanh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00151.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#include &quot;func_trigonometric.inl&quot;</span></div>
-<div class="ttc" id="a00158_html_gae8f22458bba8f2321ceb1bfc4a543216"><div class="ttname"><a href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; atan(vecType&lt; T, P &gt; const &amp;y_over_x)</div><div class="ttdoc">Arc tangent. </div></div>
-<div class="ttc" id="a00158_html_ga58ad259b788528fe0a4bd2eeb5e381cc"><div class="ttname"><a href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">glm::acos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; acos(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc cosine. </div></div>
-<div class="ttc" id="a00158_html_ga234e904a0075f88654a594b5f837711f"><div class="ttname"><a href="a00158.html#ga234e904a0075f88654a594b5f837711f">glm::tanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; tanh(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </div></div>
-<div class="ttc" id="a00158_html_ga660582a4e5e843b6c1cd535777e8c295"><div class="ttname"><a href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">glm::cosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; cosh(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </div></div>
-<div class="ttc" id="a00158_html_ga72bf44c1984e1afb63acf821ba33cac7"><div class="ttname"><a href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">glm::asinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; asinh(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc hyperbolic sine; returns the inverse of sinh. </div></div>
-<div class="ttc" id="a00158_html_ga0fd3ad793538521f76fa30db7f6edfed"><div class="ttname"><a href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">glm::radians</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; radians(vecType&lt; T, P &gt; const &amp;degrees)</div><div class="ttdoc">Converts degrees to radians and returns the result. </div></div>
-<div class="ttc" id="a00158_html_ga728fd86f14609e37d83f82429995b7b3"><div class="ttname"><a href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">glm::cos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; cos(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">The standard trigonometric cosine function. </div></div>
-<div class="ttc" id="a00158_html_ga4a0ddceb6b1e64ce0e4da209dcb021d5"><div class="ttname"><a href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">glm::sin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sin(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">The standard trigonometric sine function. </div></div>
-<div class="ttc" id="a00158_html_gad8f89c12efe6f8d3ae8046625b266254"><div class="ttname"><a href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">glm::sinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sinh(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </div></div>
-<div class="ttc" id="a00158_html_ga402144a18234e642b702bf585599b46d"><div class="ttname"><a href="a00158.html#ga402144a18234e642b702bf585599b46d">glm::degrees</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; degrees(vecType&lt; T, P &gt; const &amp;radians)</div><div class="ttdoc">Converts radians to degrees and returns the result. </div></div>
-<div class="ttc" id="a00158_html_gab3ae890c38b7d3aa4d5e00998fd296b2"><div class="ttname"><a href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">glm::tan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; tan(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">The standard trigonometric tangent function. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00158_html_ga3f368ad3e1883b60748ca2634d816104"><div class="ttname"><a href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">glm::acosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; acosh(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc hyperbolic cosine; returns the non-negative inverse of cosh. </div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00158_html_ga88e29b8289e882859d76a25798dd9490"><div class="ttname"><a href="a00158.html#ga88e29b8289e882859d76a25798dd9490">glm::asin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; asin(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc sine. </div></div>
-<div class="ttc" id="a00158_html_gaffa8decdd8620759f4e6fe4834768b87"><div class="ttname"><a href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">glm::atanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; atanh(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc hyperbolic tangent; returns the inverse of tanh. </div></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#include &quot;func_trigonometric.inl&quot;</span></div>
+<div class="ttc" id="a00151_html_gae8f22458bba8f2321ceb1bfc4a543216"><div class="ttname"><a href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; atan(vecType&lt; T, P &gt; const &amp;y_over_x)</div><div class="ttdoc">Arc tangent. </div></div>
+<div class="ttc" id="a00151_html_ga88e29b8289e882859d76a25798dd9490"><div class="ttname"><a href="a00151.html#ga88e29b8289e882859d76a25798dd9490">glm::asin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; asin(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc sine. </div></div>
+<div class="ttc" id="a00151_html_gaffa8decdd8620759f4e6fe4834768b87"><div class="ttname"><a href="a00151.html#gaffa8decdd8620759f4e6fe4834768b87">glm::atanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; atanh(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc hyperbolic tangent; returns the inverse of tanh. </div></div>
+<div class="ttc" id="a00151_html_gad8f89c12efe6f8d3ae8046625b266254"><div class="ttname"><a href="a00151.html#gad8f89c12efe6f8d3ae8046625b266254">glm::sinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sinh(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </div></div>
+<div class="ttc" id="a00151_html_ga660582a4e5e843b6c1cd535777e8c295"><div class="ttname"><a href="a00151.html#ga660582a4e5e843b6c1cd535777e8c295">glm::cosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; cosh(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </div></div>
+<div class="ttc" id="a00151_html_ga72bf44c1984e1afb63acf821ba33cac7"><div class="ttname"><a href="a00151.html#ga72bf44c1984e1afb63acf821ba33cac7">glm::asinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; asinh(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc hyperbolic sine; returns the inverse of sinh. </div></div>
+<div class="ttc" id="a00151_html_ga58ad259b788528fe0a4bd2eeb5e381cc"><div class="ttname"><a href="a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc">glm::acos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; acos(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc cosine. </div></div>
+<div class="ttc" id="a00151_html_ga728fd86f14609e37d83f82429995b7b3"><div class="ttname"><a href="a00151.html#ga728fd86f14609e37d83f82429995b7b3">glm::cos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; cos(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">The standard trigonometric cosine function. </div></div>
+<div class="ttc" id="a00151_html_gabccdcc282134fd62af0ff3d6e4bb21f1"><div class="ttname"><a href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">glm::degrees</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt; T, P &gt; degrees(vecType&lt; T, P &gt; const &amp;radians)</div><div class="ttdoc">Converts radians to degrees and returns the result. </div></div>
+<div class="ttc" id="a00151_html_gafffb5e533f75318bdf4e0967d8a6c05c"><div class="ttname"><a href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">glm::radians</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt; T, P &gt; radians(vecType&lt; T, P &gt; const &amp;degrees)</div><div class="ttdoc">Converts degrees to radians and returns the result. </div></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00151_html_gab3ae890c38b7d3aa4d5e00998fd296b2"><div class="ttname"><a href="a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2">glm::tan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; tan(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">The standard trigonometric tangent function. </div></div>
+<div class="ttc" id="a00151_html_ga234e904a0075f88654a594b5f837711f"><div class="ttname"><a href="a00151.html#ga234e904a0075f88654a594b5f837711f">glm::tanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; tanh(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </div></div>
+<div class="ttc" id="a00151_html_ga3f368ad3e1883b60748ca2634d816104"><div class="ttname"><a href="a00151.html#ga3f368ad3e1883b60748ca2634d816104">glm::acosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; acosh(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Arc hyperbolic cosine; returns the non-negative inverse of cosh. </div></div>
+<div class="ttc" id="a00151_html_ga4a0ddceb6b1e64ce0e4da209dcb021d5"><div class="ttname"><a href="a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">glm::sin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sin(vecType&lt; T, P &gt; const &amp;angle)</div><div class="ttdoc">The standard trigonometric sine function. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00037.html b/3rdparty/glm/doc/api/a00037.html
index 0eddd59ef48..df01e647aef 100644
--- a/3rdparty/glm/doc/api/a00037.html
+++ b/3rdparty/glm/doc/api/a00037.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_vector_relational.hpp File Reference</title>
+<title>0.9.9 API documenation: func_vector_relational.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -52,47 +91,52 @@
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00037_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if all components of x are true. <a href="a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e">More...</a><br /></td></tr>
<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga632a2644532d9332011c8860400d30b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if any component of x is true. <a href="a00152.html#ga632a2644532d9332011c8860400d30b2">More...</a><br /></td></tr>
<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x == y. <a href="a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801">More...</a><br /></td></tr>
<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gadd80263161a308462d3e3e287e79cccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt; y. <a href="a00152.html#gadd80263161a308462d3e3e287e79cccd">More...</a><br /></td></tr>
<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt;= y. <a href="a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">More...</a><br /></td></tr>
<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga6261970937a70b0b747ae0d3ade1c188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison result of x &lt; y. <a href="a00152.html#ga6261970937a70b0b747ae0d3ade1c188">More...</a><br /></td></tr>
<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaaf1d88119f11200c32011de7c5ec0102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &lt;= y. <a href="a00152.html#gaaf1d88119f11200c32011de7c5ec0102">More...</a><br /></td></tr>
<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise logical complement of x. <a href="a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177">More...</a><br /></td></tr>
<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga5aca2b745e5eb0096716bbc394846309"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x != y. <a href="a00152.html#ga5aca2b745e5eb0096716bbc394846309">More...</a><br /></td></tr>
<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00037_source.html">func_vector_relational.hpp</a>.</p>
diff --git a/3rdparty/glm/doc/api/a00037_source.html b/3rdparty/glm/doc/api/a00037_source.html
index 3dd92e808ed..d1431a81ddc 100644
--- a/3rdparty/glm/doc/api/a00037_source.html
+++ b/3rdparty/glm/doc/api/a00037_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_vector_relational.hpp Source File</title>
+<title>0.9.9 API documenation: func_vector_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,9 +64,23 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -50,56 +89,56 @@
</div><!--header-->
<div class="contents">
<a href="a00037.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00159.html#ga632a2644532d9332011c8860400d30b2">any</a>(vecType&lt;bool, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a>(vecType&lt;bool, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a>(vecType&lt;bool, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#include &quot;func_vector_relational.inl&quot;</span></div>
-<div class="ttc" id="a00159_html_ga6261970937a70b0b747ae0d3ade1c188"><div class="ttname"><a href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; lessThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
-<div class="ttc" id="a00159_html_gaee7e101f8cc4ea43924f14dcdeb2ef26"><div class="ttname"><a href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; greaterThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
-<div class="ttc" id="a00159_html_gadd80263161a308462d3e3e287e79cccd"><div class="ttname"><a href="a00159.html#gadd80263161a308462d3e3e287e79cccd">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; greaterThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
-<div class="ttc" id="a00159_html_ga14bbc94f2ae2774a1d64d91f8767773e"><div class="ttname"><a href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">glm::all</a></div><div class="ttdeci">GLM_FUNC_DECL bool all(vecType&lt; bool, P &gt; const &amp;v)</div><div class="ttdoc">Returns true if all components of x are true. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00159_html_gaaf1d88119f11200c32011de7c5ec0102"><div class="ttname"><a href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; lessThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
-<div class="ttc" id="a00159_html_ga39c80d8baf49b0ce69f2bb22d45b3801"><div class="ttname"><a href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; equal(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00159_html_ga632a2644532d9332011c8860400d30b2"><div class="ttname"><a href="a00159.html#ga632a2644532d9332011c8860400d30b2">glm::any</a></div><div class="ttdeci">GLM_FUNC_DECL bool any(vecType&lt; bool, P &gt; const &amp;v)</div><div class="ttdoc">Returns true if any component of x is true. </div></div>
-<div class="ttc" id="a00159_html_ga4329ecbc2ef012c9ec704bd09da1f177"><div class="ttname"><a href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">glm::not_</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; not_(vecType&lt; bool, P &gt; const &amp;v)</div><div class="ttdoc">Returns the component-wise logical complement of x. </div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00159_html_ga5aca2b745e5eb0096716bbc394846309"><div class="ttname"><a href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; notEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00152.html#ga632a2644532d9332011c8860400d30b2">any</a>(vecType&lt;bool, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a>(vecType&lt;bool, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a>(vecType&lt;bool, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#include &quot;func_vector_relational.inl&quot;</span></div>
+<div class="ttc" id="a00152_html_gadd80263161a308462d3e3e287e79cccd"><div class="ttname"><a href="a00152.html#gadd80263161a308462d3e3e287e79cccd">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; greaterThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00152_html_ga632a2644532d9332011c8860400d30b2"><div class="ttname"><a href="a00152.html#ga632a2644532d9332011c8860400d30b2">glm::any</a></div><div class="ttdeci">GLM_FUNC_DECL bool any(vecType&lt; bool, P &gt; const &amp;v)</div><div class="ttdoc">Returns true if any component of x is true. </div></div>
+<div class="ttc" id="a00152_html_ga39c80d8baf49b0ce69f2bb22d45b3801"><div class="ttname"><a href="a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; equal(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
+<div class="ttc" id="a00152_html_ga14bbc94f2ae2774a1d64d91f8767773e"><div class="ttname"><a href="a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e">glm::all</a></div><div class="ttdeci">GLM_FUNC_DECL bool all(vecType&lt; bool, P &gt; const &amp;v)</div><div class="ttdoc">Returns true if all components of x are true. </div></div>
+<div class="ttc" id="a00152_html_gaee7e101f8cc4ea43924f14dcdeb2ef26"><div class="ttname"><a href="a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; greaterThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
+<div class="ttc" id="a00152_html_ga5aca2b745e5eb0096716bbc394846309"><div class="ttname"><a href="a00152.html#ga5aca2b745e5eb0096716bbc394846309">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; notEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00152_html_gaaf1d88119f11200c32011de7c5ec0102"><div class="ttname"><a href="a00152.html#gaaf1d88119f11200c32011de7c5ec0102">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; lessThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
+<div class="ttc" id="a00152_html_ga4329ecbc2ef012c9ec704bd09da1f177"><div class="ttname"><a href="a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177">glm::not_</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; not_(vecType&lt; bool, P &gt; const &amp;v)</div><div class="ttdoc">Returns the component-wise logical complement of x. </div></div>
+<div class="ttc" id="a00152_html_ga6261970937a70b0b747ae0d3ade1c188"><div class="ttname"><a href="a00152.html#ga6261970937a70b0b747ae0d3ade1c188">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; lessThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00038.html b/3rdparty/glm/doc/api/a00038.html
index b78fc7a5427..bb137530d56 100644
--- a/3rdparty/glm/doc/api/a00038.html
+++ b/3rdparty/glm/doc/api/a00038.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fwd.hpp File Reference</title>
+<title>0.9.9 API documenation: functions.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,942 +64,56 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">fwd.hpp File Reference</div> </div>
+<div class="title">functions.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00164.html">GLM_GTC_functions</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00038_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:af62ed3862b7f5db4da71756a7b1367be"><td class="memItemLeft" align="right" valign="top">typedef highp_dquat&#160;</td><td class="memItemRight" valign="bottom"><b>dquat</b></td></tr>
-<tr class="separator:af62ed3862b7f5db4da71756a7b1367be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
-<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
-<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
-<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
-<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
-<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
-<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
-<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
-<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
-<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
-<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
-<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
-<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
-<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
-<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
-<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
-<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
-<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
-<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
-<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
-<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
-<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
-<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
-<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
-<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
-<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
-<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
-<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
-<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
-<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
-<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
-<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
-<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
-<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
-<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
-<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
-<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
-<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
-<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
-<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
-<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
-<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
-<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
-<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
-<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
-<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
-<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
-<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
-<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
-<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
-<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af31dbba5cedde97099c8e30b9661edf0"><td class="memItemLeft" align="right" valign="top">typedef quat&#160;</td><td class="memItemRight" valign="bottom"><b>fquat</b></td></tr>
-<tr class="separator:af31dbba5cedde97099c8e30b9661edf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
-<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
-<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
-<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
-<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a30d694434c136946d9f98c8baa3d40a1"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_dquat</b></td></tr>
-<tr class="separator:a30d694434c136946d9f98c8baa3d40a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6906e1ef0b34064b4b675489c5c38725"><td class="memItemLeft" align="right" valign="top">typedef float32&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32</b></td></tr>
-<tr class="separator:a6906e1ef0b34064b4b675489c5c38725"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a298f7d4d273678d0282812368da27fda"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2</b></td></tr>
-<tr class="separator:a298f7d4d273678d0282812368da27fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abca6420c08917f60f9c76a924c3fa9ef"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x2</b></td></tr>
-<tr class="separator:abca6420c08917f60f9c76a924c3fa9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a05a62dfea812122ea4a07ca23f9200a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x3</b></td></tr>
-<tr class="separator:a05a62dfea812122ea4a07ca23f9200a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x4</b></td></tr>
-<tr class="separator:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a24f9ef3263b1638564713892cc37981f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3</b></td></tr>
-<tr class="separator:a24f9ef3263b1638564713892cc37981f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x2</b></td></tr>
-<tr class="separator:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeb88d894a02f3c506e7895a364acf329"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x3</b></td></tr>
-<tr class="separator:aeb88d894a02f3c506e7895a364acf329"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2270e71161b53344ef300feea86ce8f8"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x4</b></td></tr>
-<tr class="separator:a2270e71161b53344ef300feea86ce8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a14c90ca49885723f51d06e295587236f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4</b></td></tr>
-<tr class="separator:a14c90ca49885723f51d06e295587236f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x2</b></td></tr>
-<tr class="separator:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7ccff35ecac00891d63998ace1369cf8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x3</b></td></tr>
-<tr class="separator:a7ccff35ecac00891d63998ace1369cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ab79fc2711ccd850f42d5e816012397"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x4</b></td></tr>
-<tr class="separator:a0ab79fc2711ccd850f42d5e816012397"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abe379321f08ebc6fc89563908f3e4cda"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32quat</b></td></tr>
-<tr class="separator:abe379321f08ebc6fc89563908f3e4cda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0f40d1860ed9eb243181e025bfb5c479"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec1</b></td></tr>
-<tr class="separator:a0f40d1860ed9eb243181e025bfb5c479"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a51a457bcd2c0840cac5dd18b6547a32e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec2</b></td></tr>
-<tr class="separator:a51a457bcd2c0840cac5dd18b6547a32e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec3</b></td></tr>
-<tr class="separator:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a809699b904d856484f97d3ea89f45ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec4</b></td></tr>
-<tr class="separator:a809699b904d856484f97d3ea89f45ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a51d5266017d88f62737c1973923a7cf4"><td class="memItemLeft" align="right" valign="top">typedef float64&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64</b></td></tr>
-<tr class="separator:a51d5266017d88f62737c1973923a7cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af7adb92ce8de0afaff01436b039fd924"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2</b></td></tr>
-<tr class="separator:af7adb92ce8de0afaff01436b039fd924"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af538d136729000563979da800678fcdb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x2</b></td></tr>
-<tr class="separator:af538d136729000563979da800678fcdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7d56d15ebc86c890d91b7a77415945d6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x3</b></td></tr>
-<tr class="separator:a7d56d15ebc86c890d91b7a77415945d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac451118b55d9c1c8645a13dc905da2ef"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x4</b></td></tr>
-<tr class="separator:ac451118b55d9c1c8645a13dc905da2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a609bf0ace941d6ab1bb2f9522a04e546"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3</b></td></tr>
-<tr class="separator:a609bf0ace941d6ab1bb2f9522a04e546"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae9b193febd3179de366dfa1ba31ee6ce"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x2</b></td></tr>
-<tr class="separator:ae9b193febd3179de366dfa1ba31ee6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5b24baf9696ed586df64253fb58404af"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x3</b></td></tr>
-<tr class="separator:a5b24baf9696ed586df64253fb58404af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x4</b></td></tr>
-<tr class="separator:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4</b></td></tr>
-<tr class="separator:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afa65ad618b70fa8a2d6412d084c6abf3"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x2</b></td></tr>
-<tr class="separator:afa65ad618b70fa8a2d6412d084c6abf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4b7feceabacde08ca13d1f5ef120d128"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x3</b></td></tr>
-<tr class="separator:a4b7feceabacde08ca13d1f5ef120d128"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a097940f00a411b5982c35ed5ee66974d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x4</b></td></tr>
-<tr class="separator:a097940f00a411b5982c35ed5ee66974d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab51c057647a12b62a8a6a855ece8d167"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64quat</b></td></tr>
-<tr class="separator:ab51c057647a12b62a8a6a855ece8d167"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a89237ecd4974b66bfeca50946f41e9c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec1</b></td></tr>
-<tr class="separator:a89237ecd4974b66bfeca50946f41e9c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a89dc53052e92cfafd97ecd391397baf0"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec2</b></td></tr>
-<tr class="separator:a89dc53052e92cfafd97ecd391397baf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aec720296a0a21668a2ed5a1d5f139169"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec3</b></td></tr>
-<tr class="separator:aec720296a0a21668a2ed5a1d5f139169"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0d2488c3fb459e4646405e1156e2e00c"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec4</b></td></tr>
-<tr class="separator:a0d2488c3fb459e4646405e1156e2e00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adde4415e846cff13c6cb74a6fe73d01e"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float32</b></td></tr>
-<tr class="separator:adde4415e846cff13c6cb74a6fe73d01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float32_t</b></td></tr>
-<tr class="separator:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float64</b></td></tr>
-<tr class="separator:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a982f41429168a9f2d557500008b0ec22"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float64_t</b></td></tr>
-<tr class="separator:a982f41429168a9f2d557500008b0ec22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae98c88d9a7befa9b5877f49176225535"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2</b></td></tr>
-<tr class="separator:ae98c88d9a7befa9b5877f49176225535"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2x2</b></td></tr>
-<tr class="separator:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adb7ad165be67b8607d6fcac71a913f0b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2x3</b></td></tr>
-<tr class="separator:adb7ad165be67b8607d6fcac71a913f0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b10e8ada3693b02f55095efa35fdd8b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2x4</b></td></tr>
-<tr class="separator:a3b10e8ada3693b02f55095efa35fdd8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aed2dc69e0d507d4191092dbd44b3eb75"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3</b></td></tr>
-<tr class="separator:aed2dc69e0d507d4191092dbd44b3eb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a24225ab930d68cda78866230d5f4c586"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3x2</b></td></tr>
-<tr class="separator:a24225ab930d68cda78866230d5f4c586"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3de1e02382b33fa458eb55392136f55d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3x3</b></td></tr>
-<tr class="separator:a3de1e02382b33fa458eb55392136f55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a311a121ace2b2d2c1f065cfb0be47092"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3x4</b></td></tr>
-<tr class="separator:a311a121ace2b2d2c1f065cfb0be47092"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abf28443ce0cc0959077ec39b21f32c39"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4</b></td></tr>
-<tr class="separator:abf28443ce0cc0959077ec39b21f32c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d63d03c71b1749daba2c810037b43cd"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4x2</b></td></tr>
-<tr class="separator:a2d63d03c71b1749daba2c810037b43cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7458dadd4d573105ea10a4f15660207e"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4x3</b></td></tr>
-<tr class="separator:a7458dadd4d573105ea10a4f15660207e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4x4</b></td></tr>
-<tr class="separator:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="memItemLeft" align="right" valign="top">typedef highp_quat&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fquat</b></td></tr>
-<tr class="separator:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec1</b></td></tr>
-<tr class="separator:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9d93221df334ded08efdb7a231cdfd26"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec2</b></td></tr>
-<tr class="separator:a9d93221df334ded08efdb7a231cdfd26"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec3</b></td></tr>
-<tr class="separator:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad473477b31e48387ad77054dfab93040"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec4</b></td></tr>
-<tr class="separator:ad473477b31e48387ad77054dfab93040"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
-<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2287f1712b96207a66cc858e930fb77a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec1</b></td></tr>
-<tr class="separator:a2287f1712b96207a66cc858e930fb77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b1278f471d04b27be00462deeef2e0a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec2</b></td></tr>
-<tr class="separator:a3b1278f471d04b27be00462deeef2e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a232957ed3eea2cddbc313de01a73c958"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec3</b></td></tr>
-<tr class="separator:a232957ed3eea2cddbc313de01a73c958"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2b1c2815452029cc1d605e02c754d8bd"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec4</b></td></tr>
-<tr class="separator:a2b1c2815452029cc1d605e02c754d8bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
-<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3650f851ca511552052df19fb6cf8f16"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec1</b></td></tr>
-<tr class="separator:a3650f851ca511552052df19fb6cf8f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a55ae77cc669bc16dce3b56786b3411b9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec2</b></td></tr>
-<tr class="separator:a55ae77cc669bc16dce3b56786b3411b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec3</b></td></tr>
-<tr class="separator:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a389eba6c2510da342d7c5890eae6fa03"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec4</b></td></tr>
-<tr class="separator:a389eba6c2510da342d7c5890eae6fa03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
-<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec1</b></td></tr>
-<tr class="separator:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9ac957028098e89887a0621d677e1a56"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec2</b></td></tr>
-<tr class="separator:a9ac957028098e89887a0621d677e1a56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec3</b></td></tr>
-<tr class="separator:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a239e24f52398e6f2fa7d8c731072c632"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec4</b></td></tr>
-<tr class="separator:a239e24f52398e6f2fa7d8c731072c632"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
-<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af405602f84fa85522d81f08b54354055"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec1</b></td></tr>
-<tr class="separator:af405602f84fa85522d81f08b54354055"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab78a1c49ec73e0113174902ccdac2aab"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec2</b></td></tr>
-<tr class="separator:ab78a1c49ec73e0113174902ccdac2aab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec3</b></td></tr>
-<tr class="separator:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec4</b></td></tr>
-<tr class="separator:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
-<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
-<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
-<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
-<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
-<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
-<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
-<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
-<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_quat</b></td></tr>
-<tr class="separator:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
-<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8bda7c2533299ff237e174c31f721aee"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec1</b></td></tr>
-<tr class="separator:a8bda7c2533299ff237e174c31f721aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f26537a923e8a99aa2722ccea04effe"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec2</b></td></tr>
-<tr class="separator:a5f26537a923e8a99aa2722ccea04effe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec3</b></td></tr>
-<tr class="separator:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a42101fecebea5b85deaedd7a397b4b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec4</b></td></tr>
-<tr class="separator:a42101fecebea5b85deaedd7a397b4b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
-<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a400570a17c30a0d93be64df7aaeca498"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec1</b></td></tr>
-<tr class="separator:a400570a17c30a0d93be64df7aaeca498"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a450990091b6d2af3d5ce21badfdd409e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec2</b></td></tr>
-<tr class="separator:a450990091b6d2af3d5ce21badfdd409e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5ff192bf2205bec34497aa1f8ba05838"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec3</b></td></tr>
-<tr class="separator:a5ff192bf2205bec34497aa1f8ba05838"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a447c20d8123d9c4dbab2016337670fad"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec4</b></td></tr>
-<tr class="separator:a447c20d8123d9c4dbab2016337670fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
-<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adcba17098bae31bcde33d72f71f96d44"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec1</b></td></tr>
-<tr class="separator:adcba17098bae31bcde33d72f71f96d44"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec2</b></td></tr>
-<tr class="separator:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a356770e957a30e5039860337a715f84e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec3</b></td></tr>
-<tr class="separator:a356770e957a30e5039860337a715f84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec4</b></td></tr>
-<tr class="separator:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
-<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec1</b></td></tr>
-<tr class="separator:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad6f8afc722fcf494a808f31fe33a225f"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec2</b></td></tr>
-<tr class="separator:ad6f8afc722fcf494a808f31fe33a225f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac99086122be840a2bb096e4e3c3f339"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec3</b></td></tr>
-<tr class="separator:aac99086122be840a2bb096e4e3c3f339"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec4</b></td></tr>
-<tr class="separator:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
-<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
-<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
-<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
-<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
-<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
-<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
-<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
-<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_vec1</b></td></tr>
-<tr class="separator:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
-<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
-<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
-<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
-<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
-<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
-<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
-<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
-<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
-<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
-<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
-<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
-<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
-<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
-<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
-<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
-<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
-<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
-<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
-<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
-<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
-<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
-<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
-<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
-<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_dquat</b></td></tr>
-<tr class="separator:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeea53879fc327293cf3352a409b7867b"><td class="memItemLeft" align="right" valign="top">typedef float32&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32</b></td></tr>
-<tr class="separator:aeea53879fc327293cf3352a409b7867b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52409bc6d4a2ce3421526c069220d685"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2</b></td></tr>
-<tr class="separator:a52409bc6d4a2ce3421526c069220d685"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acbfa3780fa74a8aceed53c6cac3d185e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x2</b></td></tr>
-<tr class="separator:acbfa3780fa74a8aceed53c6cac3d185e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7106f1c5fbb3e928556d2176c2828324"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x3</b></td></tr>
-<tr class="separator:a7106f1c5fbb3e928556d2176c2828324"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad63250829617716e7009216970a22a2e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x4</b></td></tr>
-<tr class="separator:ad63250829617716e7009216970a22a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4187f89f196505b40e63f516139511e5"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3</b></td></tr>
-<tr class="separator:a4187f89f196505b40e63f516139511e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x2</b></td></tr>
-<tr class="separator:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x3</b></td></tr>
-<tr class="separator:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a90a6dc116b6407408e033f73301468ee"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x4</b></td></tr>
-<tr class="separator:a90a6dc116b6407408e033f73301468ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a766aed2871e6173a81011a877f398f04"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4</b></td></tr>
-<tr class="separator:a766aed2871e6173a81011a877f398f04"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4663c5444a670dbcbd8a7fa907148add"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x2</b></td></tr>
-<tr class="separator:a4663c5444a670dbcbd8a7fa907148add"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1b3cd59a64ede38fb8ec16f9db191544"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x3</b></td></tr>
-<tr class="separator:a1b3cd59a64ede38fb8ec16f9db191544"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a752dff4232933964e899b1be27f30af4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x4</b></td></tr>
-<tr class="separator:a752dff4232933964e899b1be27f30af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa27d7ca08ddd62647ce00b1981ac3967"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32quat</b></td></tr>
-<tr class="separator:aa27d7ca08ddd62647ce00b1981ac3967"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a065441db99acdc970d6b1bca51fb0e88"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec1</b></td></tr>
-<tr class="separator:a065441db99acdc970d6b1bca51fb0e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec2</b></td></tr>
-<tr class="separator:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acc51390c78531eff7546f1877c5a6e2a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec3</b></td></tr>
-<tr class="separator:acc51390c78531eff7546f1877c5a6e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3c810baad7672618d387efd82824d3f0"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec4</b></td></tr>
-<tr class="separator:a3c810baad7672618d387efd82824d3f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="memItemLeft" align="right" valign="top">typedef float64&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64</b></td></tr>
-<tr class="separator:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afc730f6b4242763b0eda0ffa25150292"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2</b></td></tr>
-<tr class="separator:afc730f6b4242763b0eda0ffa25150292"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9d8b766229a9613e023da6015273c5e0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x2</b></td></tr>
-<tr class="separator:a9d8b766229a9613e023da6015273c5e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7c9ae336839e72b32d8b54247a71ffba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x3</b></td></tr>
-<tr class="separator:a7c9ae336839e72b32d8b54247a71ffba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a842f6af7042f44a489c45e83cf62c58c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x4</b></td></tr>
-<tr class="separator:a842f6af7042f44a489c45e83cf62c58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a58119a41d143ebaea0df70fe882e8a40"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3</b></td></tr>
-<tr class="separator:a58119a41d143ebaea0df70fe882e8a40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a98cd9aafec70a9d83add4b67e20e4d52"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x2</b></td></tr>
-<tr class="separator:a98cd9aafec70a9d83add4b67e20e4d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x3</b></td></tr>
-<tr class="separator:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a002c5621e42eceb747ad4f8315122175"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x4</b></td></tr>
-<tr class="separator:a002c5621e42eceb747ad4f8315122175"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7451266e67794bd1125163502bc4a570"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4</b></td></tr>
-<tr class="separator:a7451266e67794bd1125163502bc4a570"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a691047f2c02376e3c33abc9b09fa7d11"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x2</b></td></tr>
-<tr class="separator:a691047f2c02376e3c33abc9b09fa7d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae5421a69235098aa087ec5fde0904854"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x3</b></td></tr>
-<tr class="separator:ae5421a69235098aa087ec5fde0904854"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adc09833bf36fd52048b27158ccf442f6"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x4</b></td></tr>
-<tr class="separator:adc09833bf36fd52048b27158ccf442f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64quat</b></td></tr>
-<tr class="separator:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec1</b></td></tr>
-<tr class="separator:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec2</b></td></tr>
-<tr class="separator:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec3</b></td></tr>
-<tr class="separator:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abee657babf6feea4385d19eb6fa5278a"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec4</b></td></tr>
-<tr class="separator:abee657babf6feea4385d19eb6fa5278a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8234cea5c12583310da0fdfe62657638"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float32</b></td></tr>
-<tr class="separator:a8234cea5c12583310da0fdfe62657638"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7a32491c689d3ff33652770868187f27"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float32_t</b></td></tr>
-<tr class="separator:a7a32491c689d3ff33652770868187f27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a60503f200138a07e57c737abfa57f5f6"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float64</b></td></tr>
-<tr class="separator:a60503f200138a07e57c737abfa57f5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a49a3b5a4f1565687927b5edb23f0b35e"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float64_t</b></td></tr>
-<tr class="separator:a49a3b5a4f1565687927b5edb23f0b35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5bba0ce31210e274f73efacd3364c03f"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2</b></td></tr>
-<tr class="separator:a5bba0ce31210e274f73efacd3364c03f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a66f97ccbae05c652595d71ec931d7161"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x2</b></td></tr>
-<tr class="separator:a66f97ccbae05c652595d71ec931d7161"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac9d407a7e137ee373b310dc0bf769bf9"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x3</b></td></tr>
-<tr class="separator:ac9d407a7e137ee373b310dc0bf769bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a776e06fd5557d5dca4beecebad19aed3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x4</b></td></tr>
-<tr class="separator:a776e06fd5557d5dca4beecebad19aed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a83079315e230e8f39728f4bf0d2f9a9b"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3</b></td></tr>
-<tr class="separator:a83079315e230e8f39728f4bf0d2f9a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad171c065fd8a50e85f3f61d04011ff17"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x2</b></td></tr>
-<tr class="separator:ad171c065fd8a50e85f3f61d04011ff17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab67fff920716329c921e3f3fad4ea2c3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x3</b></td></tr>
-<tr class="separator:ab67fff920716329c921e3f3fad4ea2c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a769421d99e6514dd4ca99b3d3065f037"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x4</b></td></tr>
-<tr class="separator:a769421d99e6514dd4ca99b3d3065f037"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4</b></td></tr>
-<tr class="separator:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x2</b></td></tr>
-<tr class="separator:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x3</b></td></tr>
-<tr class="separator:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa389a235fe6788544cd168b6eba2e250"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x4</b></td></tr>
-<tr class="separator:aa389a235fe6788544cd168b6eba2e250"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="memItemLeft" align="right" valign="top">typedef lowp_quat&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fquat</b></td></tr>
-<tr class="separator:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec1</b></td></tr>
-<tr class="separator:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a78c8523592fea346dea7561d12337fd8"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec2</b></td></tr>
-<tr class="separator:a78c8523592fea346dea7561d12337fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab7893b199d7493a88dea8bd38bd878b5"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec3</b></td></tr>
-<tr class="separator:ab7893b199d7493a88dea8bd38bd878b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec4</b></td></tr>
-<tr class="separator:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
-<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29d17771c7521875f7972610a274437d"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec1</b></td></tr>
-<tr class="separator:a29d17771c7521875f7972610a274437d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9418f7f14075a2eb419d79dea795fe8e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec2</b></td></tr>
-<tr class="separator:a9418f7f14075a2eb419d79dea795fe8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a572548327ac6277265d1fb0f3ba05f07"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec3</b></td></tr>
-<tr class="separator:a572548327ac6277265d1fb0f3ba05f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a877978ecba5f4186b045507593a92d90"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec4</b></td></tr>
-<tr class="separator:a877978ecba5f4186b045507593a92d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
-<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af4d1f110d2643d0911aeaa424dd342f3"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec1</b></td></tr>
-<tr class="separator:af4d1f110d2643d0911aeaa424dd342f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab1d50e964e3ba141afc193a1e135369a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec2</b></td></tr>
-<tr class="separator:ab1d50e964e3ba141afc193a1e135369a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a669898de66e7bb5695f7a86aa8915fd9"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec3</b></td></tr>
-<tr class="separator:a669898de66e7bb5695f7a86aa8915fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a35522d761caa8f93185a96ed9e61795d"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec4</b></td></tr>
-<tr class="separator:a35522d761caa8f93185a96ed9e61795d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
-<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7852c10988de095e6e685300904cb2b3"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec1</b></td></tr>
-<tr class="separator:a7852c10988de095e6e685300904cb2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a305eb0f7ba957bb53972b7690904a24f"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec2</b></td></tr>
-<tr class="separator:a305eb0f7ba957bb53972b7690904a24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adce94f56b502977689df6693fa70c0ed"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec3</b></td></tr>
-<tr class="separator:adce94f56b502977689df6693fa70c0ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1f9cb33adc669bb6a72329af5381b690"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec4</b></td></tr>
-<tr class="separator:a1f9cb33adc669bb6a72329af5381b690"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
-<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7192dd365ce8d4fa4da3257c676de267"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec1</b></td></tr>
-<tr class="separator:a7192dd365ce8d4fa4da3257c676de267"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a02a47f2177b67de3ce1139e68196e56b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec2</b></td></tr>
-<tr class="separator:a02a47f2177b67de3ce1139e68196e56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6f4179513be603c7494da45295c35bdc"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec3</b></td></tr>
-<tr class="separator:a6f4179513be603c7494da45295c35bdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a76d872db6e41d64e338a36f09b5daeb7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec4</b></td></tr>
-<tr class="separator:a76d872db6e41d64e338a36f09b5daeb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
-<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
-<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
-<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
-<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
-<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
-<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
-<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
-<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa2d7af2016aba4edc1a14fed266317d2"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_quat</b></td></tr>
-<tr class="separator:aa2d7af2016aba4edc1a14fed266317d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
-<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec1</b></td></tr>
-<tr class="separator:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec2</b></td></tr>
-<tr class="separator:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae63c1dbdb499eb7664109fb39857bce4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec3</b></td></tr>
-<tr class="separator:ae63c1dbdb499eb7664109fb39857bce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6baa0d373bf33bfa1aa666f557eae789"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec4</b></td></tr>
-<tr class="separator:a6baa0d373bf33bfa1aa666f557eae789"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
-<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec1</b></td></tr>
-<tr class="separator:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0d0d6330a6a0e7c4885f6b554535b200"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec2</b></td></tr>
-<tr class="separator:a0d0d6330a6a0e7c4885f6b554535b200"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a82ab625c16f826dc658bde310158ddff"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec3</b></td></tr>
-<tr class="separator:a82ab625c16f826dc658bde310158ddff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a061f6b150324b1913490c743e756d04f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec4</b></td></tr>
-<tr class="separator:a061f6b150324b1913490c743e756d04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
-<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a318bf8bfd18ab389678d06828a28c39b"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec1</b></td></tr>
-<tr class="separator:a318bf8bfd18ab389678d06828a28c39b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a833371ce41eb501163ab6ebd6205fc9a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec2</b></td></tr>
-<tr class="separator:a833371ce41eb501163ab6ebd6205fc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae69228b98799312c02544febb1af766b"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec3</b></td></tr>
-<tr class="separator:ae69228b98799312c02544febb1af766b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec4</b></td></tr>
-<tr class="separator:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
-<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac31801407d2141204e74eefea0bf3ef0"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec1</b></td></tr>
-<tr class="separator:ac31801407d2141204e74eefea0bf3ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec2</b></td></tr>
-<tr class="separator:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec3</b></td></tr>
-<tr class="separator:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a764d9393e9aff7a84825a5760e2498b9"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec4</b></td></tr>
-<tr class="separator:a764d9393e9aff7a84825a5760e2498b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
-<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
-<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
-<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
-<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
-<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
-<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
-<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
-<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_vec1</b></td></tr>
-<tr class="separator:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a51178c7b0d10cc540c01ad4cf0ece261"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_dquat</b></td></tr>
-<tr class="separator:a51178c7b0d10cc540c01ad4cf0ece261"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="memItemLeft" align="right" valign="top">typedef float32&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32</b></td></tr>
-<tr class="separator:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af9020c6176a75bc84828ab01ea7dac25"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2</b></td></tr>
-<tr class="separator:af9020c6176a75bc84828ab01ea7dac25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afaa92b781318fb3fe43ad3e6f32be86b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x2</b></td></tr>
-<tr class="separator:afaa92b781318fb3fe43ad3e6f32be86b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1f38dab02c05c75c87ee02d7896078ec"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x3</b></td></tr>
-<tr class="separator:a1f38dab02c05c75c87ee02d7896078ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x4</b></td></tr>
-<tr class="separator:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3</b></td></tr>
-<tr class="separator:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x2</b></td></tr>
-<tr class="separator:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1e653136fb7152f4c817aa264d58f9db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x3</b></td></tr>
-<tr class="separator:a1e653136fb7152f4c817aa264d58f9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af8cef3c4749d9f699726b0b949dab473"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x4</b></td></tr>
-<tr class="separator:af8cef3c4749d9f699726b0b949dab473"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4491baaebbc46a20f1cb5da985576bf4"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4</b></td></tr>
-<tr class="separator:a4491baaebbc46a20f1cb5da985576bf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0dacc0ae65346941372958a08d918bc3"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x2</b></td></tr>
-<tr class="separator:a0dacc0ae65346941372958a08d918bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x3</b></td></tr>
-<tr class="separator:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x4</b></td></tr>
-<tr class="separator:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abcc1b172969e868108974c92c09ba2e4"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32quat</b></td></tr>
-<tr class="separator:abcc1b172969e868108974c92c09ba2e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af464ab0841bc7f942d55935101923e25"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec1</b></td></tr>
-<tr class="separator:af464ab0841bc7f942d55935101923e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab0dea9959015c0ae8294360e1aafeb2a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec2</b></td></tr>
-<tr class="separator:ab0dea9959015c0ae8294360e1aafeb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a30b37671931aad948d1018ddc5718f34"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec3</b></td></tr>
-<tr class="separator:a30b37671931aad948d1018ddc5718f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac462ec17fc1037e679d1086d3f26581f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec4</b></td></tr>
-<tr class="separator:ac462ec17fc1037e679d1086d3f26581f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d40381d78472553f878f66e443feeef"><td class="memItemLeft" align="right" valign="top">typedef float64&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64</b></td></tr>
-<tr class="separator:a6d40381d78472553f878f66e443feeef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac1281da5ded55047e8892b0e1f1ae965"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2</b></td></tr>
-<tr class="separator:ac1281da5ded55047e8892b0e1f1ae965"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a710c552051cdf26086a52724adeaa0b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x2</b></td></tr>
-<tr class="separator:a710c552051cdf26086a52724adeaa0b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af1f4fff1454eb66c97bd3eb123c86e85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x3</b></td></tr>
-<tr class="separator:af1f4fff1454eb66c97bd3eb123c86e85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3a181f05bac20864c7b86976428cbbf2"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x4</b></td></tr>
-<tr class="separator:a3a181f05bac20864c7b86976428cbbf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3</b></td></tr>
-<tr class="separator:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5ac17da9eab988cac003014225ba5e9b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x2</b></td></tr>
-<tr class="separator:a5ac17da9eab988cac003014225ba5e9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4d09bdb868ee5f7063c70092a929cd38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x3</b></td></tr>
-<tr class="separator:a4d09bdb868ee5f7063c70092a929cd38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5a93213eb4f0876f713d4d00a38dab86"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x4</b></td></tr>
-<tr class="separator:a5a93213eb4f0876f713d4d00a38dab86"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa805ef691c711dc41e2776cfb67f5cf5"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4</b></td></tr>
-<tr class="separator:aa805ef691c711dc41e2776cfb67f5cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adb511a9a5fa678b1b859364b817cee76"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x2</b></td></tr>
-<tr class="separator:adb511a9a5fa678b1b859364b817cee76"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad2eae3525631e29f7e70dc79be1a9360"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x3</b></td></tr>
-<tr class="separator:ad2eae3525631e29f7e70dc79be1a9360"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaae60e8c1cf13ee2bc088999e2726332"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x4</b></td></tr>
-<tr class="separator:aaae60e8c1cf13ee2bc088999e2726332"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06275695b922e1b4f068379ee53d17f5"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64quat</b></td></tr>
-<tr class="separator:a06275695b922e1b4f068379ee53d17f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec1</b></td></tr>
-<tr class="separator:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af3a39604855bbd7d2bf01336dbd58c7e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec2</b></td></tr>
-<tr class="separator:af3a39604855bbd7d2bf01336dbd58c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec3</b></td></tr>
-<tr class="separator:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac1dee1be60722fbaba56c5e8d4055224"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec4</b></td></tr>
-<tr class="separator:ac1dee1be60722fbaba56c5e8d4055224"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float32</b></td></tr>
-<tr class="separator:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float32_t</b></td></tr>
-<tr class="separator:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a729f6f704ff850a84819c09daf22bf96"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float64</b></td></tr>
-<tr class="separator:a729f6f704ff850a84819c09daf22bf96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float64_t</b></td></tr>
-<tr class="separator:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a74e9133378fd0b4da8ac0bc0876702ff"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2</b></td></tr>
-<tr class="separator:a74e9133378fd0b4da8ac0bc0876702ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a14e3419dd3ed51ae829fba0eeb37a798"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x2</b></td></tr>
-<tr class="separator:a14e3419dd3ed51ae829fba0eeb37a798"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aad419b656765f99413130f262902f70b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x3</b></td></tr>
-<tr class="separator:aad419b656765f99413130f262902f70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x4</b></td></tr>
-<tr class="separator:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80823dfad5dba98512c76af498343847"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3</b></td></tr>
-<tr class="separator:a80823dfad5dba98512c76af498343847"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x2</b></td></tr>
-<tr class="separator:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x3</b></td></tr>
-<tr class="separator:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8acbe700ac34420e69435e9a1e7106a6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x4</b></td></tr>
-<tr class="separator:a8acbe700ac34420e69435e9a1e7106a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4</b></td></tr>
-<tr class="separator:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a382a9afa22b0cb41c08e714e9964df18"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x2</b></td></tr>
-<tr class="separator:a382a9afa22b0cb41c08e714e9964df18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adca208020ec5e450122c5b78b92c311b"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x3</b></td></tr>
-<tr class="separator:adca208020ec5e450122c5b78b92c311b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a046dc4e877ae0f041b559ebb8986472f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x4</b></td></tr>
-<tr class="separator:a046dc4e877ae0f041b559ebb8986472f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4001f0bde084c58673e6e62116e90702"><td class="memItemLeft" align="right" valign="top">typedef mediump_quat&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fquat</b></td></tr>
-<tr class="separator:a4001f0bde084c58673e6e62116e90702"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a218a7c4d23b962a9bb33adf59ceb8200"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec1</b></td></tr>
-<tr class="separator:a218a7c4d23b962a9bb33adf59ceb8200"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a76feac551dafafd145eb95d558f86b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec2</b></td></tr>
-<tr class="separator:a76feac551dafafd145eb95d558f86b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec3</b></td></tr>
-<tr class="separator:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a328c393cd9a393b33342acbf9b91bf72"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec4</b></td></tr>
-<tr class="separator:a328c393cd9a393b33342acbf9b91bf72"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
-<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aacc9b5576745206f26ffa9386d4aa883"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec1</b></td></tr>
-<tr class="separator:aacc9b5576745206f26ffa9386d4aa883"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac5c4faa5372f985078762db4574bb9d4"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec2</b></td></tr>
-<tr class="separator:ac5c4faa5372f985078762db4574bb9d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec3</b></td></tr>
-<tr class="separator:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb0c81e9e6d4210216f4d911736aefad"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec4</b></td></tr>
-<tr class="separator:abb0c81e9e6d4210216f4d911736aefad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
-<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a75733ed8258c5e65ac97160c4a6c953a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec1</b></td></tr>
-<tr class="separator:a75733ed8258c5e65ac97160c4a6c953a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec2</b></td></tr>
-<tr class="separator:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec3</b></td></tr>
-<tr class="separator:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae3eec682aede6e122daed84e2f38971d"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec4</b></td></tr>
-<tr class="separator:ae3eec682aede6e122daed84e2f38971d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
-<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a42af3af0131095f8445ddd0738d76827"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec1</b></td></tr>
-<tr class="separator:a42af3af0131095f8445ddd0738d76827"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec2</b></td></tr>
-<tr class="separator:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa521bedc4cdd40c72880e426661f5603"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec3</b></td></tr>
-<tr class="separator:aa521bedc4cdd40c72880e426661f5603"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec4</b></td></tr>
-<tr class="separator:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
-<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec1</b></td></tr>
-<tr class="separator:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafab5df83068e06bca1dbaa63da08f99"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec2</b></td></tr>
-<tr class="separator:aafab5df83068e06bca1dbaa63da08f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec3</b></td></tr>
-<tr class="separator:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac6d4413001e39e2f0f2d32b501867a56"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec4</b></td></tr>
-<tr class="separator:ac6d4413001e39e2f0f2d32b501867a56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
-<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
-<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
-<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
-<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
-<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
-<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
-<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
-<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af519098b37a0cfefa5886647dc38e508"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_quat</b></td></tr>
-<tr class="separator:af519098b37a0cfefa5886647dc38e508"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
-<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec1</b></td></tr>
-<tr class="separator:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4be7f884cf27a80820cf5fcefeab1459"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec2</b></td></tr>
-<tr class="separator:a4be7f884cf27a80820cf5fcefeab1459"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec3</b></td></tr>
-<tr class="separator:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec4</b></td></tr>
-<tr class="separator:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
-<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec1</b></td></tr>
-<tr class="separator:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4611b14a12ec8b0b5988ed93c6060432"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec2</b></td></tr>
-<tr class="separator:a4611b14a12ec8b0b5988ed93c6060432"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec3</b></td></tr>
-<tr class="separator:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec4</b></td></tr>
-<tr class="separator:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
-<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec1</b></td></tr>
-<tr class="separator:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec2</b></td></tr>
-<tr class="separator:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6f514640b5b5827ede77642ebbbf5e68"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec3</b></td></tr>
-<tr class="separator:a6f514640b5b5827ede77642ebbbf5e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab41db7da28e5948330db80f5ca75d850"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec4</b></td></tr>
-<tr class="separator:ab41db7da28e5948330db80f5ca75d850"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
-<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec1</b></td></tr>
-<tr class="separator:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a020049aa2177e8e08d2b338a5e904dc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec2</b></td></tr>
-<tr class="separator:a020049aa2177e8e08d2b338a5e904dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec3</b></td></tr>
-<tr class="separator:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec4</b></td></tr>
-<tr class="separator:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
-<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
-<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
-<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
-<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
-<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
-<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
-<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
-<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_vec1</b></td></tr>
-<tr class="separator:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2fad291f6402e228d28779df175ba37a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fad291f6402e228d28779df175ba37a"></a>
-typedef highp_quat&#160;</td><td class="memItemRight" valign="bottom"><b>quat</b></td></tr>
-<tr class="separator:a2fad291f6402e228d28779df175ba37a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
-<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
-<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
-<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
-<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
-<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
-<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
-<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
-<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
-<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
-<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
-<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
-<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
-<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
-<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
-<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
-<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
-<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
-<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
-<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
-<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
-<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
-<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
-<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
-<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">gauss</a> (T x, T ExpectedValue, T StandardDeviation)</td></tr>
+<tr class="memdesc:ga0b50b197ff74261a0fad90f4b8d24702"><td class="mdescLeft">&#160;</td><td class="mdescRight">1D gauss function <a href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">More...</a><br /></td></tr>
+<tr class="separator:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a> (tvec2&lt; T, P &gt; const &amp;Coord, tvec2&lt; T, P &gt; const &amp;ExpectedValue, tvec2&lt; T, P &gt; const &amp;StandardDeviation)</td></tr>
+<tr class="memdesc:ga7448f9eb74bb5924f6330ab532f2899c"><td class="mdescLeft">&#160;</td><td class="mdescRight">2D gauss function <a href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">More...</a><br /></td></tr>
+<tr class="separator:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-03-30 / 2013-03-31 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00164.html">GLM_GTC_functions</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00038_source.html">functions.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00038_source.html b/3rdparty/glm/doc/api/a00038_source.html
index a5ca3380e09..cad4cdb0ad8 100644
--- a/3rdparty/glm/doc/api/a00038_source.html
+++ b/3rdparty/glm/doc/api/a00038_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fwd.hpp Source File</title>
+<title>0.9.9 API documenation: functions.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,1672 +64,63 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">fwd.hpp</div> </div>
+<div class="title">functions.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00038.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00119.html">detail/type_int.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00116.html">detail/type_float.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00132.html">detail/type_vec.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">detail/type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// GLM_GTC_quaternion</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tquat;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, lowp&gt; lowp_quat;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_functions extension included&quot;)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; T x,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; T ExpectedValue,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T StandardDeviation);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span>&amp; Coord,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span>&amp; ExpectedValue,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span>&amp; StandardDeviation);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, mediump&gt; mediump_quat;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, highp&gt; highp_quat;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typedef</span> highp_quat quat;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">typedef</span> mediump_quat quat;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">typedef</span> lowp_quat quat;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typedef</span> highp_quat quat;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> lowp_quat lowp_fquat;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">typedef</span> mediump_quat mediump_fquat;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">typedef</span> highp_quat highp_fquat;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">typedef</span> quat fquat;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typedef</span> tquat&lt;double, lowp&gt; lowp_dquat;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> tquat&lt;double, mediump&gt; mediump_dquat;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">typedef</span> tquat&lt;double, highp&gt; highp_dquat;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> highp_dquat dquat;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> mediump_dquat dquat;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">typedef</span> lowp_dquat dquat;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> highp_dquat dquat;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// GLM_GTC_precision</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6"> 129</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="a00181.html#ga698e36b01167fc0f037889334dce8def"> 133</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02"> 137</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c"> 141</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3"> 145</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a"> 149</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc"> 153</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847"> 157</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54"> 161</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
-<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7"> 165</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac"> 169</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8"> 173</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e"> 177</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
-<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d"> 181</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8"> 185</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866"> 189</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae"> 193</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54"> 197</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180"> 201</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64"> 205</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21"> 209</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
-<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a"> 213</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1"> 217</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f"> 221</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf"> 225</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718"> 229</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223"> 233</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac"> 237</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5"> 241</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
-<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff"> 245</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f"> 249</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3"> 253</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee"> 257</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; </div>
-<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8"> 261</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25"> 265</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd"> 269</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
-<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede"> 301</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710"> 305</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61"> 309</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355"> 314</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
-<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699"> 318</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb"> 322</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="a00181.html#gadb997e409103d4da18abd837e636a496"> 326</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, lowp&gt; lowp_i8vec1;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, lowp&gt; lowp_i8vec2;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, lowp&gt; lowp_i8vec3;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, lowp&gt; lowp_i8vec4;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, mediump&gt; mediump_i8vec1;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, mediump&gt; mediump_i8vec2;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, mediump&gt; mediump_i8vec3;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, mediump&gt; mediump_i8vec4;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, highp&gt; highp_i8vec1;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, highp&gt; highp_i8vec2;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, highp&gt; highp_i8vec3;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, highp&gt; highp_i8vec4;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">typedef</span> lowp_i8vec1 <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">typedef</span> lowp_i8vec2 <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">typedef</span> lowp_i8vec3 <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">typedef</span> lowp_i8vec4 <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">typedef</span> mediump_i8vec1 <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">typedef</span> mediump_i8vec2 <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">typedef</span> mediump_i8vec3 <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">typedef</span> mediump_i8vec4 <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>; </div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">typedef</span> highp_i8vec1 <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
-<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185"> 397</a></span>&#160; <span class="keyword">typedef</span> highp_i8vec2 <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
-<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c"> 401</a></span>&#160; <span class="keyword">typedef</span> highp_i8vec3 <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e"> 405</a></span>&#160; <span class="keyword">typedef</span> highp_i8vec4 <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, lowp&gt; lowp_i16vec1;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, lowp&gt; lowp_i16vec2;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, lowp&gt; lowp_i16vec3;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, lowp&gt; lowp_i16vec4;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; </div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, mediump&gt; mediump_i16vec1;</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; </div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, mediump&gt; mediump_i16vec2;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, mediump&gt; mediump_i16vec3;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; </div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, mediump&gt; mediump_i16vec4;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; </div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, highp&gt; highp_i16vec1;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, highp&gt; highp_i16vec2;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, highp&gt; highp_i16vec3;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; </div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, highp&gt; highp_i16vec4;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; </div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">typedef</span> lowp_i16vec1 <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">typedef</span> lowp_i16vec2 <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">typedef</span> lowp_i16vec3 <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">typedef</span> lowp_i16vec4 <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">typedef</span> mediump_i16vec1 <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">typedef</span> mediump_i16vec2 <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">typedef</span> mediump_i16vec3 <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">typedef</span> mediump_i16vec4 <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">typedef</span> highp_i16vec1 <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; </div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79"> 477</a></span>&#160; <span class="keyword">typedef</span> highp_i16vec2 <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="a00181.html#ga973b226a9914db682c9372fc761fb535"> 481</a></span>&#160; <span class="keyword">typedef</span> highp_i16vec3 <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; </div>
-<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426"> 485</a></span>&#160; <span class="keyword">typedef</span> highp_i16vec4 <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, lowp&gt; lowp_i32vec1;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, lowp&gt; lowp_i32vec2;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, lowp&gt; lowp_i32vec3;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, lowp&gt; lowp_i32vec4;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; </div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, mediump&gt; mediump_i32vec1;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, mediump&gt; mediump_i32vec2;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, mediump&gt; mediump_i32vec3;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; </div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, mediump&gt; mediump_i32vec4;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; </div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, highp&gt; highp_i32vec1;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; </div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, highp&gt; highp_i32vec2;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; </div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, highp&gt; highp_i32vec3;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, highp&gt; highp_i32vec4;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; </div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div>
-<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c"> 556</a></span>&#160; <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; </div>
-<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="a00181.html#ga40cd3f391c03512f158d10a70062264e"> 560</a></span>&#160; <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; </div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="a00181.html#gae3364a8090e7e1408056e00403dfecab"> 564</a></span>&#160; <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, lowp&gt; lowp_i32vec1;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, lowp&gt; lowp_i32vec2;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; </div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, lowp&gt; lowp_i32vec3;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; </div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, lowp&gt; lowp_i32vec4;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; </div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, mediump&gt; mediump_i32vec1;</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; </div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, mediump&gt; mediump_i32vec2;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; </div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, mediump&gt; mediump_i32vec3;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; </div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, mediump&gt; mediump_i32vec4;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; </div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, highp&gt; highp_i32vec1;</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; </div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, highp&gt; highp_i32vec2;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; </div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, highp&gt; highp_i32vec3;</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; </div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, highp&gt; highp_i32vec4;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; </div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; </div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; </div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; </div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, lowp&gt; lowp_i64vec1;</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; </div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, lowp&gt; lowp_i64vec2;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, lowp&gt; lowp_i64vec3;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; </div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, lowp&gt; lowp_i64vec4;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; </div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; </div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, mediump&gt; mediump_i64vec1;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; </div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, mediump&gt; mediump_i64vec2;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; </div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, mediump&gt; mediump_i64vec3;</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; </div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, mediump&gt; mediump_i64vec4;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; </div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; </div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, highp&gt; highp_i64vec1;</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; </div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, highp&gt; highp_i64vec2;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; </div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, highp&gt; highp_i64vec3;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, highp&gt; highp_i64vec4;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; </div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keyword">typedef</span> lowp_i64vec1 <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keyword">typedef</span> lowp_i64vec2 <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keyword">typedef</span> lowp_i64vec3 <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keyword">typedef</span> lowp_i64vec4 <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keyword">typedef</span> mediump_i64vec1 <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">typedef</span> mediump_i64vec2 <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keyword">typedef</span> mediump_i64vec3 <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keyword">typedef</span> mediump_i64vec4 <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keyword">typedef</span> highp_i64vec1 <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="a00181.html#gade69872a31f066e5ae212f1af6008edb"> 715</a></span>&#160; <span class="keyword">typedef</span> highp_i64vec2 <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; </div>
-<div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e"> 719</a></span>&#160; <span class="keyword">typedef</span> highp_i64vec3 <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; </div>
-<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c"> 723</a></span>&#160; <span class="keyword">typedef</span> highp_i64vec4 <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; </div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; </div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// Unsigned int vector types</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; </div>
-<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00181.html#gaf49470869e9be2c059629b250619804e"> 732</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; </div>
-<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78"> 736</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; </div>
-<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b"> 740</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; </div>
-<div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="a00181.html#gaa212b805736a759998e312cbdd550fae"> 744</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; </div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; </div>
-<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="a00181.html#ga667b2ece2b258be898812dc2177995d1"> 749</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; </div>
-<div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f"> 753</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; </div>
-<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b"> 757</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; </div>
-<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153"> 761</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; </div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; </div>
-<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083"> 766</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; </div>
-<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126"> 770</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; </div>
-<div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250"> 774</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; </div>
-<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed"> 778</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; </div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; </div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; </div>
-<div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3"> 784</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb"> 788</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; </div>
-<div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f"> 792</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; </div>
-<div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="a00181.html#ga30652709815ad9404272a31957daa59e"> 796</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; </div>
-<div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="a00181.html#gadfe65c78231039e90507770db50c98c7"> 800</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div>
-<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e"> 804</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; </div>
-<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5"> 808</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; </div>
-<div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9"> 812</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; </div>
-<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281"> 816</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; </div>
-<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80"> 820</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; </div>
-<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9"> 824</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; </div>
-<div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610"> 828</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; </div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; </div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; </div>
-<div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb"> 834</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; </div>
-<div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="a00181.html#ga746dc6da204f5622e395f492997dbf57"> 838</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; </div>
-<div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3"> 842</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; </div>
-<div class="line"><a name="l00846"></a><span class="lineno"><a class="line" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce"> 846</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; </div>
-<div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5"> 850</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; </div>
-<div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7"> 854</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; </div>
-<div class="line"><a name="l00858"></a><span class="lineno"><a class="line" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e"> 858</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; </div>
-<div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08"> 862</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; </div>
-<div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c"> 866</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; </div>
-<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369"> 870</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; </div>
-<div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf"> 874</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; </div>
-<div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="a00181.html#ga0c181fdf06a309691999926b6690c969"> 878</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; </div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; </div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; </div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; </div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; </div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; </div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; </div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; </div>
-<div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf"> 910</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; </div>
-<div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac"> 914</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; </div>
-<div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee"> 918</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div>
-<div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36"> 923</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div>
-<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff"> 927</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;</div>
-<div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="a00181.html#ga8165913e068444f7842302d40ba897b9"> 931</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;</div>
-<div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="a00181.html#gaf3f312156984c365e9f65620354da70b"> 935</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, lowp&gt; lowp_u8vec1;</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; </div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, lowp&gt; lowp_u8vec2;</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; </div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, lowp&gt; lowp_u8vec3;</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; </div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, lowp&gt; lowp_u8vec4;</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; </div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, mediump&gt; mediump_u8vec1;</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, mediump&gt; mediump_u8vec2;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, mediump&gt; mediump_u8vec3;</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, mediump&gt; mediump_u8vec4;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;</div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, highp&gt; highp_u8vec1;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, highp&gt; highp_u8vec2;</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, highp&gt; highp_u8vec3;</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, highp&gt; highp_u8vec4;</div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keyword">typedef</span> lowp_u8vec1 <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keyword">typedef</span> lowp_u8vec2 <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keyword">typedef</span> lowp_u8vec3 <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keyword">typedef</span> lowp_u8vec4 <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keyword">typedef</span> mediump_u8vec1 <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keyword">typedef</span> mediump_u8vec2 <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keyword">typedef</span> mediump_u8vec3 <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keyword">typedef</span> mediump_u8vec4 <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>; </div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keyword">typedef</span> highp_u8vec1 <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div>
-<div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d"> 1006</a></span>&#160; <span class="keyword">typedef</span> highp_u8vec2 <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661"> 1010</a></span>&#160; <span class="keyword">typedef</span> highp_u8vec3 <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div>
-<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="a00181.html#ga114e005014d910bea07954eee24b7efb"> 1014</a></span>&#160; <span class="keyword">typedef</span> highp_u8vec4 <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, lowp&gt; lowp_u16vec1;</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, lowp&gt; lowp_u16vec2;</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, lowp&gt; lowp_u16vec3;</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, lowp&gt; lowp_u16vec4;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, mediump&gt; mediump_u16vec1;</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, mediump&gt; mediump_u16vec2;</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, mediump&gt; mediump_u16vec3;</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, mediump&gt; mediump_u16vec4;</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, highp&gt; highp_u16vec1;</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, highp&gt; highp_u16vec2;</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, highp&gt; highp_u16vec3;</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, highp&gt; highp_u16vec4;</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="keyword">typedef</span> lowp_u16vec1 <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keyword">typedef</span> lowp_u16vec2 <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keyword">typedef</span> lowp_u16vec3 <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keyword">typedef</span> lowp_u16vec4 <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keyword">typedef</span> mediump_u16vec1 <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keyword">typedef</span> mediump_u16vec2 <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keyword">typedef</span> mediump_u16vec3 <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keyword">typedef</span> mediump_u16vec4 <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keyword">typedef</span> highp_u16vec1 <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div>
-<div class="line"><a name="l01086"></a><span class="lineno"><a class="line" href="a00181.html#ga426030555085ed6c39a54e73afbef962"> 1086</a></span>&#160; <span class="keyword">typedef</span> highp_u16vec2 <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div>
-<div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71"> 1090</a></span>&#160; <span class="keyword">typedef</span> highp_u16vec3 <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;</div>
-<div class="line"><a name="l01094"></a><span class="lineno"><a class="line" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae"> 1094</a></span>&#160; <span class="keyword">typedef</span> highp_u16vec4 <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;</div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, lowp&gt; lowp_u32vec1;</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, lowp&gt; lowp_u32vec2;</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, lowp&gt; lowp_u32vec3;</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, lowp&gt; lowp_u32vec4;</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, mediump&gt; mediump_u32vec1;</div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, mediump&gt; mediump_u32vec2;</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, mediump&gt; mediump_u32vec3;</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, mediump&gt; mediump_u32vec4;</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, highp&gt; highp_u32vec1;</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, highp&gt; highp_u32vec2;</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, highp&gt; highp_u32vec3;</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, highp&gt; highp_u32vec4;</div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div>
-<div class="line"><a name="l01165"></a><span class="lineno"><a class="line" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075"> 1165</a></span>&#160; <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div>
-<div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23"> 1169</a></span>&#160; <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;</div>
-<div class="line"><a name="l01173"></a><span class="lineno"><a class="line" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6"> 1173</a></span>&#160; <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, lowp&gt; lowp_u32vec1;</div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, lowp&gt; lowp_u32vec2;</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, lowp&gt; lowp_u32vec3;</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, lowp&gt; lowp_u32vec4;</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, mediump&gt; mediump_u32vec1;</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, mediump&gt; mediump_u32vec2;</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, mediump&gt; mediump_u32vec3;</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, mediump&gt; mediump_u32vec4;</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, highp&gt; highp_u32vec1;</div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, highp&gt; highp_u32vec2;</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;</div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, highp&gt; highp_u32vec3;</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;</div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, highp&gt; highp_u32vec4;</div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;</div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; </div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; </div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;</div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; </div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, lowp&gt; lowp_u64vec1;</div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;</div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, lowp&gt; lowp_u64vec2;</div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;</div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, lowp&gt; lowp_u64vec3;</div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;</div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, lowp&gt; lowp_u64vec4;</div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;</div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, mediump&gt; mediump_u64vec1;</div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, mediump&gt; mediump_u64vec2;</div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;</div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, mediump&gt; mediump_u64vec3;</div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, mediump&gt; mediump_u64vec4;</div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, highp&gt; highp_u64vec1;</div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;</div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, highp&gt; highp_u64vec2;</div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;</div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, highp&gt; highp_u64vec3;</div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, highp&gt; highp_u64vec4;</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">typedef</span> lowp_u64vec1 <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keyword">typedef</span> lowp_u64vec2 <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keyword">typedef</span> lowp_u64vec3 <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keyword">typedef</span> lowp_u64vec4 <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keyword">typedef</span> mediump_u64vec1 <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keyword">typedef</span> mediump_u64vec2 <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keyword">typedef</span> mediump_u64vec3 <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keyword">typedef</span> mediump_u64vec4 <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keyword">typedef</span> highp_u64vec1 <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;</div>
-<div class="line"><a name="l01324"></a><span class="lineno"><a class="line" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e"> 1324</a></span>&#160; <span class="keyword">typedef</span> highp_u64vec2 <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; </div>
-<div class="line"><a name="l01328"></a><span class="lineno"><a class="line" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c"> 1328</a></span>&#160; <span class="keyword">typedef</span> highp_u64vec3 <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; </div>
-<div class="line"><a name="l01332"></a><span class="lineno"><a class="line" href="a00181.html#gafb6ca34df28889a5db9d244aed375411"> 1332</a></span>&#160; <span class="keyword">typedef</span> highp_u64vec4 <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; </div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; </div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="comment">// Float vector types</span></div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;</div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;</div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;</div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;</div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;</div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;</div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;</div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;</div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;</div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; </div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;</div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;</div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;</div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;</div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keyword">typedef</span> detail::float32 mediump_float32;</div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keyword">typedef</span> detail::float64 mediump_float64;</div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;</div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keyword">typedef</span> detail::float32 mediump_float32_t;</div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;</div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keyword">typedef</span> detail::float64 mediump_float64_t;</div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;</div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> mediump_f32;</div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;</div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> mediump_f64;</div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;</div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;</div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="keyword">typedef</span> detail::float32 highp_float32;</div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;</div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; <span class="keyword">typedef</span> detail::float64 highp_float64;</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;</div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keyword">typedef</span> detail::float32 highp_float32_t;</div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;</div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <span class="keyword">typedef</span> detail::float64 highp_float64_t;</div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;</div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> highp_f32;</div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;</div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> highp_f64;</div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;</div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;</div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <span class="keyword">typedef</span> lowp_float32 <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;</div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; <span class="keyword">typedef</span> lowp_float64 <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;</div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="keyword">typedef</span> lowp_float32_t <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="keyword">typedef</span> lowp_float64_t <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;</div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="keyword">typedef</span> lowp_f32 <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;</div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keyword">typedef</span> lowp_f64 <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <span class="keyword">typedef</span> mediump_float32 float32;</div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;</div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keyword">typedef</span> mediump_float64 float64;</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;</div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;</div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;</div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;</div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="preprocessor">#else//(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;</div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keyword">typedef</span> highp_float32 float32;</div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keyword">typedef</span> highp_float64 float64;</div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;</div>
-<div class="line"><a name="l01526"></a><span class="lineno"><a class="line" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77"> 1526</a></span>&#160; <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div>
-<div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37"> 1530</a></span>&#160; <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div>
-<div class="line"><a name="l01534"></a><span class="lineno"><a class="line" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"> 1534</a></span>&#160; <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;</div>
-<div class="line"><a name="l01538"></a><span class="lineno"><a class="line" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9"> 1538</a></span>&#160; <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;</div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, lowp&gt; lowp_vec1;</div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;</div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, lowp&gt; <a class="code" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;</div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, lowp&gt; <a class="code" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, lowp&gt; <a class="code" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;</div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, lowp&gt; lowp_fvec1;</div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;</div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, lowp&gt; lowp_fvec2;</div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;</div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, lowp&gt; lowp_fvec3;</div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;</div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, lowp&gt; lowp_fvec4;</div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;</div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;</div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, mediump&gt; mediump_vec1;</div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;</div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, mediump&gt; <a class="code" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;</div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, mediump&gt; <a class="code" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, mediump&gt; mediump_fvec1;</div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;</div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, mediump&gt; mediump_fvec2;</div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;</div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, mediump&gt; mediump_fvec3;</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;</div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, mediump&gt; mediump_fvec4;</div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;</div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;</div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, highp&gt; highp_vec1;</div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; <a class="code" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;</div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; <a class="code" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;</div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; <a class="code" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;</div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, highp&gt; highp_fvec1;</div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;</div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; highp_fvec2;</div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;</div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; highp_fvec3;</div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; highp_fvec4;</div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;</div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;</div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, lowp&gt; lowp_f32vec1;</div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;</div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, lowp&gt; lowp_f32vec2;</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;</div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, lowp&gt; lowp_f32vec3;</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, lowp&gt; lowp_f32vec4;</div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;</div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, mediump&gt; mediump_f32vec1;</div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;</div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, mediump&gt; mediump_f32vec2;</div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;</div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, mediump&gt; mediump_f32vec3;</div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, mediump&gt; mediump_f32vec4;</div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, highp&gt; highp_f32vec1;</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, highp&gt; highp_f32vec2;</div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, highp&gt; highp_f32vec3;</div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;</div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, highp&gt; highp_f32vec4;</div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;</div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;</div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, lowp&gt; lowp_f64vec1;</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, lowp&gt; lowp_f64vec2;</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;</div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, lowp&gt; lowp_f64vec3;</div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;</div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, lowp&gt; lowp_f64vec4;</div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, mediump&gt; mediump_f64vec1;</div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;</div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, mediump&gt; mediump_f64vec2;</div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;</div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, mediump&gt; mediump_f64vec3;</div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;</div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, mediump&gt; mediump_f64vec4;</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;</div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, highp&gt; highp_f64vec1;</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;</div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, highp&gt; highp_f64vec2;</div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;</div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, highp&gt; highp_f64vec3;</div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;</div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, highp&gt; highp_f64vec4;</div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;</div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;</div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; <span class="comment">// Float matrix types</span></div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;</div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="comment">//typedef lowp_f32 lowp_fmat1x1;</span></div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, lowp&gt; lowp_fmat2x2;</div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;</div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, lowp&gt; lowp_fmat2x3;</div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, lowp&gt; lowp_fmat2x4;</div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;</div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, lowp&gt; lowp_fmat3x2;</div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;</div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, lowp&gt; lowp_fmat3x3;</div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;</div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, lowp&gt; lowp_fmat3x4;</div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;</div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, lowp&gt; lowp_fmat4x2;</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;</div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, lowp&gt; lowp_fmat4x3;</div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;</div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, lowp&gt; lowp_fmat4x4;</div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;</div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; <span class="comment">//typedef lowp_fmat1x1 lowp_fmat1;</span></div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;</div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="keyword">typedef</span> lowp_fmat2x2 lowp_fmat2;</div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="keyword">typedef</span> lowp_fmat3x3 lowp_fmat3;</div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;</div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <span class="keyword">typedef</span> lowp_fmat4x4 lowp_fmat4;</div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;</div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;</div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; <span class="comment">//typedef mediump_f32 mediump_fmat1x1;</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, mediump&gt; mediump_fmat2x2;</div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;</div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, mediump&gt; mediump_fmat2x3;</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;</div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, mediump&gt; mediump_fmat2x4;</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;</div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, mediump&gt; mediump_fmat3x2;</div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, mediump&gt; mediump_fmat3x3;</div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;</div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, mediump&gt; mediump_fmat3x4;</div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, mediump&gt; mediump_fmat4x2;</div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;</div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, mediump&gt; mediump_fmat4x3;</div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, mediump&gt; mediump_fmat4x4;</div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;</div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; <span class="comment">//typedef mediump_fmat1x1 mediump_fmat1;</span></div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;</div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; <span class="keyword">typedef</span> mediump_fmat2x2 mediump_fmat2;</div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;</div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; <span class="keyword">typedef</span> mediump_fmat3x3 mediump_fmat3;</div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;</div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; <span class="keyword">typedef</span> mediump_fmat4x4 mediump_fmat4;</div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;</div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; <span class="comment">//typedef highp_f32 highp_fmat1x1;</span></div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;</div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, highp&gt; highp_fmat2x2;</div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;</div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, highp&gt; highp_fmat2x3;</div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;</div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, highp&gt; highp_fmat2x4;</div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;</div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, highp&gt; highp_fmat3x2;</div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;</div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, highp&gt; highp_fmat3x3;</div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;</div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, highp&gt; highp_fmat3x4;</div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;</div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, highp&gt; highp_fmat4x2;</div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;</div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, highp&gt; highp_fmat4x3;</div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, highp&gt; highp_fmat4x4;</div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;</div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; <span class="comment">//typedef highp_fmat1x1 highp_fmat1;</span></div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;</div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <span class="keyword">typedef</span> highp_fmat2x2 highp_fmat2;</div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; <span class="keyword">typedef</span> highp_fmat3x3 highp_fmat3;</div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; </div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keyword">typedef</span> highp_fmat4x4 highp_fmat4;</div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;</div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; <span class="comment">//typedef f32 lowp_f32mat1x1;</span></div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;</div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, lowp&gt; lowp_f32mat2x2;</div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;</div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, lowp&gt; lowp_f32mat2x3;</div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;</div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, lowp&gt; lowp_f32mat2x4;</div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;</div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, lowp&gt; lowp_f32mat3x2;</div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;</div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, lowp&gt; lowp_f32mat3x3;</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;</div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, lowp&gt; lowp_f32mat3x4;</div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;</div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, lowp&gt; lowp_f32mat4x2;</div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;</div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, lowp&gt; lowp_f32mat4x3;</div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, lowp&gt; lowp_f32mat4x4;</div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, lowp&gt; lowp_f32mat1;</span></div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;</div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x2 lowp_f32mat2;</div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;</div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x3 lowp_f32mat3;</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;</div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x4 lowp_f32mat4;</div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;</div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; <span class="comment">//typedef f32 mediump_f32mat1x1;</span></div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;</div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, mediump&gt; mediump_f32mat2x2;</div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;</div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, mediump&gt; mediump_f32mat2x3;</div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;</div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, mediump&gt; mediump_f32mat2x4;</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;</div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, mediump&gt; mediump_f32mat3x2;</div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, mediump&gt; mediump_f32mat3x3;</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;</div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, mediump&gt; mediump_f32mat3x4;</div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;</div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, mediump&gt; mediump_f32mat4x2;</div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;</div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, mediump&gt; mediump_f32mat4x3;</div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, mediump&gt; mediump_f32mat4x4;</div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;</div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, mediump&gt; f32mat1;</span></div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;</div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x2 mediump_f32mat2;</div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;</div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x3 mediump_f32mat3;</div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x4 mediump_f32mat4;</div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;</div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; <span class="comment">//typedef f32 highp_f32mat1x1;</span></div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;</div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, highp&gt; highp_f32mat2x2;</div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;</div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, highp&gt; highp_f32mat2x3;</div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;</div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, highp&gt; highp_f32mat2x4;</div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;</div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, highp&gt; highp_f32mat3x2;</div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;</div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, highp&gt; highp_f32mat3x3;</div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;</div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, highp&gt; highp_f32mat3x4;</div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, highp&gt; highp_f32mat4x2;</div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, highp&gt; highp_f32mat4x3;</div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;</div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, highp&gt; highp_f32mat4x4;</div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;</div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, highp&gt; f32mat1;</span></div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;</div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; <span class="keyword">typedef</span> highp_f32mat2x2 highp_f32mat2;</div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;</div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <span class="keyword">typedef</span> highp_f32mat3x3 highp_f32mat3;</div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;</div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keyword">typedef</span> highp_f32mat4x4 highp_f32mat4;</div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;</div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;</div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; <span class="comment">//typedef f64 lowp_f64mat1x1;</span></div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;</div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, lowp&gt; lowp_f64mat2x2;</div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;</div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, lowp&gt; lowp_f64mat2x3;</div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, lowp&gt; lowp_f64mat2x4;</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;</div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, lowp&gt; lowp_f64mat3x2;</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;</div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, lowp&gt; lowp_f64mat3x3;</div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;</div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, lowp&gt; lowp_f64mat3x4;</div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;</div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, lowp&gt; lowp_f64mat4x2;</div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;</div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, lowp&gt; lowp_f64mat4x3;</div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; </div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, lowp&gt; lowp_f64mat4x4;</div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;</div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; <span class="comment">//typedef lowp_f64mat1x1 lowp_f64mat1;</span></div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;</div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x2 lowp_f64mat2;</div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x3 lowp_f64mat3;</div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x4 lowp_f64mat4;</div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;</div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;</div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; <span class="comment">//typedef f64 Highp_f64mat1x1;</span></div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;</div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, mediump&gt; mediump_f64mat2x2;</div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, mediump&gt; mediump_f64mat2x3;</div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;</div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, mediump&gt; mediump_f64mat2x4;</div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;</div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, mediump&gt; mediump_f64mat3x2;</div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, mediump&gt; mediump_f64mat3x3;</div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;</div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, mediump&gt; mediump_f64mat3x4;</div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;</div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, mediump&gt; mediump_f64mat4x2;</div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;</div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, mediump&gt; mediump_f64mat4x3;</div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;</div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, mediump&gt; mediump_f64mat4x4;</div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;</div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; <span class="comment">//typedef mediump_f64mat1x1 mediump_f64mat1;</span></div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;</div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x2 mediump_f64mat2;</div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;</div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x3 mediump_f64mat3;</div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;</div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x4 mediump_f64mat4;</div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;</div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; <span class="comment">//typedef f64 highp_f64mat1x1;</span></div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;</div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, highp&gt; highp_f64mat2x2;</div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;</div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, highp&gt; highp_f64mat2x3;</div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;</div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, highp&gt; highp_f64mat2x4;</div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;</div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, highp&gt; highp_f64mat3x2;</div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;</div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, highp&gt; highp_f64mat3x3;</div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;</div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, highp&gt; highp_f64mat3x4;</div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;</div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, highp&gt; highp_f64mat4x2;</div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;</div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, highp&gt; highp_f64mat4x3;</div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;</div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, highp&gt; highp_f64mat4x4;</div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;</div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160; <span class="comment">//typedef highp_f64mat1x1 highp_f64mat1;</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;</div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; <span class="keyword">typedef</span> highp_f64mat2x2 highp_f64mat2;</div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;</div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; <span class="keyword">typedef</span> highp_f64mat3x3 highp_f64mat3;</div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;</div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; <span class="keyword">typedef</span> highp_f64mat4x4 highp_f64mat4;</div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;</div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; <span class="comment">// Quaternion types</span></div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;</div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, lowp&gt; lowp_f32quat;</div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;</div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, lowp&gt; lowp_f64quat;</div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;</div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, mediump&gt; mediump_f32quat;</div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;</div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, mediump&gt; mediump_f64quat;</div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;</div>
-<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, highp&gt; highp_f32quat;</div>
-<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;</div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, highp&gt; highp_f64quat;</div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;</div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;</div>
-<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160; <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; <span class="keyword">typedef</span> lowp_f32quat fquat;</div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;</div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160; <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160; <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; <span class="keyword">typedef</span> lowp_f32quat <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160; <span class="keyword">typedef</span> mediump_f32quat fquat;</div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;</div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160; <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; <span class="keyword">typedef</span> mediump_f32quat <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;<span class="preprocessor">#else//if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
-<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;</div>
-<div class="line"><a name="l02360"></a><span class="lineno"><a class="line" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6"> 2360</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;</div>
-<div class="line"><a name="l02364"></a><span class="lineno"><a class="line" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084"> 2364</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;</div>
-<div class="line"><a name="l02368"></a><span class="lineno"><a class="line" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b"> 2368</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;</div>
-<div class="line"><a name="l02372"></a><span class="lineno"><a class="line" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711"> 2372</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;</div>
-<div class="line"><a name="l02376"></a><span class="lineno"><a class="line" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756"> 2376</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;</div>
-<div class="line"><a name="l02380"></a><span class="lineno"><a class="line" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5"> 2380</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;</div>
-<div class="line"><a name="l02384"></a><span class="lineno"><a class="line" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca"> 2384</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;</div>
-<div class="line"><a name="l02388"></a><span class="lineno"><a class="line" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22"> 2388</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;</div>
-<div class="line"><a name="l02392"></a><span class="lineno"><a class="line" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b"> 2392</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;</div>
-<div class="line"><a name="l02396"></a><span class="lineno"><a class="line" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732"> 2396</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;</div>
-<div class="line"><a name="l02400"></a><span class="lineno"><a class="line" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba"> 2400</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;</div>
-<div class="line"><a name="l02404"></a><span class="lineno"><a class="line" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9"> 2404</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; </div>
-<div class="line"><a name="l02408"></a><span class="lineno"><a class="line" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985"> 2408</a></span>&#160; <span class="keyword">typedef</span> fmat2x2 <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;</div>
-<div class="line"><a name="l02412"></a><span class="lineno"><a class="line" href="a00181.html#ga5165fbee2d78f342950265b69a07353d"> 2412</a></span>&#160; <span class="keyword">typedef</span> fmat3x3 <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;</div>
-<div class="line"><a name="l02416"></a><span class="lineno"><a class="line" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd"> 2416</a></span>&#160; <span class="keyword">typedef</span> fmat4x4 <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;</div>
-<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160; <span class="keyword">typedef</span> highp_fquat fquat;</div>
-<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160; </div>
-<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;</div>
-<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;</div>
-<div class="line"><a name="l02426"></a><span class="lineno"><a class="line" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f"> 2426</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;</div>
-<div class="line"><a name="l02430"></a><span class="lineno"><a class="line" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3"> 2430</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;</div>
-<div class="line"><a name="l02434"></a><span class="lineno"><a class="line" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad"> 2434</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;</div>
-<div class="line"><a name="l02438"></a><span class="lineno"><a class="line" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704"> 2438</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;</div>
-<div class="line"><a name="l02442"></a><span class="lineno"><a class="line" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a"> 2442</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;</div>
-<div class="line"><a name="l02446"></a><span class="lineno"><a class="line" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767"> 2446</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;</div>
-<div class="line"><a name="l02450"></a><span class="lineno"><a class="line" href="a00181.html#ga5ed667d0247cce477f013ea31982843d"> 2450</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;</div>
-<div class="line"><a name="l02454"></a><span class="lineno"><a class="line" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1"> 2454</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;</div>
-<div class="line"><a name="l02458"></a><span class="lineno"><a class="line" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0"> 2458</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;</div>
-<div class="line"><a name="l02462"></a><span class="lineno"><a class="line" href="a00181.html#ga0100666c90176eaba80e49357d123c7f"> 2462</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;</div>
-<div class="line"><a name="l02466"></a><span class="lineno"><a class="line" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff"> 2466</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;</div>
-<div class="line"><a name="l02470"></a><span class="lineno"><a class="line" href="a00181.html#gaa69e73ffb01a52499071391d395908fb"> 2470</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;</div>
-<div class="line"><a name="l02474"></a><span class="lineno"><a class="line" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5"> 2474</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;</div>
-<div class="line"><a name="l02478"></a><span class="lineno"><a class="line" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e"> 2478</a></span>&#160; <span class="keyword">typedef</span> f32mat2x2 <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;</div>
-<div class="line"><a name="l02482"></a><span class="lineno"><a class="line" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c"> 2482</a></span>&#160; <span class="keyword">typedef</span> f32mat3x3 <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;</div>
-<div class="line"><a name="l02486"></a><span class="lineno"><a class="line" href="a00181.html#ga797fa3ab16e04456174c36238e091341"> 2486</a></span>&#160; <span class="keyword">typedef</span> f32mat4x4 <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;</div>
-<div class="line"><a name="l02490"></a><span class="lineno"><a class="line" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0"> 2490</a></span>&#160; <span class="keyword">typedef</span> highp_f32quat <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;</div>
-<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; <span class="keyword">typedef</span> lowp_f64vec1 <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160; <span class="keyword">typedef</span> lowp_f64vec2 <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; <span class="keyword">typedef</span> lowp_f64vec3 <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; <span class="keyword">typedef</span> lowp_f64vec4 <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2 <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3 <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4 <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x2 <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x2 <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x2 <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x3 <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x3 <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x3 <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x4 <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x4 <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x4 <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160; <span class="keyword">typedef</span> lowp_f64quat <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160; <span class="keyword">typedef</span> mediump_f64vec1 <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160; <span class="keyword">typedef</span> mediump_f64vec2 <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160; <span class="keyword">typedef</span> mediump_f64vec3 <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; <span class="keyword">typedef</span> mediump_f64vec4 <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2 <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3 <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4 <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x2 <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x2 <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x2 <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x3 <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x3 <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x3 <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x4 <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x4 <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x4 <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160; <span class="keyword">typedef</span> mediump_f64quat <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160; <span class="keyword">typedef</span> highp_f64vec1 <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;</div>
-<div class="line"><a name="l02536"></a><span class="lineno"><a class="line" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3"> 2536</a></span>&#160; <span class="keyword">typedef</span> highp_f64vec2 <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;</div>
-<div class="line"><a name="l02540"></a><span class="lineno"><a class="line" href="a00181.html#gafacc3614bb1136a7756293e67d34de22"> 2540</a></span>&#160; <span class="keyword">typedef</span> highp_f64vec3 <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160;</div>
-<div class="line"><a name="l02544"></a><span class="lineno"><a class="line" href="a00181.html#ga8723186104dc02eb85da386105fba75f"> 2544</a></span>&#160; <span class="keyword">typedef</span> highp_f64vec4 <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;</div>
-<div class="line"><a name="l02548"></a><span class="lineno"><a class="line" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3"> 2548</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat2x2 <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;</div>
-<div class="line"><a name="l02552"></a><span class="lineno"><a class="line" href="a00181.html#ga87d256f4719417e311cd0ea14264678d"> 2552</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat2x3 <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;</div>
-<div class="line"><a name="l02556"></a><span class="lineno"><a class="line" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550"> 2556</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat2x4 <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;</div>
-<div class="line"><a name="l02560"></a><span class="lineno"><a class="line" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2"> 2560</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat3x2 <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;</div>
-<div class="line"><a name="l02564"></a><span class="lineno"><a class="line" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6"> 2564</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat3x3 <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160;</div>
-<div class="line"><a name="l02568"></a><span class="lineno"><a class="line" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293"> 2568</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat3x4 <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;</div>
-<div class="line"><a name="l02572"></a><span class="lineno"><a class="line" href="a00181.html#gaa669dfb59031a441de19b34a92704d57"> 2572</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat4x2 <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;</div>
-<div class="line"><a name="l02576"></a><span class="lineno"><a class="line" href="a00181.html#gaba137814a509704937746cc1e82edc32"> 2576</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat4x3 <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;</div>
-<div class="line"><a name="l02580"></a><span class="lineno"><a class="line" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b"> 2580</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat4x4 <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160;</div>
-<div class="line"><a name="l02584"></a><span class="lineno"><a class="line" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38"> 2584</a></span>&#160; <span class="keyword">typedef</span> f64mat2x2 <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;</div>
-<div class="line"><a name="l02588"></a><span class="lineno"><a class="line" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71"> 2588</a></span>&#160; <span class="keyword">typedef</span> f64mat3x3 <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;</div>
-<div class="line"><a name="l02592"></a><span class="lineno"><a class="line" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95"> 2592</a></span>&#160; <span class="keyword">typedef</span> f64mat4x4 <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;</div>
-<div class="line"><a name="l02596"></a><span class="lineno"><a class="line" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d"> 2596</a></span>&#160; <span class="keyword">typedef</span> highp_f64quat <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;</div>
-<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2&lt; float, highp &gt; highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00069">type_vec.hpp:69</a></div></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00740">fwd.hpp:740</a></div></div>
-<div class="ttc" id="a00181_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00157">fwd.hpp:157</a></div></div>
-<div class="ttc" id="a00181_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00181.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00133">fwd.hpp:133</a></div></div>
-<div class="ttc" id="a00181_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01082">fwd.hpp:1082</a></div></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00164_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3&lt; float, mediump &gt; mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00186">type_vec.hpp:186</a></div></div>
-<div class="ttc" id="a00181_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00736">fwd.hpp:736</a></div></div>
-<div class="ttc" id="a00181_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02364">fwd.hpp:2364</a></div></div>
-<div class="ttc" id="a00181_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02388">fwd.hpp:2388</a></div></div>
-<div class="ttc" id="a00181_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00723">fwd.hpp:723</a></div></div>
-<div class="ttc" id="a00181_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02482">fwd.hpp:2482</a></div></div>
-<div class="ttc" id="a00181_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00816">fwd.hpp:816</a></div></div>
-<div class="ttc" id="a00181_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00269">fwd.hpp:269</a></div></div>
-<div class="ttc" id="a00181_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01165">fwd.hpp:1165</a></div></div>
-<div class="ttc" id="a00181_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00181.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01014">fwd.hpp:1014</a></div></div>
-<div class="ttc" id="a00181_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00253">fwd.hpp:253</a></div></div>
-<div class="ttc" id="a00181_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00181.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00485">fwd.hpp:485</a></div></div>
-<div class="ttc" id="a00181_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00217">fwd.hpp:217</a></div></div>
-<div class="ttc" id="a00181_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00129">fwd.hpp:129</a></div></div>
-<div class="ttc" id="a00164_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2&lt; float, mediump &gt; mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00076">type_vec.hpp:76</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00181_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00766">fwd.hpp:766</a></div></div>
-<div class="ttc" id="a00181_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00314">fwd.hpp:314</a></div></div>
-<div class="ttc" id="a00181_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00784">fwd.hpp:784</a></div></div>
-<div class="ttc" id="a00181_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02592">fwd.hpp:2592</a></div></div>
-<div class="ttc" id="a00181_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00757">fwd.hpp:757</a></div></div>
-<div class="ttc" id="a00181_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00221">fwd.hpp:221</a></div></div>
-<div class="ttc" id="a00181_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00228">type_int.hpp:228</a></div></div>
-<div class="ttc" id="a00181_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00719">fwd.hpp:719</a></div></div>
-<div class="ttc" id="a00181_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00265">fwd.hpp:265</a></div></div>
-<div class="ttc" id="a00181_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00774">fwd.hpp:774</a></div></div>
-<div class="ttc" id="a00181_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00261">fwd.hpp:261</a></div></div>
-<div class="ttc" id="a00181_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00257">fwd.hpp:257</a></div></div>
-<div class="ttc" id="a00181_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01169">fwd.hpp:1169</a></div></div>
-<div class="ttc" id="a00181_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02416">fwd.hpp:2416</a></div></div>
-<div class="ttc" id="a00181_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00824">fwd.hpp:824</a></div></div>
-<div class="ttc" id="a00181_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02360">fwd.hpp:2360</a></div></div>
-<div class="ttc" id="a00181_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00177">fwd.hpp:177</a></div></div>
-<div class="ttc" id="a00181_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00874">fwd.hpp:874</a></div></div>
-<div class="ttc" id="a00164_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3&lt; float, highp &gt; highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00179">type_vec.hpp:179</a></div></div>
-<div class="ttc" id="a00181_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00812">fwd.hpp:812</a></div></div>
-<div class="ttc" id="a00181_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00552">fwd.hpp:552</a></div></div>
-<div class="ttc" id="a00181_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00866">fwd.hpp:866</a></div></div>
-<div class="ttc" id="a00181_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01090">fwd.hpp:1090</a></div></div>
-<div class="ttc" id="a00164_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4&lt; float, highp &gt; highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00285">type_vec.hpp:285</a></div></div>
-<div class="ttc" id="a00181_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00477">fwd.hpp:477</a></div></div>
-<div class="ttc" id="a00181_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02478">fwd.hpp:2478</a></div></div>
-<div class="ttc" id="a00181_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00181.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00564">fwd.hpp:564</a></div></div>
-<div class="ttc" id="a00164_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4&lt; float, mediump &gt; mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00291">type_vec.hpp:291</a></div></div>
-<div class="ttc" id="a00181_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00231">type_int.hpp:231</a></div></div>
-<div class="ttc" id="a00181_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00141">fwd.hpp:141</a></div></div>
-<div class="ttc" id="a00181_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00181.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02450">fwd.hpp:2450</a></div></div>
-<div class="ttc" id="a00181_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02454">fwd.hpp:2454</a></div></div>
-<div class="ttc" id="a00181_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00181.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02544">fwd.hpp:2544</a></div></div>
-<div class="ttc" id="a00181_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02584">fwd.hpp:2584</a></div></div>
-<div class="ttc" id="a00181_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00169">fwd.hpp:169</a></div></div>
-<div class="ttc" id="a00181_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00181.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00796">fwd.hpp:796</a></div></div>
-<div class="ttc" id="a00181_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02430">fwd.hpp:2430</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00181_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01538">fwd.hpp:1538</a></div></div>
-<div class="ttc" id="a00181_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02588">fwd.hpp:2588</a></div></div>
-<div class="ttc" id="a00181_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02532">fwd.hpp:2532</a></div></div>
-<div class="ttc" id="a00181_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02368">fwd.hpp:2368</a></div></div>
-<div class="ttc" id="a00181_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00209">fwd.hpp:209</a></div></div>
-<div class="ttc" id="a00181_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02474">fwd.hpp:2474</a></div></div>
-<div class="ttc" id="a00181_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02548">fwd.hpp:2548</a></div></div>
-<div class="ttc" id="a00181_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01530">fwd.hpp:1530</a></div></div>
-<div class="ttc" id="a00181_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01002">fwd.hpp:1002</a></div></div>
-<div class="ttc" id="a00181_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02396">fwd.hpp:2396</a></div></div>
-<div class="ttc" id="a00181_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01006">fwd.hpp:1006</a></div></div>
-<div class="ttc" id="a00181_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00226">type_int.hpp:226</a></div></div>
-<div class="ttc" id="a00181_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00181.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01320">fwd.hpp:1320</a></div></div>
-<div class="ttc" id="a00181_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00834">fwd.hpp:834</a></div></div>
-<div class="ttc" id="a00181_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00820">fwd.hpp:820</a></div></div>
-<div class="ttc" id="a00181_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02564">fwd.hpp:2564</a></div></div>
-<div class="ttc" id="a00181_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00792">fwd.hpp:792</a></div></div>
-<div class="ttc" id="a00181_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00181.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00227">type_int.hpp:227</a></div></div>
-<div class="ttc" id="a00181_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02466">fwd.hpp:2466</a></div></div>
-<div class="ttc" id="a00181_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00229">fwd.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00084">type_float.hpp:84</a></div></div>
-<div class="ttc" id="a00181_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00233">fwd.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00193">fwd.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02490">fwd.hpp:2490</a></div></div>
-<div class="ttc" id="a00181_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00232">type_int.hpp:232</a></div></div>
-<div class="ttc" id="a00181_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00405">fwd.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00225">fwd.hpp:225</a></div></div>
-<div class="ttc" id="a00181_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02556">fwd.hpp:2556</a></div></div>
-<div class="ttc" id="a00181_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01094">fwd.hpp:1094</a></div></div>
-<div class="ttc" id="a00181_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01324">fwd.hpp:1324</a></div></div>
-<div class="ttc" id="a00181_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00862">fwd.hpp:862</a></div></div>
-<div class="ttc" id="a00181_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01534">fwd.hpp:1534</a></div></div>
-<div class="ttc" id="a00181_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00161">fwd.hpp:161</a></div></div>
-<div class="ttc" id="a00181_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02426">fwd.hpp:2426</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00181_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00770">fwd.hpp:770</a></div></div>
-<div class="ttc" id="a00181_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02380">fwd.hpp:2380</a></div></div>
-<div class="ttc" id="a00181_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02356">fwd.hpp:2356</a></div></div>
-<div class="ttc" id="a00181_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00165">fwd.hpp:165</a></div></div>
-<div class="ttc" id="a00181_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00181.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
-<div class="ttc" id="a00181_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00556">fwd.hpp:556</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00181_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00788">fwd.hpp:788</a></div></div>
-<div class="ttc" id="a00181_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02596">fwd.hpp:2596</a></div></div>
-<div class="ttc" id="a00181_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00241">fwd.hpp:241</a></div></div>
-<div class="ttc" id="a00181_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00850">fwd.hpp:850</a></div></div>
-<div class="ttc" id="a00181_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00393">fwd.hpp:393</a></div></div>
-<div class="ttc" id="a00181_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00473">fwd.hpp:473</a></div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00205">fwd.hpp:205</a></div></div>
-<div class="ttc" id="a00181_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02372">fwd.hpp:2372</a></div></div>
-<div class="ttc" id="a00181_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="a00181_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00181.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00838">fwd.hpp:838</a></div></div>
-<div class="ttc" id="a00181_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00181.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00085">type_float.hpp:85</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00181.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00744">fwd.hpp:744</a></div></div>
-<div class="ttc" id="a00181_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02376">fwd.hpp:2376</a></div></div>
-<div class="ttc" id="a00181_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01526">fwd.hpp:1526</a></div></div>
-<div class="ttc" id="a00181_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00401">fwd.hpp:401</a></div></div>
-<div class="ttc" id="a00181_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02384">fwd.hpp:2384</a></div></div>
-<div class="ttc" id="a00181_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00213">fwd.hpp:213</a></div></div>
-<div class="ttc" id="a00181_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00804">fwd.hpp:804</a></div></div>
-<div class="ttc" id="a00181_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01173">fwd.hpp:1173</a></div></div>
-<div class="ttc" id="a00181_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02568">fwd.hpp:2568</a></div></div>
-<div class="ttc" id="a00181_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00753">fwd.hpp:753</a></div></div>
-<div class="ttc" id="a00181_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00181">fwd.hpp:181</a></div></div>
-<div class="ttc" id="a00181_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02392">fwd.hpp:2392</a></div></div>
-<div class="ttc" id="a00181_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02400">fwd.hpp:2400</a></div></div>
-<div class="ttc" id="a00181_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01010">fwd.hpp:1010</a></div></div>
-<div class="ttc" id="a00181_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00181.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02540">fwd.hpp:2540</a></div></div>
-<div class="ttc" id="a00164_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00164.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2&lt; float, lowp &gt; lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00083">type_vec.hpp:83</a></div></div>
-<div class="ttc" id="a00181_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00181.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01332">fwd.hpp:1332</a></div></div>
-<div class="ttc" id="a00181_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00197">fwd.hpp:197</a></div></div>
-<div class="ttc" id="a00181_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00233">type_int.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00149">fwd.hpp:149</a></div></div>
-<div class="ttc" id="a00181_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00181.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02576">fwd.hpp:2576</a></div></div>
-<div class="ttc" id="a00181_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00808">fwd.hpp:808</a></div></div>
-<div class="ttc" id="a00181_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00201">fwd.hpp:201</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02560">fwd.hpp:2560</a></div></div>
-<div class="ttc" id="a00181_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02442">fwd.hpp:2442</a></div></div>
-<div class="ttc" id="a00181_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02458">fwd.hpp:2458</a></div></div>
-<div class="ttc" id="a00181_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00854">fwd.hpp:854</a></div></div>
-<div class="ttc" id="a00181_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00397">fwd.hpp:397</a></div></div>
-<div class="ttc" id="a00181_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00245">fwd.hpp:245</a></div></div>
-<div class="ttc" id="a00181_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00137">fwd.hpp:137</a></div></div>
-<div class="ttc" id="a00181_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00181.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00878">fwd.hpp:878</a></div></div>
-<div class="ttc" id="a00181_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00181.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02572">fwd.hpp:2572</a></div></div>
-<div class="ttc" id="a00181_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00185">fwd.hpp:185</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00164_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3&lt; float, lowp &gt; lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00193">type_vec.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00181.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02486">fwd.hpp:2486</a></div></div>
-<div class="ttc" id="a00181_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00778">fwd.hpp:778</a></div></div>
-<div class="ttc" id="a00181_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00181.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00234">type_int.hpp:234</a></div></div>
-<div class="ttc" id="a00181_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00828">fwd.hpp:828</a></div></div>
-<div class="ttc" id="a00181_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00229">type_int.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00761">fwd.hpp:761</a></div></div>
-<div class="ttc" id="a00181_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00858">fwd.hpp:858</a></div></div>
-<div class="ttc" id="a00181_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00181.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00481">fwd.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02404">fwd.hpp:2404</a></div></div>
-<div class="ttc" id="a00181_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00249">fwd.hpp:249</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02434">fwd.hpp:2434</a></div></div>
-<div class="ttc" id="a00181_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02580">fwd.hpp:2580</a></div></div>
-<div class="ttc" id="a00181_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00181.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02552">fwd.hpp:2552</a></div></div>
-<div class="ttc" id="a00181_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00842">fwd.hpp:842</a></div></div>
-<div class="ttc" id="a00181_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00870">fwd.hpp:870</a></div></div>
-<div class="ttc" id="a00181_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02446">fwd.hpp:2446</a></div></div>
-<div class="ttc" id="a00181_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02408">fwd.hpp:2408</a></div></div>
-<div class="ttc" id="a00181_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00181.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00800">fwd.hpp:800</a></div></div>
-<div class="ttc" id="a00181_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00322">fwd.hpp:322</a></div></div>
-<div class="ttc" id="a00181_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02438">fwd.hpp:2438</a></div></div>
-<div class="ttc" id="a00181_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00181.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00560">fwd.hpp:560</a></div></div>
-<div class="ttc" id="a00181_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00181.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01086">fwd.hpp:1086</a></div></div>
-<div class="ttc" id="a00181_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00181.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
-<div class="ttc" id="a00181_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
-<div class="ttc" id="a00181_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00318">fwd.hpp:318</a></div></div>
-<div class="ttc" id="a00181_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00181.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02462">fwd.hpp:2462</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00116_html"><div class="ttname"><a href="a00116.html">type_float.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00237">fwd.hpp:237</a></div></div>
-<div class="ttc" id="a00181_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01161">fwd.hpp:1161</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-<div class="ttc" id="a00181_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00181.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02470">fwd.hpp:2470</a></div></div>
-<div class="ttc" id="a00181_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00181.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02412">fwd.hpp:2412</a></div></div>
-<div class="ttc" id="a00181_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00189">fwd.hpp:189</a></div></div>
-<div class="ttc" id="a00181_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00153">fwd.hpp:153</a></div></div>
-<div class="ttc" id="a00164_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4&lt; float, lowp &gt; lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00297">type_vec.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02536">fwd.hpp:2536</a></div></div>
-<div class="ttc" id="a00181_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00846">fwd.hpp:846</a></div></div>
-<div class="ttc" id="a00181_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00181.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00326">fwd.hpp:326</a></div></div>
-<div class="ttc" id="a00181_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01328">fwd.hpp:1328</a></div></div>
-<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_int.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00173">fwd.hpp:173</a></div></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;functions.inl&quot;</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="ttc" id="a00164_html_ga7448f9eb74bb5924f6330ab532f2899c"><div class="ttname"><a href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">glm::gauss</a></div><div class="ttdeci">GLM_FUNC_DECL T gauss(tvec2&lt; T, P &gt; const &amp;Coord, tvec2&lt; T, P &gt; const &amp;ExpectedValue, tvec2&lt; T, P &gt; const &amp;StandardDeviation)</div><div class="ttdoc">2D gauss function </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00039.html b/3rdparty/glm/doc/api/a00039.html
index bcd1b0b7b0e..a0265f43fd3 100644
--- a/3rdparty/glm/doc/api/a00039.html
+++ b/3rdparty/glm/doc/api/a00039.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: geometric.hpp File Reference</title>
+<title>0.9.9 API documenation: fwd.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,1405 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">geometric.hpp File Reference</div> </div>
+<div class="title">fwd.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00039_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:af62ed3862b7f5db4da71756a7b1367be"><td class="memItemLeft" align="right" valign="top">typedef highp_dquat&#160;</td><td class="memItemRight" valign="bottom"><b>dquat</b></td></tr>
+<tr class="memdesc:af62ed3862b7f5db4da71756a7b1367be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of default double-precision floating-point numbers. <a href="a00140.html#af62ed3862b7f5db4da71756a7b1367be">More...</a><br /></td></tr>
+<tr class="separator:af62ed3862b7f5db4da71756a7b1367be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
+<tr class="memdesc:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 32 bit single-precision floating-point scalar. <a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">More...</a><br /></td></tr>
+<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
+<tr class="memdesc:ga1fedd5d29746afdaf2d3303a4442704e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">More...</a><br /></td></tr>
+<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
+<tr class="memdesc:gaf3a5016bf360977ce114deb2e01ae10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">More...</a><br /></td></tr>
+<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
+<tr class="memdesc:gad5f1043adbe803928fe7bf1a90a1f767"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x3 matrix. <a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">More...</a><br /></td></tr>
+<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
+<tr class="memdesc:ga5ed667d0247cce477f013ea31982843d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x4 matrix. <a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">More...</a><br /></td></tr>
+<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
+<tr class="memdesc:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">More...</a><br /></td></tr>
+<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
+<tr class="memdesc:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x2 matrix. <a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">More...</a><br /></td></tr>
+<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
+<tr class="memdesc:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">More...</a><br /></td></tr>
+<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
+<tr class="memdesc:ga0100666c90176eaba80e49357d123c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x4 matrix. <a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">More...</a><br /></td></tr>
+<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
+<tr class="memdesc:ga797fa3ab16e04456174c36238e091341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#ga797fa3ab16e04456174c36238e091341">More...</a><br /></td></tr>
+<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
+<tr class="memdesc:ga27f897bdfe4bbded9481b8947553d1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x2 matrix. <a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">More...</a><br /></td></tr>
+<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
+<tr class="memdesc:gaa69e73ffb01a52499071391d395908fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x3 matrix. <a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">More...</a><br /></td></tr>
+<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
+<tr class="memdesc:gafe2e08549805a7ded26da2a868bedbf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">More...</a><br /></td></tr>
+<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
+<tr class="memdesc:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point quaternion. <a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">More...</a><br /></td></tr>
+<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
+<tr class="memdesc:ga3174a49dc84a977cad7012a62f4af02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 1 components. <a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">More...</a><br /></td></tr>
+<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
+<tr class="memdesc:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 2 components. <a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">More...</a><br /></td></tr>
+<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
+<tr class="memdesc:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 3 components. <a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">More...</a><br /></td></tr>
+<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
+<tr class="memdesc:gaeb25dbb0261f82cb08da23e26d343704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 4 components. <a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">More...</a><br /></td></tr>
+<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
+<tr class="memdesc:ga1d794d240091678f602e8de225b8d8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 64 bit double-precision floating-point scalar. <a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">More...</a><br /></td></tr>
+<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
+<tr class="memdesc:ga74b9918c90ea60ce58b3979cde963a38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x2 matrix. <a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">More...</a><br /></td></tr>
+<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
+<tr class="memdesc:gaeb817419c76a0766c88713d2754e6cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x2 matrix. <a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">More...</a><br /></td></tr>
+<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
+<tr class="memdesc:ga87d256f4719417e311cd0ea14264678d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x3 matrix. <a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">More...</a><br /></td></tr>
+<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
+<tr class="memdesc:gafb18822e2eac88fa861a76cefd25d550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x4 matrix. <a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">More...</a><br /></td></tr>
+<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
+<tr class="memdesc:ga68894201dd511792a7af6cff7b5adf71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x3 matrix. <a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">More...</a><br /></td></tr>
+<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
+<tr class="memdesc:ga11e5684b10e098f573ff484c1a569ae2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x2 matrix. <a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">More...</a><br /></td></tr>
+<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
+<tr class="memdesc:gae1a5081181c96cc37ce9418f6e856cb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x3 matrix. <a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">More...</a><br /></td></tr>
+<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
+<tr class="memdesc:gad37a55a8ce1154083a721b4ecfd55293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x4 matrix. <a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">More...</a><br /></td></tr>
+<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
+<tr class="memdesc:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x4 matrix. <a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">More...</a><br /></td></tr>
+<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
+<tr class="memdesc:gaa669dfb59031a441de19b34a92704d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x2 matrix. <a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">More...</a><br /></td></tr>
+<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
+<tr class="memdesc:gaba137814a509704937746cc1e82edc32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x3 matrix. <a href="a00177.html#gaba137814a509704937746cc1e82edc32">More...</a><br /></td></tr>
+<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
+<tr class="memdesc:ga489163773b021f1800a33cc2fa730c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x4 matrix. <a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">More...</a><br /></td></tr>
+<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
+<tr class="memdesc:ga14c583bd625eda8cf4935a14d5dd544d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point quaternion. <a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">More...</a><br /></td></tr>
+<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
+<tr class="memdesc:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 1 components. <a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">More...</a><br /></td></tr>
+<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
+<tr class="memdesc:gafaad77b464b5a35626c31205ac6780e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 2 components. <a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">More...</a><br /></td></tr>
+<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
+<tr class="memdesc:gafacc3614bb1136a7756293e67d34de22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 3 components. <a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">More...</a><br /></td></tr>
+<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
+<tr class="memdesc:ga8723186104dc02eb85da386105fba75f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 4 components. <a href="a00177.html#ga8723186104dc02eb85da386105fba75f">More...</a><br /></td></tr>
+<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
+<tr class="memdesc:ga41d579d81c3d98edd0532244fa02da77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 32 bit single-precision floating-point scalar. <a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">More...</a><br /></td></tr>
+<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
+<tr class="memdesc:ga6957c7b22f405683bb276554ca40dc37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 64 bit double-precision floating-point scalar. <a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">More...</a><br /></td></tr>
+<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
+<tr class="memdesc:gabb01d4ff646ee07241934b1a0cc0f985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">More...</a><br /></td></tr>
+<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
+<tr class="memdesc:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">More...</a><br /></td></tr>
+<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
+<tr class="memdesc:gaf17b2604c0d92bffb92375d8aa588756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x3 matrix. <a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">More...</a><br /></td></tr>
+<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
+<tr class="memdesc:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x4 matrix. <a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">More...</a><br /></td></tr>
+<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
+<tr class="memdesc:ga5165fbee2d78f342950265b69a07353d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">More...</a><br /></td></tr>
+<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
+<tr class="memdesc:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x2 matrix. <a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">More...</a><br /></td></tr>
+<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
+<tr class="memdesc:gad339e25c32fe6665acf028f26c1b3e22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">More...</a><br /></td></tr>
+<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
+<tr class="memdesc:gab04bc97371cb6b5f54b3688e0c81578b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x4 matrix. <a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">More...</a><br /></td></tr>
+<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
+<tr class="memdesc:gab3f31d867df4874e42172ebf188a3ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">More...</a><br /></td></tr>
+<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
+<tr class="memdesc:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x2 matrix. <a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">More...</a><br /></td></tr>
+<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
+<tr class="memdesc:ga1a11c170f030ab34ddf037714e936cba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x3 matrix. <a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">More...</a><br /></td></tr>
+<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
+<tr class="memdesc:gabd79752ff357d83b49136b6299ea62d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">More...</a><br /></td></tr>
+<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af31dbba5cedde97099c8e30b9661edf0"><td class="memItemLeft" align="right" valign="top">typedef quat&#160;</td><td class="memItemRight" valign="bottom"><b>fquat</b></td></tr>
+<tr class="memdesc:af31dbba5cedde97099c8e30b9661edf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of default single-precision floating-point numbers. <a href="a00140.html#af31dbba5cedde97099c8e30b9661edf0">More...</a><br /></td></tr>
+<tr class="separator:af31dbba5cedde97099c8e30b9661edf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
+<tr class="memdesc:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 1 components. <a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">More...</a><br /></td></tr>
+<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
+<tr class="memdesc:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 2 components. <a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">More...</a><br /></td></tr>
+<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
+<tr class="memdesc:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 3 components. <a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">More...</a><br /></td></tr>
+<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
+<tr class="memdesc:ga981b63d5c5f7233a29364e0a968d139b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 4 components. <a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">More...</a><br /></td></tr>
+<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30d694434c136946d9f98c8baa3d40a1"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_dquat</b></td></tr>
+<tr class="memdesc:a30d694434c136946d9f98c8baa3d40a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of high double-precision floating-point numbers. <a href="a00140.html#a30d694434c136946d9f98c8baa3d40a1">More...</a><br /></td></tr>
+<tr class="separator:a30d694434c136946d9f98c8baa3d40a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6906e1ef0b34064b4b675489c5c38725"><td class="memItemLeft" align="right" valign="top">typedef float32&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32</b></td></tr>
+<tr class="memdesc:a6906e1ef0b34064b4b675489c5c38725"><td class="mdescLeft">&#160;</td><td class="mdescRight">High 32 bit single-precision floating-point scalar. <a href="a00140.html#a6906e1ef0b34064b4b675489c5c38725">More...</a><br /></td></tr>
+<tr class="separator:a6906e1ef0b34064b4b675489c5c38725"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a298f7d4d273678d0282812368da27fda"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2</b></td></tr>
+<tr class="memdesc:a298f7d4d273678d0282812368da27fda"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 1x1 matrix. <a href="a00140.html#a298f7d4d273678d0282812368da27fda">More...</a><br /></td></tr>
+<tr class="separator:a298f7d4d273678d0282812368da27fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abca6420c08917f60f9c76a924c3fa9ef"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x2</b></td></tr>
+<tr class="memdesc:abca6420c08917f60f9c76a924c3fa9ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 1x1 matrix. <a href="a00140.html#abca6420c08917f60f9c76a924c3fa9ef">More...</a><br /></td></tr>
+<tr class="separator:abca6420c08917f60f9c76a924c3fa9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05a62dfea812122ea4a07ca23f9200a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x3</b></td></tr>
+<tr class="memdesc:a05a62dfea812122ea4a07ca23f9200a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 2x3 matrix. <a href="a00140.html#a05a62dfea812122ea4a07ca23f9200a3">More...</a><br /></td></tr>
+<tr class="separator:a05a62dfea812122ea4a07ca23f9200a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x4</b></td></tr>
+<tr class="memdesc:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 2x4 matrix. <a href="a00140.html#a5ac9c94767805c13008b5ad3ceeb48b0">More...</a><br /></td></tr>
+<tr class="separator:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24f9ef3263b1638564713892cc37981f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3</b></td></tr>
+<tr class="memdesc:a24f9ef3263b1638564713892cc37981f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x3 matrix. <a href="a00140.html#a24f9ef3263b1638564713892cc37981f">More...</a><br /></td></tr>
+<tr class="separator:a24f9ef3263b1638564713892cc37981f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x2</b></td></tr>
+<tr class="memdesc:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x2 matrix. <a href="a00140.html#a0ac1c27267fb7e42ab4d16a60bc37d12">More...</a><br /></td></tr>
+<tr class="separator:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb88d894a02f3c506e7895a364acf329"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x3</b></td></tr>
+<tr class="memdesc:aeb88d894a02f3c506e7895a364acf329"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x3 matrix. <a href="a00140.html#aeb88d894a02f3c506e7895a364acf329">More...</a><br /></td></tr>
+<tr class="separator:aeb88d894a02f3c506e7895a364acf329"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2270e71161b53344ef300feea86ce8f8"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x4</b></td></tr>
+<tr class="memdesc:a2270e71161b53344ef300feea86ce8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x4 matrix. <a href="a00140.html#a2270e71161b53344ef300feea86ce8f8">More...</a><br /></td></tr>
+<tr class="separator:a2270e71161b53344ef300feea86ce8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14c90ca49885723f51d06e295587236f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4</b></td></tr>
+<tr class="memdesc:a14c90ca49885723f51d06e295587236f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x4 matrix. <a href="a00140.html#a14c90ca49885723f51d06e295587236f">More...</a><br /></td></tr>
+<tr class="separator:a14c90ca49885723f51d06e295587236f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x2</b></td></tr>
+<tr class="memdesc:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x2 matrix. <a href="a00140.html#a5bbfbe5348102c80ff5ec5b25a8552e8">More...</a><br /></td></tr>
+<tr class="separator:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ccff35ecac00891d63998ace1369cf8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x3</b></td></tr>
+<tr class="memdesc:a7ccff35ecac00891d63998ace1369cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x3 matrix. <a href="a00140.html#a7ccff35ecac00891d63998ace1369cf8">More...</a><br /></td></tr>
+<tr class="separator:a7ccff35ecac00891d63998ace1369cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ab79fc2711ccd850f42d5e816012397"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x4</b></td></tr>
+<tr class="memdesc:a0ab79fc2711ccd850f42d5e816012397"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x4 matrix. <a href="a00140.html#a0ab79fc2711ccd850f42d5e816012397">More...</a><br /></td></tr>
+<tr class="separator:a0ab79fc2711ccd850f42d5e816012397"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe379321f08ebc6fc89563908f3e4cda"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32quat</b></td></tr>
+<tr class="memdesc:abe379321f08ebc6fc89563908f3e4cda"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point quaternion. <a href="a00140.html#abe379321f08ebc6fc89563908f3e4cda">More...</a><br /></td></tr>
+<tr class="separator:abe379321f08ebc6fc89563908f3e4cda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f40d1860ed9eb243181e025bfb5c479"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec1</b></td></tr>
+<tr class="memdesc:a0f40d1860ed9eb243181e025bfb5c479"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point vector of 1 component. <a href="a00140.html#a0f40d1860ed9eb243181e025bfb5c479">More...</a><br /></td></tr>
+<tr class="separator:a0f40d1860ed9eb243181e025bfb5c479"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51a457bcd2c0840cac5dd18b6547a32e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec2</b></td></tr>
+<tr class="memdesc:a51a457bcd2c0840cac5dd18b6547a32e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point vector of 2 components. <a href="a00140.html#a51a457bcd2c0840cac5dd18b6547a32e">More...</a><br /></td></tr>
+<tr class="separator:a51a457bcd2c0840cac5dd18b6547a32e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec3</b></td></tr>
+<tr class="memdesc:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point vector of 3 components. <a href="a00140.html#a78bfcaf2c007f183c973e6f46b8a9b0a">More...</a><br /></td></tr>
+<tr class="separator:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a809699b904d856484f97d3ea89f45ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f32vec4</b></td></tr>
+<tr class="memdesc:a809699b904d856484f97d3ea89f45ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point vector of 4 components. <a href="a00140.html#a809699b904d856484f97d3ea89f45ed7">More...</a><br /></td></tr>
+<tr class="separator:a809699b904d856484f97d3ea89f45ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51d5266017d88f62737c1973923a7cf4"><td class="memItemLeft" align="right" valign="top">typedef float64&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64</b></td></tr>
+<tr class="memdesc:a51d5266017d88f62737c1973923a7cf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">High 64 bit double-precision floating-point scalar. <a href="a00140.html#a51d5266017d88f62737c1973923a7cf4">More...</a><br /></td></tr>
+<tr class="separator:a51d5266017d88f62737c1973923a7cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7adb92ce8de0afaff01436b039fd924"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2</b></td></tr>
+<tr class="memdesc:af7adb92ce8de0afaff01436b039fd924"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 1x1 matrix. <a href="a00140.html#af7adb92ce8de0afaff01436b039fd924">More...</a><br /></td></tr>
+<tr class="separator:af7adb92ce8de0afaff01436b039fd924"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af538d136729000563979da800678fcdb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x2</b></td></tr>
+<tr class="memdesc:af538d136729000563979da800678fcdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 1x1 matrix. <a href="a00140.html#af538d136729000563979da800678fcdb">More...</a><br /></td></tr>
+<tr class="separator:af538d136729000563979da800678fcdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d56d15ebc86c890d91b7a77415945d6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x3</b></td></tr>
+<tr class="memdesc:a7d56d15ebc86c890d91b7a77415945d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 2x3 matrix. <a href="a00140.html#a7d56d15ebc86c890d91b7a77415945d6">More...</a><br /></td></tr>
+<tr class="separator:a7d56d15ebc86c890d91b7a77415945d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac451118b55d9c1c8645a13dc905da2ef"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x4</b></td></tr>
+<tr class="memdesc:ac451118b55d9c1c8645a13dc905da2ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 2x4 matrix. <a href="a00140.html#ac451118b55d9c1c8645a13dc905da2ef">More...</a><br /></td></tr>
+<tr class="separator:ac451118b55d9c1c8645a13dc905da2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a609bf0ace941d6ab1bb2f9522a04e546"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3</b></td></tr>
+<tr class="memdesc:a609bf0ace941d6ab1bb2f9522a04e546"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 3x3 matrix. <a href="a00140.html#a609bf0ace941d6ab1bb2f9522a04e546">More...</a><br /></td></tr>
+<tr class="separator:a609bf0ace941d6ab1bb2f9522a04e546"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9b193febd3179de366dfa1ba31ee6ce"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x2</b></td></tr>
+<tr class="memdesc:ae9b193febd3179de366dfa1ba31ee6ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 3x2 matrix. <a href="a00140.html#ae9b193febd3179de366dfa1ba31ee6ce">More...</a><br /></td></tr>
+<tr class="separator:ae9b193febd3179de366dfa1ba31ee6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b24baf9696ed586df64253fb58404af"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x3</b></td></tr>
+<tr class="memdesc:a5b24baf9696ed586df64253fb58404af"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 3x3 matrix. <a href="a00140.html#a5b24baf9696ed586df64253fb58404af">More...</a><br /></td></tr>
+<tr class="separator:a5b24baf9696ed586df64253fb58404af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x4</b></td></tr>
+<tr class="memdesc:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 3x4 matrix. <a href="a00140.html#a7cbe7df03752d9ade687d4eaf9e2498e">More...</a><br /></td></tr>
+<tr class="separator:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4</b></td></tr>
+<tr class="memdesc:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 4x4 matrix. <a href="a00140.html#ad308e0ed27d64daa4213fb257fcbd5a5">More...</a><br /></td></tr>
+<tr class="separator:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa65ad618b70fa8a2d6412d084c6abf3"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x2</b></td></tr>
+<tr class="memdesc:afa65ad618b70fa8a2d6412d084c6abf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 4x2 matrix. <a href="a00140.html#afa65ad618b70fa8a2d6412d084c6abf3">More...</a><br /></td></tr>
+<tr class="separator:afa65ad618b70fa8a2d6412d084c6abf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b7feceabacde08ca13d1f5ef120d128"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x3</b></td></tr>
+<tr class="memdesc:a4b7feceabacde08ca13d1f5ef120d128"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 4x3 matrix. <a href="a00140.html#a4b7feceabacde08ca13d1f5ef120d128">More...</a><br /></td></tr>
+<tr class="separator:a4b7feceabacde08ca13d1f5ef120d128"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a097940f00a411b5982c35ed5ee66974d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x4</b></td></tr>
+<tr class="memdesc:a097940f00a411b5982c35ed5ee66974d"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point 4x4 matrix. <a href="a00140.html#a097940f00a411b5982c35ed5ee66974d">More...</a><br /></td></tr>
+<tr class="separator:a097940f00a411b5982c35ed5ee66974d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab51c057647a12b62a8a6a855ece8d167"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64quat</b></td></tr>
+<tr class="memdesc:ab51c057647a12b62a8a6a855ece8d167"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point quaternion. <a href="a00140.html#ab51c057647a12b62a8a6a855ece8d167">More...</a><br /></td></tr>
+<tr class="separator:ab51c057647a12b62a8a6a855ece8d167"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89237ecd4974b66bfeca50946f41e9c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec1</b></td></tr>
+<tr class="memdesc:a89237ecd4974b66bfeca50946f41e9c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point vector of 1 component. <a href="a00140.html#a89237ecd4974b66bfeca50946f41e9c1">More...</a><br /></td></tr>
+<tr class="separator:a89237ecd4974b66bfeca50946f41e9c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89dc53052e92cfafd97ecd391397baf0"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec2</b></td></tr>
+<tr class="memdesc:a89dc53052e92cfafd97ecd391397baf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point vector of 2 components. <a href="a00140.html#a89dc53052e92cfafd97ecd391397baf0">More...</a><br /></td></tr>
+<tr class="separator:a89dc53052e92cfafd97ecd391397baf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec720296a0a21668a2ed5a1d5f139169"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec3</b></td></tr>
+<tr class="memdesc:aec720296a0a21668a2ed5a1d5f139169"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point vector of 3 components. <a href="a00140.html#aec720296a0a21668a2ed5a1d5f139169">More...</a><br /></td></tr>
+<tr class="separator:aec720296a0a21668a2ed5a1d5f139169"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d2488c3fb459e4646405e1156e2e00c"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_f64vec4</b></td></tr>
+<tr class="memdesc:a0d2488c3fb459e4646405e1156e2e00c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High double-precision floating-point vector of 4 components. <a href="a00140.html#a0d2488c3fb459e4646405e1156e2e00c">More...</a><br /></td></tr>
+<tr class="separator:a0d2488c3fb459e4646405e1156e2e00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adde4415e846cff13c6cb74a6fe73d01e"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float32</b></td></tr>
+<tr class="memdesc:adde4415e846cff13c6cb74a6fe73d01e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High 32 bit single-precision floating-point scalar. <a href="a00140.html#adde4415e846cff13c6cb74a6fe73d01e">More...</a><br /></td></tr>
+<tr class="separator:adde4415e846cff13c6cb74a6fe73d01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float32_t</b></td></tr>
+<tr class="memdesc:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">High 32 bit single-precision floating-point scalar. <a href="a00140.html#a52ccfbf2e504ae2e5abcf2ad93b4f4a2">More...</a><br /></td></tr>
+<tr class="separator:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float64</b></td></tr>
+<tr class="memdesc:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High 64 bit double-precision floating-point scalar. <a href="a00140.html#ae9b1ba717a8b1e9a7b028ac98d9998d3">More...</a><br /></td></tr>
+<tr class="separator:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a982f41429168a9f2d557500008b0ec22"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>highp_float64_t</b></td></tr>
+<tr class="memdesc:a982f41429168a9f2d557500008b0ec22"><td class="mdescLeft">&#160;</td><td class="mdescRight">High 64 bit double-precision floating-point scalar. <a href="a00140.html#a982f41429168a9f2d557500008b0ec22">More...</a><br /></td></tr>
+<tr class="separator:a982f41429168a9f2d557500008b0ec22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae98c88d9a7befa9b5877f49176225535"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2</b></td></tr>
+<tr class="memdesc:ae98c88d9a7befa9b5877f49176225535"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 1x1 matrix. <a href="a00140.html#ae98c88d9a7befa9b5877f49176225535">More...</a><br /></td></tr>
+<tr class="separator:ae98c88d9a7befa9b5877f49176225535"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2x2</b></td></tr>
+<tr class="memdesc:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 1x1 matrix. <a href="a00140.html#a7af72bc0af9dbd21139d6dc5f66ac5be">More...</a><br /></td></tr>
+<tr class="separator:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb7ad165be67b8607d6fcac71a913f0b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2x3</b></td></tr>
+<tr class="memdesc:adb7ad165be67b8607d6fcac71a913f0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 2x3 matrix. <a href="a00140.html#adb7ad165be67b8607d6fcac71a913f0b">More...</a><br /></td></tr>
+<tr class="separator:adb7ad165be67b8607d6fcac71a913f0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b10e8ada3693b02f55095efa35fdd8b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat2x4</b></td></tr>
+<tr class="memdesc:a3b10e8ada3693b02f55095efa35fdd8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 2x4 matrix. <a href="a00140.html#a3b10e8ada3693b02f55095efa35fdd8b">More...</a><br /></td></tr>
+<tr class="separator:a3b10e8ada3693b02f55095efa35fdd8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed2dc69e0d507d4191092dbd44b3eb75"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3</b></td></tr>
+<tr class="memdesc:aed2dc69e0d507d4191092dbd44b3eb75"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x3 matrix. <a href="a00140.html#aed2dc69e0d507d4191092dbd44b3eb75">More...</a><br /></td></tr>
+<tr class="separator:aed2dc69e0d507d4191092dbd44b3eb75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24225ab930d68cda78866230d5f4c586"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3x2</b></td></tr>
+<tr class="memdesc:a24225ab930d68cda78866230d5f4c586"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x2 matrix. <a href="a00140.html#a24225ab930d68cda78866230d5f4c586">More...</a><br /></td></tr>
+<tr class="separator:a24225ab930d68cda78866230d5f4c586"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3de1e02382b33fa458eb55392136f55d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3x3</b></td></tr>
+<tr class="memdesc:a3de1e02382b33fa458eb55392136f55d"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x3 matrix. <a href="a00140.html#a3de1e02382b33fa458eb55392136f55d">More...</a><br /></td></tr>
+<tr class="separator:a3de1e02382b33fa458eb55392136f55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a311a121ace2b2d2c1f065cfb0be47092"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat3x4</b></td></tr>
+<tr class="memdesc:a311a121ace2b2d2c1f065cfb0be47092"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 3x4 matrix. <a href="a00140.html#a311a121ace2b2d2c1f065cfb0be47092">More...</a><br /></td></tr>
+<tr class="separator:a311a121ace2b2d2c1f065cfb0be47092"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf28443ce0cc0959077ec39b21f32c39"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4</b></td></tr>
+<tr class="memdesc:abf28443ce0cc0959077ec39b21f32c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x4 matrix. <a href="a00140.html#abf28443ce0cc0959077ec39b21f32c39">More...</a><br /></td></tr>
+<tr class="separator:abf28443ce0cc0959077ec39b21f32c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d63d03c71b1749daba2c810037b43cd"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4x2</b></td></tr>
+<tr class="memdesc:a2d63d03c71b1749daba2c810037b43cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x2 matrix. <a href="a00140.html#a2d63d03c71b1749daba2c810037b43cd">More...</a><br /></td></tr>
+<tr class="separator:a2d63d03c71b1749daba2c810037b43cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7458dadd4d573105ea10a4f15660207e"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4x3</b></td></tr>
+<tr class="memdesc:a7458dadd4d573105ea10a4f15660207e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x3 matrix. <a href="a00140.html#a7458dadd4d573105ea10a4f15660207e">More...</a><br /></td></tr>
+<tr class="separator:a7458dadd4d573105ea10a4f15660207e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fmat4x4</b></td></tr>
+<tr class="memdesc:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 4x4 matrix. <a href="a00140.html#a0c272cfdedd2d9fcea43a1eaecb2a414">More...</a><br /></td></tr>
+<tr class="separator:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="memItemLeft" align="right" valign="top">typedef highp_quat&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fquat</b></td></tr>
+<tr class="memdesc:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of high single-precision floating-point numbers. <a href="a00140.html#a9d8bda24be0d5c66b38ceda1a193f0c9">More...</a><br /></td></tr>
+<tr class="separator:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec1</b></td></tr>
+<tr class="memdesc:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point vector of 1 component. <a href="a00140.html#a41c7b342ad9a120310e2f52ee14e3c2e">More...</a><br /></td></tr>
+<tr class="separator:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d93221df334ded08efdb7a231cdfd26"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec2</b></td></tr>
+<tr class="memdesc:a9d93221df334ded08efdb7a231cdfd26"><td class="mdescLeft">&#160;</td><td class="mdescRight">High Single-precision floating-point vector of 2 components. <a href="a00140.html#a9d93221df334ded08efdb7a231cdfd26">More...</a><br /></td></tr>
+<tr class="separator:a9d93221df334ded08efdb7a231cdfd26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec3</b></td></tr>
+<tr class="memdesc:ab333adb64d923bf12287f0dbc2f12c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High Single-precision floating-point vector of 3 components. <a href="a00140.html#ab333adb64d923bf12287f0dbc2f12c7f">More...</a><br /></td></tr>
+<tr class="separator:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad473477b31e48387ad77054dfab93040"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_fvec4</b></td></tr>
+<tr class="memdesc:ad473477b31e48387ad77054dfab93040"><td class="mdescLeft">&#160;</td><td class="mdescRight">High Single-precision floating-point vector of 4 components. <a href="a00140.html#ad473477b31e48387ad77054dfab93040">More...</a><br /></td></tr>
+<tr class="separator:ad473477b31e48387ad77054dfab93040"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
+<tr class="memdesc:ga0336abc2604dd2c20c30e036454b64f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer type. <a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">More...</a><br /></td></tr>
+<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2287f1712b96207a66cc858e930fb77a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec1</b></td></tr>
+<tr class="memdesc:a2287f1712b96207a66cc858e930fb77a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer scalar type. <a href="a00140.html#a2287f1712b96207a66cc858e930fb77a">More...</a><br /></td></tr>
+<tr class="separator:a2287f1712b96207a66cc858e930fb77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b1278f471d04b27be00462deeef2e0a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec2</b></td></tr>
+<tr class="memdesc:a3b1278f471d04b27be00462deeef2e0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer vector of 2 components type. <a href="a00140.html#a3b1278f471d04b27be00462deeef2e0a">More...</a><br /></td></tr>
+<tr class="separator:a3b1278f471d04b27be00462deeef2e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a232957ed3eea2cddbc313de01a73c958"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec3</b></td></tr>
+<tr class="memdesc:a232957ed3eea2cddbc313de01a73c958"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer vector of 3 components type. <a href="a00140.html#a232957ed3eea2cddbc313de01a73c958">More...</a><br /></td></tr>
+<tr class="separator:a232957ed3eea2cddbc313de01a73c958"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b1c2815452029cc1d605e02c754d8bd"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i16vec4</b></td></tr>
+<tr class="memdesc:a2b1c2815452029cc1d605e02c754d8bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer vector of 4 components type. <a href="a00140.html#a2b1c2815452029cc1d605e02c754d8bd">More...</a><br /></td></tr>
+<tr class="separator:a2b1c2815452029cc1d605e02c754d8bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
+<tr class="memdesc:ga727675ac6b5d2fc699520e0059735e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer type. <a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">More...</a><br /></td></tr>
+<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3650f851ca511552052df19fb6cf8f16"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec1</b></td></tr>
+<tr class="memdesc:a3650f851ca511552052df19fb6cf8f16"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer scalar type. <a href="a00140.html#a3650f851ca511552052df19fb6cf8f16">More...</a><br /></td></tr>
+<tr class="separator:a3650f851ca511552052df19fb6cf8f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55ae77cc669bc16dce3b56786b3411b9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec2</b></td></tr>
+<tr class="memdesc:a55ae77cc669bc16dce3b56786b3411b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer vector of 2 components type. <a href="a00140.html#a55ae77cc669bc16dce3b56786b3411b9">More...</a><br /></td></tr>
+<tr class="separator:a55ae77cc669bc16dce3b56786b3411b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec3</b></td></tr>
+<tr class="memdesc:ac29c6f264de4dc336d31e05f84ce89e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer vector of 3 components type. <a href="a00140.html#ac29c6f264de4dc336d31e05f84ce89e4">More...</a><br /></td></tr>
+<tr class="separator:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a389eba6c2510da342d7c5890eae6fa03"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i32vec4</b></td></tr>
+<tr class="memdesc:a389eba6c2510da342d7c5890eae6fa03"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer vector of 4 components type. <a href="a00140.html#a389eba6c2510da342d7c5890eae6fa03">More...</a><br /></td></tr>
+<tr class="separator:a389eba6c2510da342d7c5890eae6fa03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
+<tr class="memdesc:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer type. <a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">More...</a><br /></td></tr>
+<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec1</b></td></tr>
+<tr class="memdesc:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer scalar type. <a href="a00140.html#a29bc99c6e19f3f6b8820e3f9037416d5">More...</a><br /></td></tr>
+<tr class="separator:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ac957028098e89887a0621d677e1a56"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec2</b></td></tr>
+<tr class="memdesc:a9ac957028098e89887a0621d677e1a56"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer vector of 2 components type. <a href="a00140.html#a9ac957028098e89887a0621d677e1a56">More...</a><br /></td></tr>
+<tr class="separator:a9ac957028098e89887a0621d677e1a56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec3</b></td></tr>
+<tr class="memdesc:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer vector of 3 components type. <a href="a00140.html#a0ccc0e5d538ee4c48d406fb7ae116694">More...</a><br /></td></tr>
+<tr class="separator:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a239e24f52398e6f2fa7d8c731072c632"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i64vec4</b></td></tr>
+<tr class="memdesc:a239e24f52398e6f2fa7d8c731072c632"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer vector of 4 components type. <a href="a00140.html#a239e24f52398e6f2fa7d8c731072c632">More...</a><br /></td></tr>
+<tr class="separator:a239e24f52398e6f2fa7d8c731072c632"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
+<tr class="memdesc:gacb88796f2d08ef253d0345aff20c3aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer type. <a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">More...</a><br /></td></tr>
+<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af405602f84fa85522d81f08b54354055"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec1</b></td></tr>
+<tr class="memdesc:af405602f84fa85522d81f08b54354055"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer scalar type. <a href="a00140.html#af405602f84fa85522d81f08b54354055">More...</a><br /></td></tr>
+<tr class="separator:af405602f84fa85522d81f08b54354055"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab78a1c49ec73e0113174902ccdac2aab"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec2</b></td></tr>
+<tr class="memdesc:ab78a1c49ec73e0113174902ccdac2aab"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer vector of 2 components type. <a href="a00140.html#ab78a1c49ec73e0113174902ccdac2aab">More...</a><br /></td></tr>
+<tr class="separator:ab78a1c49ec73e0113174902ccdac2aab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec3</b></td></tr>
+<tr class="memdesc:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer vector of 3 components type. <a href="a00140.html#a035c5ab8bb99731e0a0cdba9f9e3431a">More...</a><br /></td></tr>
+<tr class="separator:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_i8vec4</b></td></tr>
+<tr class="memdesc:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer vector of 4 components type. <a href="a00140.html#ada7a04ea9eaaf01e45e6e8460a4f7abe">More...</a><br /></td></tr>
+<tr class="separator:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
+<tr class="memdesc:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer type. <a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">More...</a><br /></td></tr>
+<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
+<tr class="memdesc:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer type. <a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">More...</a><br /></td></tr>
+<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
+<tr class="memdesc:ga84ed04b4e0de18c977e932d617e7c223"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer type. <a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">More...</a><br /></td></tr>
+<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
+<tr class="memdesc:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">More...</a><br /></td></tr>
+<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
+<tr class="memdesc:ga226a8d52b4e3f77aaa6231135e886aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer type. <a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">More...</a><br /></td></tr>
+<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
+<tr class="memdesc:ga73c6abb280a45feeff60f9accaee91f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer type. <a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">More...</a><br /></td></tr>
+<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
+<tr class="memdesc:gad0549c902a96a7164e4ac858d5f39dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer type. <a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">More...</a><br /></td></tr>
+<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
+<tr class="memdesc:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer type. <a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">More...</a><br /></td></tr>
+<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_quat</b></td></tr>
+<tr class="memdesc:aefe60e46b0d012d98067425ad2e6cbc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of high single-precision floating-point numbers. <a href="a00140.html#aefe60e46b0d012d98067425ad2e6cbc1">More...</a><br /></td></tr>
+<tr class="separator:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
+<tr class="memdesc:ga8e62c883d13f47015f3b70ed88751369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">More...</a><br /></td></tr>
+<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bda7c2533299ff237e174c31f721aee"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec1</b></td></tr>
+<tr class="memdesc:a8bda7c2533299ff237e174c31f721aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer scalar type. <a href="a00140.html#a8bda7c2533299ff237e174c31f721aee">More...</a><br /></td></tr>
+<tr class="separator:a8bda7c2533299ff237e174c31f721aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f26537a923e8a99aa2722ccea04effe"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec2</b></td></tr>
+<tr class="memdesc:a5f26537a923e8a99aa2722ccea04effe"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer vector of 2 components type. <a href="a00140.html#a5f26537a923e8a99aa2722ccea04effe">More...</a><br /></td></tr>
+<tr class="separator:a5f26537a923e8a99aa2722ccea04effe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec3</b></td></tr>
+<tr class="memdesc:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer vector of 3 components type. <a href="a00140.html#ae4b8f63673a7b146a424a5fee3db2ecc">More...</a><br /></td></tr>
+<tr class="separator:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42101fecebea5b85deaedd7a397b4b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u16, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u16vec4</b></td></tr>
+<tr class="memdesc:a42101fecebea5b85deaedd7a397b4b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer vector of 4 components type. <a href="a00140.html#a42101fecebea5b85deaedd7a397b4b8e">More...</a><br /></td></tr>
+<tr class="separator:a42101fecebea5b85deaedd7a397b4b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
+<tr class="memdesc:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">More...</a><br /></td></tr>
+<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a400570a17c30a0d93be64df7aaeca498"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec1</b></td></tr>
+<tr class="memdesc:a400570a17c30a0d93be64df7aaeca498"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer scalar type. <a href="a00140.html#a400570a17c30a0d93be64df7aaeca498">More...</a><br /></td></tr>
+<tr class="separator:a400570a17c30a0d93be64df7aaeca498"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a450990091b6d2af3d5ce21badfdd409e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec2</b></td></tr>
+<tr class="memdesc:a450990091b6d2af3d5ce21badfdd409e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer vector of 2 components type. <a href="a00140.html#a450990091b6d2af3d5ce21badfdd409e">More...</a><br /></td></tr>
+<tr class="separator:a450990091b6d2af3d5ce21badfdd409e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ff192bf2205bec34497aa1f8ba05838"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec3</b></td></tr>
+<tr class="memdesc:a5ff192bf2205bec34497aa1f8ba05838"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer vector of 3 components type. <a href="a00140.html#a5ff192bf2205bec34497aa1f8ba05838">More...</a><br /></td></tr>
+<tr class="separator:a5ff192bf2205bec34497aa1f8ba05838"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a447c20d8123d9c4dbab2016337670fad"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u32, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u32vec4</b></td></tr>
+<tr class="memdesc:a447c20d8123d9c4dbab2016337670fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer vector of 4 components type. <a href="a00140.html#a447c20d8123d9c4dbab2016337670fad">More...</a><br /></td></tr>
+<tr class="separator:a447c20d8123d9c4dbab2016337670fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
+<tr class="memdesc:ga0c181fdf06a309691999926b6690c969"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga0c181fdf06a309691999926b6690c969">More...</a><br /></td></tr>
+<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcba17098bae31bcde33d72f71f96d44"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec1</b></td></tr>
+<tr class="memdesc:adcba17098bae31bcde33d72f71f96d44"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer scalar type. <a href="a00140.html#adcba17098bae31bcde33d72f71f96d44">More...</a><br /></td></tr>
+<tr class="separator:adcba17098bae31bcde33d72f71f96d44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec2</b></td></tr>
+<tr class="memdesc:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer vector of 2 components type. <a href="a00140.html#a1c4c47b6745fbe10d61dd86d4a5362ec">More...</a><br /></td></tr>
+<tr class="separator:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a356770e957a30e5039860337a715f84e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec3</b></td></tr>
+<tr class="memdesc:a356770e957a30e5039860337a715f84e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer vector of 3 components type. <a href="a00140.html#a356770e957a30e5039860337a715f84e">More...</a><br /></td></tr>
+<tr class="separator:a356770e957a30e5039860337a715f84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u64, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u64vec4</b></td></tr>
+<tr class="memdesc:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer vector of 4 components type. <a href="a00140.html#a3af115d5e803c6b966bf4dbc5db2fc63">More...</a><br /></td></tr>
+<tr class="separator:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
+<tr class="memdesc:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">More...</a><br /></td></tr>
+<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec1</b></td></tr>
+<tr class="memdesc:a4f09abf961b1b2c2f6561861a1057aa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer scalar type. <a href="a00140.html#a4f09abf961b1b2c2f6561861a1057aa0">More...</a><br /></td></tr>
+<tr class="separator:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6f8afc722fcf494a808f31fe33a225f"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec2</b></td></tr>
+<tr class="memdesc:ad6f8afc722fcf494a808f31fe33a225f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer vector of 2 components type. <a href="a00140.html#ad6f8afc722fcf494a808f31fe33a225f">More...</a><br /></td></tr>
+<tr class="separator:ad6f8afc722fcf494a808f31fe33a225f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac99086122be840a2bb096e4e3c3f339"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec3</b></td></tr>
+<tr class="memdesc:aac99086122be840a2bb096e4e3c3f339"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer vector of 3 components type. <a href="a00140.html#aac99086122be840a2bb096e4e3c3f339">More...</a><br /></td></tr>
+<tr class="separator:aac99086122be840a2bb096e4e3c3f339"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u8, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_u8vec4</b></td></tr>
+<tr class="memdesc:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer vector of 4 components type. <a href="a00140.html#aaf75b696ccff5ae31bc4d96d031d6c60">More...</a><br /></td></tr>
+<tr class="separator:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
+<tr class="memdesc:ga746dc6da204f5622e395f492997dbf57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">More...</a><br /></td></tr>
+<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
+<tr class="memdesc:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">More...</a><br /></td></tr>
+<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
+<tr class="memdesc:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">More...</a><br /></td></tr>
+<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
+<tr class="memdesc:gae978599c9711ac263ba732d4ac225b0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">More...</a><br /></td></tr>
+<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
+<tr class="memdesc:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">More...</a><br /></td></tr>
+<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
+<tr class="memdesc:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">More...</a><br /></td></tr>
+<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
+<tr class="memdesc:ga97432f9979e73e66567361fd01e4cffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">More...</a><br /></td></tr>
+<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
+<tr class="memdesc:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">More...</a><br /></td></tr>
+<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>highp_vec1</b></td></tr>
+<tr class="memdesc:a8f81d4fc98bf6a4de7da0332242c1841"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point vector of 1 component. <a href="a00140.html#a8f81d4fc98bf6a4de7da0332242c1841">More...</a><br /></td></tr>
+<tr class="separator:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
+<tr class="memdesc:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit signed integer type. <a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">More...</a><br /></td></tr>
+<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
+<tr class="memdesc:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer scalar type. <a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">More...</a><br /></td></tr>
+<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
+<tr class="memdesc:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer vector of 2 components type. <a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">More...</a><br /></td></tr>
+<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
+<tr class="memdesc:ga973b226a9914db682c9372fc761fb535"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer vector of 3 components type. <a href="a00177.html#ga973b226a9914db682c9372fc761fb535">More...</a><br /></td></tr>
+<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
+<tr class="memdesc:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer vector of 4 components type. <a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">More...</a><br /></td></tr>
+<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
+<tr class="memdesc:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">More...</a><br /></td></tr>
+<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
+<tr class="memdesc:ga4cca6bbd117c45f046291fc8e9d03765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer scalar type. <a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">More...</a><br /></td></tr>
+<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
+<tr class="memdesc:ga3c12cef4135603fd77d8fda85808730c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer vector of 2 components type. <a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">More...</a><br /></td></tr>
+<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
+<tr class="memdesc:ga40cd3f391c03512f158d10a70062264e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer vector of 3 components type. <a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">More...</a><br /></td></tr>
+<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
+<tr class="memdesc:gae3364a8090e7e1408056e00403dfecab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer vector of 4 components type. <a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">More...</a><br /></td></tr>
+<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
+<tr class="memdesc:gadb997e409103d4da18abd837e636a496"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit signed integer type. <a href="a00177.html#gadb997e409103d4da18abd837e636a496">More...</a><br /></td></tr>
+<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
+<tr class="memdesc:ga5b4a3e499ee165efc0dc05add9c48235"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer scalar type. <a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">More...</a><br /></td></tr>
+<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
+<tr class="memdesc:gade69872a31f066e5ae212f1af6008edb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer vector of 2 components type. <a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">More...</a><br /></td></tr>
+<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
+<tr class="memdesc:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer vector of 3 components type. <a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">More...</a><br /></td></tr>
+<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
+<tr class="memdesc:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer vector of 4 components type. <a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">More...</a><br /></td></tr>
+<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
+<tr class="memdesc:ga302ec977b0c0c3ea245b6c9275495355"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit signed integer type. <a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">More...</a><br /></td></tr>
+<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
+<tr class="memdesc:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer scalar type. <a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">More...</a><br /></td></tr>
+<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
+<tr class="memdesc:ga6414484477e4c1b4863cf91af8fd4185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer vector of 2 components type. <a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">More...</a><br /></td></tr>
+<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
+<tr class="memdesc:gaf4b5993e794e252607f91535b62a7e0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer vector of 3 components type. <a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">More...</a><br /></td></tr>
+<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
+<tr class="memdesc:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer vector of 4 components type. <a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">More...</a><br /></td></tr>
+<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
+<tr class="memdesc:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit signed integer type. <a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">More...</a><br /></td></tr>
+<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
+<tr class="memdesc:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">More...</a><br /></td></tr>
+<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
+<tr class="memdesc:ga322a7d7d2c2c68994dc872a33de63c61"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit signed integer type. <a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">More...</a><br /></td></tr>
+<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
+<tr class="memdesc:ga4bf09d8838a86866b39ee6e109341645"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit signed integer type. <a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">More...</a><br /></td></tr>
+<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_dquat</b></td></tr>
+<tr class="memdesc:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of low double-precision floating-point numbers. <a href="a00140.html#a5bb5330eb0f9cf0f8135c5f6ab07b96c">More...</a><br /></td></tr>
+<tr class="separator:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeea53879fc327293cf3352a409b7867b"><td class="memItemLeft" align="right" valign="top">typedef float32&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32</b></td></tr>
+<tr class="memdesc:aeea53879fc327293cf3352a409b7867b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low 32 bit single-precision floating-point scalar. <a href="a00140.html#aeea53879fc327293cf3352a409b7867b">More...</a><br /></td></tr>
+<tr class="separator:aeea53879fc327293cf3352a409b7867b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52409bc6d4a2ce3421526c069220d685"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2</b></td></tr>
+<tr class="memdesc:a52409bc6d4a2ce3421526c069220d685"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 1x1 matrix. <a href="a00140.html#a52409bc6d4a2ce3421526c069220d685">More...</a><br /></td></tr>
+<tr class="separator:a52409bc6d4a2ce3421526c069220d685"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbfa3780fa74a8aceed53c6cac3d185e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x2</b></td></tr>
+<tr class="memdesc:acbfa3780fa74a8aceed53c6cac3d185e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 1x1 matrix. <a href="a00140.html#acbfa3780fa74a8aceed53c6cac3d185e">More...</a><br /></td></tr>
+<tr class="separator:acbfa3780fa74a8aceed53c6cac3d185e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7106f1c5fbb3e928556d2176c2828324"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x3</b></td></tr>
+<tr class="memdesc:a7106f1c5fbb3e928556d2176c2828324"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 2x3 matrix. <a href="a00140.html#a7106f1c5fbb3e928556d2176c2828324">More...</a><br /></td></tr>
+<tr class="separator:a7106f1c5fbb3e928556d2176c2828324"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad63250829617716e7009216970a22a2e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x4</b></td></tr>
+<tr class="memdesc:ad63250829617716e7009216970a22a2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 2x4 matrix. <a href="a00140.html#ad63250829617716e7009216970a22a2e">More...</a><br /></td></tr>
+<tr class="separator:ad63250829617716e7009216970a22a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4187f89f196505b40e63f516139511e5"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3</b></td></tr>
+<tr class="memdesc:a4187f89f196505b40e63f516139511e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x3 matrix. <a href="a00140.html#a4187f89f196505b40e63f516139511e5">More...</a><br /></td></tr>
+<tr class="separator:a4187f89f196505b40e63f516139511e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x2</b></td></tr>
+<tr class="memdesc:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x2 matrix. <a href="a00140.html#a1386a5915b7f4935ccae0f9a79bfb51f">More...</a><br /></td></tr>
+<tr class="separator:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x3</b></td></tr>
+<tr class="memdesc:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x3 matrix. <a href="a00140.html#ad746673e0c3ba5e7027ec0e0b1682d63">More...</a><br /></td></tr>
+<tr class="separator:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90a6dc116b6407408e033f73301468ee"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x4</b></td></tr>
+<tr class="memdesc:a90a6dc116b6407408e033f73301468ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x4 matrix. <a href="a00140.html#a90a6dc116b6407408e033f73301468ee">More...</a><br /></td></tr>
+<tr class="separator:a90a6dc116b6407408e033f73301468ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a766aed2871e6173a81011a877f398f04"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4</b></td></tr>
+<tr class="memdesc:a766aed2871e6173a81011a877f398f04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x4 matrix. <a href="a00140.html#a766aed2871e6173a81011a877f398f04">More...</a><br /></td></tr>
+<tr class="separator:a766aed2871e6173a81011a877f398f04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4663c5444a670dbcbd8a7fa907148add"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x2</b></td></tr>
+<tr class="memdesc:a4663c5444a670dbcbd8a7fa907148add"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x2 matrix. <a href="a00140.html#a4663c5444a670dbcbd8a7fa907148add">More...</a><br /></td></tr>
+<tr class="separator:a4663c5444a670dbcbd8a7fa907148add"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b3cd59a64ede38fb8ec16f9db191544"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x3</b></td></tr>
+<tr class="memdesc:a1b3cd59a64ede38fb8ec16f9db191544"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x3 matrix. <a href="a00140.html#a1b3cd59a64ede38fb8ec16f9db191544">More...</a><br /></td></tr>
+<tr class="separator:a1b3cd59a64ede38fb8ec16f9db191544"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a752dff4232933964e899b1be27f30af4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x4</b></td></tr>
+<tr class="memdesc:a752dff4232933964e899b1be27f30af4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x4 matrix. <a href="a00140.html#a752dff4232933964e899b1be27f30af4">More...</a><br /></td></tr>
+<tr class="separator:a752dff4232933964e899b1be27f30af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa27d7ca08ddd62647ce00b1981ac3967"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32quat</b></td></tr>
+<tr class="memdesc:aa27d7ca08ddd62647ce00b1981ac3967"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point quaternion. <a href="a00140.html#aa27d7ca08ddd62647ce00b1981ac3967">More...</a><br /></td></tr>
+<tr class="separator:aa27d7ca08ddd62647ce00b1981ac3967"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a065441db99acdc970d6b1bca51fb0e88"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec1</b></td></tr>
+<tr class="memdesc:a065441db99acdc970d6b1bca51fb0e88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 1 component. <a href="a00140.html#a065441db99acdc970d6b1bca51fb0e88">More...</a><br /></td></tr>
+<tr class="separator:a065441db99acdc970d6b1bca51fb0e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec2</b></td></tr>
+<tr class="memdesc:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 2 components. <a href="a00140.html#a7e6a3c71f9084c64dee3513de2c91e6a">More...</a><br /></td></tr>
+<tr class="separator:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc51390c78531eff7546f1877c5a6e2a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec3</b></td></tr>
+<tr class="memdesc:acc51390c78531eff7546f1877c5a6e2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 3 components. <a href="a00140.html#acc51390c78531eff7546f1877c5a6e2a">More...</a><br /></td></tr>
+<tr class="separator:acc51390c78531eff7546f1877c5a6e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c810baad7672618d387efd82824d3f0"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f32vec4</b></td></tr>
+<tr class="memdesc:a3c810baad7672618d387efd82824d3f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 4 components. <a href="a00140.html#a3c810baad7672618d387efd82824d3f0">More...</a><br /></td></tr>
+<tr class="separator:a3c810baad7672618d387efd82824d3f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="memItemLeft" align="right" valign="top">typedef float64&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64</b></td></tr>
+<tr class="memdesc:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low 64 bit double-precision floating-point scalar. <a href="a00140.html#abc7a97c07cbfac8e35eb5e63beb4b679">More...</a><br /></td></tr>
+<tr class="separator:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc730f6b4242763b0eda0ffa25150292"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2</b></td></tr>
+<tr class="memdesc:afc730f6b4242763b0eda0ffa25150292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 1x1 matrix. <a href="a00140.html#afc730f6b4242763b0eda0ffa25150292">More...</a><br /></td></tr>
+<tr class="separator:afc730f6b4242763b0eda0ffa25150292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d8b766229a9613e023da6015273c5e0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x2</b></td></tr>
+<tr class="memdesc:a9d8b766229a9613e023da6015273c5e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 1x1 matrix. <a href="a00140.html#a9d8b766229a9613e023da6015273c5e0">More...</a><br /></td></tr>
+<tr class="separator:a9d8b766229a9613e023da6015273c5e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c9ae336839e72b32d8b54247a71ffba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x3</b></td></tr>
+<tr class="memdesc:a7c9ae336839e72b32d8b54247a71ffba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 2x3 matrix. <a href="a00140.html#a7c9ae336839e72b32d8b54247a71ffba">More...</a><br /></td></tr>
+<tr class="separator:a7c9ae336839e72b32d8b54247a71ffba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a842f6af7042f44a489c45e83cf62c58c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x4</b></td></tr>
+<tr class="memdesc:a842f6af7042f44a489c45e83cf62c58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 2x4 matrix. <a href="a00140.html#a842f6af7042f44a489c45e83cf62c58c">More...</a><br /></td></tr>
+<tr class="separator:a842f6af7042f44a489c45e83cf62c58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58119a41d143ebaea0df70fe882e8a40"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3</b></td></tr>
+<tr class="memdesc:a58119a41d143ebaea0df70fe882e8a40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 3x3 matrix. <a href="a00140.html#a58119a41d143ebaea0df70fe882e8a40">More...</a><br /></td></tr>
+<tr class="separator:a58119a41d143ebaea0df70fe882e8a40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98cd9aafec70a9d83add4b67e20e4d52"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x2</b></td></tr>
+<tr class="memdesc:a98cd9aafec70a9d83add4b67e20e4d52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 3x2 matrix. <a href="a00140.html#a98cd9aafec70a9d83add4b67e20e4d52">More...</a><br /></td></tr>
+<tr class="separator:a98cd9aafec70a9d83add4b67e20e4d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x3</b></td></tr>
+<tr class="memdesc:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 3x3 matrix. <a href="a00140.html#abb9146c6416d66b57e5c3aea6f2f5c99">More...</a><br /></td></tr>
+<tr class="separator:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a002c5621e42eceb747ad4f8315122175"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x4</b></td></tr>
+<tr class="memdesc:a002c5621e42eceb747ad4f8315122175"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 3x4 matrix. <a href="a00140.html#a002c5621e42eceb747ad4f8315122175">More...</a><br /></td></tr>
+<tr class="separator:a002c5621e42eceb747ad4f8315122175"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7451266e67794bd1125163502bc4a570"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4</b></td></tr>
+<tr class="memdesc:a7451266e67794bd1125163502bc4a570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 4x4 matrix. <a href="a00140.html#a7451266e67794bd1125163502bc4a570">More...</a><br /></td></tr>
+<tr class="separator:a7451266e67794bd1125163502bc4a570"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a691047f2c02376e3c33abc9b09fa7d11"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x2</b></td></tr>
+<tr class="memdesc:a691047f2c02376e3c33abc9b09fa7d11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 4x2 matrix. <a href="a00140.html#a691047f2c02376e3c33abc9b09fa7d11">More...</a><br /></td></tr>
+<tr class="separator:a691047f2c02376e3c33abc9b09fa7d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5421a69235098aa087ec5fde0904854"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x3</b></td></tr>
+<tr class="memdesc:ae5421a69235098aa087ec5fde0904854"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 4x3 matrix. <a href="a00140.html#ae5421a69235098aa087ec5fde0904854">More...</a><br /></td></tr>
+<tr class="separator:ae5421a69235098aa087ec5fde0904854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc09833bf36fd52048b27158ccf442f6"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x4</b></td></tr>
+<tr class="memdesc:adc09833bf36fd52048b27158ccf442f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point 4x4 matrix. <a href="a00140.html#adc09833bf36fd52048b27158ccf442f6">More...</a><br /></td></tr>
+<tr class="separator:adc09833bf36fd52048b27158ccf442f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64quat</b></td></tr>
+<tr class="memdesc:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point quaternion. <a href="a00140.html#ac1a96856970fd9b3dfb5a57146ee9de7">More...</a><br /></td></tr>
+<tr class="separator:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec1</b></td></tr>
+<tr class="memdesc:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point vector of 1 component. <a href="a00140.html#a6b90a9dbb5fbb8ae29fd8fbf35d35127">More...</a><br /></td></tr>
+<tr class="separator:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec2</b></td></tr>
+<tr class="memdesc:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point vector of 2 components. <a href="a00140.html#ac7be5ae5a2881cb153c0c3c3f7399b45">More...</a><br /></td></tr>
+<tr class="separator:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec3</b></td></tr>
+<tr class="memdesc:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point vector of 3 components. <a href="a00140.html#a7701bd67c12faf9a4bdb24a57d67a3b6">More...</a><br /></td></tr>
+<tr class="separator:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abee657babf6feea4385d19eb6fa5278a"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_f64vec4</b></td></tr>
+<tr class="memdesc:abee657babf6feea4385d19eb6fa5278a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low double-precision floating-point vector of 4 components. <a href="a00140.html#abee657babf6feea4385d19eb6fa5278a">More...</a><br /></td></tr>
+<tr class="separator:abee657babf6feea4385d19eb6fa5278a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8234cea5c12583310da0fdfe62657638"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float32</b></td></tr>
+<tr class="memdesc:a8234cea5c12583310da0fdfe62657638"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low 32 bit single-precision floating-point scalar. <a href="a00140.html#a8234cea5c12583310da0fdfe62657638">More...</a><br /></td></tr>
+<tr class="separator:a8234cea5c12583310da0fdfe62657638"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a32491c689d3ff33652770868187f27"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float32_t</b></td></tr>
+<tr class="memdesc:a7a32491c689d3ff33652770868187f27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low 32 bit single-precision floating-point scalar. <a href="a00140.html#a7a32491c689d3ff33652770868187f27">More...</a><br /></td></tr>
+<tr class="separator:a7a32491c689d3ff33652770868187f27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60503f200138a07e57c737abfa57f5f6"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float64</b></td></tr>
+<tr class="memdesc:a60503f200138a07e57c737abfa57f5f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low 64 bit double-precision floating-point scalar. <a href="a00140.html#a60503f200138a07e57c737abfa57f5f6">More...</a><br /></td></tr>
+<tr class="separator:a60503f200138a07e57c737abfa57f5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a3b5a4f1565687927b5edb23f0b35e"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_float64_t</b></td></tr>
+<tr class="memdesc:a49a3b5a4f1565687927b5edb23f0b35e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low 64 bit double-precision floating-point scalar. <a href="a00140.html#a49a3b5a4f1565687927b5edb23f0b35e">More...</a><br /></td></tr>
+<tr class="separator:a49a3b5a4f1565687927b5edb23f0b35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bba0ce31210e274f73efacd3364c03f"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2</b></td></tr>
+<tr class="memdesc:a5bba0ce31210e274f73efacd3364c03f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 1x1 matrix. <a href="a00140.html#a5bba0ce31210e274f73efacd3364c03f">More...</a><br /></td></tr>
+<tr class="separator:a5bba0ce31210e274f73efacd3364c03f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66f97ccbae05c652595d71ec931d7161"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x2</b></td></tr>
+<tr class="memdesc:a66f97ccbae05c652595d71ec931d7161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 1x1 matrix. <a href="a00140.html#a66f97ccbae05c652595d71ec931d7161">More...</a><br /></td></tr>
+<tr class="separator:a66f97ccbae05c652595d71ec931d7161"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9d407a7e137ee373b310dc0bf769bf9"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x3</b></td></tr>
+<tr class="memdesc:ac9d407a7e137ee373b310dc0bf769bf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 2x3 matrix. <a href="a00140.html#ac9d407a7e137ee373b310dc0bf769bf9">More...</a><br /></td></tr>
+<tr class="separator:ac9d407a7e137ee373b310dc0bf769bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a776e06fd5557d5dca4beecebad19aed3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x4</b></td></tr>
+<tr class="memdesc:a776e06fd5557d5dca4beecebad19aed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 2x4 matrix. <a href="a00140.html#a776e06fd5557d5dca4beecebad19aed3">More...</a><br /></td></tr>
+<tr class="separator:a776e06fd5557d5dca4beecebad19aed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83079315e230e8f39728f4bf0d2f9a9b"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3</b></td></tr>
+<tr class="memdesc:a83079315e230e8f39728f4bf0d2f9a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x3 matrix. <a href="a00140.html#a83079315e230e8f39728f4bf0d2f9a9b">More...</a><br /></td></tr>
+<tr class="separator:a83079315e230e8f39728f4bf0d2f9a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad171c065fd8a50e85f3f61d04011ff17"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x2</b></td></tr>
+<tr class="memdesc:ad171c065fd8a50e85f3f61d04011ff17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x2 matrix. <a href="a00140.html#ad171c065fd8a50e85f3f61d04011ff17">More...</a><br /></td></tr>
+<tr class="separator:ad171c065fd8a50e85f3f61d04011ff17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab67fff920716329c921e3f3fad4ea2c3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x3</b></td></tr>
+<tr class="memdesc:ab67fff920716329c921e3f3fad4ea2c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x3 matrix. <a href="a00140.html#ab67fff920716329c921e3f3fad4ea2c3">More...</a><br /></td></tr>
+<tr class="separator:ab67fff920716329c921e3f3fad4ea2c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a769421d99e6514dd4ca99b3d3065f037"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x4</b></td></tr>
+<tr class="memdesc:a769421d99e6514dd4ca99b3d3065f037"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 3x4 matrix. <a href="a00140.html#a769421d99e6514dd4ca99b3d3065f037">More...</a><br /></td></tr>
+<tr class="separator:a769421d99e6514dd4ca99b3d3065f037"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4</b></td></tr>
+<tr class="memdesc:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x4 matrix. <a href="a00140.html#a5803cb9ae26399762d8bba9e0b2fc09f">More...</a><br /></td></tr>
+<tr class="separator:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x2</b></td></tr>
+<tr class="memdesc:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x2 matrix. <a href="a00140.html#a037f70890ec5808175f8b8fa2a1ffbe9">More...</a><br /></td></tr>
+<tr class="separator:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x3</b></td></tr>
+<tr class="memdesc:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x3 matrix. <a href="a00140.html#a0f5ea3f37178a6c8a6a6f26cb47145db">More...</a><br /></td></tr>
+<tr class="separator:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa389a235fe6788544cd168b6eba2e250"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x4</b></td></tr>
+<tr class="memdesc:aa389a235fe6788544cd168b6eba2e250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point 4x4 matrix. <a href="a00140.html#aa389a235fe6788544cd168b6eba2e250">More...</a><br /></td></tr>
+<tr class="separator:aa389a235fe6788544cd168b6eba2e250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="memItemLeft" align="right" valign="top">typedef lowp_quat&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fquat</b></td></tr>
+<tr class="memdesc:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of low single-precision floating-point numbers. <a href="a00140.html#afc9fc7b43c89cb6d7c989d427c3ec5a3">More...</a><br /></td></tr>
+<tr class="separator:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec1</b></td></tr>
+<tr class="memdesc:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 1 component. <a href="a00140.html#a65eb3ab6e5f172c001e1160c6fbb4f22">More...</a><br /></td></tr>
+<tr class="separator:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78c8523592fea346dea7561d12337fd8"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec2</b></td></tr>
+<tr class="memdesc:a78c8523592fea346dea7561d12337fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 2 components. <a href="a00140.html#a78c8523592fea346dea7561d12337fd8">More...</a><br /></td></tr>
+<tr class="separator:a78c8523592fea346dea7561d12337fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7893b199d7493a88dea8bd38bd878b5"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec3</b></td></tr>
+<tr class="memdesc:ab7893b199d7493a88dea8bd38bd878b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 3 components. <a href="a00140.html#ab7893b199d7493a88dea8bd38bd878b5">More...</a><br /></td></tr>
+<tr class="separator:ab7893b199d7493a88dea8bd38bd878b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_fvec4</b></td></tr>
+<tr class="memdesc:adbeccbd85012ba9638d51b37d0b88e4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 4 components. <a href="a00140.html#adbeccbd85012ba9638d51b37d0b88e4e">More...</a><br /></td></tr>
+<tr class="separator:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
+<tr class="memdesc:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer type. <a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">More...</a><br /></td></tr>
+<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29d17771c7521875f7972610a274437d"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec1</b></td></tr>
+<tr class="memdesc:a29d17771c7521875f7972610a274437d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer scalar type. <a href="a00140.html#a29d17771c7521875f7972610a274437d">More...</a><br /></td></tr>
+<tr class="separator:a29d17771c7521875f7972610a274437d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9418f7f14075a2eb419d79dea795fe8e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec2</b></td></tr>
+<tr class="memdesc:a9418f7f14075a2eb419d79dea795fe8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer vector of 2 components type. <a href="a00140.html#a9418f7f14075a2eb419d79dea795fe8e">More...</a><br /></td></tr>
+<tr class="separator:a9418f7f14075a2eb419d79dea795fe8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a572548327ac6277265d1fb0f3ba05f07"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec3</b></td></tr>
+<tr class="memdesc:a572548327ac6277265d1fb0f3ba05f07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer vector of 3 components type. <a href="a00140.html#a572548327ac6277265d1fb0f3ba05f07">More...</a><br /></td></tr>
+<tr class="separator:a572548327ac6277265d1fb0f3ba05f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a877978ecba5f4186b045507593a92d90"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i16vec4</b></td></tr>
+<tr class="memdesc:a877978ecba5f4186b045507593a92d90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer vector of 4 components type. <a href="a00140.html#a877978ecba5f4186b045507593a92d90">More...</a><br /></td></tr>
+<tr class="separator:a877978ecba5f4186b045507593a92d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
+<tr class="memdesc:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer type. <a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">More...</a><br /></td></tr>
+<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4d1f110d2643d0911aeaa424dd342f3"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec1</b></td></tr>
+<tr class="memdesc:af4d1f110d2643d0911aeaa424dd342f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer scalar type. <a href="a00140.html#af4d1f110d2643d0911aeaa424dd342f3">More...</a><br /></td></tr>
+<tr class="separator:af4d1f110d2643d0911aeaa424dd342f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1d50e964e3ba141afc193a1e135369a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec2</b></td></tr>
+<tr class="memdesc:ab1d50e964e3ba141afc193a1e135369a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer vector of 2 components type. <a href="a00140.html#ab1d50e964e3ba141afc193a1e135369a">More...</a><br /></td></tr>
+<tr class="separator:ab1d50e964e3ba141afc193a1e135369a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a669898de66e7bb5695f7a86aa8915fd9"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec3</b></td></tr>
+<tr class="memdesc:a669898de66e7bb5695f7a86aa8915fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer vector of 3 components type. <a href="a00140.html#a669898de66e7bb5695f7a86aa8915fd9">More...</a><br /></td></tr>
+<tr class="separator:a669898de66e7bb5695f7a86aa8915fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35522d761caa8f93185a96ed9e61795d"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i32vec4</b></td></tr>
+<tr class="memdesc:a35522d761caa8f93185a96ed9e61795d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer vector of 4 components type. <a href="a00140.html#a35522d761caa8f93185a96ed9e61795d">More...</a><br /></td></tr>
+<tr class="separator:a35522d761caa8f93185a96ed9e61795d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
+<tr class="memdesc:ga354736e0c645099cd44c42fb2f87c2b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer type. <a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">More...</a><br /></td></tr>
+<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7852c10988de095e6e685300904cb2b3"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec1</b></td></tr>
+<tr class="memdesc:a7852c10988de095e6e685300904cb2b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer scalar type. <a href="a00140.html#a7852c10988de095e6e685300904cb2b3">More...</a><br /></td></tr>
+<tr class="separator:a7852c10988de095e6e685300904cb2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a305eb0f7ba957bb53972b7690904a24f"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec2</b></td></tr>
+<tr class="memdesc:a305eb0f7ba957bb53972b7690904a24f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer vector of 2 components type. <a href="a00140.html#a305eb0f7ba957bb53972b7690904a24f">More...</a><br /></td></tr>
+<tr class="separator:a305eb0f7ba957bb53972b7690904a24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adce94f56b502977689df6693fa70c0ed"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec3</b></td></tr>
+<tr class="memdesc:adce94f56b502977689df6693fa70c0ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer vector of 3 components type. <a href="a00140.html#adce94f56b502977689df6693fa70c0ed">More...</a><br /></td></tr>
+<tr class="separator:adce94f56b502977689df6693fa70c0ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f9cb33adc669bb6a72329af5381b690"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i64vec4</b></td></tr>
+<tr class="memdesc:a1f9cb33adc669bb6a72329af5381b690"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer vector of 4 components type. <a href="a00140.html#a1f9cb33adc669bb6a72329af5381b690">More...</a><br /></td></tr>
+<tr class="separator:a1f9cb33adc669bb6a72329af5381b690"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
+<tr class="memdesc:ga552a6bde5e75984efb0f863278da2e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer type. <a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">More...</a><br /></td></tr>
+<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7192dd365ce8d4fa4da3257c676de267"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec1</b></td></tr>
+<tr class="memdesc:a7192dd365ce8d4fa4da3257c676de267"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer scalar type. <a href="a00140.html#a7192dd365ce8d4fa4da3257c676de267">More...</a><br /></td></tr>
+<tr class="separator:a7192dd365ce8d4fa4da3257c676de267"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02a47f2177b67de3ce1139e68196e56b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec2</b></td></tr>
+<tr class="memdesc:a02a47f2177b67de3ce1139e68196e56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer vector of 2 components type. <a href="a00140.html#a02a47f2177b67de3ce1139e68196e56b">More...</a><br /></td></tr>
+<tr class="separator:a02a47f2177b67de3ce1139e68196e56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f4179513be603c7494da45295c35bdc"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec3</b></td></tr>
+<tr class="memdesc:a6f4179513be603c7494da45295c35bdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer vector of 3 components type. <a href="a00140.html#a6f4179513be603c7494da45295c35bdc">More...</a><br /></td></tr>
+<tr class="separator:a6f4179513be603c7494da45295c35bdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76d872db6e41d64e338a36f09b5daeb7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_i8vec4</b></td></tr>
+<tr class="memdesc:a76d872db6e41d64e338a36f09b5daeb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer vector of 4 components type. <a href="a00140.html#a76d872db6e41d64e338a36f09b5daeb7">More...</a><br /></td></tr>
+<tr class="separator:a76d872db6e41d64e338a36f09b5daeb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
+<tr class="memdesc:ga698e36b01167fc0f037889334dce8def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer type. <a href="a00177.html#ga698e36b01167fc0f037889334dce8def">More...</a><br /></td></tr>
+<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
+<tr class="memdesc:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer type. <a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">More...</a><br /></td></tr>
+<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
+<tr class="memdesc:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer type. <a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">More...</a><br /></td></tr>
+<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
+<tr class="memdesc:ga0350631d35ff800e6133ac6243b13cbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer type. <a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">More...</a><br /></td></tr>
+<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
+<tr class="memdesc:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer type. <a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">More...</a><br /></td></tr>
+<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
+<tr class="memdesc:gaebf341fc4a5be233f7dde962c2e33847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer type. <a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">More...</a><br /></td></tr>
+<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
+<tr class="memdesc:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer type. <a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">More...</a><br /></td></tr>
+<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
+<tr class="memdesc:ga119c41d73fe9977358174eb3ac1035a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer type. <a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">More...</a><br /></td></tr>
+<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2d7af2016aba4edc1a14fed266317d2"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_quat</b></td></tr>
+<tr class="memdesc:aa2d7af2016aba4edc1a14fed266317d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of low single-precision floating-point numbers. <a href="a00140.html#aa2d7af2016aba4edc1a14fed266317d2">More...</a><br /></td></tr>
+<tr class="separator:aa2d7af2016aba4edc1a14fed266317d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
+<tr class="memdesc:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer type. <a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">More...</a><br /></td></tr>
+<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec1</b></td></tr>
+<tr class="memdesc:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer scalar type. <a href="a00140.html#a016d2c4e5962ee5dcb30978f9de6ac52">More...</a><br /></td></tr>
+<tr class="separator:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec2</b></td></tr>
+<tr class="memdesc:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer vector of 2 components type. <a href="a00140.html#aa3bd6951d7eeae1b4f2cc50759dbf640">More...</a><br /></td></tr>
+<tr class="separator:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae63c1dbdb499eb7664109fb39857bce4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec3</b></td></tr>
+<tr class="memdesc:ae63c1dbdb499eb7664109fb39857bce4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer vector of 3 components type. <a href="a00140.html#ae63c1dbdb499eb7664109fb39857bce4">More...</a><br /></td></tr>
+<tr class="separator:ae63c1dbdb499eb7664109fb39857bce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6baa0d373bf33bfa1aa666f557eae789"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u16, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u16vec4</b></td></tr>
+<tr class="memdesc:a6baa0d373bf33bfa1aa666f557eae789"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer vector of 4 components type. <a href="a00140.html#a6baa0d373bf33bfa1aa666f557eae789">More...</a><br /></td></tr>
+<tr class="separator:a6baa0d373bf33bfa1aa666f557eae789"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
+<tr class="memdesc:ga4f072ada9552e1e480bbb3b1acde5250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer type. <a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">More...</a><br /></td></tr>
+<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec1</b></td></tr>
+<tr class="memdesc:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer scalar type. <a href="a00140.html#ad302aa571eb6955dbfc5289c7c84ca1b">More...</a><br /></td></tr>
+<tr class="separator:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d0d6330a6a0e7c4885f6b554535b200"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec2</b></td></tr>
+<tr class="memdesc:a0d0d6330a6a0e7c4885f6b554535b200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer vector of 2 components type. <a href="a00140.html#a0d0d6330a6a0e7c4885f6b554535b200">More...</a><br /></td></tr>
+<tr class="separator:a0d0d6330a6a0e7c4885f6b554535b200"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82ab625c16f826dc658bde310158ddff"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec3</b></td></tr>
+<tr class="memdesc:a82ab625c16f826dc658bde310158ddff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer vector of 3 components type. <a href="a00140.html#a82ab625c16f826dc658bde310158ddff">More...</a><br /></td></tr>
+<tr class="separator:a82ab625c16f826dc658bde310158ddff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a061f6b150324b1913490c743e756d04f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u32, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u32vec4</b></td></tr>
+<tr class="memdesc:a061f6b150324b1913490c743e756d04f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer vector of 4 components type. <a href="a00140.html#a061f6b150324b1913490c743e756d04f">More...</a><br /></td></tr>
+<tr class="separator:a061f6b150324b1913490c743e756d04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
+<tr class="memdesc:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer type. <a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">More...</a><br /></td></tr>
+<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a318bf8bfd18ab389678d06828a28c39b"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec1</b></td></tr>
+<tr class="memdesc:a318bf8bfd18ab389678d06828a28c39b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer scalar type. <a href="a00140.html#a318bf8bfd18ab389678d06828a28c39b">More...</a><br /></td></tr>
+<tr class="separator:a318bf8bfd18ab389678d06828a28c39b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a833371ce41eb501163ab6ebd6205fc9a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec2</b></td></tr>
+<tr class="memdesc:a833371ce41eb501163ab6ebd6205fc9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer vector of 2 components type. <a href="a00140.html#a833371ce41eb501163ab6ebd6205fc9a">More...</a><br /></td></tr>
+<tr class="separator:a833371ce41eb501163ab6ebd6205fc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae69228b98799312c02544febb1af766b"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec3</b></td></tr>
+<tr class="memdesc:ae69228b98799312c02544febb1af766b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer vector of 3 components type. <a href="a00140.html#ae69228b98799312c02544febb1af766b">More...</a><br /></td></tr>
+<tr class="separator:ae69228b98799312c02544febb1af766b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u64, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u64vec4</b></td></tr>
+<tr class="memdesc:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer vector of 4 components type. <a href="a00140.html#a3c1344b4a809a5812c7fd4aed4a7d3fb">More...</a><br /></td></tr>
+<tr class="separator:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
+<tr class="memdesc:ga1b09f03da7ac43055c68a349d5445083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer type. <a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">More...</a><br /></td></tr>
+<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac31801407d2141204e74eefea0bf3ef0"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec1</b></td></tr>
+<tr class="memdesc:ac31801407d2141204e74eefea0bf3ef0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer scalar type. <a href="a00140.html#ac31801407d2141204e74eefea0bf3ef0">More...</a><br /></td></tr>
+<tr class="separator:ac31801407d2141204e74eefea0bf3ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec2</b></td></tr>
+<tr class="memdesc:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer vector of 2 components type. <a href="a00140.html#a4fbff016a05f8fb6bf793c42f4bf1cd5">More...</a><br /></td></tr>
+<tr class="separator:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec3</b></td></tr>
+<tr class="memdesc:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer vector of 3 components type. <a href="a00140.html#a0cbe1a6da09be9171fc08ceadfbb758d">More...</a><br /></td></tr>
+<tr class="separator:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a764d9393e9aff7a84825a5760e2498b9"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u8, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_u8vec4</b></td></tr>
+<tr class="memdesc:a764d9393e9aff7a84825a5760e2498b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer vector of 4 components type. <a href="a00140.html#a764d9393e9aff7a84825a5760e2498b9">More...</a><br /></td></tr>
+<tr class="separator:a764d9393e9aff7a84825a5760e2498b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
+<tr class="memdesc:gad68bfd9f881856fc863a6ebca0b67f78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer type. <a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">More...</a><br /></td></tr>
+<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
+<tr class="memdesc:ga91c4815f93177eb423362fd296a87e9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer type. <a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">More...</a><br /></td></tr>
+<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
+<tr class="memdesc:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer type. <a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">More...</a><br /></td></tr>
+<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
+<tr class="memdesc:gaf1b735b4b1145174f4e4167d13778f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer type. <a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">More...</a><br /></td></tr>
+<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
+<tr class="memdesc:gaa212b805736a759998e312cbdd550fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer type. <a href="a00177.html#gaa212b805736a759998e312cbdd550fae">More...</a><br /></td></tr>
+<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
+<tr class="memdesc:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer type. <a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">More...</a><br /></td></tr>
+<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
+<tr class="memdesc:gaf49470869e9be2c059629b250619804e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer type. <a href="a00177.html#gaf49470869e9be2c059629b250619804e">More...</a><br /></td></tr>
+<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
+<tr class="memdesc:ga667b2ece2b258be898812dc2177995d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer type. <a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">More...</a><br /></td></tr>
+<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_vec1</b></td></tr>
+<tr class="memdesc:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low single-precision floating-point vector of 1 component. <a href="a00140.html#a8931ec76b5c0c310ed8d96dfdeb6b4c1">More...</a><br /></td></tr>
+<tr class="separator:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51178c7b0d10cc540c01ad4cf0ece261"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_dquat</b></td></tr>
+<tr class="memdesc:a51178c7b0d10cc540c01ad4cf0ece261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of medium double-precision floating-point numbers. <a href="a00140.html#a51178c7b0d10cc540c01ad4cf0ece261">More...</a><br /></td></tr>
+<tr class="separator:a51178c7b0d10cc540c01ad4cf0ece261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="memItemLeft" align="right" valign="top">typedef float32&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32</b></td></tr>
+<tr class="memdesc:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium 32 bit single-precision floating-point scalar. <a href="a00140.html#a3b27fcd9eaa2757f0aaf6b0ce0d85c80">More...</a><br /></td></tr>
+<tr class="separator:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9020c6176a75bc84828ab01ea7dac25"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2</b></td></tr>
+<tr class="memdesc:af9020c6176a75bc84828ab01ea7dac25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 1x1 matrix. <a href="a00140.html#af9020c6176a75bc84828ab01ea7dac25">More...</a><br /></td></tr>
+<tr class="separator:af9020c6176a75bc84828ab01ea7dac25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afaa92b781318fb3fe43ad3e6f32be86b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x2</b></td></tr>
+<tr class="memdesc:afaa92b781318fb3fe43ad3e6f32be86b"><td class="mdescLeft">&#160;</td><td class="mdescRight">High single-precision floating-point 1x1 matrix. <a href="a00140.html#afaa92b781318fb3fe43ad3e6f32be86b">More...</a><br /></td></tr>
+<tr class="separator:afaa92b781318fb3fe43ad3e6f32be86b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f38dab02c05c75c87ee02d7896078ec"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x3</b></td></tr>
+<tr class="memdesc:a1f38dab02c05c75c87ee02d7896078ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 2x3 matrix. <a href="a00140.html#a1f38dab02c05c75c87ee02d7896078ec">More...</a><br /></td></tr>
+<tr class="separator:a1f38dab02c05c75c87ee02d7896078ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x4</b></td></tr>
+<tr class="memdesc:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 2x4 matrix. <a href="a00140.html#a3798dd54ed8dbba79d5f6ef22c372be3">More...</a><br /></td></tr>
+<tr class="separator:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3</b></td></tr>
+<tr class="memdesc:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x3 matrix. <a href="a00140.html#aaaf878d0d7bfc0aac054fe269a886ca8">More...</a><br /></td></tr>
+<tr class="separator:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x2</b></td></tr>
+<tr class="memdesc:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x2 matrix. <a href="a00140.html#a77b8afa61c836b25ba97d9ab433ff4ca">More...</a><br /></td></tr>
+<tr class="separator:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e653136fb7152f4c817aa264d58f9db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x3</b></td></tr>
+<tr class="memdesc:a1e653136fb7152f4c817aa264d58f9db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x3 matrix. <a href="a00140.html#a1e653136fb7152f4c817aa264d58f9db">More...</a><br /></td></tr>
+<tr class="separator:a1e653136fb7152f4c817aa264d58f9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8cef3c4749d9f699726b0b949dab473"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x4</b></td></tr>
+<tr class="memdesc:af8cef3c4749d9f699726b0b949dab473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x4 matrix. <a href="a00140.html#af8cef3c4749d9f699726b0b949dab473">More...</a><br /></td></tr>
+<tr class="separator:af8cef3c4749d9f699726b0b949dab473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4491baaebbc46a20f1cb5da985576bf4"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4</b></td></tr>
+<tr class="memdesc:a4491baaebbc46a20f1cb5da985576bf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x4 matrix. <a href="a00140.html#a4491baaebbc46a20f1cb5da985576bf4">More...</a><br /></td></tr>
+<tr class="separator:a4491baaebbc46a20f1cb5da985576bf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dacc0ae65346941372958a08d918bc3"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x2</b></td></tr>
+<tr class="memdesc:a0dacc0ae65346941372958a08d918bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x2 matrix. <a href="a00140.html#a0dacc0ae65346941372958a08d918bc3">More...</a><br /></td></tr>
+<tr class="separator:a0dacc0ae65346941372958a08d918bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x3</b></td></tr>
+<tr class="memdesc:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x3 matrix. <a href="a00140.html#acc41b629cbdb64c7b8ba3c18646b8e32">More...</a><br /></td></tr>
+<tr class="separator:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x4</b></td></tr>
+<tr class="memdesc:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x4 matrix. <a href="a00140.html#a01a6f096db7a15dfe2fa28ea1fed183c">More...</a><br /></td></tr>
+<tr class="separator:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc1b172969e868108974c92c09ba2e4"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32quat</b></td></tr>
+<tr class="memdesc:abcc1b172969e868108974c92c09ba2e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point quaternion. <a href="a00140.html#abcc1b172969e868108974c92c09ba2e4">More...</a><br /></td></tr>
+<tr class="separator:abcc1b172969e868108974c92c09ba2e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af464ab0841bc7f942d55935101923e25"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec1</b></td></tr>
+<tr class="memdesc:af464ab0841bc7f942d55935101923e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point vector of 1 component. <a href="a00140.html#af464ab0841bc7f942d55935101923e25">More...</a><br /></td></tr>
+<tr class="separator:af464ab0841bc7f942d55935101923e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0dea9959015c0ae8294360e1aafeb2a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec2</b></td></tr>
+<tr class="memdesc:ab0dea9959015c0ae8294360e1aafeb2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point vector of 2 components. <a href="a00140.html#ab0dea9959015c0ae8294360e1aafeb2a">More...</a><br /></td></tr>
+<tr class="separator:ab0dea9959015c0ae8294360e1aafeb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30b37671931aad948d1018ddc5718f34"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec3</b></td></tr>
+<tr class="memdesc:a30b37671931aad948d1018ddc5718f34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point vector of 3 components. <a href="a00140.html#a30b37671931aad948d1018ddc5718f34">More...</a><br /></td></tr>
+<tr class="separator:a30b37671931aad948d1018ddc5718f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac462ec17fc1037e679d1086d3f26581f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f32vec4</b></td></tr>
+<tr class="memdesc:ac462ec17fc1037e679d1086d3f26581f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point vector of 4 components. <a href="a00140.html#ac462ec17fc1037e679d1086d3f26581f">More...</a><br /></td></tr>
+<tr class="separator:ac462ec17fc1037e679d1086d3f26581f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d40381d78472553f878f66e443feeef"><td class="memItemLeft" align="right" valign="top">typedef float64&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64</b></td></tr>
+<tr class="memdesc:a6d40381d78472553f878f66e443feeef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium 64 bit double-precision floating-point scalar. <a href="a00140.html#a6d40381d78472553f878f66e443feeef">More...</a><br /></td></tr>
+<tr class="separator:a6d40381d78472553f878f66e443feeef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1281da5ded55047e8892b0e1f1ae965"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2</b></td></tr>
+<tr class="memdesc:ac1281da5ded55047e8892b0e1f1ae965"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 1x1 matrix. <a href="a00140.html#ac1281da5ded55047e8892b0e1f1ae965">More...</a><br /></td></tr>
+<tr class="separator:ac1281da5ded55047e8892b0e1f1ae965"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a710c552051cdf26086a52724adeaa0b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x2</b></td></tr>
+<tr class="memdesc:a710c552051cdf26086a52724adeaa0b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 1x1 matrix. <a href="a00140.html#a710c552051cdf26086a52724adeaa0b5">More...</a><br /></td></tr>
+<tr class="separator:a710c552051cdf26086a52724adeaa0b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1f4fff1454eb66c97bd3eb123c86e85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x3</b></td></tr>
+<tr class="memdesc:af1f4fff1454eb66c97bd3eb123c86e85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 2x3 matrix. <a href="a00140.html#af1f4fff1454eb66c97bd3eb123c86e85">More...</a><br /></td></tr>
+<tr class="separator:af1f4fff1454eb66c97bd3eb123c86e85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a181f05bac20864c7b86976428cbbf2"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x4</b></td></tr>
+<tr class="memdesc:a3a181f05bac20864c7b86976428cbbf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 2x4 matrix. <a href="a00140.html#a3a181f05bac20864c7b86976428cbbf2">More...</a><br /></td></tr>
+<tr class="separator:a3a181f05bac20864c7b86976428cbbf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3</b></td></tr>
+<tr class="memdesc:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 3x3 matrix. <a href="a00140.html#ad35fb67eb1d03c5a514f0bd7aed1c776">More...</a><br /></td></tr>
+<tr class="separator:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ac17da9eab988cac003014225ba5e9b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x2</b></td></tr>
+<tr class="memdesc:a5ac17da9eab988cac003014225ba5e9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 3x2 matrix. <a href="a00140.html#a5ac17da9eab988cac003014225ba5e9b">More...</a><br /></td></tr>
+<tr class="separator:a5ac17da9eab988cac003014225ba5e9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d09bdb868ee5f7063c70092a929cd38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x3</b></td></tr>
+<tr class="memdesc:a4d09bdb868ee5f7063c70092a929cd38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 3x3 matrix. <a href="a00140.html#a4d09bdb868ee5f7063c70092a929cd38">More...</a><br /></td></tr>
+<tr class="separator:a4d09bdb868ee5f7063c70092a929cd38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a93213eb4f0876f713d4d00a38dab86"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x4</b></td></tr>
+<tr class="memdesc:a5a93213eb4f0876f713d4d00a38dab86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 3x4 matrix. <a href="a00140.html#a5a93213eb4f0876f713d4d00a38dab86">More...</a><br /></td></tr>
+<tr class="separator:a5a93213eb4f0876f713d4d00a38dab86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa805ef691c711dc41e2776cfb67f5cf5"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4</b></td></tr>
+<tr class="memdesc:aa805ef691c711dc41e2776cfb67f5cf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 4x4 matrix. <a href="a00140.html#aa805ef691c711dc41e2776cfb67f5cf5">More...</a><br /></td></tr>
+<tr class="separator:aa805ef691c711dc41e2776cfb67f5cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb511a9a5fa678b1b859364b817cee76"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x2</b></td></tr>
+<tr class="memdesc:adb511a9a5fa678b1b859364b817cee76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 4x2 matrix. <a href="a00140.html#adb511a9a5fa678b1b859364b817cee76">More...</a><br /></td></tr>
+<tr class="separator:adb511a9a5fa678b1b859364b817cee76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2eae3525631e29f7e70dc79be1a9360"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x3</b></td></tr>
+<tr class="memdesc:ad2eae3525631e29f7e70dc79be1a9360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 4x3 matrix. <a href="a00140.html#ad2eae3525631e29f7e70dc79be1a9360">More...</a><br /></td></tr>
+<tr class="separator:ad2eae3525631e29f7e70dc79be1a9360"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaae60e8c1cf13ee2bc088999e2726332"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x4</b></td></tr>
+<tr class="memdesc:aaae60e8c1cf13ee2bc088999e2726332"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point 4x4 matrix. <a href="a00140.html#aaae60e8c1cf13ee2bc088999e2726332">More...</a><br /></td></tr>
+<tr class="separator:aaae60e8c1cf13ee2bc088999e2726332"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06275695b922e1b4f068379ee53d17f5"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64quat</b></td></tr>
+<tr class="memdesc:a06275695b922e1b4f068379ee53d17f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point quaternion. <a href="a00140.html#a06275695b922e1b4f068379ee53d17f5">More...</a><br /></td></tr>
+<tr class="separator:a06275695b922e1b4f068379ee53d17f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec1</b></td></tr>
+<tr class="memdesc:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point vector of 1 component. <a href="a00140.html#ac3ad0aef885256bf3508c4a97aa24ca7">More...</a><br /></td></tr>
+<tr class="separator:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3a39604855bbd7d2bf01336dbd58c7e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec2</b></td></tr>
+<tr class="memdesc:af3a39604855bbd7d2bf01336dbd58c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point vector of 2 components. <a href="a00140.html#af3a39604855bbd7d2bf01336dbd58c7e">More...</a><br /></td></tr>
+<tr class="separator:af3a39604855bbd7d2bf01336dbd58c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec3</b></td></tr>
+<tr class="memdesc:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point vector of 3 components. <a href="a00140.html#a8621fc4ddd20c08f8c9f6f89039d7070">More...</a><br /></td></tr>
+<tr class="separator:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1dee1be60722fbaba56c5e8d4055224"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; f64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_f64vec4</b></td></tr>
+<tr class="memdesc:ac1dee1be60722fbaba56c5e8d4055224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium double-precision floating-point vector of 4 components. <a href="a00140.html#ac1dee1be60722fbaba56c5e8d4055224">More...</a><br /></td></tr>
+<tr class="separator:ac1dee1be60722fbaba56c5e8d4055224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float32</b></td></tr>
+<tr class="memdesc:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium 32 bit single-precision floating-point scalar. <a href="a00140.html#a9a90f18a9d062cd5b8046cbb59ef7296">More...</a><br /></td></tr>
+<tr class="separator:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="memItemLeft" align="right" valign="top">typedef detail::float32&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float32_t</b></td></tr>
+<tr class="memdesc:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium 32 bit single-precision floating-point scalar. <a href="a00140.html#a8a3a6b5ac1518e864900bdbf6983b54e">More...</a><br /></td></tr>
+<tr class="separator:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a729f6f704ff850a84819c09daf22bf96"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float64</b></td></tr>
+<tr class="memdesc:a729f6f704ff850a84819c09daf22bf96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium 64 bit double-precision floating-point scalar. <a href="a00140.html#a729f6f704ff850a84819c09daf22bf96">More...</a><br /></td></tr>
+<tr class="separator:a729f6f704ff850a84819c09daf22bf96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="memItemLeft" align="right" valign="top">typedef detail::float64&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_float64_t</b></td></tr>
+<tr class="memdesc:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium 64 bit double-precision floating-point scalar. <a href="a00140.html#a0cd2f21770615d0b0c46daa9a820f2e9">More...</a><br /></td></tr>
+<tr class="separator:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74e9133378fd0b4da8ac0bc0876702ff"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2</b></td></tr>
+<tr class="memdesc:a74e9133378fd0b4da8ac0bc0876702ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 1x1 matrix. <a href="a00140.html#a74e9133378fd0b4da8ac0bc0876702ff">More...</a><br /></td></tr>
+<tr class="separator:a74e9133378fd0b4da8ac0bc0876702ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14e3419dd3ed51ae829fba0eeb37a798"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x2</b></td></tr>
+<tr class="memdesc:a14e3419dd3ed51ae829fba0eeb37a798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 1x1 matrix. <a href="a00140.html#a14e3419dd3ed51ae829fba0eeb37a798">More...</a><br /></td></tr>
+<tr class="separator:a14e3419dd3ed51ae829fba0eeb37a798"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad419b656765f99413130f262902f70b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x3</b></td></tr>
+<tr class="memdesc:aad419b656765f99413130f262902f70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 2x3 matrix. <a href="a00140.html#aad419b656765f99413130f262902f70b">More...</a><br /></td></tr>
+<tr class="separator:aad419b656765f99413130f262902f70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x4</b></td></tr>
+<tr class="memdesc:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 2x4 matrix. <a href="a00140.html#a5ad760dc3087dbe4b81f4735b87c8bff">More...</a><br /></td></tr>
+<tr class="separator:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80823dfad5dba98512c76af498343847"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3</b></td></tr>
+<tr class="memdesc:a80823dfad5dba98512c76af498343847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x3 matrix. <a href="a00140.html#a80823dfad5dba98512c76af498343847">More...</a><br /></td></tr>
+<tr class="separator:a80823dfad5dba98512c76af498343847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x2</b></td></tr>
+<tr class="memdesc:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x2 matrix. <a href="a00140.html#a5f983e9b6ce2fc4b5bcf48bde86b6c1d">More...</a><br /></td></tr>
+<tr class="separator:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x3</b></td></tr>
+<tr class="memdesc:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x3 matrix. <a href="a00140.html#a8122275ad0c77b823ed2d0d0fde9e6c8">More...</a><br /></td></tr>
+<tr class="separator:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8acbe700ac34420e69435e9a1e7106a6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x4</b></td></tr>
+<tr class="memdesc:a8acbe700ac34420e69435e9a1e7106a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 3x4 matrix. <a href="a00140.html#a8acbe700ac34420e69435e9a1e7106a6">More...</a><br /></td></tr>
+<tr class="separator:a8acbe700ac34420e69435e9a1e7106a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4</b></td></tr>
+<tr class="memdesc:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x4 matrix. <a href="a00140.html#ac1c38778c0b5a1263f07753c05a4f7b9">More...</a><br /></td></tr>
+<tr class="separator:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a382a9afa22b0cb41c08e714e9964df18"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x2</b></td></tr>
+<tr class="memdesc:a382a9afa22b0cb41c08e714e9964df18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x2 matrix. <a href="a00140.html#a382a9afa22b0cb41c08e714e9964df18">More...</a><br /></td></tr>
+<tr class="separator:a382a9afa22b0cb41c08e714e9964df18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adca208020ec5e450122c5b78b92c311b"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x3</b></td></tr>
+<tr class="memdesc:adca208020ec5e450122c5b78b92c311b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x3 matrix. <a href="a00140.html#adca208020ec5e450122c5b78b92c311b">More...</a><br /></td></tr>
+<tr class="separator:adca208020ec5e450122c5b78b92c311b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a046dc4e877ae0f041b559ebb8986472f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; f32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x4</b></td></tr>
+<tr class="memdesc:a046dc4e877ae0f041b559ebb8986472f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point 4x4 matrix. <a href="a00140.html#a046dc4e877ae0f041b559ebb8986472f">More...</a><br /></td></tr>
+<tr class="separator:a046dc4e877ae0f041b559ebb8986472f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4001f0bde084c58673e6e62116e90702"><td class="memItemLeft" align="right" valign="top">typedef mediump_quat&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fquat</b></td></tr>
+<tr class="memdesc:a4001f0bde084c58673e6e62116e90702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of medium single-precision floating-point numbers. <a href="a00140.html#a4001f0bde084c58673e6e62116e90702">More...</a><br /></td></tr>
+<tr class="separator:a4001f0bde084c58673e6e62116e90702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a218a7c4d23b962a9bb33adf59ceb8200"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec1</b></td></tr>
+<tr class="memdesc:a218a7c4d23b962a9bb33adf59ceb8200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point vector of 1 component. <a href="a00140.html#a218a7c4d23b962a9bb33adf59ceb8200">More...</a><br /></td></tr>
+<tr class="separator:a218a7c4d23b962a9bb33adf59ceb8200"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76feac551dafafd145eb95d558f86b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec2</b></td></tr>
+<tr class="memdesc:a76feac551dafafd145eb95d558f86b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium Single-precision floating-point vector of 2 components. <a href="a00140.html#a76feac551dafafd145eb95d558f86b8e">More...</a><br /></td></tr>
+<tr class="separator:a76feac551dafafd145eb95d558f86b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec3</b></td></tr>
+<tr class="memdesc:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium Single-precision floating-point vector of 3 components. <a href="a00140.html#a25ecd692875d6f455dcb6d8bc80b0d26">More...</a><br /></td></tr>
+<tr class="separator:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a328c393cd9a393b33342acbf9b91bf72"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_fvec4</b></td></tr>
+<tr class="memdesc:a328c393cd9a393b33342acbf9b91bf72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium Single-precision floating-point vector of 4 components. <a href="a00140.html#a328c393cd9a393b33342acbf9b91bf72">More...</a><br /></td></tr>
+<tr class="separator:a328c393cd9a393b33342acbf9b91bf72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
+<tr class="memdesc:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer type. <a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">More...</a><br /></td></tr>
+<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aacc9b5576745206f26ffa9386d4aa883"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec1</b></td></tr>
+<tr class="memdesc:aacc9b5576745206f26ffa9386d4aa883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer scalar type. <a href="a00140.html#aacc9b5576745206f26ffa9386d4aa883">More...</a><br /></td></tr>
+<tr class="separator:aacc9b5576745206f26ffa9386d4aa883"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5c4faa5372f985078762db4574bb9d4"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec2</b></td></tr>
+<tr class="memdesc:ac5c4faa5372f985078762db4574bb9d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer vector of 2 components type. <a href="a00140.html#ac5c4faa5372f985078762db4574bb9d4">More...</a><br /></td></tr>
+<tr class="separator:ac5c4faa5372f985078762db4574bb9d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec3</b></td></tr>
+<tr class="memdesc:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer vector of 3 components type. <a href="a00140.html#ad9f994bcfaa4716905cb8c7f81fe1f46">More...</a><br /></td></tr>
+<tr class="separator:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb0c81e9e6d4210216f4d911736aefad"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i16vec4</b></td></tr>
+<tr class="memdesc:abb0c81e9e6d4210216f4d911736aefad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer vector of 4 components type. <a href="a00140.html#abb0c81e9e6d4210216f4d911736aefad">More...</a><br /></td></tr>
+<tr class="separator:abb0c81e9e6d4210216f4d911736aefad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
+<tr class="memdesc:gaf5e94bf2a20af7601787c154751dc2e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer type. <a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">More...</a><br /></td></tr>
+<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75733ed8258c5e65ac97160c4a6c953a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec1</b></td></tr>
+<tr class="memdesc:a75733ed8258c5e65ac97160c4a6c953a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer scalar type. <a href="a00140.html#a75733ed8258c5e65ac97160c4a6c953a">More...</a><br /></td></tr>
+<tr class="separator:a75733ed8258c5e65ac97160c4a6c953a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec2</b></td></tr>
+<tr class="memdesc:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer vector of 2 components type. <a href="a00140.html#a9183cdcdfe5d810078b3eecd1e66aa0a">More...</a><br /></td></tr>
+<tr class="separator:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec3</b></td></tr>
+<tr class="memdesc:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer vector of 3 components type. <a href="a00140.html#ad6446c3c348eee2276ddcbfcc28aacc7">More...</a><br /></td></tr>
+<tr class="separator:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3eec682aede6e122daed84e2f38971d"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i32vec4</b></td></tr>
+<tr class="memdesc:ae3eec682aede6e122daed84e2f38971d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer vector of 4 components type. <a href="a00140.html#ae3eec682aede6e122daed84e2f38971d">More...</a><br /></td></tr>
+<tr class="separator:ae3eec682aede6e122daed84e2f38971d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
+<tr class="memdesc:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer type. <a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">More...</a><br /></td></tr>
+<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42af3af0131095f8445ddd0738d76827"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec1</b></td></tr>
+<tr class="memdesc:a42af3af0131095f8445ddd0738d76827"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer scalar type. <a href="a00140.html#a42af3af0131095f8445ddd0738d76827">More...</a><br /></td></tr>
+<tr class="separator:a42af3af0131095f8445ddd0738d76827"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec2</b></td></tr>
+<tr class="memdesc:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer vector of 2 components type. <a href="a00140.html#a80e458f3c0e9fb01d4695637a7ac0e5b">More...</a><br /></td></tr>
+<tr class="separator:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa521bedc4cdd40c72880e426661f5603"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec3</b></td></tr>
+<tr class="memdesc:aa521bedc4cdd40c72880e426661f5603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer vector of 3 components type. <a href="a00140.html#aa521bedc4cdd40c72880e426661f5603">More...</a><br /></td></tr>
+<tr class="separator:aa521bedc4cdd40c72880e426661f5603"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i64vec4</b></td></tr>
+<tr class="memdesc:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer vector of 4 components type. <a href="a00140.html#a44f3bdc69f2b2b919c8b68852dbcfad6">More...</a><br /></td></tr>
+<tr class="separator:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
+<tr class="memdesc:gacf1ded173e1e2d049c511d095b259e21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer type. <a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">More...</a><br /></td></tr>
+<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec1</b></td></tr>
+<tr class="memdesc:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer scalar type. <a href="a00140.html#ad1256e00d07c078cb4471eaba0f0c2d9">More...</a><br /></td></tr>
+<tr class="separator:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafab5df83068e06bca1dbaa63da08f99"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec2</b></td></tr>
+<tr class="memdesc:aafab5df83068e06bca1dbaa63da08f99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer vector of 2 components type. <a href="a00140.html#aafab5df83068e06bca1dbaa63da08f99">More...</a><br /></td></tr>
+<tr class="separator:aafab5df83068e06bca1dbaa63da08f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec3</b></td></tr>
+<tr class="memdesc:a0455c25b51ff2d28eb036f34c7f3d486"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer vector of 3 components type. <a href="a00140.html#a0455c25b51ff2d28eb036f34c7f3d486">More...</a><br /></td></tr>
+<tr class="separator:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6d4413001e39e2f0f2d32b501867a56"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; i8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_i8vec4</b></td></tr>
+<tr class="memdesc:ac6d4413001e39e2f0f2d32b501867a56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer vector of 4 components type. <a href="a00140.html#ac6d4413001e39e2f0f2d32b501867a56">More...</a><br /></td></tr>
+<tr class="separator:ac6d4413001e39e2f0f2d32b501867a56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
+<tr class="memdesc:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer type. <a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">More...</a><br /></td></tr>
+<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
+<tr class="memdesc:ga80e72fe94c88498537e8158ba7591c54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer type. <a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">More...</a><br /></td></tr>
+<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
+<tr class="memdesc:ga5244cef85d6e870e240c76428a262ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer type. <a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">More...</a><br /></td></tr>
+<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
+<tr class="memdesc:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer type. <a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">More...</a><br /></td></tr>
+<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
+<tr class="memdesc:ga7b968f2b86a0442a89c7359171e1d866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer type. <a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">More...</a><br /></td></tr>
+<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
+<tr class="memdesc:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer type. <a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">More...</a><br /></td></tr>
+<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
+<tr class="memdesc:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer type. <a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">More...</a><br /></td></tr>
+<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
+<tr class="memdesc:ga6d7b3789ecb932c26430009478cac7ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer type. <a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">More...</a><br /></td></tr>
+<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af519098b37a0cfefa5886647dc38e508"><td class="memItemLeft" align="right" valign="top">typedef tquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_quat</b></td></tr>
+<tr class="memdesc:af519098b37a0cfefa5886647dc38e508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of medium single-precision floating-point numbers. <a href="a00140.html#af519098b37a0cfefa5886647dc38e508">More...</a><br /></td></tr>
+<tr class="separator:af519098b37a0cfefa5886647dc38e508"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
+<tr class="memdesc:ga9df98857be695d5a30cb30f5bfa38a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">More...</a><br /></td></tr>
+<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec1</b></td></tr>
+<tr class="memdesc:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer scalar type. <a href="a00140.html#a9c3b4b9dff5b90eab9d71c47e2d3fb98">More...</a><br /></td></tr>
+<tr class="separator:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4be7f884cf27a80820cf5fcefeab1459"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec2</b></td></tr>
+<tr class="memdesc:a4be7f884cf27a80820cf5fcefeab1459"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer vector of 2 components type. <a href="a00140.html#a4be7f884cf27a80820cf5fcefeab1459">More...</a><br /></td></tr>
+<tr class="separator:a4be7f884cf27a80820cf5fcefeab1459"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec3</b></td></tr>
+<tr class="memdesc:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer vector of 3 components type. <a href="a00140.html#a0a253c3e5826e0b99a82b4c3a81900e1">More...</a><br /></td></tr>
+<tr class="separator:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u16, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u16vec4</b></td></tr>
+<tr class="memdesc:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer vector of 4 components type. <a href="a00140.html#a4005c6c2ffb591975adbf0aa73fedc8c">More...</a><br /></td></tr>
+<tr class="separator:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
+<tr class="memdesc:ga1bd0e914158bf03135f8a317de6debe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">More...</a><br /></td></tr>
+<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec1</b></td></tr>
+<tr class="memdesc:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer scalar type. <a href="a00140.html#a89aa9ebbc28768a9ecb993ea366ce73c">More...</a><br /></td></tr>
+<tr class="separator:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4611b14a12ec8b0b5988ed93c6060432"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec2</b></td></tr>
+<tr class="memdesc:a4611b14a12ec8b0b5988ed93c6060432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer vector of 2 components type. <a href="a00140.html#a4611b14a12ec8b0b5988ed93c6060432">More...</a><br /></td></tr>
+<tr class="separator:a4611b14a12ec8b0b5988ed93c6060432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec3</b></td></tr>
+<tr class="memdesc:a43bfb277372a5f8a1ab54c20b77467f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer vector of 3 components type. <a href="a00140.html#a43bfb277372a5f8a1ab54c20b77467f1">More...</a><br /></td></tr>
+<tr class="separator:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u32, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u32vec4</b></td></tr>
+<tr class="memdesc:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer vector of 4 components type. <a href="a00140.html#a3093e6b1ceef9b6696333b3f6f8e6eef">More...</a><br /></td></tr>
+<tr class="separator:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
+<tr class="memdesc:ga2af9490085ae3bdf36a544e9dd073610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">More...</a><br /></td></tr>
+<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec1</b></td></tr>
+<tr class="memdesc:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer scalar type. <a href="a00140.html#af5c2b2f4b5a5e55285fb6e48360008a9">More...</a><br /></td></tr>
+<tr class="separator:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec2</b></td></tr>
+<tr class="memdesc:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer vector of 2 components type. <a href="a00140.html#ad068ce110bf95f22cff8206a9fb4ba2a">More...</a><br /></td></tr>
+<tr class="separator:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f514640b5b5827ede77642ebbbf5e68"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec3</b></td></tr>
+<tr class="memdesc:a6f514640b5b5827ede77642ebbbf5e68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer vector of 3 components type. <a href="a00140.html#a6f514640b5b5827ede77642ebbbf5e68">More...</a><br /></td></tr>
+<tr class="separator:a6f514640b5b5827ede77642ebbbf5e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab41db7da28e5948330db80f5ca75d850"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u64, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u64vec4</b></td></tr>
+<tr class="memdesc:ab41db7da28e5948330db80f5ca75d850"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer vector of 4 components type. <a href="a00140.html#ab41db7da28e5948330db80f5ca75d850">More...</a><br /></td></tr>
+<tr class="separator:ab41db7da28e5948330db80f5ca75d850"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
+<tr class="memdesc:gad1213a22bbb9e4107f07eaa4956f8281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">More...</a><br /></td></tr>
+<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec1</b></td></tr>
+<tr class="memdesc:a8c4001fcbff65fd29da82274a5d3ff38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer scalar type. <a href="a00140.html#a8c4001fcbff65fd29da82274a5d3ff38">More...</a><br /></td></tr>
+<tr class="separator:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a020049aa2177e8e08d2b338a5e904dc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec2</b></td></tr>
+<tr class="memdesc:a020049aa2177e8e08d2b338a5e904dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer vector of 2 components type. <a href="a00140.html#a020049aa2177e8e08d2b338a5e904dc9">More...</a><br /></td></tr>
+<tr class="separator:a020049aa2177e8e08d2b338a5e904dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec3</b></td></tr>
+<tr class="memdesc:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer vector of 3 components type. <a href="a00140.html#a06b978aef31306f3cfd3d8b6094f3ce3">More...</a><br /></td></tr>
+<tr class="separator:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; u8, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_u8vec4</b></td></tr>
+<tr class="memdesc:a0ee5018e2f37029d5800e32fbcf74c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer vector of 4 components type. <a href="a00140.html#a0ee5018e2f37029d5800e32fbcf74c74">More...</a><br /></td></tr>
+<tr class="separator:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
+<tr class="memdesc:ga2885a6c89916911e418c06bb76b9bdbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">More...</a><br /></td></tr>
+<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
+<tr class="memdesc:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">More...</a><br /></td></tr>
+<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
+<tr class="memdesc:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">More...</a><br /></td></tr>
+<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
+<tr class="memdesc:gaf4dae276fd29623950de14a6ca2586b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">More...</a><br /></td></tr>
+<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
+<tr class="memdesc:ga30652709815ad9404272a31957daa59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga30652709815ad9404272a31957daa59e">More...</a><br /></td></tr>
+<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
+<tr class="memdesc:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">More...</a><br /></td></tr>
+<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
+<tr class="memdesc:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">More...</a><br /></td></tr>
+<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
+<tr class="memdesc:gadfe65c78231039e90507770db50c98c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gadfe65c78231039e90507770db50c98c7">More...</a><br /></td></tr>
+<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_vec1</b></td></tr>
+<tr class="memdesc:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium single-precision floating-point vector of 1 component. <a href="a00140.html#ac9bd33e4fdd9fce967a9f4a5e5ab70b4">More...</a><br /></td></tr>
+<tr class="separator:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fad291f6402e228d28779df175ba37a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fad291f6402e228d28779df175ba37a"></a>
+typedef highp_quat&#160;</td><td class="memItemRight" valign="bottom"><b>quat</b></td></tr>
+<tr class="memdesc:a2fad291f6402e228d28779df175ba37a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion of default single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:a2fad291f6402e228d28779df175ba37a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
+<tr class="memdesc:gaa2d7acc0adb536fab71fe261232a40ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit unsigned integer type. <a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">More...</a><br /></td></tr>
+<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
+<tr class="memdesc:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer scalar type. <a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">More...</a><br /></td></tr>
+<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
+<tr class="memdesc:ga426030555085ed6c39a54e73afbef962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga426030555085ed6c39a54e73afbef962">More...</a><br /></td></tr>
+<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
+<tr class="memdesc:ga7f5dbe417199277e449b8db0210acb71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer vector of 3 components type. <a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">More...</a><br /></td></tr>
+<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
+<tr class="memdesc:gaf524c9059f0342668d8eea359bcceaae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer vector of 4 components type. <a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">More...</a><br /></td></tr>
+<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
+<tr class="memdesc:ga8165913e068444f7842302d40ba897b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit unsigned integer type. <a href="a00177.html#ga8165913e068444f7842302d40ba897b9">More...</a><br /></td></tr>
+<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
+<tr class="memdesc:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer scalar type. <a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">More...</a><br /></td></tr>
+<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
+<tr class="memdesc:ga0741d40e2b0fea4f1c50cb325114f075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">More...</a><br /></td></tr>
+<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
+<tr class="memdesc:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer vector of 3 components type. <a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">More...</a><br /></td></tr>
+<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
+<tr class="memdesc:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer vector of 4 components type. <a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">More...</a><br /></td></tr>
+<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
+<tr class="memdesc:gaf3f312156984c365e9f65620354da70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit unsigned integer type. <a href="a00177.html#gaf3f312156984c365e9f65620354da70b">More...</a><br /></td></tr>
+<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
+<tr class="memdesc:ga793c9293cc687a0e342396a377c5df77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer scalar type. <a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">More...</a><br /></td></tr>
+<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
+<tr class="memdesc:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">More...</a><br /></td></tr>
+<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
+<tr class="memdesc:ga3460933f040f59f0fedb29df1e9be71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer vector of 3 components type. <a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">More...</a><br /></td></tr>
+<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
+<tr class="memdesc:gafb6ca34df28889a5db9d244aed375411"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer vector of 4 components type. <a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">More...</a><br /></td></tr>
+<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
+<tr class="memdesc:gaecc7082561fc9028b844b6cf3d305d36"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit unsigned integer type. <a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">More...</a><br /></td></tr>
+<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
+<tr class="memdesc:ga92e0c191e5cc326255284d08be3af7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer scalar type. <a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">More...</a><br /></td></tr>
+<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
+<tr class="memdesc:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">More...</a><br /></td></tr>
+<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
+<tr class="memdesc:ga8ca60d0ba6d438892be6017f43747661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer vector of 3 components type. <a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">More...</a><br /></td></tr>
+<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
+<tr class="memdesc:ga114e005014d910bea07954eee24b7efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer vector of 4 components type. <a href="a00177.html#ga114e005014d910bea07954eee24b7efb">More...</a><br /></td></tr>
+<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
+<tr class="memdesc:ga91f91f411080c37730856ff5887f5bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit unsigned integer type. <a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">More...</a><br /></td></tr>
+<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
+<tr class="memdesc:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit unsigned integer type. <a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">More...</a><br /></td></tr>
+<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
+<tr class="memdesc:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit unsigned integer type. <a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">More...</a><br /></td></tr>
+<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
+<tr class="memdesc:ga28d97808322d3c92186e4a0c067d7e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit unsigned integer type. <a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">More...</a><br /></td></tr>
+<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00039_source.html">geometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00039_source.html b/3rdparty/glm/doc/api/a00039_source.html
index c2cd6682e30..e663c475c4b 100644
--- a/3rdparty/glm/doc/api/a00039_source.html
+++ b/3rdparty/glm/doc/api/a00039_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: geometric.hpp Source File</title>
+<title>0.9.9 API documenation: fwd.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,1686 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">geometric.hpp</div> </div>
+<div class="title">fwd.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00039.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00031.html">detail/func_geometric.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00031_html"><div class="ttname"><a href="a00031.html">func_geometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00111.html">detail/type_int.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00108.html">detail/type_float.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">detail/type_vec.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">detail/type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// GLM_GTC_quaternion</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tquat;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, lowp&gt; lowp_quat;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, mediump&gt; mediump_quat;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, highp&gt; highp_quat;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">typedef</span> highp_quat quat;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">typedef</span> mediump_quat quat;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">typedef</span> lowp_quat quat;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">typedef</span> highp_quat quat;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> lowp_quat lowp_fquat;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> mediump_quat mediump_fquat;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">typedef</span> highp_quat highp_fquat;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> quat fquat;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> tquat&lt;double, lowp&gt; lowp_dquat;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> tquat&lt;double, mediump&gt; mediump_dquat;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> tquat&lt;double, highp&gt; highp_dquat;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">typedef</span> highp_dquat dquat;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typedef</span> mediump_dquat dquat;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">typedef</span> lowp_dquat dquat;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_DOUBLE) &amp;&amp; !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">typedef</span> highp_dquat dquat;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">// GLM_GTC_precision</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6"> 100</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00177.html#ga698e36b01167fc0f037889334dce8def"> 104</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02"> 108</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c"> 112</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3"> 116</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a"> 120</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc"> 124</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847"> 128</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54"> 132</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7"> 136</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac"> 140</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8"> 144</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e"> 148</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d"> 152</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8"> 156</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866"> 160</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae"> 164</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54"> 168</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180"> 172</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64"> 176</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21"> 180</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a"> 184</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1"> 188</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f"> 192</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf"> 196</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718"> 200</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223"> 204</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac"> 208</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5"> 212</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff"> 216</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f"> 220</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3"> 224</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee"> 228</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8"> 232</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25"> 236</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd"> 240</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede"> 272</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710"> 276</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61"> 280</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355"> 285</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
+<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699"> 289</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb"> 293</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00177.html#gadb997e409103d4da18abd837e636a496"> 297</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, lowp&gt; lowp_i8vec1;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, lowp&gt; lowp_i8vec2;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, lowp&gt; lowp_i8vec3;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, lowp&gt; lowp_i8vec4;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, mediump&gt; mediump_i8vec1;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, mediump&gt; mediump_i8vec2;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, mediump&gt; mediump_i8vec3;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, mediump&gt; mediump_i8vec4;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, highp&gt; highp_i8vec1;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, highp&gt; highp_i8vec2;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, highp&gt; highp_i8vec3;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, highp&gt; highp_i8vec4;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">typedef</span> lowp_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">typedef</span> lowp_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">typedef</span> lowp_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">typedef</span> lowp_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">typedef</span> mediump_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">typedef</span> mediump_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">typedef</span> mediump_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">typedef</span> mediump_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>; </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">typedef</span> highp_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
+<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185"> 368</a></span>&#160; <span class="keyword">typedef</span> highp_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
+<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c"> 372</a></span>&#160; <span class="keyword">typedef</span> highp_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; </div>
+<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e"> 376</a></span>&#160; <span class="keyword">typedef</span> highp_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, lowp&gt; lowp_i16vec1;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, lowp&gt; lowp_i16vec2;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, lowp&gt; lowp_i16vec3;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, lowp&gt; lowp_i16vec4;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, mediump&gt; mediump_i16vec1;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, mediump&gt; mediump_i16vec2;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, mediump&gt; mediump_i16vec3;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, mediump&gt; mediump_i16vec4;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, highp&gt; highp_i16vec1;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, highp&gt; highp_i16vec2;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, highp&gt; highp_i16vec3;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, highp&gt; highp_i16vec4;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">typedef</span> lowp_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">typedef</span> lowp_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">typedef</span> lowp_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">typedef</span> lowp_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">typedef</span> mediump_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">typedef</span> mediump_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">typedef</span> mediump_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keyword">typedef</span> mediump_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">typedef</span> highp_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; </div>
+<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79"> 448</a></span>&#160; <span class="keyword">typedef</span> highp_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="a00177.html#ga973b226a9914db682c9372fc761fb535"> 452</a></span>&#160; <span class="keyword">typedef</span> highp_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; </div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426"> 456</a></span>&#160; <span class="keyword">typedef</span> highp_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, lowp&gt; lowp_i32vec1;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, lowp&gt; lowp_i32vec2;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; </div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, lowp&gt; lowp_i32vec3;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, lowp&gt; lowp_i32vec4;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; </div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, mediump&gt; mediump_i32vec1;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; </div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, mediump&gt; mediump_i32vec2;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, mediump&gt; mediump_i32vec3;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, mediump&gt; mediump_i32vec4;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, highp&gt; highp_i32vec1;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, highp&gt; highp_i32vec2;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; </div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, highp&gt; highp_i32vec3;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, highp&gt; highp_i32vec4;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c"> 527</a></span>&#160; <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; </div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="a00177.html#ga40cd3f391c03512f158d10a70062264e"> 531</a></span>&#160; <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
+<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="a00177.html#gae3364a8090e7e1408056e00403dfecab"> 535</a></span>&#160; <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, lowp&gt; lowp_i32vec1;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, lowp&gt; lowp_i32vec2;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, lowp&gt; lowp_i32vec3;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, lowp&gt; lowp_i32vec4;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; </div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; </div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, mediump&gt; mediump_i32vec1;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, mediump&gt; mediump_i32vec2;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, mediump&gt; mediump_i32vec3;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; </div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, mediump&gt; mediump_i32vec4;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; </div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, highp&gt; highp_i32vec1;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, highp&gt; highp_i32vec2;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; </div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, highp&gt; highp_i32vec3;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, highp&gt; highp_i32vec4;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; </div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; </div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; </div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; </div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, lowp&gt; lowp_i64vec1;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, lowp&gt; lowp_i64vec2;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, lowp&gt; lowp_i64vec3;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; </div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, lowp&gt; lowp_i64vec4;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; </div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, mediump&gt; mediump_i64vec1;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, mediump&gt; mediump_i64vec2;</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, mediump&gt; mediump_i64vec3;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; </div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, mediump&gt; mediump_i64vec4;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; </div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, highp&gt; highp_i64vec1;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; </div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, highp&gt; highp_i64vec2;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; </div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, highp&gt; highp_i64vec3;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, highp&gt; highp_i64vec4;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; </div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keyword">typedef</span> lowp_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keyword">typedef</span> lowp_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keyword">typedef</span> lowp_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keyword">typedef</span> lowp_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">typedef</span> mediump_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keyword">typedef</span> mediump_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">typedef</span> mediump_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">typedef</span> mediump_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">typedef</span> highp_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="a00177.html#gade69872a31f066e5ae212f1af6008edb"> 686</a></span>&#160; <span class="keyword">typedef</span> highp_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; </div>
+<div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e"> 690</a></span>&#160; <span class="keyword">typedef</span> highp_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; </div>
+<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c"> 694</a></span>&#160; <span class="keyword">typedef</span> highp_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; </div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; </div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; </div>
+<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="a00177.html#gaf49470869e9be2c059629b250619804e"> 703</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; </div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78"> 707</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; </div>
+<div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b"> 711</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; </div>
+<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="a00177.html#gaa212b805736a759998e312cbdd550fae"> 715</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; </div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; </div>
+<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="a00177.html#ga667b2ece2b258be898812dc2177995d1"> 720</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; </div>
+<div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f"> 724</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; </div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b"> 728</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; </div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153"> 732</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; </div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083"> 737</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; </div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126"> 741</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; </div>
+<div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250"> 745</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; </div>
+<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed"> 749</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; </div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; </div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; </div>
+<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3"> 755</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; </div>
+<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb"> 759</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; </div>
+<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f"> 763</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; </div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="a00177.html#ga30652709815ad9404272a31957daa59e"> 767</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; </div>
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="a00177.html#gadfe65c78231039e90507770db50c98c7"> 771</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; </div>
+<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e"> 775</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; </div>
+<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5"> 779</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; </div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9"> 783</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; </div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281"> 787</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; </div>
+<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80"> 791</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; </div>
+<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9"> 795</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; </div>
+<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610"> 799</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; </div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; </div>
+<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb"> 805</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; </div>
+<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="a00177.html#ga746dc6da204f5622e395f492997dbf57"> 809</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; </div>
+<div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3"> 813</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; </div>
+<div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce"> 817</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; </div>
+<div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5"> 821</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; </div>
+<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7"> 825</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; </div>
+<div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e"> 829</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; </div>
+<div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08"> 833</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; </div>
+<div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c"> 837</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; </div>
+<div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369"> 841</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; </div>
+<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf"> 845</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; </div>
+<div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="a00177.html#ga0c181fdf06a309691999926b6690c969"> 849</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; </div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; </div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; </div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; </div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; </div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; </div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; </div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; </div>
+<div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf"> 881</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; </div>
+<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac"> 885</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; </div>
+<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee"> 889</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div>
+<div class="line"><a name="l00894"></a><span class="lineno"><a class="line" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36"> 894</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;</div>
+<div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff"> 898</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div>
+<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="a00177.html#ga8165913e068444f7842302d40ba897b9"> 902</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div>
+<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="a00177.html#gaf3f312156984c365e9f65620354da70b"> 906</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, lowp&gt; lowp_u8vec1;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; </div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, lowp&gt; lowp_u8vec2;</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; </div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, lowp&gt; lowp_u8vec3;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; </div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, lowp&gt; lowp_u8vec4;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; </div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, mediump&gt; mediump_u8vec1;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, mediump&gt; mediump_u8vec2;</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, mediump&gt; mediump_u8vec3;</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, mediump&gt; mediump_u8vec4;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, highp&gt; highp_u8vec1;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, highp&gt; highp_u8vec2;</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, highp&gt; highp_u8vec3;</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, highp&gt; highp_u8vec4;</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keyword">typedef</span> lowp_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keyword">typedef</span> lowp_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keyword">typedef</span> lowp_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keyword">typedef</span> lowp_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keyword">typedef</span> mediump_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keyword">typedef</span> mediump_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keyword">typedef</span> mediump_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keyword">typedef</span> mediump_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>; </div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keyword">typedef</span> highp_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;</div>
+<div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d"> 977</a></span>&#160; <span class="keyword">typedef</span> highp_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div>
+<div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661"> 981</a></span>&#160; <span class="keyword">typedef</span> highp_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;</div>
+<div class="line"><a name="l00985"></a><span class="lineno"><a class="line" href="a00177.html#ga114e005014d910bea07954eee24b7efb"> 985</a></span>&#160; <span class="keyword">typedef</span> highp_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, lowp&gt; lowp_u16vec1;</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, lowp&gt; lowp_u16vec2;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, lowp&gt; lowp_u16vec3;</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, lowp&gt; lowp_u16vec4;</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, mediump&gt; mediump_u16vec1;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, mediump&gt; mediump_u16vec2;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, mediump&gt; mediump_u16vec3;</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, mediump&gt; mediump_u16vec4;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, highp&gt; highp_u16vec1;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, highp&gt; highp_u16vec2;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, highp&gt; highp_u16vec3;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, highp&gt; highp_u16vec4;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keyword">typedef</span> lowp_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keyword">typedef</span> lowp_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="keyword">typedef</span> lowp_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keyword">typedef</span> lowp_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keyword">typedef</span> mediump_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keyword">typedef</span> mediump_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keyword">typedef</span> mediump_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keyword">typedef</span> mediump_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keyword">typedef</span> highp_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div>
+<div class="line"><a name="l01057"></a><span class="lineno"><a class="line" href="a00177.html#ga426030555085ed6c39a54e73afbef962"> 1057</a></span>&#160; <span class="keyword">typedef</span> highp_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71"> 1061</a></span>&#160; <span class="keyword">typedef</span> highp_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div>
+<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae"> 1065</a></span>&#160; <span class="keyword">typedef</span> highp_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, lowp&gt; lowp_u32vec1;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, lowp&gt; lowp_u32vec2;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, lowp&gt; lowp_u32vec3;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, lowp&gt; lowp_u32vec4;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, mediump&gt; mediump_u32vec1;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, mediump&gt; mediump_u32vec2;</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, mediump&gt; mediump_u32vec3;</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, mediump&gt; mediump_u32vec4;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, highp&gt; highp_u32vec1;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, highp&gt; highp_u32vec2;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, highp&gt; highp_u32vec3;</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, highp&gt; highp_u32vec4;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div>
+<div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075"> 1136</a></span>&#160; <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23"> 1140</a></span>&#160; <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6"> 1144</a></span>&#160; <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, lowp&gt; lowp_u32vec1;</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, lowp&gt; lowp_u32vec2;</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, lowp&gt; lowp_u32vec3;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, lowp&gt; lowp_u32vec4;</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, mediump&gt; mediump_u32vec1;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, mediump&gt; mediump_u32vec2;</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, mediump&gt; mediump_u32vec3;</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, mediump&gt; mediump_u32vec4;</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, highp&gt; highp_u32vec1;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, highp&gt; highp_u32vec2;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, highp&gt; highp_u32vec3;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, highp&gt; highp_u32vec4;</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; </div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; </div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; </div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, lowp&gt; lowp_u64vec1;</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, lowp&gt; lowp_u64vec2;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, lowp&gt; lowp_u64vec3;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, lowp&gt; lowp_u64vec4;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, mediump&gt; mediump_u64vec1;</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, mediump&gt; mediump_u64vec2;</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, mediump&gt; mediump_u64vec3;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, mediump&gt; mediump_u64vec4;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, highp&gt; highp_u64vec1;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, highp&gt; highp_u64vec2;</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, highp&gt; highp_u64vec3;</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, highp&gt; highp_u64vec4;</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; <span class="keyword">typedef</span> lowp_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keyword">typedef</span> lowp_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keyword">typedef</span> lowp_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keyword">typedef</span> lowp_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keyword">typedef</span> mediump_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keyword">typedef</span> mediump_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keyword">typedef</span> mediump_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">typedef</span> mediump_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keyword">typedef</span> highp_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div>
+<div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e"> 1295</a></span>&#160; <span class="keyword">typedef</span> highp_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; </div>
+<div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c"> 1299</a></span>&#160; <span class="keyword">typedef</span> highp_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; </div>
+<div class="line"><a name="l01303"></a><span class="lineno"><a class="line" href="a00177.html#gafb6ca34df28889a5db9d244aed375411"> 1303</a></span>&#160; <span class="keyword">typedef</span> highp_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; </div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; </div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; </div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keyword">typedef</span> detail::float32 mediump_float32;</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keyword">typedef</span> detail::float64 mediump_float64;</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keyword">typedef</span> detail::float32 mediump_float32_t;</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <span class="keyword">typedef</span> detail::float64 mediump_float64_t;</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> mediump_f32;</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> mediump_f64;</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keyword">typedef</span> detail::float32 highp_float32;</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keyword">typedef</span> detail::float64 highp_float64;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keyword">typedef</span> detail::float32 highp_float32_t;</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keyword">typedef</span> detail::float64 highp_float64_t;</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> highp_f32;</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> highp_f64;</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="keyword">typedef</span> lowp_float32 <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <span class="keyword">typedef</span> lowp_float64 <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="keyword">typedef</span> lowp_float32_t <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="keyword">typedef</span> lowp_float64_t <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="keyword">typedef</span> lowp_f32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <span class="keyword">typedef</span> lowp_f64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; <span class="keyword">typedef</span> mediump_float32 float32;</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <span class="keyword">typedef</span> mediump_float64 float64;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;<span class="preprocessor">#else//(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; <span class="keyword">typedef</span> highp_float32 float32;</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="keyword">typedef</span> highp_float64 float64;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"><a class="line" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77"> 1497</a></span>&#160; <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div>
+<div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37"> 1501</a></span>&#160; <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;</div>
+<div class="line"><a name="l01505"></a><span class="lineno"><a class="line" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"> 1505</a></span>&#160; <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;</div>
+<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9"> 1509</a></span>&#160; <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, lowp&gt; lowp_vec1;</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, lowp&gt; <a class="code" href="a00157.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, lowp&gt; <a class="code" href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, lowp&gt; <a class="code" href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, lowp&gt; lowp_fvec1;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, lowp&gt; lowp_fvec2;</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, lowp&gt; lowp_fvec3;</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, lowp&gt; lowp_fvec4;</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, mediump&gt; mediump_vec1;</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, mediump&gt; <a class="code" href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, mediump&gt; <a class="code" href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, mediump&gt; mediump_fvec1;</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, mediump&gt; mediump_fvec2;</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, mediump&gt; mediump_fvec3;</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, mediump&gt; mediump_fvec4;</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, highp&gt; highp_vec1;</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; <a class="code" href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; <a class="code" href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; <a class="code" href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, highp&gt; highp_fvec1;</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; highp_fvec2;</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; highp_fvec3;</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; highp_fvec4;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, lowp&gt; lowp_f32vec1;</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, lowp&gt; lowp_f32vec2;</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, lowp&gt; lowp_f32vec3;</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, lowp&gt; lowp_f32vec4;</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, mediump&gt; mediump_f32vec1;</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, mediump&gt; mediump_f32vec2;</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, mediump&gt; mediump_f32vec3;</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, mediump&gt; mediump_f32vec4;</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, highp&gt; highp_f32vec1;</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, highp&gt; highp_f32vec2;</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, highp&gt; highp_f32vec3;</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, highp&gt; highp_f32vec4;</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, lowp&gt; lowp_f64vec1;</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, lowp&gt; lowp_f64vec2;</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, lowp&gt; lowp_f64vec3;</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, lowp&gt; lowp_f64vec4;</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, mediump&gt; mediump_f64vec1;</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, mediump&gt; mediump_f64vec2;</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, mediump&gt; mediump_f64vec3;</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, mediump&gt; mediump_f64vec4;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, highp&gt; highp_f64vec1;</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, highp&gt; highp_f64vec2;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, highp&gt; highp_f64vec3;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, highp&gt; highp_f64vec4;</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <span class="comment">// Float matrix types</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; <span class="comment">//typedef lowp_f32 lowp_fmat1x1;</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;</div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, lowp&gt; lowp_fmat2x2;</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, lowp&gt; lowp_fmat2x3;</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, lowp&gt; lowp_fmat2x4;</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, lowp&gt; lowp_fmat3x2;</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, lowp&gt; lowp_fmat3x3;</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, lowp&gt; lowp_fmat3x4;</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, lowp&gt; lowp_fmat4x2;</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, lowp&gt; lowp_fmat4x3;</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, lowp&gt; lowp_fmat4x4;</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; <span class="comment">//typedef lowp_fmat1x1 lowp_fmat1;</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; <span class="keyword">typedef</span> lowp_fmat2x2 lowp_fmat2;</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; <span class="keyword">typedef</span> lowp_fmat3x3 lowp_fmat3;</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; <span class="keyword">typedef</span> lowp_fmat4x4 lowp_fmat4;</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; <span class="comment">//typedef mediump_f32 mediump_fmat1x1;</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, mediump&gt; mediump_fmat2x2;</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, mediump&gt; mediump_fmat2x3;</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, mediump&gt; mediump_fmat2x4;</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, mediump&gt; mediump_fmat3x2;</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, mediump&gt; mediump_fmat3x3;</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, mediump&gt; mediump_fmat3x4;</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, mediump&gt; mediump_fmat4x2;</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;</div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, mediump&gt; mediump_fmat4x3;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, mediump&gt; mediump_fmat4x4;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; <span class="comment">//typedef mediump_fmat1x1 mediump_fmat1;</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;</div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; <span class="keyword">typedef</span> mediump_fmat2x2 mediump_fmat2;</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;</div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="keyword">typedef</span> mediump_fmat3x3 mediump_fmat3;</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; <span class="keyword">typedef</span> mediump_fmat4x4 mediump_fmat4;</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="comment">//typedef highp_f32 highp_fmat1x1;</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, highp&gt; highp_fmat2x2;</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, highp&gt; highp_fmat2x3;</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;</div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, highp&gt; highp_fmat2x4;</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, highp&gt; highp_fmat3x2;</div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, highp&gt; highp_fmat3x3;</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, highp&gt; highp_fmat3x4;</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, highp&gt; highp_fmat4x2;</div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, highp&gt; highp_fmat4x3;</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;</div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, highp&gt; highp_fmat4x4;</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <span class="comment">//typedef highp_fmat1x1 highp_fmat1;</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; <span class="keyword">typedef</span> highp_fmat2x2 highp_fmat2;</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; <span class="keyword">typedef</span> highp_fmat3x3 highp_fmat3;</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; </div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <span class="keyword">typedef</span> highp_fmat4x4 highp_fmat4;</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="comment">//typedef f32 lowp_f32mat1x1;</span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, lowp&gt; lowp_f32mat2x2;</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, lowp&gt; lowp_f32mat2x3;</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;</div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, lowp&gt; lowp_f32mat2x4;</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, lowp&gt; lowp_f32mat3x2;</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, lowp&gt; lowp_f32mat3x3;</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, lowp&gt; lowp_f32mat3x4;</div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, lowp&gt; lowp_f32mat4x2;</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, lowp&gt; lowp_f32mat4x3;</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, lowp&gt; lowp_f32mat4x4;</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;</div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, lowp&gt; lowp_f32mat1;</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x2 lowp_f32mat2;</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x3 lowp_f32mat3;</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x4 lowp_f32mat4;</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="comment">//typedef f32 mediump_f32mat1x1;</span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, mediump&gt; mediump_f32mat2x2;</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, mediump&gt; mediump_f32mat2x3;</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, mediump&gt; mediump_f32mat2x4;</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, mediump&gt; mediump_f32mat3x2;</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, mediump&gt; mediump_f32mat3x3;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, mediump&gt; mediump_f32mat3x4;</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, mediump&gt; mediump_f32mat4x2;</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, mediump&gt; mediump_f32mat4x3;</div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, mediump&gt; mediump_f32mat4x4;</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, mediump&gt; f32mat1;</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x2 mediump_f32mat2;</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x3 mediump_f32mat3;</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x4 mediump_f32mat4;</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="comment">//typedef f32 highp_f32mat1x1;</span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, highp&gt; highp_f32mat2x2;</div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, highp&gt; highp_f32mat2x3;</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, highp&gt; highp_f32mat2x4;</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, highp&gt; highp_f32mat3x2;</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, highp&gt; highp_f32mat3x3;</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, highp&gt; highp_f32mat3x4;</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, highp&gt; highp_f32mat4x2;</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, highp&gt; highp_f32mat4x3;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;</div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, highp&gt; highp_f32mat4x4;</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, highp&gt; f32mat1;</span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; <span class="keyword">typedef</span> highp_f32mat2x2 highp_f32mat2;</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; <span class="keyword">typedef</span> highp_f32mat3x3 highp_f32mat3;</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <span class="keyword">typedef</span> highp_f32mat4x4 highp_f32mat4;</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; <span class="comment">//typedef f64 lowp_f64mat1x1;</span></div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;</div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, lowp&gt; lowp_f64mat2x2;</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, lowp&gt; lowp_f64mat2x3;</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, lowp&gt; lowp_f64mat2x4;</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, lowp&gt; lowp_f64mat3x2;</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, lowp&gt; lowp_f64mat3x3;</div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;</div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, lowp&gt; lowp_f64mat3x4;</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, lowp&gt; lowp_f64mat4x2;</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;</div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, lowp&gt; lowp_f64mat4x3;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; </div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, lowp&gt; lowp_f64mat4x4;</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; <span class="comment">//typedef lowp_f64mat1x1 lowp_f64mat1;</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x2 lowp_f64mat2;</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x3 lowp_f64mat3;</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x4 lowp_f64mat4;</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; <span class="comment">//typedef f64 Highp_f64mat1x1;</span></div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, mediump&gt; mediump_f64mat2x2;</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, mediump&gt; mediump_f64mat2x3;</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, mediump&gt; mediump_f64mat2x4;</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, mediump&gt; mediump_f64mat3x2;</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, mediump&gt; mediump_f64mat3x3;</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, mediump&gt; mediump_f64mat3x4;</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, mediump&gt; mediump_f64mat4x2;</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;</div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, mediump&gt; mediump_f64mat4x3;</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;</div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, mediump&gt; mediump_f64mat4x4;</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;</div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; <span class="comment">//typedef mediump_f64mat1x1 mediump_f64mat1;</span></div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;</div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x2 mediump_f64mat2;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;</div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x3 mediump_f64mat3;</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;</div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x4 mediump_f64mat4;</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;</div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; <span class="comment">//typedef f64 highp_f64mat1x1;</span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;</div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, highp&gt; highp_f64mat2x2;</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, highp&gt; highp_f64mat2x3;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, highp&gt; highp_f64mat2x4;</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;</div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, highp&gt; highp_f64mat3x2;</div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, highp&gt; highp_f64mat3x3;</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;</div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, highp&gt; highp_f64mat3x4;</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, highp&gt; highp_f64mat4x2;</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;</div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, highp&gt; highp_f64mat4x3;</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, highp&gt; highp_f64mat4x4;</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160; <span class="comment">//typedef highp_f64mat1x1 highp_f64mat1;</span></div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;</div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160; <span class="keyword">typedef</span> highp_f64mat2x2 highp_f64mat2;</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160; <span class="keyword">typedef</span> highp_f64mat3x3 highp_f64mat3;</div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; <span class="keyword">typedef</span> highp_f64mat4x4 highp_f64mat4;</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160; <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;</div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, lowp&gt; lowp_f32quat;</div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, lowp&gt; lowp_f64quat;</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;</div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, mediump&gt; mediump_f32quat;</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, mediump&gt; mediump_f64quat;</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;</div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, highp&gt; highp_f32quat;</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;</div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, highp&gt; highp_f64quat;</div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;</div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;</div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160; <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; <span class="keyword">typedef</span> lowp_f32quat fquat;</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;</div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160; <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160; <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160; <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160; <span class="keyword">typedef</span> lowp_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160; <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; <span class="keyword">typedef</span> mediump_f32quat fquat;</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;</div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; <span class="keyword">typedef</span> mediump_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;<span class="preprocessor">#else//if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;</div>
+<div class="line"><a name="l02331"></a><span class="lineno"><a class="line" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6"> 2331</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;</div>
+<div class="line"><a name="l02335"></a><span class="lineno"><a class="line" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084"> 2335</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;</div>
+<div class="line"><a name="l02339"></a><span class="lineno"><a class="line" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b"> 2339</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;</div>
+<div class="line"><a name="l02343"></a><span class="lineno"><a class="line" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711"> 2343</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;</div>
+<div class="line"><a name="l02347"></a><span class="lineno"><a class="line" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756"> 2347</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;</div>
+<div class="line"><a name="l02351"></a><span class="lineno"><a class="line" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5"> 2351</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;</div>
+<div class="line"><a name="l02355"></a><span class="lineno"><a class="line" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca"> 2355</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;</div>
+<div class="line"><a name="l02359"></a><span class="lineno"><a class="line" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22"> 2359</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;</div>
+<div class="line"><a name="l02363"></a><span class="lineno"><a class="line" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b"> 2363</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;</div>
+<div class="line"><a name="l02367"></a><span class="lineno"><a class="line" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732"> 2367</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;</div>
+<div class="line"><a name="l02371"></a><span class="lineno"><a class="line" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba"> 2371</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;</div>
+<div class="line"><a name="l02375"></a><span class="lineno"><a class="line" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9"> 2375</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; </div>
+<div class="line"><a name="l02379"></a><span class="lineno"><a class="line" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985"> 2379</a></span>&#160; <span class="keyword">typedef</span> fmat2x2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;</div>
+<div class="line"><a name="l02383"></a><span class="lineno"><a class="line" href="a00177.html#ga5165fbee2d78f342950265b69a07353d"> 2383</a></span>&#160; <span class="keyword">typedef</span> fmat3x3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;</div>
+<div class="line"><a name="l02387"></a><span class="lineno"><a class="line" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd"> 2387</a></span>&#160; <span class="keyword">typedef</span> fmat4x4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;</div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; <span class="keyword">typedef</span> highp_fquat fquat;</div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160; </div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;</div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;</div>
+<div class="line"><a name="l02397"></a><span class="lineno"><a class="line" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f"> 2397</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;</div>
+<div class="line"><a name="l02401"></a><span class="lineno"><a class="line" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3"> 2401</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;</div>
+<div class="line"><a name="l02405"></a><span class="lineno"><a class="line" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad"> 2405</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;</div>
+<div class="line"><a name="l02409"></a><span class="lineno"><a class="line" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704"> 2409</a></span>&#160; <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;</div>
+<div class="line"><a name="l02413"></a><span class="lineno"><a class="line" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a"> 2413</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;</div>
+<div class="line"><a name="l02417"></a><span class="lineno"><a class="line" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767"> 2417</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;</div>
+<div class="line"><a name="l02421"></a><span class="lineno"><a class="line" href="a00177.html#ga5ed667d0247cce477f013ea31982843d"> 2421</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;</div>
+<div class="line"><a name="l02425"></a><span class="lineno"><a class="line" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1"> 2425</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;</div>
+<div class="line"><a name="l02429"></a><span class="lineno"><a class="line" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0"> 2429</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;</div>
+<div class="line"><a name="l02433"></a><span class="lineno"><a class="line" href="a00177.html#ga0100666c90176eaba80e49357d123c7f"> 2433</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;</div>
+<div class="line"><a name="l02437"></a><span class="lineno"><a class="line" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff"> 2437</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;</div>
+<div class="line"><a name="l02441"></a><span class="lineno"><a class="line" href="a00177.html#gaa69e73ffb01a52499071391d395908fb"> 2441</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;</div>
+<div class="line"><a name="l02445"></a><span class="lineno"><a class="line" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5"> 2445</a></span>&#160; <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;</div>
+<div class="line"><a name="l02449"></a><span class="lineno"><a class="line" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e"> 2449</a></span>&#160; <span class="keyword">typedef</span> f32mat2x2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;</div>
+<div class="line"><a name="l02453"></a><span class="lineno"><a class="line" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c"> 2453</a></span>&#160; <span class="keyword">typedef</span> f32mat3x3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;</div>
+<div class="line"><a name="l02457"></a><span class="lineno"><a class="line" href="a00177.html#ga797fa3ab16e04456174c36238e091341"> 2457</a></span>&#160; <span class="keyword">typedef</span> f32mat4x4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;</div>
+<div class="line"><a name="l02461"></a><span class="lineno"><a class="line" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0"> 2461</a></span>&#160; <span class="keyword">typedef</span> highp_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;</div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; <span class="keyword">typedef</span> lowp_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160; <span class="keyword">typedef</span> lowp_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160; <span class="keyword">typedef</span> lowp_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160; <span class="keyword">typedef</span> lowp_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160; <span class="keyword">typedef</span> lowp_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160; <span class="keyword">typedef</span> lowp_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160; <span class="keyword">typedef</span> lowp_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160; <span class="keyword">typedef</span> lowp_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160; <span class="keyword">typedef</span> mediump_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; <span class="keyword">typedef</span> mediump_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; <span class="keyword">typedef</span> mediump_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160; <span class="keyword">typedef</span> mediump_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; <span class="keyword">typedef</span> mediump_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; <span class="keyword">typedef</span> mediump_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160; <span class="keyword">typedef</span> mediump_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; <span class="keyword">typedef</span> mediump_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; <span class="keyword">typedef</span> highp_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160;</div>
+<div class="line"><a name="l02507"></a><span class="lineno"><a class="line" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3"> 2507</a></span>&#160; <span class="keyword">typedef</span> highp_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;</div>
+<div class="line"><a name="l02511"></a><span class="lineno"><a class="line" href="a00177.html#gafacc3614bb1136a7756293e67d34de22"> 2511</a></span>&#160; <span class="keyword">typedef</span> highp_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;</div>
+<div class="line"><a name="l02515"></a><span class="lineno"><a class="line" href="a00177.html#ga8723186104dc02eb85da386105fba75f"> 2515</a></span>&#160; <span class="keyword">typedef</span> highp_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;</div>
+<div class="line"><a name="l02519"></a><span class="lineno"><a class="line" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3"> 2519</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;</div>
+<div class="line"><a name="l02523"></a><span class="lineno"><a class="line" href="a00177.html#ga87d256f4719417e311cd0ea14264678d"> 2523</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;</div>
+<div class="line"><a name="l02527"></a><span class="lineno"><a class="line" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550"> 2527</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;</div>
+<div class="line"><a name="l02531"></a><span class="lineno"><a class="line" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2"> 2531</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;</div>
+<div class="line"><a name="l02535"></a><span class="lineno"><a class="line" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6"> 2535</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;</div>
+<div class="line"><a name="l02539"></a><span class="lineno"><a class="line" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293"> 2539</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160;</div>
+<div class="line"><a name="l02543"></a><span class="lineno"><a class="line" href="a00177.html#gaa669dfb59031a441de19b34a92704d57"> 2543</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;</div>
+<div class="line"><a name="l02547"></a><span class="lineno"><a class="line" href="a00177.html#gaba137814a509704937746cc1e82edc32"> 2547</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;</div>
+<div class="line"><a name="l02551"></a><span class="lineno"><a class="line" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b"> 2551</a></span>&#160; <span class="keyword">typedef</span> highp_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;</div>
+<div class="line"><a name="l02555"></a><span class="lineno"><a class="line" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38"> 2555</a></span>&#160; <span class="keyword">typedef</span> f64mat2x2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;</div>
+<div class="line"><a name="l02559"></a><span class="lineno"><a class="line" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71"> 2559</a></span>&#160; <span class="keyword">typedef</span> f64mat3x3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;</div>
+<div class="line"><a name="l02563"></a><span class="lineno"><a class="line" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95"> 2563</a></span>&#160; <span class="keyword">typedef</span> f64mat4x4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;</div>
+<div class="line"><a name="l02567"></a><span class="lineno"><a class="line" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d"> 2567</a></span>&#160; <span class="keyword">typedef</span> highp_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;</div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00177.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02457">fwd.hpp:2457</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00055">type_float.hpp:55</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00157_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3&lt; float, lowp &gt; lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00257">type_vec.hpp:257</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02383">fwd.hpp:2383</a></div></div>
+<div class="ttc" id="a00177_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00206">type_int.hpp:206</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00157_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2&lt; float, highp &gt; highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00133">type_vec.hpp:133</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00209">type_int.hpp:209</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00177_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00056">type_float.hpp:56</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00177_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02449">fwd.hpp:2449</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00212">type_int.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00177_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02563">fwd.hpp:2563</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00207">type_int.hpp:207</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00157_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3&lt; float, highp &gt; highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00243">type_vec.hpp:243</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00177_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02387">fwd.hpp:2387</a></div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00157_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4&lt; float, lowp &gt; lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00361">type_vec.hpp:361</a></div></div>
+<div class="ttc" id="a00157_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00157.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2&lt; float, lowp &gt; lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00147">type_vec.hpp:147</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02555">fwd.hpp:2555</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00177_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00211">type_int.hpp:211</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00213">type_int.hpp:213</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02379">fwd.hpp:2379</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00157_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3&lt; float, mediump &gt; mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00250">type_vec.hpp:250</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00111_html"><div class="ttname"><a href="a00111.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00214">type_int.hpp:214</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00108_html"><div class="ttname"><a href="a00108.html">type_float.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00157_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4&lt; float, highp &gt; highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00349">type_vec.hpp:349</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00157_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2&lt; float, mediump &gt; mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00140">type_vec.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00208">type_int.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00157_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4&lt; float, mediump &gt; mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00355">type_vec.hpp:355</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02559">fwd.hpp:2559</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01505">fwd.hpp:1505</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00212">fwd.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02453">fwd.hpp:2453</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00040.html b/3rdparty/glm/doc/api/a00040.html
index 5108390974f..15ef3e3b4cf 100644
--- a/3rdparty/glm/doc/api/a00040.html
+++ b/3rdparty/glm/doc/api/a00040.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm.hpp File Reference</title>
+<title>0.9.9 API documenation: geometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,36 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">glm.hpp File Reference</div> </div>
+<div class="title">geometric.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00040_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-01 / 2011-05-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<p><a class="el" href="a00162.html">GLM Core</a> (Dependence)</p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-14 / 2011-10-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00040_source.html">glm.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00040_source.html">geometric.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00040_source.html b/3rdparty/glm/doc/api/a00040_source.html
index 9c7680a3a06..75a2685a89e 100644
--- a/3rdparty/glm/doc/api/a00040_source.html
+++ b/3rdparty/glm/doc/api/a00040_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm.hpp Source File</title>
+<title>0.9.9 API documenation: geometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,75 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">glm.hpp</div> </div>
+<div class="title">geometric.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00040.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00002.html">detail/_fixes.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#include &lt;climits&gt;</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#include &lt;cfloat&gt;</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00038.html">fwd.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Core library included&quot;)</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00139.html">vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00140.html">vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00141.html">vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00058.html">mat2x2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00059.html">mat2x3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00060.html">mat2x4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00061.html">mat3x2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00062.html">mat3x3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">mat3x4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00064.html">mat4x2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#include &quot;mat4x3.hpp&quot;</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">mat4x4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00114.html">trigonometric.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00022.html">exponential.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00014.html">common.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00088.html">packing.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00039.html">geometric.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">matrix.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00144.html">vector_relational.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00046.html">integer.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00022_html"><div class="ttname"><a href="a00022.html">exponential.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00039_html"><div class="ttname"><a href="a00039.html">geometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00139_html"><div class="ttname"><a href="a00139.html">vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00144_html"><div class="ttname"><a href="a00144.html">vector_relational.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00088_html"><div class="ttname"><a href="a00088.html">packing.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00059_html"><div class="ttname"><a href="a00059.html">mat2x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">mat4x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">mat3x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">matrix.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">mat3x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00038_html"><div class="ttname"><a href="a00038.html">fwd.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">mat3x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00014_html"><div class="ttname"><a href="a00014.html">common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">trigonometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00058_html"><div class="ttname"><a href="a00058.html">mat2x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00046_html"><div class="ttname"><a href="a00046.html">integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">mat4x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00060_html"><div class="ttname"><a href="a00060.html">mat2x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00032.html">detail/func_geometric.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00032_html"><div class="ttname"><a href="a00032.html">func_geometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00041.html b/3rdparty/glm/doc/api/a00041.html
index 4758b4ff913..033d0096fa5 100644
--- a/3rdparty/glm/doc/api/a00041.html
+++ b/3rdparty/glm/doc/api/a00041.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gradient_paint.hpp File Reference</title>
+<title>0.9.9 API documenation: glm.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gradient_paint.hpp File Reference</div> </div>
+<div class="title">glm.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00041_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2&lt; T, P &gt; const &amp;Point0, tvec2&lt; T, P &gt; const &amp;Point1, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
-<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2&lt; T, P &gt; const &amp;Center, T const &amp;Radius, tvec2&lt; T, P &gt; const &amp;Focal, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
-<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00200.html">GLM_GTX_gradient_paint</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-03-06 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00041_source.html">gradient_paint.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00041_source.html">glm.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00041_source.html b/3rdparty/glm/doc/api/a00041_source.html
index 6ca34557f2b..c6f920f740d 100644
--- a/3rdparty/glm/doc/api/a00041_source.html
+++ b/3rdparty/glm/doc/api/a00041_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gradient_paint.hpp Source File</title>
+<title>0.9.9 API documenation: glm.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,49 +64,90 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gradient_paint.hpp</div> </div>
+<div class="title">glm.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00041.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtx/optimum_pow.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_gradient_paint extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Center,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T <span class="keyword">const</span> &amp; Radius,</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Focal,</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Position);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a>(</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Point0,</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Point1,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Position);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;gradient_paint.inl&quot;</span></div>
-<div class="ttc" id="a00200_html_gacde26d5e0c4a1856467bded9dfad9040"><div class="ttname"><a href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">glm::linearGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T linearGradient(tvec2&lt; T, P &gt; const &amp;Point0, tvec2&lt; T, P &gt; const &amp;Point1, tvec2&lt; T, P &gt; const &amp;Position)</div><div class="ttdoc">Return a color from a linear gradient. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00200_html_ga166d43d567a4cf150579a92f69b0dc9f"><div class="ttname"><a href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">glm::radialGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T radialGradient(tvec2&lt; T, P &gt; const &amp;Center, T const &amp;Radius, tvec2&lt; T, P &gt; const &amp;Focal, tvec2&lt; T, P &gt; const &amp;Position)</div><div class="ttdoc">Return a color from a radial gradient. </div></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00002.html">detail/_fixes.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &lt;climits&gt;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;cfloat&gt;</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00039.html">fwd.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Core library included&quot;)</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00132.html">vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00133.html">vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00052.html">mat2x2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00053.html">mat2x3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00054.html">mat2x4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00055.html">mat3x2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00056.html">mat3x3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00057.html">mat3x4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00058.html">mat4x2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00059.html">mat4x3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00060.html">mat4x4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">trigonometric.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00023.html">exponential.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00015.html">common.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00082.html">packing.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00040.html">geometric.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00061.html">matrix.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00138.html">vector_relational.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00047.html">integer.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00039_html"><div class="ttname"><a href="a00039.html">fwd.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00056_html"><div class="ttname"><a href="a00056.html">mat3x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00015_html"><div class="ttname"><a href="a00015.html">common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00059_html"><div class="ttname"><a href="a00059.html">mat4x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00047_html"><div class="ttname"><a href="a00047.html">integer.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00023_html"><div class="ttname"><a href="a00023.html">exponential.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00055_html"><div class="ttname"><a href="a00055.html">mat3x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00082_html"><div class="ttname"><a href="a00082.html">packing.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00138_html"><div class="ttname"><a href="a00138.html">vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">matrix.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00058_html"><div class="ttname"><a href="a00058.html">mat4x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">trigonometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00054_html"><div class="ttname"><a href="a00054.html">mat2x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00052_html"><div class="ttname"><a href="a00052.html">mat2x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00040_html"><div class="ttname"><a href="a00040.html">geometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00057_html"><div class="ttname"><a href="a00057.html">mat3x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00060_html"><div class="ttname"><a href="a00060.html">mat4x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00053_html"><div class="ttname"><a href="a00053.html">mat2x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00042.html b/3rdparty/glm/doc/api/a00042.html
index 487fdee5dd6..5565f67bc57 100644
--- a/3rdparty/glm/doc/api/a00042.html
+++ b/3rdparty/glm/doc/api/a00042.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: handed_coordinate_space.hpp File Reference</title>
+<title>0.9.9 API documenation: gradient_paint.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,42 +64,56 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">handed_coordinate_space.hpp File Reference</div> </div>
+<div class="title">gradient_paint.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00042_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2&lt; T, P &gt; const &amp;Point0, tvec2&lt; T, P &gt; const &amp;Point1, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
+<tr class="memdesc:gacde26d5e0c4a1856467bded9dfad9040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a color from a linear gradient. <a href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">More...</a><br /></td></tr>
+<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2&lt; T, P &gt; const &amp;Center, T const &amp;Radius, tvec2&lt; T, P &gt; const &amp;Focal, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
+<tr class="memdesc:ga166d43d567a4cf150579a92f69b0dc9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a color from a radial gradient. <a href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">More...</a><br /></td></tr>
+<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00201.html">GLM_GTX_handed_coordinate_space</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00042_source.html">handed_coordinate_space.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00042_source.html">gradient_paint.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00042_source.html b/3rdparty/glm/doc/api/a00042_source.html
index 8ffadb9debd..ac2f44e6d50 100644
--- a/3rdparty/glm/doc/api/a00042_source.html
+++ b/3rdparty/glm/doc/api/a00042_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: handed_coordinate_space.hpp Source File</title>
+<title>0.9.9 API documenation: gradient_paint.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,47 +64,67 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">handed_coordinate_space.hpp</div> </div>
+<div class="title">gradient_paint.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00042.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_handed_coordinate_space extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00201.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; tangent,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; binormal,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; tangent,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; binormal,</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &quot;handed_coordinate_space.inl&quot;</span></div>
-<div class="ttc" id="a00201_html_ga17cd83888de8755c0435c589fafd3603"><div class="ttname"><a href="a00201.html#ga17cd83888de8755c0435c589fafd3603">glm::rightHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool rightHanded(tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</div><div class="ttdoc">Return if a trihedron right handed or not. </div></div>
-<div class="ttc" id="a00201_html_ga7425e0ebfe6a56919900a072ae1f8017"><div class="ttname"><a href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">glm::leftHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool leftHanded(tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</div><div class="ttdoc">Return if a trihedron left handed or not. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtx/optimum_pow.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_gradient_paint is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_gradient_paint extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Center,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T <span class="keyword">const</span> &amp; Radius,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Focal,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Position);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Point0,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Point1,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; Position);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;gradient_paint.inl&quot;</span></div>
+<div class="ttc" id="a00196_html_gacde26d5e0c4a1856467bded9dfad9040"><div class="ttname"><a href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">glm::linearGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T linearGradient(tvec2&lt; T, P &gt; const &amp;Point0, tvec2&lt; T, P &gt; const &amp;Point1, tvec2&lt; T, P &gt; const &amp;Position)</div><div class="ttdoc">Return a color from a linear gradient. </div></div>
+<div class="ttc" id="a00196_html_ga166d43d567a4cf150579a92f69b0dc9f"><div class="ttname"><a href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">glm::radialGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T radialGradient(tvec2&lt; T, P &gt; const &amp;Center, T const &amp;Radius, tvec2&lt; T, P &gt; const &amp;Focal, tvec2&lt; T, P &gt; const &amp;Position)</div><div class="ttdoc">Return a color from a radial gradient. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00043.html b/3rdparty/glm/doc/api/a00043.html
index e6c493cd817..ad35f7b9bf9 100644
--- a/3rdparty/glm/doc/api/a00043.html
+++ b/3rdparty/glm/doc/api/a00043.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: hash.hpp File Reference</title>
+<title>0.9.9 API documenation: handed_coordinate_space.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,30 +64,54 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">hash.hpp File Reference</div> </div>
+<div class="title">handed_coordinate_space.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00043_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:ga7425e0ebfe6a56919900a072ae1f8017"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return if a trihedron left handed or not. <a href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">More...</a><br /></td></tr>
+<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:ga17cd83888de8755c0435c589fafd3603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return if a trihedron right handed or not. <a href="a00197.html#ga17cd83888de8755c0435c589fafd3603">More...</a><br /></td></tr>
+<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00202.html">GLM_GTX_hash</a></p>
-<dl class="section date"><dt>Date</dt><dd>2015-03-07 / 2015-03-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00043_source.html">hash.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00043_source.html">handed_coordinate_space.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00043_source.html b/3rdparty/glm/doc/api/a00043_source.html
index 18e4ccf1a47..64515c83b2e 100644
--- a/3rdparty/glm/doc/api/a00043_source.html
+++ b/3rdparty/glm/doc/api/a00043_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: hash.hpp Source File</title>
+<title>0.9.9 API documenation: handed_coordinate_space.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,141 +64,65 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">hash.hpp</div> </div>
+<div class="title">handed_coordinate_space.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00043.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#if !GLM_HAS_CXX11_STL</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_hash requires C++11 standard library support&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_handed_coordinate_space is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_handed_coordinate_space extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; tangent,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; binormal,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; tangent,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; binormal,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;../gtx/dual_quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00150.html">std</a></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tvec1&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec1&lt;T,P&gt; &amp;v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tvec2&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec2&lt;T,P&gt; &amp;v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tvec3&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec3&lt;T,P&gt; &amp;v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; };</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tvec4&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec4&lt;T,P&gt; &amp;v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tquat&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tquat&lt;T,P&gt; &amp;q) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; };</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tdualquat&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tdualquat&lt;T,P&gt; &amp;q) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat2x2&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat2x2&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat2x3&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat2x3&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat2x4&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat2x4&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat3x2&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat3x2&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; };</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat3x3&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat3x3&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; };</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat3x4&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat3x4&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat4x2&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat4x2&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat4x3&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat4x3&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; };</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00146.html">glm</a>::tmat4x4&lt;T,P&gt;&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat4x4&lt;T,P&gt; &amp;m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; };</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;} <span class="comment">// namespace std</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#include &quot;hash.inl&quot;</span></div>
-<div class="ttc" id="a00150_html"><div class="ttname"><a href="a00150.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="a00043_source.html#l00070">hash.hpp:70</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;handed_coordinate_space.inl&quot;</span></div>
+<div class="ttc" id="a00197_html_ga7425e0ebfe6a56919900a072ae1f8017"><div class="ttname"><a href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">glm::leftHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool leftHanded(tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</div><div class="ttdoc">Return if a trihedron left handed or not. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00197_html_ga17cd83888de8755c0435c589fafd3603"><div class="ttname"><a href="a00197.html#ga17cd83888de8755c0435c589fafd3603">glm::rightHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool rightHanded(tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</div><div class="ttdoc">Return if a trihedron right handed or not. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00044.html b/3rdparty/glm/doc/api/a00044.html
index 79701334b5c..73f7bd76076 100644
--- a/3rdparty/glm/doc/api/a00044.html
+++ b/3rdparty/glm/doc/api/a00044.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp File Reference</title>
+<title>0.9.9 API documenation: hash.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,50 +64,40 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtc/integer.hpp File Reference</div> </div>
+<div class="title">hash.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00198.html">GLM_GTX_hash</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00044_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
-<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
-<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType&lt; T, P &gt; const &amp;x, T y)</td></tr>
-<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00170.html">GLM_GTC_integer</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-11-17 / 2014-11-17 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00198.html">GLM_GTX_hash</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00044_source.html">gtc/integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00044_source.html">hash.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00044_source.html b/3rdparty/glm/doc/api/a00044_source.html
index 283a115f644..098c6cdee02 100644
--- a/3rdparty/glm/doc/api/a00044_source.html
+++ b/3rdparty/glm/doc/api/a00044_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp Source File</title>
+<title>0.9.9 API documenation: hash.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,52 +64,159 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtc/integer.hpp</div> </div>
+<div class="title">hash.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00044.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_hash is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../gtx/dual_quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if !GLM_HAS_CXX11_STL</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_hash requires C++11 standard library support&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/func_common.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../detail/func_integer.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../detail/func_exponential.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00144.html">std</a></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tvec1&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; };</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_integer extension included&quot;)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00170.html#ga9bd682e74bfacb005c735305207ec417">log2</a>(genIUType x);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(genIUType x, genIUType y);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#include &quot;integer.inl&quot;</span></div>
-<div class="ttc" id="a00170_html_ga9bd682e74bfacb005c735305207ec417"><div class="ttname"><a href="a00170.html#ga9bd682e74bfacb005c735305207ec417">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType log2(genIUType x)</div><div class="ttdoc">Returns the log2 of x for integer values. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00170_html_ga75c6fd2a143fc44e5f7b871abad539e0"><div class="ttname"><a href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tvec2&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; };</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tvec3&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tvec4&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; };</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tquat&lt;T,P&gt;&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; };</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tdualquat&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tdualquat&lt;T,P&gt; <span class="keyword">const</span> &amp; q) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat2x2&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x2&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; };</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat2x3&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x3&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; };</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat2x4&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x4&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; };</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat3x2&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x2&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat3x3&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x3&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat3x4&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x4&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; };</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat4x2&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x2&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat4x3&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x3&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, glm::precision P&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">struct </span>hash&lt;<a class="code" href="a00140.html">glm</a>::tmat4x4&lt;T,P&gt; &gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x4&lt;T,P&gt; <span class="keyword">const</span> &amp; m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; };</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;} <span class="comment">// namespace std</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#include &quot;hash.inl&quot;</span></div>
+<div class="ttc" id="a00144_html"><div class="ttname"><a href="a00144.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="a00044_source.html#l00045">hash.hpp:45</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00045.html b/3rdparty/glm/doc/api/a00045.html
index 92975b94a41..0bf432acda5 100644
--- a/3rdparty/glm/doc/api/a00045.html
+++ b/3rdparty/glm/doc/api/a00045.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp File Reference</title>
+<title>0.9.9 API documenation: integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,61 +64,72 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtx/integer.hpp File Reference</div> </div>
+<div class="title">gtc/integer.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00165.html">GLM_GTC_integer</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00045_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
-<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
-<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
-<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
-<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
-<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
-<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
-<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
-<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
-<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0a42ffb863cc980e91f98d2f5766de20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">More...</a><br /></td></tr>
+<tr class="separator:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
+<tr class="memdesc:ga9bd682e74bfacb005c735305207ec417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the log2 of x for integer values. <a href="a00165.html#ga9bd682e74bfacb005c735305207ec417">More...</a><br /></td></tr>
+<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
+<tr class="memdesc:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">More...</a><br /></td></tr>
+<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType&lt; T, P &gt; const &amp;x, T y)</td></tr>
+<tr class="memdesc:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">More...</a><br /></td></tr>
+<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">More...</a><br /></td></tr>
+<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gab61b8546aafdf58f119eb892b212607c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00165.html#gab61b8546aafdf58f119eb892b212607c">More...</a><br /></td></tr>
+<tr class="separator:gab61b8546aafdf58f119eb892b212607c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00203.html">GLM_GTX_integer</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-24 / 2011-10-13 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00165.html">GLM_GTC_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00045_source.html">gtx/integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00045_source.html">gtc/integer.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00045_source.html b/3rdparty/glm/doc/api/a00045_source.html
index be1aed91bb6..9377569e919 100644
--- a/3rdparty/glm/doc/api/a00045_source.html
+++ b/3rdparty/glm/doc/api/a00045_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp Source File</title>
+<title>0.9.9 API documenation: integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,63 +64,74 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtx/integer.hpp</div> </div>
+<div class="title">gtc/integer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00045.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtc/integer.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_integer extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/func_common.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../detail/func_integer.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../detail/func_exponential.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_integer extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a>(genIUType x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(genIUType x, genIUType y);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, T y);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<span class="keywordtype">int</span> x);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40"> 80</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL vecType&lt;int, P&gt; <a class="code" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#include &quot;integer.inl&quot;</span></div>
-<div class="ttc" id="a00203_html_ga998e5ee915d3769255519e2fbaa2bbf0"><div class="ttname"><a href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL uint pow(uint x, uint y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
-<div class="ttc" id="a00203_html_gada7e83fdfe943aba4f1d5bf80cb66f40"><div class="ttname"><a href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::sint</a></div><div class="ttdeci">signed int sint</div><div class="ttdoc">32bit signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00045_source.html#l00080">gtx/integer.hpp:80</a></div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00203_html_ga1975d318978d6dacf78b6444fa5ed7bc"><div class="ttname"><a href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL uint sqrt(uint x)</div><div class="ttdoc">Returns the positive square root of x. </div></div>
-<div class="ttc" id="a00203_html_ga8cbd3120905f398ec321b5d1836e08fb"><div class="ttname"><a href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">glm::factorial</a></div><div class="ttdeci">GLM_FUNC_DECL genType factorial(genType const &amp;x)</div><div class="ttdoc">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...</div></div>
-<div class="ttc" id="a00203_html_ga63fc8d63e7da1706439233b386ba8b6f"><div class="ttname"><a href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL uint mod(uint x, uint y)</div><div class="ttdoc">Modulus. </div></div>
-<div class="ttc" id="a00203_html_ga7011b4e1c1e1ed492149b028feacc00e"><div class="ttname"><a href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">glm::floor_log2</a></div><div class="ttdeci">GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)</div><div class="ttdoc">Returns the floor log2 of x. </div></div>
-<div class="ttc" id="a00203_html_ga78dff8bdb361bf0061194c93e003d189"><div class="ttname"><a href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">glm::nlz</a></div><div class="ttdeci">GLM_FUNC_DECL uint nlz(uint x)</div><div class="ttdoc">Returns the number of leading zeros. </div></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL vecType&lt;uint, P&gt; <a class="code" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#include &quot;integer.inl&quot;</span></div>
+<div class="ttc" id="a00165_html_gab61b8546aafdf58f119eb892b212607c"><div class="ttname"><a href="a00165.html#gab61b8546aafdf58f119eb892b212607c">glm::uround</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint, P &gt; uround(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00165_html_ga9bd682e74bfacb005c735305207ec417"><div class="ttname"><a href="a00165.html#ga9bd682e74bfacb005c735305207ec417">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType log2(genIUType x)</div><div class="ttdoc">Returns the log2 of x for integer values. </div></div>
+<div class="ttc" id="a00165_html_ga75c6fd2a143fc44e5f7b871abad539e0"><div class="ttname"><a href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00165_html_ga0a42ffb863cc980e91f98d2f5766de20"><div class="ttname"><a href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">glm::iround</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; int, P &gt; iround(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00046.html b/3rdparty/glm/doc/api/a00046.html
index cd66e66ba98..ab5cdde353b 100644
--- a/3rdparty/glm/doc/api/a00046.html
+++ b/3rdparty/glm/doc/api/a00046.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp File Reference</title>
+<title>0.9.9 API documenation: integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,81 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">integer.hpp File Reference</div> </div>
+<div class="title">gtx/integer.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00199.html">GLM_GTX_integer</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00046_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
+<tr class="memdesc:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="mdescLeft">&#160;</td><td class="mdescRight">32bit signed integer. <a href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">More...</a><br /></td></tr>
+<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga8cbd3120905f398ec321b5d1836e08fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. <a href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">More...</a><br /></td></tr>
+<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
+<tr class="memdesc:ga7011b4e1c1e1ed492149b028feacc00e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the floor log2 of x. <a href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">More...</a><br /></td></tr>
+<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
+<tr class="memdesc:gaabfbb41531ab7ad8d06fc176edfba785"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">More...</a><br /></td></tr>
+<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
+<tr class="memdesc:ga63fc8d63e7da1706439233b386ba8b6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">More...</a><br /></td></tr>
+<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
+<tr class="memdesc:ga78dff8bdb361bf0061194c93e003d189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of leading zeros. <a href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">More...</a><br /></td></tr>
+<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
+<tr class="memdesc:ga89c591b970882714bd1e89a4e2f249f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the y power. <a href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">More...</a><br /></td></tr>
+<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
+<tr class="memdesc:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the y power. <a href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">More...</a><br /></td></tr>
+<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
+<tr class="memdesc:ga7ce36693a75879ccd9bb10167cfa722d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of x. <a href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">More...</a><br /></td></tr>
+<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
+<tr class="memdesc:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of x. <a href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">More...</a><br /></td></tr>
+<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00199.html">GLM_GTX_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00046_source.html">integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00046_source.html">gtx/integer.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00046_source.html b/3rdparty/glm/doc/api/a00046_source.html
index cd822b4aba7..6d7fc86434c 100644
--- a/3rdparty/glm/doc/api/a00046_source.html
+++ b/3rdparty/glm/doc/api/a00046_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp Source File</title>
+<title>0.9.9 API documenation: integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,81 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">integer.hpp</div> </div>
+<div class="title">gtx/integer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00046.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00032.html">detail/func_integer.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00032_html"><div class="ttname"><a href="a00032.html">func_integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtc/integer.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_integer is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_integer extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a>(genType <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40"> 55</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a>(<a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;integer.inl&quot;</span></div>
+<div class="ttc" id="a00157_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00199_html_ga63fc8d63e7da1706439233b386ba8b6f"><div class="ttname"><a href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL uint mod(uint x, uint y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00199_html_gada7e83fdfe943aba4f1d5bf80cb66f40"><div class="ttname"><a href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::sint</a></div><div class="ttdeci">signed int sint</div><div class="ttdoc">32bit signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00046_source.html#l00055">gtx/integer.hpp:55</a></div></div>
+<div class="ttc" id="a00199_html_ga998e5ee915d3769255519e2fbaa2bbf0"><div class="ttname"><a href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL uint pow(uint x, uint y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="ttc" id="a00199_html_ga78dff8bdb361bf0061194c93e003d189"><div class="ttname"><a href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">glm::nlz</a></div><div class="ttdeci">GLM_FUNC_DECL uint nlz(uint x)</div><div class="ttdoc">Returns the number of leading zeros. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00199_html_ga1975d318978d6dacf78b6444fa5ed7bc"><div class="ttname"><a href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL uint sqrt(uint x)</div><div class="ttdoc">Returns the positive square root of x. </div></div>
+<div class="ttc" id="a00199_html_ga8cbd3120905f398ec321b5d1836e08fb"><div class="ttname"><a href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">glm::factorial</a></div><div class="ttdeci">GLM_FUNC_DECL genType factorial(genType const &amp;x)</div><div class="ttdoc">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...</div></div>
+<div class="ttc" id="a00199_html_ga7011b4e1c1e1ed492149b028feacc00e"><div class="ttname"><a href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">glm::floor_log2</a></div><div class="ttdeci">GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)</div><div class="ttdoc">Returns the floor log2 of x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00047.html b/3rdparty/glm/doc/api/a00047.html
index 25361d39319..ca81c882750 100644
--- a/3rdparty/glm/doc/api/a00047.html
+++ b/3rdparty/glm/doc/api/a00047.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intersect.hpp File Reference</title>
+<title>0.9.9 API documenation: integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,56 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">intersect.hpp File Reference</div> </div>
+<div class="title">integer.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00047_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;sphereCenter, typename genType::value_type sphereRadius, genType &amp;intersectionPosition1, genType &amp;intersectionNormal1, genType &amp;intersectionPosition2=genType(), genType &amp;intersectionNormal2=genType())</td></tr>
-<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
-<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;planeOrig, genType const &amp;planeNormal, typename genType::value_type &amp;intersectionDistance)</td></tr>
-<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &amp;intersectionDistance)</td></tr>
-<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)</td></tr>
-<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
-<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00204.html">GLM_GTX_intersect</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-04-03 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00187.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00047_source.html">intersect.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00047_source.html">integer.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00047_source.html b/3rdparty/glm/doc/api/a00047_source.html
index f15720fed76..e855d710dd5 100644
--- a/3rdparty/glm/doc/api/a00047_source.html
+++ b/3rdparty/glm/doc/api/a00047_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intersect.hpp Source File</title>
+<title>0.9.9 API documenation: integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,76 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intersect.hpp</div> </div>
+<div class="title">integer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00047.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/closest_point.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a>(</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; genType <span class="keyword">const</span> &amp; planeOrig, genType <span class="keyword">const</span> &amp; planeNormal,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typename</span> genType::value_type &amp; intersectionDistance);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; genType &amp; baryPosition);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; genType &amp; position);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; genType <span class="keyword">const</span> &amp; rayStarting, genType <span class="keyword">const</span> &amp; rayNormalizedDirection,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; genType <span class="keyword">const</span> &amp; sphereCenter, <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> sphereRadiusSquered,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">typename</span> genType::value_type &amp; intersectionDistance);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; genType <span class="keyword">const</span> &amp; rayStarting, genType <span class="keyword">const</span> &amp; rayNormalizedDirection,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; genType <span class="keyword">const</span> &amp; sphereCenter, <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; genType &amp; intersectionPosition, genType &amp; intersectionNormal);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a>(</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; genType <span class="keyword">const</span> &amp; point0, genType <span class="keyword">const</span> &amp; point1,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; genType <span class="keyword">const</span> &amp; sphereCenter, <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; genType &amp; intersectionPosition1, genType &amp; intersectionNormal1, </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; genType &amp; intersectionPosition2 = genType(), genType &amp; intersectionNormal2 = genType());</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#include &quot;intersect.inl&quot;</span></div>
-<div class="ttc" id="a00204_html_gab16c1b47c10451e7604b51b39a7ef21d"><div class="ttname"><a href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">glm::intersectRayTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayTriangle(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</div><div class="ttdoc">Compute the intersection of a ray and a triangle. </div></div>
-<div class="ttc" id="a00204_html_gad28c00515b823b579c608aafa1100c1d"><div class="ttname"><a href="a00204.html#gad28c00515b823b579c608aafa1100c1d">glm::intersectRaySphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRaySphere(genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)</div><div class="ttdoc">Compute the intersection of a ray and a sphere. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00204_html_gad3697a9700ea379739a667ea02573488"><div class="ttname"><a href="a00204.html#gad3697a9700ea379739a667ea02573488">glm::intersectRayPlane</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayPlane(genType const &amp;orig, genType const &amp;dir, genType const &amp;planeOrig, genType const &amp;planeNormal, typename genType::value_type &amp;intersectionDistance)</div><div class="ttdoc">Compute the intersection of a ray and a plane. </div></div>
-<div class="ttc" id="a00204_html_ga9d29b9b3acb504d43986502f42740df4"><div class="ttname"><a href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">glm::intersectLineTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineTriangle(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</div><div class="ttdoc">Compute the intersection of a line and a triangle. </div></div>
-<div class="ttc" id="a00204_html_ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><div class="ttname"><a href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">glm::intersectLineSphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineSphere(genType const &amp;point0, genType const &amp;point1, genType const &amp;sphereCenter, typename genType::value_type sphereRadius, genType &amp;intersectionPosition1, genType &amp;intersectionNormal1, genType &amp;intersectionPosition2=genType(), genType &amp;intersectionNormal2=genType())</div><div class="ttdoc">Compute the intersection of a line and a sphere. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00033.html">detail/func_integer.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">func_integer.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00048.html b/3rdparty/glm/doc/api/a00048.html
index 55d73ac2c3b..781e6e55f76 100644
--- a/3rdparty/glm/doc/api/a00048.html
+++ b/3rdparty/glm/doc/api/a00048.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_common.hpp File Reference</title>
+<title>0.9.9 API documenation: intersect.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,34 +64,72 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">intrinsic_common.hpp File Reference</div> </div>
+<div class="title">intersect.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00200.html">GLM_GTX_intersect</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00048_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;sphereCenter, typename genType::value_type sphereRadius, genType &amp;intersectionPosition1, genType &amp;intersectionNormal1, genType &amp;intersectionPosition2=genType(), genType &amp;intersectionNormal2=genType())</td></tr>
+<tr class="memdesc:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a line and a sphere. <a href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">More...</a><br /></td></tr>
+<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
+<tr class="memdesc:ga9d29b9b3acb504d43986502f42740df4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a line and a triangle. <a href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">More...</a><br /></td></tr>
+<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;planeOrig, genType const &amp;planeNormal, typename genType::value_type &amp;intersectionDistance)</td></tr>
+<tr class="memdesc:gad3697a9700ea379739a667ea02573488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a ray and a plane. <a href="a00200.html#gad3697a9700ea379739a667ea02573488">More...</a><br /></td></tr>
+<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &amp;intersectionDistance)</td></tr>
+<tr class="memdesc:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection distance of a ray and a sphere. <a href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">More...</a><br /></td></tr>
+<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)</td></tr>
+<tr class="memdesc:gad28c00515b823b579c608aafa1100c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a ray and a sphere. <a href="a00200.html#gad28c00515b823b579c608aafa1100c1d">More...</a><br /></td></tr>
+<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
+<tr class="memdesc:gab16c1b47c10451e7604b51b39a7ef21d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a ray and a triangle. <a href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">More...</a><br /></td></tr>
+<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00200.html">GLM_GTX_intersect</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00183.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00048_source.html">intrinsic_common.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00048_source.html">intersect.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00048_source.html b/3rdparty/glm/doc/api/a00048_source.html
index f7d87654a17..18928c74975 100644
--- a/3rdparty/glm/doc/api/a00048_source.html
+++ b/3rdparty/glm/doc/api/a00048_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_common.hpp Source File</title>
+<title>0.9.9 API documenation: intersect.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,78 +64,98 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_common.hpp</div> </div>
+<div class="title">intersect.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00048.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;cfloat&gt;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtx/closest_point.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../gtx/vector_query.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_closest_point is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; __m128 sse_abs_ps(__m128 x);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; __m128 sse_sgn_ps(__m128 x);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">//floor</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; __m128 sse_flr_ps(__m128 v);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">//trunc</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; __m128 sse_trc_ps(__m128 v);</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">//round</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; __m128 sse_nd_ps(__m128 v);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">//roundEven</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; __m128 sse_rde_ps(__m128 v);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; __m128 sse_rnd_ps(__m128 x);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; __m128 sse_ceil_ps(__m128 v);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; __m128 sse_frc_ps(__m128 x);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; genType <span class="keyword">const</span> &amp; planeOrig, genType <span class="keyword">const</span> &amp; planeNormal,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typename</span> genType::value_type &amp; intersectionDistance);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; genType &amp; baryPosition);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a>(</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; genType <span class="keyword">const</span> &amp; orig, genType <span class="keyword">const</span> &amp; dir,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; genType <span class="keyword">const</span> &amp; vert0, genType <span class="keyword">const</span> &amp; vert1, genType <span class="keyword">const</span> &amp; vert2,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; genType &amp; position);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; __m128 sse_mod_ps(__m128 x, __m128 y);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; __m128 sse_modf_ps(__m128 x, __m128i &amp; i);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">//GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">//GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; __m128 sse_stp_ps(__m128 edge, __m128 x);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; __m128 sse_nan_ps(__m128 x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; __m128 sse_inf_ps(__m128 x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;intrinsic_common.inl&quot;</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; genType <span class="keyword">const</span> &amp; rayStarting, genType <span class="keyword">const</span> &amp; rayNormalizedDirection,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; genType <span class="keyword">const</span> &amp; sphereCenter, <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> sphereRadiusSquered,</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typename</span> genType::value_type &amp; intersectionDistance);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; genType <span class="keyword">const</span> &amp; rayStarting, genType <span class="keyword">const</span> &amp; rayNormalizedDirection,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; genType <span class="keyword">const</span> &amp; sphereCenter, <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; genType &amp; intersectionPosition, genType &amp; intersectionNormal);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a>(</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; genType <span class="keyword">const</span> &amp; point0, genType <span class="keyword">const</span> &amp; point1,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; genType <span class="keyword">const</span> &amp; sphereCenter, <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; genType &amp; intersectionPosition1, genType &amp; intersectionNormal1, </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; genType &amp; intersectionPosition2 = genType(), genType &amp; intersectionNormal2 = genType());</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#include &quot;intersect.inl&quot;</span></div>
+<div class="ttc" id="a00200_html_gad28c00515b823b579c608aafa1100c1d"><div class="ttname"><a href="a00200.html#gad28c00515b823b579c608aafa1100c1d">glm::intersectRaySphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRaySphere(genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)</div><div class="ttdoc">Compute the intersection of a ray and a sphere. </div></div>
+<div class="ttc" id="a00200_html_gad3697a9700ea379739a667ea02573488"><div class="ttname"><a href="a00200.html#gad3697a9700ea379739a667ea02573488">glm::intersectRayPlane</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayPlane(genType const &amp;orig, genType const &amp;dir, genType const &amp;planeOrig, genType const &amp;planeNormal, typename genType::value_type &amp;intersectionDistance)</div><div class="ttdoc">Compute the intersection of a ray and a plane. </div></div>
+<div class="ttc" id="a00200_html_ga9d29b9b3acb504d43986502f42740df4"><div class="ttname"><a href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">glm::intersectLineTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineTriangle(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</div><div class="ttdoc">Compute the intersection of a line and a triangle. </div></div>
+<div class="ttc" id="a00200_html_ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><div class="ttname"><a href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">glm::intersectLineSphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineSphere(genType const &amp;point0, genType const &amp;point1, genType const &amp;sphereCenter, typename genType::value_type sphereRadius, genType &amp;intersectionPosition1, genType &amp;intersectionNormal1, genType &amp;intersectionPosition2=genType(), genType &amp;intersectionNormal2=genType())</div><div class="ttdoc">Compute the intersection of a line and a sphere. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00200_html_gab16c1b47c10451e7604b51b39a7ef21d"><div class="ttname"><a href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">glm::intersectRayTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayTriangle(genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</div><div class="ttdoc">Compute the intersection of a ray and a triangle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00049.html b/3rdparty/glm/doc/api/a00049.html
index 83dbdf73d54..075e13fa032 100644
--- a/3rdparty/glm/doc/api/a00049.html
+++ b/3rdparty/glm/doc/api/a00049.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_exponential.hpp File Reference</title>
+<title>0.9.9 API documenation: io.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,28 +64,45 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_exponential.hpp File Reference</div> </div>
+<div class="title">io.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00201.html">GLM_GTX_io</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00049_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00201.html">GLM_GTX_io</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Jan P Springer (<a href="#" onclick="location.href='mai'+'lto:'+'reg'+'ni'+'rps'+'j@'+'gma'+'il'+'.co'+'m'; return false;">regni<span style="display: none;">.nosp@m.</span>rpsj<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00049_source.html">intrinsic_exponential.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00049_source.html">io.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00049_source.html b/3rdparty/glm/doc/api/a00049_source.html
index 0b2b23d4310..07d9168b3cc 100644
--- a/3rdparty/glm/doc/api/a00049_source.html
+++ b/3rdparty/glm/doc/api/a00049_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_exponential.hpp Source File</title>
+<title>0.9.9 API documenation: io.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,68 +64,211 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_exponential.hpp</div> </div>
+<div class="title">io.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00049.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_io is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_io extension included&quot;)</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;iosfwd&gt;</span> <span class="comment">// std::basic_ostream&lt;&gt; (fwd)</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;locale&gt;</span> <span class="comment">// std::locale, std::locale::facet, std::locale::id</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// std::pair&lt;&gt;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">{</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> __m128 recip = _mm_rsqrt_ss( x ); // &quot;estimate&quot; opcode</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> const static __m128 half = { 0.5,0.5,0.5,0.5 };</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> __m128 halfrecip = _mm_mul_ss( half, recip );</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> return _mm_mul_ss( halfrecip, threeminus_xrr );</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">}</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> </span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn )</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">{</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> __m128 x = _mm_load_ss(&amp;vIn[0]);</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> __m128 y = _mm_load_ss(&amp;vIn[1]);</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> __m128 z = _mm_load_ss(&amp;vIn[2]);</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> </span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> const __m128 l = // compute x*x + y*y + z*z</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> _mm_add_ss(</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> _mm_add_ss( _mm_mul_ss(x,x),</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> _mm_mul_ss(y,y)</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> ),</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> _mm_mul_ss( z, z )</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> );</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> </span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> </span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> const __m128 rsqt = _mm_rsqrt_nr_ss( l );</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> _mm_store_ss( &amp;vOut[0] , _mm_mul_ss( rsqt, x ) );</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> _mm_store_ss( &amp;vOut[1] , _mm_mul_ss( rsqt, y ) );</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> _mm_store_ss( &amp;vOut[2] , _mm_mul_ss( rsqt, z ) );</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> </span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> return _mm_mul_ss( l , rsqt );</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">}</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">namespace </span>io</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">enum</span> order_type { column_major, row_major};</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">class </span>format_punct : <span class="keyword">public</span> std::locale::facet</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> CTy char_type;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> std::locale::id id;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">bool</span> formatted;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">unsigned</span> precision;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">unsigned</span> width;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; char_type separator;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; char_type delim_left;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; char_type delim_right;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; char_type space;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; char_type newline;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; order_type order;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> format_punct(<span class="keywordtype">size_t</span> a = 0);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> format_punct(format_punct <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits&lt;CTy&gt; &gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">class </span>basic_state_saver {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> basic_state_saver(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL ~basic_state_saver();</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; typedef ::std::basic_ios&lt;CTy,CTr&gt; state_type;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> state_type::char_type char_type;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; typedef ::std::ios_base::fmtflags flags_type;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; typedef ::std::streamsize streamsize_type;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; typedef ::std::locale <span class="keyword">const</span> locale_type;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; state_type&amp; state_;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; flags_type flags_;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; streamsize_type precision_;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; streamsize_type width_;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; char_type fill_;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; locale_type locale_;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL basic_state_saver&amp; operator=(basic_state_saver <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typedef</span> basic_state_saver&lt;char&gt; state_saver;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">typedef</span> basic_state_saver&lt;wchar_t&gt; wstate_saver;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits&lt;CTy&gt; &gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">class </span>basic_format_saver</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> basic_format_saver(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL ~basic_format_saver();</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; basic_state_saver&lt;CTy&gt; <span class="keyword">const</span> bss_;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL basic_format_saver&amp; operator=(basic_format_saver <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">typedef</span> basic_format_saver&lt;char&gt; format_saver;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> basic_format_saver&lt;wchar_t&gt; wformat_saver;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">struct </span>precision</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">unsigned</span> value;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> precision(<span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">struct </span>width</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">unsigned</span> value;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> width(<span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">struct </span>delimeter</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; CTy value[3];</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> delimeter(CTy <span class="comment">/* left */</span>, CTy <span class="comment">/* right */</span>, CTy <span class="comment">/* separator */</span> = <span class="charliteral">&#39;,&#39;</span>);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; };</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">struct </span>order</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; order_type value;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> order(order_type);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; };</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// functions, inlined (inline)</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; FTy <span class="keyword">const</span>&amp; get_facet(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::basic_ios&lt;CTy,CTr&gt;&amp; formatted(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; std::basic_ios&lt;CTy,CTr&gt;&amp; unformattet(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, precision <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, width <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, delimeter&lt;CTy&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, order <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }<span class="comment">//namespace io</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tquat&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec1&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat2x2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat2x3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat2x4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat3x2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat3x3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat3x4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat4x2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat4x3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat4x4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt; &amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt; &amp;,</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; std::pair&lt;tmat4x4&lt;T,P&gt; <span class="keyword">const</span>, tmat4x4&lt;T,P&gt; <span class="keyword">const</span>&gt; <span class="keyword">const</span> &amp;);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#include &quot;io.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00050.html b/3rdparty/glm/doc/api/a00050.html
index 0763dec73ba..985604a21ba 100644
--- a/3rdparty/glm/doc/api/a00050.html
+++ b/3rdparty/glm/doc/api/a00050.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_geometric.hpp File Reference</title>
+<title>0.9.9 API documenation: log_base.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,28 +64,54 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">intrinsic_geometric.hpp File Reference</div> </div>
+<div class="title">log_base.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00202.html">GLM_GTX_log_base</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00050_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a> (genType const &amp;x, genType const &amp;base)</td></tr>
+<tr class="memdesc:ga60a7b0a401da660869946b2b77c710c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm for any base. <a href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">More...</a><br /></td></tr>
+<tr class="separator:ga60a7b0a401da660869946b2b77c710c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)</td></tr>
+<tr class="memdesc:ga1842004a127a9f3573764362ff639191"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm for any base. <a href="a00202.html#ga1842004a127a9f3573764362ff639191">More...</a><br /></td></tr>
+<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-08 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00202.html">GLM_GTX_log_base</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00050_source.html">intrinsic_geometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00050_source.html">log_base.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00050_source.html b/3rdparty/glm/doc/api/a00050_source.html
index 0beb87f4792..4395c2633a1 100644
--- a/3rdparty/glm/doc/api/a00050_source.html
+++ b/3rdparty/glm/doc/api/a00050_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_geometric.hpp Source File</title>
+<title>0.9.9 API documenation: log_base.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,66 +64,63 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_geometric.hpp</div> </div>
+<div class="title">log_base.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00050.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_log_base is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_log_base extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00048.html">intrinsic_common.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">//length</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; __m128 sse_len_ps(__m128 x);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; genType <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; genType <span class="keyword">const</span> &amp; base);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; base);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">//distance</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; __m128 sse_dst_ps(__m128 p0, __m128 p1);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">//dot</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; __m128 sse_dot_ps(__m128 v1, __m128 v2);</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// SSE1</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; __m128 sse_dot_ss(__m128 v1, __m128 v2);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">//cross</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; __m128 sse_xpd_ps(__m128 v1, __m128 v2);</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">//normalize</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; __m128 sse_nrm_ps(__m128 v);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">//faceforward</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">//reflect</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; __m128 sse_rfe_ps(__m128 I, __m128 N);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">//refract</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;intrinsic_geometric.inl&quot;</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00048_html"><div class="ttname"><a href="a00048.html">intrinsic_common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;log_base.inl&quot;</span></div>
+<div class="ttc" id="a00202_html_ga60a7b0a401da660869946b2b77c710c9"><div class="ttname"><a href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL genType log(genType const &amp;x, genType const &amp;base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+<div class="ttc" id="a00202_html_ga1842004a127a9f3573764362ff639191"><div class="ttname"><a href="a00202.html#ga1842004a127a9f3573764362ff639191">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sign(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00051.html b/3rdparty/glm/doc/api/a00051.html
deleted file mode 100644
index 3752de6761f..00000000000
--- a/3rdparty/glm/doc/api/a00051.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_integer.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">intrinsic_integer.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00051_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00051_source.html">intrinsic_integer.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00051_source.html b/3rdparty/glm/doc/api/a00051_source.html
index 5d74cd66181..5ceda447b9a 100644
--- a/3rdparty/glm/doc/api/a00051_source.html
+++ b/3rdparty/glm/doc/api/a00051_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_integer.hpp Source File</title>
+<title>0.9.9 API documenation: man.doxy Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,39 +64,2446 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_48eca2e6cf73effdec262031e861eeb0.html">doc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_integer.hpp</div> </div>
+<div class="title">man.doxy</div> </div>
</div><!--header-->
<div class="contents">
-<a href="a00051.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00040.html">glm/glm.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor"># Doxyfile 1.8.10</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"># This file describes the settings to be used by the documentation system</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor"># doxygen (www.doxygen.org) for a project.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor"># All text after a double hash (##) is considered a comment and is placed in</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"># front of the TAG it is preceding.</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"># All text after a single hash (#) is considered a comment and will be ignored.</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"># The format is:</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"># TAG = value [value, ...]</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># For lists, items can also be appended using:</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor"># TAG += value [value, ...]</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor"># Values that contain spaces should be placed between quotes (\&quot; \&quot;).</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"># Project related configuration options</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># This tag specifies the encoding used for all characters in the config file</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># that follow. The default is UTF-8 which is also the encoding used for all text</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># before the first occurrence of this tag. Doxygen uses libiconv (or the iconv</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># built into libc) for the transcoding. See http://www.gnu.org/software/libiconv</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># for the list of possible encodings.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># The default value is: UTF-8.</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;DOXYFILE_ENCODING = UTF-8</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># The PROJECT_NAME tag is a single word (or a sequence of words surrounded by</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># double-quotes, unless you are using Doxywizard) that should identify the</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># project for which the documentation is generated. This name is used in the</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># title of most generated pages and in a few other places.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># The default value is: My Project.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;PROJECT_NAME = <span class="stringliteral">&quot;0.9.9 API documenation&quot;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; __m128i _mm_bit_interleave_si128(__m128i x);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># The PROJECT_NUMBER tag can be used to enter a project or revision number. This</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># could be handy for archiving the generated documentation or if some version</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># control system is used.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;PROJECT_NUMBER = </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;intrinsic_integer.inl&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00040_html"><div class="ttname"><a href="a00040.html">glm.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"># for a project that appears at the top of each page and should give viewer a</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"># quick idea about the purpose of the project. Keep the description short.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;PROJECT_BRIEF = </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># With the PROJECT_LOGO tag one can specify a logo or an icon that is included</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># in the documentation. The maximum height of the logo should not exceed 55</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pixels and the maximum width should not exceed 200 pixels. Doxygen will copy</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># the logo to the output directory.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;PROJECT_LOGO = G:/Source/G-Truc/<a class="code" href="a00140.html">glm</a>/doc/logo.png</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># into which the generated documentation will be written. If a relative path is</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># entered, it will be relative to the location where doxygen was started. If</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># left blank the current directory will be used.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;OUTPUT_DIRECTORY = .</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># directories (in 2 levels) under the output directory of each output format and</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># will distribute the generated files over these directories. Enabling this</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># option can be useful when feeding doxygen a huge amount of source files, where</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># putting all generated files in the same directory would otherwise causes</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"># performance problems for the file system.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;CREATE_SUBDIRS = NO</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"># characters to appear in the names of generated files. If set to NO, non-ASCII</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># characters will be escaped, for example _xE3_x81_x84 will be used for Unicode</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"># U+3044.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;ALLOW_UNICODE_NAMES = NO</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"># The OUTPUT_LANGUAGE tag is used to specify the language in which all</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># documentation generated by doxygen is written. Doxygen will use this</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># information to generate all constant output in the proper language.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"># Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"># Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"># Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"># Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"># Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"># Ukrainian and Vietnamese.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"># The default value is: English.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;OUTPUT_LANGUAGE = English</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"># If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># descriptions after the members that are listed in the file and class</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"># documentation (similar to Javadoc). Set to NO to disable this.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;BRIEF_MEMBER_DESC = YES</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"># If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"># description of a member or function before the detailed description</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"># Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"># brief descriptions will be completely suppressed.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;REPEAT_BRIEF = YES</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"># This tag implements a quasi-intelligent brief description abbreviator that is</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"># used to form the text in various listings. Each string in this list, if found</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"># as the leading text of the brief description, will be stripped from the text</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"># and the result, after processing the whole list, is used as the annotated</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"># text. Otherwise, the brief description is used as-is. If left blank, the</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"># following values are used ($name is automatically replaced with the name of</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"># the entity):The $name class, The $name widget, The $name file, is, provides,</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"># specifies, contains, represents, a, an and the.</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;ABBREVIATE_BRIEF = <span class="stringliteral">&quot;The $name class &quot;</span> \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="stringliteral">&quot;The $name widget &quot;</span> \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="stringliteral">&quot;The $name file &quot;</span> \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; is \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; provides \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; specifies \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; contains \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; represents \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; a \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; an \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; the</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"># If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"># doxygen will generate a detailed section even if there is only a brief</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"># description.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;ALWAYS_DETAILED_SEC = NO</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"># If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"># inherited members of a class in the documentation of that class as if those</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"># members were ordinary class members. Constructors, destructors and assignment</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"># operators of the base classes will not be shown.</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;INLINE_INHERITED_MEMB = NO</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"># before files name in the file list and in the header files. If set to NO the</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"># shortest path that makes the file name unique will be used</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;FULL_PATH_NAMES = NO</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"># The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"># Stripping is only done if one of the specified strings matches the left-hand</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"># part of the path. The tag can be used to show relative paths in the file list.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"># If left blank the directory from which doxygen is run is used as the path to</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"># strip.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"># Note that you can specify absolute paths here, but also relative paths, which</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"># will be relative from the directory where doxygen is started.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"># This tag requires that the tag FULL_PATH_NAMES is set to YES.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;STRIP_FROM_PATH = <span class="stringliteral">&quot;C:/Documents and Settings/Groove/ &quot;</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"># The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"># path mentioned in the documentation of a class, which tells the reader which</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"># header file to include in order to use a class. If left blank only the name of</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"># the header file containing the class definition is used. Otherwise one should</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"># specify the list of include paths that are normally passed to the compiler</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"># using the -I flag.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;STRIP_FROM_INC_PATH = </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"># If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"># less readable) file names. This can be useful is your file systems doesn&#39;t</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"># support long names like on DOS, Mac, or CD-ROM.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;SHORT_NAMES = YES</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"># If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"># first line (until the first dot) of a Javadoc-style comment as the brief</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"># description. If set to NO, the Javadoc-style will behave just like regular Qt-</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"># style comments (thus requiring an explicit @brief command for a brief</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"># description.)</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;JAVADOC_AUTOBRIEF = YES</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"># If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"># line (until the first dot) of a Qt-style comment as the brief description. If</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"># set to NO, the Qt-style will behave just like regular Qt-style comments (thus</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"># requiring an explicit \brief command for a brief description.)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;QT_AUTOBRIEF = NO</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"># The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"># multi-line C++ special comment block (i.e. a block of </span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"># a brief description. This used to be the default behavior. The new default is</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># to treat a multi-line C++ comment block as a detailed description. Set this</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"># tag to YES if you prefer the old behavior instead.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"># Note that setting this tag to YES also means that rational rose comments are</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"># not recognized any more.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;MULTILINE_CPP_IS_BRIEF = NO</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"># If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"># documentation from any documented member that it re-implements.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;INHERIT_DOCS = YES</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"># If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"># page for each member. If set to NO, the documentation of a member will be part</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"># of the file/class/namespace that contains it.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;SEPARATE_MEMBER_PAGES = NO</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"># The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"># uses this value to replace tabs by spaces in code fragments.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"># Minimum value: 1, maximum value: 16, default value: 4.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;TAB_SIZE = 8</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"># This tag can be used to specify a number of aliases that act as commands in</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"># the documentation. An alias has the form:</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"># name=value</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"># For example adding</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"># &quot;sideeffect=@par Side Effects:\n&quot;</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"># will allow you to put the command \sideeffect (or @sideeffect) in the</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"># documentation, which will result in a user-defined paragraph with heading</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"># &quot;Side Effects:&quot;. You can put \n&#39;s in the value part of an alias to insert</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"># newlines.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;ALIASES = </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"># This tag can be used to specify a number of word-keyword mappings (TCL only).</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"># A mapping has the form &quot;name=value&quot;. For example adding &quot;class=itcl::class&quot;</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"># will allow you to use the command class in the itcl::class meaning.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;TCL_SUBST = </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"># only. Doxygen will then generate output that is more tailored for C. For</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># instance, some of the names that are used will be different. The list of all</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"># members will be omitted, etc.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;OPTIMIZE_OUTPUT_FOR_C = NO</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"># Python sources only. Doxygen will then generate output that is more tailored</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"># for that language. For instance, namespaces will be presented as packages,</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># qualified scopes will look different, etc.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;OPTIMIZE_OUTPUT_JAVA = NO</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"># sources. Doxygen will then generate output that is tailored for Fortran.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;OPTIMIZE_FOR_FORTRAN = NO</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># sources. Doxygen will then generate output that is tailored for VHDL.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;OPTIMIZE_OUTPUT_VHDL = NO</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"># Doxygen selects the parser to use depending on the extension of the files it</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"># parses. With this tag you can assign which parser to use for a given</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"># extension. Doxygen has a built-in mapping, but you can override or extend it</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># using this tag. The format is ext=language, where ext is a file extension, and</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"># language is one of the parsers supported by doxygen: IDL, Java, Javascript,</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># Fortran. In the later case the parser tries to guess whether the code is fixed</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"># or free formatted code, this is the default for Fortran type files), VHDL. For</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"># instance to make doxygen treat .inc files as Fortran files (default is PHP),</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"># and .f files as C (default is Fortran), use: inc=Fortran f=C.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"># Note: For files without extension you can use no_extension as a placeholder.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># Note that for custom extensions you also need to set FILE_PATTERNS otherwise</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># the files are not read by doxygen.</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;EXTENSION_MAPPING = </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"># according to the Markdown format, which allows for more readable</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># documentation. See http://daringfireball.net/projects/markdown/ for details.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># The output of markdown processing is further processed by doxygen, so you can</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"># case of backward compatibilities issues.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;MARKDOWN_SUPPORT = YES</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"># When enabled doxygen tries to link words that correspond to documented</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"># classes, or namespaces to their corresponding documentation. Such a link can</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># be prevented in individual cases by putting a % sign in front of the word or</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"># globally by setting AUTOLINK_SUPPORT to NO.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;AUTOLINK_SUPPORT = YES</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># If you use STL classes (i.e. std::string, std::vector, etc.) but do not want</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"># to include (a tag file for) the STL sources as input, then you should set this</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"># tag to YES in order to let doxygen match functions declarations and</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"># definitions whose arguments contain STL classes (e.g. func(std::string);</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"># versus func(std::string) {}). This also make the inheritance and collaboration</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"># diagrams that involve STL classes more complete and accurate.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;BUILTIN_STL_SUPPORT = NO</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># If you use Microsoft&#39;s C++/CLI language, you should set this option to YES to</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"># enable parsing support.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;CPP_CLI_SUPPORT = NO</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"># Set the SIP_SUPPORT tag to YES if your project consists of sip (see:</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"># http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># will parse them like normal C++ but will assume all classes use public instead</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"># of private inheritance when no explicit protection keyword is present.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;SIP_SUPPORT = NO</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"># For Microsoft&#39;s IDL there are propget and propput attributes to indicate</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># getter and setter methods for a property. Setting this option to YES will make</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># doxygen to replace the get and set methods by a property in the documentation.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"># This will only work if the methods are indeed getting or setting a simple</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># type. If this is not the case, or you want to show the methods anyway, you</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"># should set this option to NO.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;IDL_PROPERTY_SUPPORT = YES</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"># If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"># tag is set to YES then doxygen will reuse the documentation of the first</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"># member in the group (if any) for the other members of the group. By default</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># all members of a group must be documented explicitly.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;DISTRIBUTE_GROUP_DOC = NO</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"># If one adds a struct or class to a group and this option is enabled, then also</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"># any nested class or struct is added to the same group. By default this option</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"># is disabled and one has to add nested compounds explicitly via \ingroup.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;GROUP_NESTED_COMPOUNDS = NO</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># Set the SUBGROUPING tag to YES to allow class member groups of the same type</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># (for instance a group of public functions) to be put as a subgroup of that</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"># type (e.g. under the Public Functions section). Set it to NO to prevent</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"># subgrouping. Alternatively, this can be done per class using the</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"># \nosubgrouping command.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;SUBGROUPING = NO</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"># When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"># are shown inside the group in which they are included (e.g. using \ingroup)</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"># instead of on a separate page (for HTML and Man pages) or section (for LaTeX</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"># and RTF).</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"># Note that this feature does not work in combination with</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"># SEPARATE_MEMBER_PAGES.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;INLINE_GROUPED_CLASSES = NO</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"># When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># with only public data fields or simple typedef fields will be shown inline in</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"># the documentation of the scope in which they are defined (i.e. file,</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># namespace, or group documentation), provided this scope is documented. If set</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"># to NO, structs, classes, and unions are shown on a separate page (for HTML and</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># Man pages) or section (for LaTeX and RTF).</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;INLINE_SIMPLE_STRUCTS = NO</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"># When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"># enum is documented as struct, union, or enum with the name of the typedef. So</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"># typedef struct TypeS {} TypeT, will appear in the documentation as a struct</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"># with name TypeT. When disabled the typedef will appear as a member of a file,</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"># namespace, or class. And the struct will be named TypeS. This can typically be</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"># useful for C code in case the coding convention dictates that all compound</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"># types are typedef&#39;ed and only the typedef is referenced, never the tag name.</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;TYPEDEF_HIDES_STRUCT = NO</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"># The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"># cache is used to resolve symbols given their name and scope. Since this can be</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"># an expensive process and often the same symbol appears multiple times in the</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"># code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"># doxygen will become slower. If the cache is too large, memory is wasted. The</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"># cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"># is 0..9, the default is 0, corresponding to a cache size of 2^16=65536</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"># symbols. At the end of a run doxygen will report the cache usage and suggest</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"># the optimal cache size from a speed point of view.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"># Minimum value: 0, maximum value: 9, default value: 0.</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;LOOKUP_CACHE_SIZE = 0</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"># Build related configuration options</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"># If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"># documentation are documented, even if no documentation was available. Private</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"># class members and static file members will be hidden unless the</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"># EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"># Note: This will also disable the warnings about undocumented members that are</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"># normally produced when WARNINGS is set to YES.</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;EXTRACT_ALL = NO</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"># If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"># be included in the documentation.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;EXTRACT_PRIVATE = NO</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"># If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"># scope will be included in the documentation.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;EXTRACT_PACKAGE = NO</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"># If the EXTRACT_STATIC tag is set to YES, all static members of a file will be</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"># included in the documentation.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;EXTRACT_STATIC = YES</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"># If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"># locally in source files will be included in the documentation. If set to NO,</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"># only classes defined in header files are included. Does not have any effect</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"># for Java sources.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;EXTRACT_LOCAL_CLASSES = NO</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"># This flag is only useful for Objective-C code. If set to YES, local methods,</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"># which are defined in the implementation section but not in the interface are</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"># included in the documentation. If set to NO, only methods in the interface are</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"># included.</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;EXTRACT_LOCAL_METHODS = NO</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"># If this flag is set to YES, the members of anonymous namespaces will be</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"># extracted and appear in the documentation as a namespace called</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"># &#39;anonymous_namespace{file}&#39;, where file will be replaced with the base name of</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"># the file that contains the anonymous namespace. By default anonymous namespace</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"># are hidden.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;EXTRACT_ANON_NSPACES = NO</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"># If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"># undocumented members inside documented classes or files. If set to NO these</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"># members will be included in the various overviews, but no documentation</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"># section is generated. This option has no effect if EXTRACT_ALL is enabled.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;HIDE_UNDOC_MEMBERS = YES</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"># If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"># undocumented classes that are normally visible in the class hierarchy. If set</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"># to NO, these classes will be included in the various overviews. This option</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"># has no effect if EXTRACT_ALL is enabled.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;HIDE_UNDOC_CLASSES = YES</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"># If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"># (class|struct|union) declarations. If set to NO, these declarations will be</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"># included in the documentation.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;HIDE_FRIEND_COMPOUNDS = YES</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"># If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"># documentation blocks found inside the body of a function. If set to NO, these</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"># blocks will be appended to the function&#39;s detailed documentation block.</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;HIDE_IN_BODY_DOCS = YES</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"># The INTERNAL_DOCS tag determines if documentation that is typed after a</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"># \internal command is included. If the tag is set to NO then the documentation</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"># will be excluded. Set it to YES to include the internal documentation.</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;INTERNAL_DOCS = NO</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"># If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"># names in lower-case letters. If set to YES, upper-case letters are also</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"># allowed. This is useful if you have classes or files whose names only differ</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"># in case and if your file system supports case sensitive file names. Windows</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"># and Mac users are advised to set this option to NO.</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"># The default value is: system dependent.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;CASE_SENSE_NAMES = YES</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"># If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"># their full class and namespace scopes in the documentation. If set to YES, the</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"># scope will be hidden.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;HIDE_SCOPE_NAMES = YES</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"># If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"># append additional text to a page&#39;s title, such as Class Reference. If set to</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"># YES the compound reference will be hidden.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;HIDE_COMPOUND_REFERENCE= NO</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"># If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"># the files that are included by a file in the documentation of that file.</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;SHOW_INCLUDE_FILES = NO</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"># If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"># grouped member an include statement to the documentation, telling the reader</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"># which file to include in order to use the member.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;SHOW_GROUPED_MEMB_INC = NO</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"># If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"># files with double quotes in the documentation rather than with sharp brackets.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;FORCE_LOCAL_INCLUDES = NO</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"># If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"># documentation for inline members.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;INLINE_INFO = NO</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"># If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"># (detailed) documentation of file and class members alphabetically by member</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"># name. If set to NO, the members will appear in declaration order.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;SORT_MEMBER_DOCS = YES</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"># If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"># descriptions of file, namespace and class members alphabetically by member</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"># name. If set to NO, the members will appear in declaration order. Note that</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"># this will also influence the order of the classes in the class list.</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;SORT_BRIEF_DOCS = YES</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"># If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"># (brief and detailed) documentation of class members so that constructors and</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"># destructors are listed first. If set to NO the constructors will appear in the</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"># respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"># Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"># member documentation.</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"># Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"># detailed member documentation.</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;SORT_MEMBERS_CTORS_1ST = NO</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"># If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"># of group names into alphabetical order. If set to NO the group names will</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"># appear in their defined order.</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;SORT_GROUP_NAMES = NO</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"># If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"># fully-qualified names, including namespaces. If set to NO, the class list will</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"># be sorted only by class name, not including the namespace part.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"># Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"># Note: This option applies only to the class list, not to the alphabetical</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"># list.</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;SORT_BY_SCOPE_NAME = YES</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"># If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"># type resolution of all parameters of a function it will reject a match between</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"># the prototype and the implementation of a member function even if there is</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"># only one candidate or it is obvious which candidate to choose by doing a</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"># simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"># accept a match between prototype and implementation in such cases.</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;STRICT_PROTO_MATCHING = NO</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"># The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"># list. This list is created by putting \todo commands in the documentation.</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;GENERATE_TODOLIST = YES</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"># The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"># list. This list is created by putting \test commands in the documentation.</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;GENERATE_TESTLIST = YES</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"># The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"># list. This list is created by putting \bug commands in the documentation.</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;GENERATE_BUGLIST = YES</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"># The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"># the deprecated list. This list is created by putting \deprecated commands in</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"># the documentation.</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;GENERATE_DEPRECATEDLIST= YES</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"># The ENABLED_SECTIONS tag can be used to enable conditional documentation</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"># sections, marked by \if &lt;section_label&gt; ... \endif and \cond &lt;section_label&gt;</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"># ... \endcond blocks.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;ENABLED_SECTIONS = </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"># The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"># initial value of a variable or macro / define can have for it to appear in the</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"># documentation. If the initializer consists of more lines than specified here</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"># it will be hidden. Use a value of 0 to hide initializers completely. The</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"># appearance of the value of individual variables and macros / defines can be</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"># controlled using \showinitializer or \hideinitializer command in the</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"># documentation regardless of this setting.</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"># Minimum value: 0, maximum value: 10000, default value: 30.</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;MAX_INITIALIZER_LINES = 30</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"># Set the SHOW_USED_FILES tag to NO to disable the list of files generated at</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"># the bottom of the documentation of classes and structs. If set to YES, the</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"># list will mention the files that were used to generate the documentation.</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;SHOW_USED_FILES = NO</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"># Set the SHOW_FILES tag to NO to disable the generation of the Files page. This</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"># will remove the Files entry from the Quick Index and from the Folder Tree View</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"># (if specified).</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;SHOW_FILES = YES</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"># Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"># page. This will remove the Namespaces entry from the Quick Index and from the</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"># Folder Tree View (if specified).</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;SHOW_NAMESPACES = YES</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"># The FILE_VERSION_FILTER tag can be used to specify a program or script that</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"># doxygen should invoke to get the current version for each file (typically from</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"># the version control system). Doxygen will invoke the program by executing (via</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"># popen()) the command command input-file, where command is the value of the</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"># FILE_VERSION_FILTER tag, and input-file is the name of an input file provided</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"># by doxygen. Whatever the program writes to standard output is used as the file</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"># version. For an example see the documentation.</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;FILE_VERSION_FILTER = </div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"># The LAYOUT_FILE tag can be used to specify a layout file which will be parsed</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"># by doxygen. The layout file controls the global structure of the generated</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"># output files in an output format independent way. To create the layout file</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"># that represents doxygen&#39;s defaults, run doxygen with the -l option. You can</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"># optionally specify a file name after the option, if omitted DoxygenLayout.xml</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"># will be used as the name of the layout file.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"># Note that if you run doxygen from a directory containing a file called</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"># DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"># tag is left empty.</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;LAYOUT_FILE = </div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"># The CITE_BIB_FILES tag can be used to specify one or more bib files containing</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"># the reference definitions. This must be a list of .bib files. The .bib</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"># extension is automatically appended if omitted. This requires the bibtex tool</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"># to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"># For LaTeX the style of the bibliography can be controlled using</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"># LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"># search path. See also \cite for info how to create references.</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;CITE_BIB_FILES = </div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"># Configuration options related to warning and progress messages</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"># The QUIET tag can be used to turn on/off the messages that are generated to</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"># standard output by doxygen. If QUIET is set to YES this implies that the</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"># messages are off.</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;QUIET = NO</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor"># The WARNINGS tag can be used to turn on/off the warning messages that are</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"># generated to standard error (stderr) by doxygen. If WARNINGS is set to YES</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"># this implies that the warnings are on.</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor"># Tip: Turn warnings on while writing the documentation.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;WARNINGS = YES</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor"># If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor"># warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"># will automatically be disabled.</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;WARN_IF_UNDOCUMENTED = YES</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor"># If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"># potential errors in the documentation, such as not documenting some parameters</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor"># in a documented function, or documenting parameters that don&#39;t exist or using</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"># markup commands wrongly.</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;WARN_IF_DOC_ERROR = YES</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor"># This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"># are documented, but have no documentation for their parameters or return</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor"># value. If set to NO, doxygen will only warn about wrong or incomplete</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"># parameter documentation, but not about the absence of documentation.</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;WARN_NO_PARAMDOC = NO</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor"># The WARN_FORMAT tag determines the format of the warning messages that doxygen</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"># can produce. The string should contain the $file, $line, and $text tags, which</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"># will be replaced by the file and line number from which the warning originated</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"># and the warning text. Optionally the format may contain $version, which will</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"># be replaced by the version of the file (if it could be obtained via</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"># FILE_VERSION_FILTER)</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"># The default value is: $file:$line: $text.</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;WARN_FORMAT = <span class="stringliteral">&quot;$file:$line: $text&quot;</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"># The WARN_LOGFILE tag can be used to specify a file to which warning and error</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"># messages should be written. If left blank the output is written to standard</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"># error (stderr).</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;WARN_LOGFILE = </div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"># Configuration options related to the input files</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor"># The INPUT tag is used to specify the files and/or directories that contain</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"># documented source files. You may enter file names like myfile.cpp or</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"># directories like /usr/src/myproject. Separate the files or directories with</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"># spaces. See also FILE_PATTERNS and EXTENSION_MAPPING</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor"># Note: If this tag is empty the current directory is searched.</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;INPUT = ../<a class="code" href="a00140.html">glm</a> \</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; .</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;# This tag can be used to specify the character encoding of the source files</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"># that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor"># libiconv (or the iconv built into libc) for the transcoding. See the libiconv</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"># documentation (see: http://www.gnu.org/software/libiconv) for the list of</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor"># possible encodings.</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor"># The default value is: UTF-8.</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;INPUT_ENCODING = UTF-8</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor"># FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="preprocessor"># *.h) to filter out the source-files in the directories.</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"># Note that for custom extensions or not directly supported extensions you also</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"># need to set EXTENSION_MAPPING for the extension otherwise the files are not</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"># read by doxygen.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"># If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="preprocessor"># *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="preprocessor"># *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor"># *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"># *.vhdl, *.ucf, *.qsf, *.as and *.js.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;FILE_PATTERNS = *.hpp \</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; *.doxy</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"># The RECURSIVE tag can be used to specify whether or not subdirectories should</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor"># be searched for input files as well.</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;RECURSIVE = YES</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor"># The EXCLUDE tag can be used to specify files and/or directories that should be</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor"># excluded from the INPUT source files. This way you can easily exclude a</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="preprocessor"># subdirectory from a directory tree whose root is specified with the INPUT tag.</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="preprocessor"># Note that relative paths are relative to the directory from which doxygen is</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor"># run.</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;EXCLUDE = </div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor"># The EXCLUDE_SYMLINKS tag can be used to select whether or not files or</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor"># directories that are symbolic links (a Unix file system feature) are excluded</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor"># from the input.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;EXCLUDE_SYMLINKS = NO</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor"># EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="preprocessor"># certain files from those directories.</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="preprocessor">#</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="preprocessor"># exclude all test directories for example use the pattern */test</span><span class="comment">/*</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="comment">EXCLUDE_PATTERNS = </span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;<span class="comment"># The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="comment"># (namespaces, classes, functions, etc.) that should be excluded from the</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="comment"># output. The symbol name can be a fully qualified name, a word, or if the</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="comment"># wildcard * is used, a substring. Examples: ANamespace, AClass,</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="comment"># AClass::ANamespace, ANamespace::*Test</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="comment"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<span class="comment"># exclude all test directories use the pattern */</span><span class="preprocessor">test</span><span class="comment">/*</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="comment">EXCLUDE_SYMBOLS = </span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="comment"># The EXAMPLE_PATH tag can be used to specify one or more files or directories</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;<span class="comment"># that contain example code fragments that are included (see the \include</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="comment"># command).</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="comment">EXAMPLE_PATH = </span></div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="comment"># If the value of the EXAMPLE_PATH tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="comment"># EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<span class="comment"># *.h) to filter out the source-files in the directories. If left blank all</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;<span class="comment"># files are included.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="comment">EXAMPLE_PATTERNS = *</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;<span class="comment"># If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<span class="comment"># searched for input files to be used with the \include or \dontinclude commands</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<span class="comment"># irrespective of the value of the RECURSIVE tag.</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;<span class="comment">EXAMPLE_RECURSIVE = NO</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment"># The IMAGE_PATH tag can be used to specify one or more files or directories</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;<span class="comment"># that contain images that are to be included in the documentation (see the</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="comment"># \image command).</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;<span class="comment">IMAGE_PATH = </span></div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;<span class="comment"># The INPUT_FILTER tag can be used to specify a program that doxygen should</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;<span class="comment"># invoke to filter for each input file. Doxygen will invoke the filter program</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="comment"># by executing (via popen()) the command:</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;<span class="comment"># &lt;filter&gt; &lt;input-file&gt;</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;<span class="comment"># where &lt;filter&gt; is the value of the INPUT_FILTER tag, and &lt;input-file&gt; is the</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;<span class="comment"># name of an input file. Doxygen will then use the output that the filter</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;<span class="comment"># program writes to standard output. If FILTER_PATTERNS is specified, this tag</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="comment"># will be ignored.</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;<span class="comment"># Note that the filter must not add or remove lines; it is applied before the</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;<span class="comment"># code is scanned, but not when the output code is generated. If lines are added</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<span class="comment"># or removed, the anchors will not be placed correctly.</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="comment">INPUT_FILTER = </span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;<span class="comment"># The FILTER_PATTERNS tag can be used to specify filters on a per file pattern</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="comment"># basis. Doxygen will compare the file name with each pattern and apply the</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;<span class="comment"># filter if there is a match. The filters are a list of the form: pattern=filter</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;<span class="comment"># (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;<span class="comment"># filters are used. If the FILTER_PATTERNS tag is empty or if none of the</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="comment"># patterns match the file name, INPUT_FILTER is applied.</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;<span class="comment">FILTER_PATTERNS = </span></div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;<span class="comment"># If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;<span class="comment"># INPUT_FILTER) will also be used to filter the input files that are used for</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;<span class="comment"># producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;<span class="comment">FILTER_SOURCE_FILES = NO</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;<span class="comment"># The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;<span class="comment"># pattern. A pattern will override the setting for FILTER_PATTERN (if any) and</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;<span class="comment"># it is also possible to disable source filtering for a specific pattern using</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;<span class="comment"># *.ext= (so without naming a filter).</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;<span class="comment"># This tag requires that the tag FILTER_SOURCE_FILES is set to YES.</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;<span class="comment">FILTER_SOURCE_PATTERNS = </span></div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;<span class="comment"># If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;<span class="comment"># is part of the input, its contents will be placed on the main page</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;<span class="comment"># (index.html). This can be useful if you have a project on for instance GitHub</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="comment"># and want to reuse the introduction page also for the doxygen output.</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;<span class="comment">USE_MDFILE_AS_MAINPAGE = </span></div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;<span class="comment"># Configuration options related to source browsing</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;<span class="comment"># If the SOURCE_BROWSER tag is set to YES then a list of source files will be</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;<span class="comment"># generated. Documented entities will be cross-referenced with these sources.</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;<span class="comment"># Note: To get rid of all source code in the generated output, make sure that</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<span class="comment"># also VERBATIM_HEADERS is set to NO.</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;<span class="comment">SOURCE_BROWSER = YES</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;<span class="comment"># Setting the INLINE_SOURCES tag to YES will include the body of functions,</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;<span class="comment"># classes and enums directly into the documentation.</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;<span class="comment">INLINE_SOURCES = NO</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;<span class="comment"># Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;<span class="comment"># special comment blocks from generated source code fragments. Normal C, C++ and</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="comment"># Fortran comments will always remain visible.</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="comment">STRIP_CODE_COMMENTS = YES</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;<span class="comment"># If the REFERENCED_BY_RELATION tag is set to YES then for each documented</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;<span class="comment"># function all documented functions referencing it will be listed.</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;<span class="comment">REFERENCED_BY_RELATION = YES</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;<span class="comment"># If the REFERENCES_RELATION tag is set to YES then for each documented function</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;<span class="comment"># all documented entities called/used by that function will be listed.</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;<span class="comment">REFERENCES_RELATION = YES</span></div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;<span class="comment"># If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;<span class="comment"># to YES then the hyperlinks from functions in REFERENCES_RELATION and</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;<span class="comment"># REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;<span class="comment"># link to the documentation.</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="comment">REFERENCES_LINK_SOURCE = YES</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="comment"># If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="comment"># source code will show a tooltip with additional information such as prototype,</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;<span class="comment"># brief description and links to the definition and documentation. Since this</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="comment"># will make the HTML file larger and loading of large files a bit slower, you</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="comment"># can opt to disable this feature.</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;<span class="comment">SOURCE_TOOLTIPS = YES</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="comment"># If the USE_HTAGS tag is set to YES then the references to source code will</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="comment"># point to the HTML generated by the htags(1) tool instead of doxygen built-in</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="comment"># source browser. The htags tool is part of GNU&#39;s global source tagging system</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="comment"># (see http://www.gnu.org/software/global/global.html). You will need version</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="comment"># 4.8.6 or higher.</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="comment"># To use it do the following:</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="comment"># - Install the latest version of global</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="comment"># - Enable SOURCE_BROWSER and USE_HTAGS in the config file</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="comment"># - Make sure the INPUT points to the root of the source tree</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="comment"># - Run doxygen as normal</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<span class="comment"># Doxygen will invoke htags (and that will in turn invoke gtags), so these</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="comment"># tools must be available from the command line (i.e. in the search path).</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="comment"># The result: instead of the source browser generated by doxygen, the links to</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="comment"># source code will now point to the output of htags.</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="comment">USE_HTAGS = NO</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment"># If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="comment"># verbatim copy of the header file for each class for which an include is</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="comment"># specified. Set to NO to disable this.</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="comment"># See also: Section \class.</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="comment">VERBATIM_HEADERS = YES</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="comment"># If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="comment"># clang parser (see: http://clang.llvm.org/) for more accurate parsing at the</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="comment"># cost of reduced performance. This can be particularly helpful with template</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="comment"># rich C++ code for which doxygen&#39;s built-in parser lacks the necessary type</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="comment"># information.</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="comment"># Note: The availability of this option depends on whether or not doxygen was</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="comment"># compiled with the --with-libclang option.</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="comment">CLANG_ASSISTED_PARSING = NO</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="comment"># If clang assisted parsing is enabled you can provide the compiler with command</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="comment"># line options that you would normally use when invoking the compiler. Note that</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="comment"># the include paths will already be set by doxygen for the files and directories</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="comment"># specified with INPUT and INCLUDE_PATH.</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="comment"># This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment">CLANG_OPTIONS = </span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment"># Configuration options related to the alphabetical class index</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment"># If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="comment"># compounds will be generated. Enable this if the project contains a lot of</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="comment"># classes, structs, unions or interfaces.</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="comment">ALPHABETICAL_INDEX = NO</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="comment"># The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="comment"># which the alphabetical index list will be split.</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="comment"># Minimum value: 1, maximum value: 20, default value: 5.</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="comment">COLS_IN_ALPHA_INDEX = 5</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="comment"># In case all classes in a project start with a common prefix, all classes will</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="comment"># be put under the same header in the alphabetical index. The IGNORE_PREFIX tag</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="comment"># can be used to specify a prefix (or a list of prefixes) that should be ignored</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="comment"># while generating the index headers.</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="comment">IGNORE_PREFIX = </span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment"># Configuration options related to the HTML output</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment"># If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="comment">GENERATE_HTML = YES</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment"># The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment"># it.</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="comment"># The default directory is: html.</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="comment">HTML_OUTPUT = html</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment"># The HTML_FILE_EXTENSION tag can be used to specify the file extension for each</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment"># generated HTML page (for example: .htm, .php, .asp).</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="comment"># The default value is: .html.</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment">HTML_FILE_EXTENSION = .html</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="comment"># The HTML_HEADER tag can be used to specify a user-defined HTML header file for</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="comment"># each generated HTML page. If the tag is left blank doxygen will generate a</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="comment"># standard header.</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="comment"># To get valid HTML the header file that includes any scripts and style sheets</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="comment"># that doxygen needs, which is dependent on the configuration options used (e.g.</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="comment"># the setting GENERATE_TREEVIEW). It is highly recommended to start with a</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;<span class="comment"># default header using</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="comment"># doxygen -w html new_header.html new_footer.html new_stylesheet.css</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="comment"># YourConfigFile</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="comment"># and then modify the file new_header.html. See also section &quot;Doxygen usage&quot;</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="comment"># for information on how to generate the default header that doxygen normally</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="comment"># uses.</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="comment"># Note: The header is subject to change so you typically have to regenerate the</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment"># default header when upgrading to a newer version of doxygen. For a description</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="comment"># of the possible markers and block names see the documentation.</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="comment">HTML_HEADER = </span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="comment"># The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment"># generated HTML page. If the tag is left blank doxygen will generate a standard</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="comment"># footer. See HTML_HEADER for more information on how to generate a default</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="comment"># footer and what special commands can be used inside the footer. See also</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="comment"># section &quot;Doxygen usage&quot; for information on how to generate the default footer</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="comment"># that doxygen normally uses.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="comment">HTML_FOOTER = </span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="comment"># The HTML_STYLESHEET tag can be used to specify a user-defined cascading style</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="comment"># sheet that is used by each HTML page. It can be used to fine-tune the look of</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="comment"># the HTML output. If left blank doxygen will generate a default style sheet.</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="comment"># See also section &quot;Doxygen usage&quot; for information on how to generate the style</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="comment"># sheet that doxygen normally uses.</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment"># Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment"># it is more robust and this tag (HTML_STYLESHEET) will in the future become</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment"># obsolete.</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment">HTML_STYLESHEET = </span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment"># The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="comment"># cascading style sheets that are included after the standard style sheets</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="comment"># created by doxygen. Using this option one can overrule certain style aspects.</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment"># This is preferred over using HTML_STYLESHEET since it does not replace the</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="comment"># standard style sheet and is therefore more robust against future updates.</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment"># Doxygen will copy the style sheet files to the output directory.</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment"># list). For an example see the documentation.</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="comment">HTML_EXTRA_STYLESHEET = </span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="comment"># The HTML_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="comment"># other source files which should be copied to the HTML output directory. Note</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="comment"># that these files will be copied to the base HTML output directory. Use the</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="comment"># $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="comment"># files. In the HTML_STYLESHEET file, use the file name only. Also note that the</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="comment"># files will be copied as-is; there are no commands or markers available.</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">HTML_EXTRA_FILES = </span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment"># The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment"># will adjust the colors in the style sheet and background images according to</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment"># this color. Hue is specified as an angle on a colorwheel, see</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment"># http://en.wikipedia.org/wiki/Hue for more information. For instance the value</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment"># 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment"># purple, and 360 is red again.</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 359, default value: 220.</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="comment">HTML_COLORSTYLE_HUE = 220</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="comment"># The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="comment"># in the HTML output. For a value of 0 the output will use grayscales only. A</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="comment"># value of 255 will produce the most vivid colors.</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 255, default value: 100.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="comment">HTML_COLORSTYLE_SAT = 100</span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="comment"># The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the</span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="comment"># luminance component of the colors in the HTML output. Values below 100</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="comment"># gradually make the output lighter, whereas values above 100 make the output</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="comment"># darker. The value divided by 100 is the actual gamma applied, so 80 represents</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="comment"># a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="comment"># change the gamma.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment"># Minimum value: 40, maximum value: 240, default value: 80.</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment">HTML_COLORSTYLE_GAMMA = 80</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment"># If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="comment"># page will contain the date and time when the page was generated. Setting this</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="comment"># to YES can help to show when doxygen was last run and thus if the</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="comment"># documentation is up to date.</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment">HTML_TIMESTAMP = NO</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment"># If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment"># documentation will contain sections that can be hidden and shown after the</span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="comment"># page has loaded.</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment">HTML_DYNAMIC_SECTIONS = NO</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="comment"># With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;<span class="comment"># shown in the various tree structured indices initially; the user can expand</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="comment"># and collapse entries dynamically later on. Doxygen will expand the tree to</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;<span class="comment"># such a level that at most the specified number of entries are visible (unless</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<span class="comment"># a fully collapsed tree already exceeds this amount). So setting the number of</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;<span class="comment"># entries 1 will produce a full collapsed tree by default. 0 is a special value</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="comment"># representing an infinite number of entries and will result in a full expanded</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;<span class="comment"># tree by default.</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 9999, default value: 100.</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;<span class="comment">HTML_INDEX_NUM_ENTRIES = 100</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="comment"># If the GENERATE_DOCSET tag is set to YES, additional index files will be</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;<span class="comment"># generated that can be used as input for Apple&#39;s Xcode 3 integrated development</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="comment"># environment (see: http://developer.apple.com/tools/xcode/), introduced with</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="comment"># OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="comment"># Makefile in the HTML output directory. Running make will produce the docset in</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="comment"># that directory and running make install will install the docset in</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="comment"># ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="comment"># startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;<span class="comment"># for more information.</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="comment">GENERATE_DOCSET = NO</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="comment"># This tag determines the name of the docset feed. A documentation feed provides</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<span class="comment"># an umbrella under which multiple documentation sets from a single provider</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="comment"># (such as a company or product suite) can be grouped.</span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;<span class="comment"># The default value is: Doxygen generated docs.</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;<span class="comment">DOCSET_FEEDNAME = &quot;Doxygen generated docs&quot;</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;<span class="comment"># This tag specifies a string that should uniquely identify the documentation</span></div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;<span class="comment"># set bundle. This should be a reverse domain-name style string, e.g.</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<span class="comment"># com.mycompany.MyDocSet. Doxygen will append .docset to the name.</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;<span class="comment">DOCSET_BUNDLE_ID = org.doxygen.Project</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;<span class="comment"># The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;<span class="comment"># the documentation publisher. This should be a reverse domain-name style</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;<span class="comment"># string, e.g. com.mycompany.MyDocSet.documentation.</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;<span class="comment"># The default value is: org.doxygen.Publisher.</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;<span class="comment">DOCSET_PUBLISHER_ID = org.doxygen.Publisher</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;<span class="comment"># The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;<span class="comment"># The default value is: Publisher.</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;<span class="comment">DOCSET_PUBLISHER_NAME = Publisher</span></div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;<span class="comment"># If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;<span class="comment"># additional HTML index files: index.hhp, index.hhc, and index.hhk. The</span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;<span class="comment"># index.hhp is a project file that can be read by Microsoft&#39;s HTML Help Workshop</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;<span class="comment"># (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on</span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;<span class="comment"># Windows.</span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;<span class="comment"># The HTML Help Workshop contains a compiler that can convert all HTML output</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;<span class="comment"># generated by doxygen into a single compiled HTML file (.chm). Compiled HTML</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;<span class="comment"># files are now used as the Windows 98 help format, and will replace the old</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;<span class="comment"># Windows help format (.hlp) on all Windows platforms in the future. Compressed</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;<span class="comment"># HTML files also contain an index, a table of contents, and you can search for</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;<span class="comment"># words in the documentation. The HTML workshop also contains a viewer for</span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<span class="comment"># compressed HTML files.</span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment">GENERATE_HTMLHELP = NO</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;<span class="comment"># The CHM_FILE tag can be used to specify the file name of the resulting .chm</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;<span class="comment"># file. You can add a path in front of the file if the result should not be</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;<span class="comment"># written to the html output directory.</span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;<span class="comment">CHM_FILE = </span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;<span class="comment"># The HHC_LOCATION tag can be used to specify the location (absolute path</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;<span class="comment"># including file name) of the HTML help compiler (hhc.exe). If non-empty,</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;<span class="comment"># doxygen will try to run the HTML help compiler on the generated index.hhp.</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;<span class="comment"># The file has to be specified with full path.</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="comment">HHC_LOCATION = </span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="comment"># The GENERATE_CHI flag controls if a separate .chi index file is generated</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<span class="comment"># (YES) or that it should be included in the master .chm file (NO).</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;<span class="comment">GENERATE_CHI = NO</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;<span class="comment"># The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;<span class="comment"># and project file content.</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="comment">CHM_INDEX_ENCODING = </span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;<span class="comment"># The BINARY_TOC flag controls whether a binary table of contents is generated</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="comment"># (YES) or a normal table of contents (NO) in the .chm file. Furthermore it</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;<span class="comment"># enables the Previous and Next buttons.</span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;<span class="comment">BINARY_TOC = NO</span></div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="comment"># The TOC_EXPAND flag can be set to YES to add extra items for group members to</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;<span class="comment"># the table of contents of the HTML help documentation and to the tree view.</span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;<span class="comment">TOC_EXPAND = NO</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;<span class="comment"># If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;<span class="comment"># QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;<span class="comment"># can be used as input for Qt&#39;s qhelpgenerator to generate a Qt Compressed Help</span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;<span class="comment"># (.qch) of the generated HTML documentation.</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;<span class="comment">GENERATE_QHP = NO</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="comment"># If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="comment"># the file name of the resulting .qch file. The path specified is relative to</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="comment"># the HTML output folder.</span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<span class="comment">QCH_FILE = </span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;<span class="comment"># The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;<span class="comment"># Project output. For more information please see Qt Help Project / Namespace</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;<span class="comment"># (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;<span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;<span class="comment">QHP_NAMESPACE = org.doxygen.Project</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment"># The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="comment"># Help Project output. For more information please see Qt Help Project / Virtual</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="comment"># Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;<span class="comment"># folders).</span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;<span class="comment"># The default value is: doc.</span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;<span class="comment">QHP_VIRTUAL_FOLDER = doc</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;<span class="comment"># If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;<span class="comment"># filter to add. For more information please see Qt Help Project / Custom</span></div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;<span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;<span class="comment"># filters).</span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;<span class="comment">QHP_CUST_FILTER_NAME = </span></div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;<span class="comment"># The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;<span class="comment"># custom filter to add. For more information please see Qt Help Project / Custom</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;<span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;<span class="comment"># filters).</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;<span class="comment">QHP_CUST_FILTER_ATTRS = </span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="comment"># The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="comment"># project&#39;s filter section matches. Qt Help Project / Filter Attributes (see:</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment"># http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="comment">QHP_SECT_FILTER_ATTRS = </span></div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;<span class="comment"># The QHG_LOCATION tag can be used to specify the location of Qt&#39;s</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;<span class="comment"># qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;<span class="comment"># generated .qhp file.</span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;<span class="comment">QHG_LOCATION = </span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;<span class="comment"># If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be</span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;<span class="comment"># generated, together with the HTML files, they form an Eclipse help plugin. To</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;<span class="comment"># install this plugin and make it available under the help contents menu in</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;<span class="comment"># Eclipse, the contents of the directory containing the HTML and XML files needs</span></div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;<span class="comment"># to be copied into the plugins directory of eclipse. The name of the directory</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;<span class="comment"># within the plugins directory should be the same as the ECLIPSE_DOC_ID value.</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;<span class="comment"># After copying Eclipse needs to be restarted before the help appears.</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;<span class="comment">GENERATE_ECLIPSEHELP = NO</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="comment"># A unique identifier for the Eclipse help plugin. When installing the plugin</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;<span class="comment"># the directory name containing the HTML and XML files should also have this</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;<span class="comment"># name. Each documentation set should have its own identifier.</span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;<span class="comment">ECLIPSE_DOC_ID = org.doxygen.Project</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;<span class="comment"># If you want full control over the layout of the generated HTML pages it might</span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;<span class="comment"># be necessary to disable the index and replace it with your own. The</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<span class="comment"># DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;<span class="comment"># of each HTML page. A value of NO enables the index and the value YES disables</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="comment"># it. Since the tabs in the index contain the same information as the navigation</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;<span class="comment"># tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;<span class="comment">DISABLE_INDEX = NO</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;<span class="comment"># The GENERATE_TREEVIEW tag is used to specify whether a tree-like index</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;<span class="comment"># structure should be generated to display hierarchical information. If the tag</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;<span class="comment"># value is set to YES, a side panel will be generated containing a tree-like</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;<span class="comment"># index structure (just like the one that is generated for HTML Help). For this</span></div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;<span class="comment"># to work a browser that supports JavaScript, DHTML, CSS and frames is required</span></div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;<span class="comment"># (i.e. any modern browser). Windows users are probably better off using the</span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;<span class="comment"># HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="comment"># further fine-tune the look of the index. As an example, the default style</span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;<span class="comment"># sheet generated by doxygen has an example that shows how to put an image at</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;<span class="comment"># the root of the tree instead of the PROJECT_NAME. Since the tree basically has</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;<span class="comment"># the same information as the tab index, you could consider setting</span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;<span class="comment"># DISABLE_INDEX to YES when enabling this option.</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;<span class="comment">GENERATE_TREEVIEW = NO</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;<span class="comment"># The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;<span class="comment"># doxygen will group on one line in the generated HTML documentation.</span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="comment"># Note that a value of 0 will completely suppress the enum values from appearing</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;<span class="comment"># in the overview section.</span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 20, default value: 4.</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;<span class="comment">ENUM_VALUES_PER_LINE = 4</span></div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;<span class="comment"># If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used</span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;<span class="comment"># to set the initial width (in pixels) of the frame in which the tree is shown.</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 1500, default value: 250.</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;<span class="comment">TREEVIEW_WIDTH = 250</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;<span class="comment"># If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="comment"># external symbols imported via tag files in a separate window.</span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;<span class="comment">EXT_LINKS_IN_WINDOW = NO</span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<span class="comment"># Use this tag to change the font size of LaTeX formulas included as images in</span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<span class="comment"># the HTML documentation. When you change the font size after a successful</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;<span class="comment"># doxygen run you need to manually remove any form_*.png images from the HTML</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;<span class="comment"># output directory to force them to be regenerated.</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;<span class="comment"># Minimum value: 8, maximum value: 50, default value: 10.</span></div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;<span class="comment">FORMULA_FONTSIZE = 10</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;<span class="comment"># Use the FORMULA_TRANPARENT tag to determine whether or not the images</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;<span class="comment"># generated for formulas are transparent PNGs. Transparent PNGs are not</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;<span class="comment"># supported properly for IE 6.0, but are supported on all modern browsers.</span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="comment"># Note that when changing this option you need to delete any form_*.png files in</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;<span class="comment"># the HTML output directory before the changes have effect.</span></div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;<span class="comment">FORMULA_TRANSPARENT = YES</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="comment"># Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;<span class="comment"># http://www.mathjax.org) which uses client side Javascript for the rendering</span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;<span class="comment"># instead of using pre-rendered bitmaps. Use this if you do not have LaTeX</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;<span class="comment"># installed or if you want to formulas look prettier in the HTML output. When</span></div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;<span class="comment"># enabled you may also need to install MathJax separately and configure the path</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="comment"># to it using the MATHJAX_RELPATH option.</span></div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="comment">USE_MATHJAX = NO</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;<span class="comment"># When MathJax is enabled you can set the default output format to be used for</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;<span class="comment"># the MathJax output. See the MathJax site (see:</span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="comment"># http://docs.mathjax.org/en/latest/output.html) for more details.</span></div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="comment"># Possible values are: HTML-CSS (which is slower, but has the best</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;<span class="comment"># compatibility), NativeMML (i.e. MathML) and SVG.</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;<span class="comment"># The default value is: HTML-CSS.</span></div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;<span class="comment">MATHJAX_FORMAT = HTML-CSS</span></div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;<span class="comment"># When MathJax is enabled you need to specify the location relative to the HTML</span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;<span class="comment"># output directory using the MATHJAX_RELPATH option. The destination directory</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;<span class="comment"># should contain the MathJax.js script. For instance, if the mathjax directory</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<span class="comment"># is located at the same level as the HTML output directory, then</span></div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;<span class="comment"># MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;<span class="comment"># Content Delivery Network so you can quickly see the result without installing</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;<span class="comment"># MathJax. However, it is strongly recommended to install a local copy of</span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;<span class="comment"># MathJax from http://www.mathjax.org before deployment.</span></div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;<span class="comment"># The default value is: http://cdn.mathjax.org/mathjax/latest.</span></div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;<span class="comment">MATHJAX_RELPATH = http://www.mathjax.org/mathjax</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment"># The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax</span></div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment"># extension names that should be enabled during MathJax rendering. For example</span></div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;<span class="comment"># MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;<span class="comment">MATHJAX_EXTENSIONS = </span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;<span class="comment"># The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;<span class="comment"># of code that will be used on startup of the MathJax code. See the MathJax site</span></div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="comment"># (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an</span></div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;<span class="comment"># example see the documentation.</span></div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;<span class="comment">MATHJAX_CODEFILE = </span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;<span class="comment"># When the SEARCHENGINE tag is enabled doxygen will generate a search box for</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;<span class="comment"># the HTML output. The underlying search engine uses javascript and DHTML and</span></div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="comment"># should work on any modern browser. Note that when using HTML help</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;<span class="comment"># (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)</span></div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;<span class="comment"># there is already a search function so this one should typically be disabled.</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;<span class="comment"># For large projects the javascript based search engine can be slow, then</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;<span class="comment"># enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;<span class="comment"># search using the keyboard; to jump to the search box use &lt;access key&gt; + S</span></div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="comment"># (what the &lt;access key&gt; is depends on the OS and browser, but it is typically</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;<span class="comment"># &lt;CTRL&gt;, &lt;ALT&gt;/&lt;option&gt;, or both). Inside the search box use the &lt;cursor down</span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;<span class="comment"># key&gt; to jump into the search results window, the results can be navigated</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;<span class="comment"># using the &lt;cursor keys&gt;. Press &lt;Enter&gt; to select an item or &lt;escape&gt; to cancel</span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;<span class="comment"># the search. The filter options can be selected when the cursor is inside the</span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;<span class="comment"># search box by pressing &lt;Shift&gt;+&lt;cursor down&gt;. Also here use the &lt;cursor keys&gt;</span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;<span class="comment"># to select a filter and &lt;Enter&gt; or &lt;escape&gt; to activate or cancel the filter</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;<span class="comment"># option.</span></div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;<span class="comment">SEARCHENGINE = YES</span></div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;<span class="comment"># When the SERVER_BASED_SEARCH tag is enabled the search engine will be</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;<span class="comment"># implemented using a web server instead of a web client using Javascript. There</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;<span class="comment"># are two flavors of web server based searching depending on the EXTERNAL_SEARCH</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;<span class="comment"># setting. When disabled, doxygen will generate a PHP script for searching and</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;<span class="comment"># an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing</span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="comment"># and searching needs to be provided by external tools. See the section</span></div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="comment"># &quot;External Indexing and Searching&quot; for details.</span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;<span class="comment">SERVER_BASED_SEARCH = NO</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;<span class="comment"># When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;<span class="comment"># script for searching. Instead the search results are written to an XML file</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;<span class="comment"># which needs to be processed by an external indexer. Doxygen will invoke an</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;<span class="comment"># external search engine pointed to by the SEARCHENGINE_URL option to obtain the</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;<span class="comment"># search results.</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;<span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;<span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;<span class="comment"># Xapian (see: http://xapian.org/).</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;<span class="comment"># See the section &quot;External Indexing and Searching&quot; for details.</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="comment">EXTERNAL_SEARCH = NO</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;<span class="comment"># The SEARCHENGINE_URL should point to a search engine hosted by a web server</span></div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="comment"># which will return the search results when EXTERNAL_SEARCH is enabled.</span></div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;<span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;<span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;<span class="comment"># Xapian (see: http://xapian.org/). See the section &quot;External Indexing and</span></div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;<span class="comment"># Searching&quot; for details.</span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;<span class="comment">SEARCHENGINE_URL = </span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;<span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed</span></div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;<span class="comment"># search data is written to a file for indexing by an external tool. With the</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;<span class="comment"># SEARCHDATA_FILE tag the name of this file can be specified.</span></div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;<span class="comment"># The default file is: searchdata.xml.</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;<span class="comment">SEARCHDATA_FILE = searchdata.xml</span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;<span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;<span class="comment"># EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;<span class="comment"># useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple</span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;<span class="comment"># projects and redirect the results back to the right project.</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;<span class="comment">EXTERNAL_SEARCH_ID = </span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;<span class="comment"># The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;<span class="comment"># projects other than the one defined by this configuration file, but that are</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;<span class="comment"># all added to the same external search index. Each project needs to have a</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;<span class="comment"># unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;<span class="comment"># to a relative location where the documentation can be found. The format is:</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment"># EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;<span class="comment">EXTRA_SEARCH_MAPPINGS = </span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;<span class="comment"># Configuration options related to the LaTeX output</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;<span class="comment"># If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;<span class="comment">GENERATE_LATEX = NO</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment"># The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="comment"># it.</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="comment"># The default directory is: latex.</span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;<span class="comment">LATEX_OUTPUT = latex</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;<span class="comment"># The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;<span class="comment"># invoked.</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<span class="comment"># Note that when enabling USE_PDFLATEX this option is only used for generating</span></div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment"># bitmaps for formulas in the HTML output, but not in the Makefile that is</span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="comment"># written to the output directory.</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;<span class="comment"># The default file is: latex.</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;<span class="comment">LATEX_CMD_NAME = latex</span></div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;<span class="comment"># The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;<span class="comment"># index for LaTeX.</span></div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;<span class="comment"># The default file is: makeindex.</span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;<span class="comment">MAKEINDEX_CMD_NAME = makeindex</span></div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;<span class="comment"># If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;<span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;<span class="comment"># trees in general.</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="comment">COMPACT_LATEX = NO</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<span class="comment"># The PAPER_TYPE tag can be used to set the paper type that is used by the</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="comment"># printer.</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;<span class="comment"># Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;<span class="comment"># 14 inches) and executive (7.25 x 10.5 inches).</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;<span class="comment"># The default value is: a4.</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;<span class="comment">PAPER_TYPE = a4wide</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;<span class="comment"># The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;<span class="comment"># that should be included in the LaTeX output. The package can be specified just</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;<span class="comment"># by its name or with the correct syntax as to be used with the LaTeX</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;<span class="comment"># \usepackage command. To get the times font for instance you can specify :</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;<span class="comment"># EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;<span class="comment"># To use the option intlimits with the amsmath package you can specify:</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;<span class="comment"># EXTRA_PACKAGES=[intlimits]{amsmath}</span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;<span class="comment"># If left blank no extra packages will be included.</span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;<span class="comment">EXTRA_PACKAGES = </span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;<span class="comment"># The LATEX_HEADER tag can be used to specify a personal LaTeX header for the</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;<span class="comment"># generated LaTeX document. The header should contain everything until the first</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="comment"># chapter. If it is left blank doxygen will generate a standard header. See</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment"># section &quot;Doxygen usage&quot; for information on how to let doxygen write the</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;<span class="comment"># default header to a separate file.</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;<span class="comment"># Note: Only use a user-defined header if you know what you are doing! The</span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;<span class="comment"># following commands have a special meaning inside the header: $title,</span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;<span class="comment"># $datetime, $date, $doxygenversion, $projectname, $projectnumber,</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;<span class="comment"># $projectbrief, $projectlogo. Doxygen will replace $title with the empty</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<span class="comment"># string, for the replacement values of the other commands the user is referred</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;<span class="comment"># to HTML_HEADER.</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;<span class="comment">LATEX_HEADER = </span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="comment"># The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the</span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;<span class="comment"># generated LaTeX document. The footer should contain everything after the last</span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;<span class="comment"># chapter. If it is left blank doxygen will generate a standard footer. See</span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;<span class="comment"># LATEX_HEADER for more information on how to generate a default footer and what</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;<span class="comment"># special commands can be used inside the footer.</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;<span class="comment"># Note: Only use a user-defined footer if you know what you are doing!</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;<span class="comment">LATEX_FOOTER = </span></div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;<span class="comment"># The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;<span class="comment"># LaTeX style sheets that are included after the standard style sheets created</span></div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;<span class="comment"># by doxygen. Using this option one can overrule certain style aspects. Doxygen</span></div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<span class="comment"># will copy the style sheet files to the output directory.</span></div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;<span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;<span class="comment"># list).</span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;<span class="comment">LATEX_EXTRA_STYLESHEET = </span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;<span class="comment"># The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;<span class="comment"># other source files which should be copied to the LATEX_OUTPUT output</span></div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;<span class="comment"># directory. Note that the files will be copied as-is; there are no commands or</span></div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;<span class="comment"># markers available.</span></div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;<span class="comment">LATEX_EXTRA_FILES = </span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="comment"># If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;<span class="comment"># prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;<span class="comment"># contain links (just like the HTML output) instead of page references. This</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;<span class="comment"># makes the output suitable for online browsing using a PDF viewer.</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;<span class="comment">PDF_HYPERLINKS = NO</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;<span class="comment"># If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;<span class="comment"># the PDF file directly from the LaTeX files. Set this option to YES, to get a</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;<span class="comment"># higher quality PDF documentation.</span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;<span class="comment">USE_PDFLATEX = YES</span></div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;<span class="comment"># If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;<span class="comment"># command to the generated LaTeX files. This will instruct LaTeX to keep running</span></div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;<span class="comment"># if errors occur, instead of asking the user for help. This option is also used</span></div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;<span class="comment"># when generating formulas in HTML.</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;<span class="comment">LATEX_BATCHMODE = NO</span></div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;<span class="comment"># If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the</span></div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;<span class="comment"># index chapters (such as File Index, Compound Index, etc.) in the output.</span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;<span class="comment">LATEX_HIDE_INDICES = NO</span></div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;<span class="comment"># If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source</span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;<span class="comment"># code with syntax highlighting in the LaTeX output.</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;<span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;<span class="comment"># SOURCE_BROWSER.</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;<span class="comment">LATEX_SOURCE_CODE = NO</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;<span class="comment"># The LATEX_BIB_STYLE tag can be used to specify the style to use for the</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;<span class="comment"># bibliography, e.g. plainnat, or ieeetr. See</span></div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;<span class="comment"># http://en.wikipedia.org/wiki/BibTeX and \cite for more info.</span></div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;<span class="comment"># The default value is: plain.</span></div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;<span class="comment">LATEX_BIB_STYLE = plain</span></div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;<span class="comment"># Configuration options related to the RTF output</span></div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;<span class="comment"># If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The</span></div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;<span class="comment"># RTF output is optimized for Word 97 and may not look too pretty with other RTF</span></div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;<span class="comment"># readers/editors.</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;<span class="comment">GENERATE_RTF = NO</span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;<span class="comment"># The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;<span class="comment"># it.</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;<span class="comment"># The default directory is: rtf.</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;<span class="comment">RTF_OUTPUT = glm.rtf</span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;<span class="comment"># If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF</span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;<span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;<span class="comment"># trees in general.</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;<span class="comment">COMPACT_RTF = NO</span></div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;<span class="comment"># If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will</span></div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;<span class="comment"># contain hyperlink fields. The RTF file will contain links (just like the HTML</span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;<span class="comment"># output) instead of page references. This makes the output suitable for online</span></div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;<span class="comment"># browsing using Word or some other Word compatible readers that support those</span></div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;<span class="comment"># fields.</span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;<span class="comment"># Note: WordPad (write) and others do not support links.</span></div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;<span class="comment">RTF_HYPERLINKS = YES</span></div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;<span class="comment"># Load stylesheet definitions from file. Syntax is similar to doxygen&#39;s config</span></div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;<span class="comment"># file, i.e. a series of assignments. You only have to provide replacements,</span></div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;<span class="comment"># missing definitions are set to their default value.</span></div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;<span class="comment"># See also section &quot;Doxygen usage&quot; for information on how to generate the</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;<span class="comment"># default style sheet that doxygen normally uses.</span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;<span class="comment">RTF_STYLESHEET_FILE = </span></div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;<span class="comment"># Set optional variables used in the generation of an RTF document. Syntax is</span></div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;<span class="comment"># similar to doxygen&#39;s config file. A template extensions file can be generated</span></div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;<span class="comment"># using doxygen -e rtf extensionFile.</span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;<span class="comment">RTF_EXTENSIONS_FILE = </span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;<span class="comment"># If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;<span class="comment"># with syntax highlighting in the RTF output.</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;<span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;<span class="comment"># SOURCE_BROWSER.</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;<span class="comment">RTF_SOURCE_CODE = NO</span></div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;<span class="comment"># Configuration options related to the man page output</span></div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;<span class="comment"># If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;<span class="comment"># classes and files.</span></div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;<span class="comment">GENERATE_MAN = NO</span></div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;<span class="comment"># The MAN_OUTPUT tag is used to specify where the man pages will be put. If a</span></div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;<span class="comment"># it. A directory man3 will be created inside the directory specified by</span></div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;<span class="comment"># MAN_OUTPUT.</span></div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;<span class="comment"># The default directory is: man.</span></div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;<span class="comment">MAN_OUTPUT = man</span></div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;<span class="comment"># The MAN_EXTENSION tag determines the extension that is added to the generated</span></div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;<span class="comment"># man pages. In case the manual section does not start with a number, the number</span></div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;<span class="comment"># 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;<span class="comment"># optional.</span></div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;<span class="comment"># The default value is: .3.</span></div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;<span class="comment">MAN_EXTENSION = .3</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;<span class="comment"># The MAN_SUBDIR tag determines the name of the directory created within</span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;<span class="comment"># MAN_OUTPUT in which the man pages are placed. If defaults to man followed by</span></div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;<span class="comment"># MAN_EXTENSION with the initial . removed.</span></div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;<span class="comment">MAN_SUBDIR = </span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;<span class="comment"># If the MAN_LINKS tag is set to YES and doxygen generates man output, then it</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;<span class="comment"># will generate one additional man file for each entity documented in the real</span></div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;<span class="comment"># man page(s). These additional files only source the real man page, but without</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;<span class="comment"># them the man command would be unable to find the correct page.</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;<span class="comment">MAN_LINKS = NO</span></div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="comment"># Configuration options related to the XML output</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;<span class="comment"># If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that</span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="comment"># captures the structure of the code including all documentation.</span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;<span class="comment">GENERATE_XML = NO</span></div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;<span class="comment"># The XML_OUTPUT tag is used to specify where the XML pages will be put. If a</span></div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;<span class="comment"># it.</span></div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;<span class="comment"># The default directory is: xml.</span></div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;<span class="comment">XML_OUTPUT = xml</span></div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;<span class="comment"># If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program</span></div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;<span class="comment"># listings (including syntax highlighting and cross-referencing information) to</span></div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;<span class="comment"># the XML output. Note that enabling this will significantly increase the size</span></div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;<span class="comment"># of the XML output.</span></div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="comment">XML_PROGRAMLISTING = YES</span></div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;<span class="comment"># Configuration options related to the DOCBOOK output</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;<span class="comment"># If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files</span></div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;<span class="comment"># that can be used to generate PDF.</span></div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;<span class="comment">GENERATE_DOCBOOK = NO</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;<span class="comment"># The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.</span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;<span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be put in</span></div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;<span class="comment"># front of it.</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;<span class="comment"># The default directory is: docbook.</span></div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;<span class="comment">DOCBOOK_OUTPUT = docbook</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="comment"># If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;<span class="comment"># program listings (including syntax highlighting and cross-referencing</span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="comment"># information) to the DOCBOOK output. Note that enabling this will significantly</span></div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="comment"># increase the size of the DOCBOOK output.</span></div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="comment">DOCBOOK_PROGRAMLISTING = NO</span></div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="comment"># Configuration options for the AutoGen Definitions output</span></div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;<span class="comment"># If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an</span></div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;<span class="comment"># AutoGen Definitions (see http://autogen.sf.net) file that captures the</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;<span class="comment"># structure of the code including all documentation. Note that this feature is</span></div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;<span class="comment"># still experimental and incomplete at the moment.</span></div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;<span class="comment">GENERATE_AUTOGEN_DEF = NO</span></div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<span class="comment"># Configuration options related to the Perl module output</span></div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;<span class="comment"># If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module</span></div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;<span class="comment"># file that captures the structure of the code including all documentation.</span></div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;<span class="comment"># Note that this feature is still experimental and incomplete at the moment.</span></div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;<span class="comment">GENERATE_PERLMOD = NO</span></div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;<span class="comment"># If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary</span></div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;<span class="comment"># Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI</span></div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;<span class="comment"># output from the Perl module output.</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;<span class="comment">PERLMOD_LATEX = NO</span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;<span class="comment"># If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely</span></div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;<span class="comment"># formatted so it can be parsed by a human reader. This is useful if you want to</span></div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;<span class="comment"># understand what is going on. On the other hand, if this tag is set to NO, the</span></div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;<span class="comment"># size of the Perl module output will be much smaller and Perl will parse it</span></div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="comment"># just the same.</span></div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;<span class="comment">PERLMOD_PRETTY = YES</span></div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;<span class="comment"># The names of the make variables in the generated doxyrules.make file are</span></div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;<span class="comment"># prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful</span></div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;<span class="comment"># so different doxyrules.make files included by the same Makefile don&#39;t</span></div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;<span class="comment"># overwrite each other&#39;s variables.</span></div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;<span class="comment">PERLMOD_MAKEVAR_PREFIX = </span></div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;<span class="comment"># Configuration options related to the preprocessor</span></div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;<span class="comment"># If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all</span></div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;<span class="comment"># C-preprocessor directives found in the sources and include files.</span></div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;<span class="comment">ENABLE_PREPROCESSING = YES</span></div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;<span class="comment"># If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;<span class="comment"># in the source code. If set to NO, only conditional compilation will be</span></div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;<span class="comment"># performed. Macro expansion can be done in a controlled way by setting</span></div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;<span class="comment"># EXPAND_ONLY_PREDEF to YES.</span></div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;<span class="comment">MACRO_EXPANSION = NO</span></div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;<span class="comment"># If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then</span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;<span class="comment"># the macro expansion is limited to the macros specified with the PREDEFINED and</span></div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;<span class="comment"># EXPAND_AS_DEFINED tags.</span></div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;<span class="comment">EXPAND_ONLY_PREDEF = NO</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;<span class="comment"># If the SEARCH_INCLUDES tag is set to YES, the include files in the</span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;<span class="comment"># INCLUDE_PATH will be searched if a #include is found.</span></div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;<span class="comment">SEARCH_INCLUDES = YES</span></div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;<span class="comment"># The INCLUDE_PATH tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;<span class="comment"># contain include files that are not input files but should be processed by the</span></div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;<span class="comment"># preprocessor.</span></div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;<span class="comment"># This tag requires that the tag SEARCH_INCLUDES is set to YES.</span></div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;<span class="comment">INCLUDE_PATH = </span></div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;<span class="comment"># You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard</span></div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;<span class="comment"># patterns (like *.h and *.hpp) to filter out the header-files in the</span></div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;<span class="comment"># directories. If left blank, the patterns specified with FILE_PATTERNS will be</span></div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;<span class="comment"># used.</span></div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;<span class="comment">INCLUDE_FILE_PATTERNS = </span></div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;<span class="comment"># The PREDEFINED tag can be used to specify one or more macro names that are</span></div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;<span class="comment"># defined before the preprocessor is started (similar to the -D option of e.g.</span></div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;<span class="comment"># gcc). The argument of the tag is a list of macros of the form: name or</span></div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;<span class="comment"># name=definition (no spaces). If the definition and the &quot;=&quot; are omitted, &quot;=1&quot;</span></div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;<span class="comment"># is assumed. To prevent a macro definition from being undefined via #undef or</span></div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;<span class="comment"># recursively expanded use the := operator instead of the = operator.</span></div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;<span class="comment">PREDEFINED = </span></div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;<span class="comment"># If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this</span></div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;<span class="comment"># tag can be used to specify a list of macro names that should be expanded. The</span></div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;<span class="comment"># macro definition that is found in the sources will be used. Use the PREDEFINED</span></div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;<span class="comment"># tag if you want to use a different macro definition that overrules the</span></div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;<span class="comment"># definition found in the source code.</span></div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;<span class="comment">EXPAND_AS_DEFINED = </span></div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;<span class="comment"># If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen&#39;s preprocessor will</span></div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;<span class="comment"># remove all references to function-like macros that are alone on a line, have</span></div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;<span class="comment"># an all uppercase name, and do not end with a semicolon. Such function macros</span></div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;<span class="comment"># are typically used for boiler-plate code, and will confuse the parser if not</span></div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;<span class="comment"># removed.</span></div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;<span class="comment">SKIP_FUNCTION_MACROS = YES</span></div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;<span class="comment"># Configuration options related to external references</span></div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;<span class="comment"># The TAGFILES tag can be used to specify one or more tag files. For each tag</span></div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;<span class="comment"># file the location of the external documentation should be added. The format of</span></div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;<span class="comment"># a tag file without this location is as follows:</span></div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;<span class="comment"># TAGFILES = file1 file2 ...</span></div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;<span class="comment"># Adding location for the tag files is done as follows:</span></div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;<span class="comment"># TAGFILES = file1=loc1 &quot;file2 = loc2&quot; ...</span></div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;<span class="comment"># where loc1 and loc2 can be relative or absolute paths or URLs. See the</span></div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;<span class="comment"># section &quot;Linking to external documentation&quot; for more information about the use</span></div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;<span class="comment"># of tag files.</span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;<span class="comment"># Note: Each tag file must have a unique name (where the name does NOT include</span></div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;<span class="comment"># the path). If a tag file is not located in the directory in which doxygen is</span></div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;<span class="comment"># run, you must also specify the path to the tagfile here.</span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;<span class="comment">TAGFILES = </span></div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;<span class="comment"># When a file name is specified after GENERATE_TAGFILE, doxygen will create a</span></div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;<span class="comment"># tag file that is based on the input files it reads. See section &quot;Linking to</span></div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;<span class="comment"># external documentation&quot; for more information about the usage of tag files.</span></div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;<span class="comment">GENERATE_TAGFILE = </span></div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;<span class="comment"># If the ALLEXTERNALS tag is set to YES, all external class will be listed in</span></div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;<span class="comment"># the class index. If set to NO, only the inherited external classes will be</span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;<span class="comment"># listed.</span></div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;<span class="comment">ALLEXTERNALS = NO</span></div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;<span class="comment"># If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed</span></div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;<span class="comment"># in the modules index. If set to NO, only the current project&#39;s groups will be</span></div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;<span class="comment"># listed.</span></div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<span class="comment">EXTERNAL_GROUPS = YES</span></div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="comment"># If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in</span></div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;<span class="comment"># the related pages index. If set to NO, only the current project&#39;s pages will</span></div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;<span class="comment"># be listed.</span></div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;<span class="comment">EXTERNAL_PAGES = YES</span></div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;<span class="comment"># The PERL_PATH should be the absolute path and name of the perl script</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<span class="comment"># interpreter (i.e. the result of &#39;which perl&#39;).</span></div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;<span class="comment"># The default file (with absolute path) is: /usr/bin/perl.</span></div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;<span class="comment">PERL_PATH = /usr/bin/perl</span></div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="comment"># Configuration options related to the dot tool</span></div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;<span class="comment"># If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram</span></div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;<span class="comment"># (in HTML and LaTeX) for classes with base or super classes. Setting the tag to</span></div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;<span class="comment"># NO turns the diagrams off. Note that this option also works with HAVE_DOT</span></div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;<span class="comment"># disabled, but it is recommended to install and use dot, since it yields more</span></div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;<span class="comment"># powerful graphs.</span></div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;<span class="comment">CLASS_DIAGRAMS = YES</span></div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;<span class="comment"># You can define message sequence charts within doxygen comments using the \msc</span></div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;<span class="comment"># command. Doxygen will then run the mscgen tool (see:</span></div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;<span class="comment"># http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the</span></div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;<span class="comment"># documentation. The MSCGEN_PATH tag allows you to specify the directory where</span></div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;<span class="comment"># the mscgen tool resides. If left empty the tool is assumed to be found in the</span></div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;<span class="comment"># default search path.</span></div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;<span class="comment">MSCGEN_PATH = </span></div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="comment"># You can include diagrams made with dia in doxygen documentation. Doxygen will</span></div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;<span class="comment"># then run dia to produce the diagram and insert it in the documentation. The</span></div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;<span class="comment"># DIA_PATH tag allows you to specify the directory where the dia binary resides.</span></div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;<span class="comment"># If left empty dia is assumed to be found in the default search path.</span></div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;<span class="comment">DIA_PATH = </span></div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;<span class="comment"># If set to YES the inheritance and collaboration graphs will hide inheritance</span></div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;<span class="comment"># and usage relations if the target is undocumented or is not a class.</span></div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;<span class="comment">HIDE_UNDOC_RELATIONS = YES</span></div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;<span class="comment"># If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is</span></div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;<span class="comment"># available from the path. This tool is part of Graphviz (see:</span></div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;<span class="comment"># http://www.graphviz.org/), a graph visualization toolkit from AT&amp;T and Lucent</span></div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;<span class="comment"># Bell Labs. The other options in this section have no effect if this option is</span></div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="comment"># set to NO</span></div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;<span class="comment">HAVE_DOT = NO</span></div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;<span class="comment"># The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed</span></div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;<span class="comment"># to run in parallel. When set to 0 doxygen will base this on the number of</span></div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;<span class="comment"># processors available in the system. You can set it explicitly to a value</span></div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;<span class="comment"># larger than 0 to get control over the balance between CPU load and processing</span></div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;<span class="comment"># speed.</span></div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 32, default value: 0.</span></div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;<span class="comment">DOT_NUM_THREADS = 0</span></div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;<span class="comment"># When you want a differently looking font in the dot files that doxygen</span></div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;<span class="comment"># generates you can specify the font name using DOT_FONTNAME. You need to make</span></div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;<span class="comment"># sure dot is able to find the font, which can be done by putting it in a</span></div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;<span class="comment"># standard location or by setting the DOTFONTPATH environment variable or by</span></div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;<span class="comment"># setting DOT_FONTPATH to the directory containing the font.</span></div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;<span class="comment"># The default value is: Helvetica.</span></div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;<span class="comment">DOT_FONTNAME = Helvetica</span></div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;<span class="comment"># The DOT_FONTSIZE tag can be used to set the size (in points) of the font of</span></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;<span class="comment"># dot graphs.</span></div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;<span class="comment"># Minimum value: 4, maximum value: 24, default value: 10.</span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;<span class="comment">DOT_FONTSIZE = 10</span></div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<span class="comment"># By default doxygen will tell dot to use the default font as specified with</span></div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;<span class="comment"># DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set</span></div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;<span class="comment"># the path where dot can find it using this tag.</span></div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<span class="comment">DOT_FONTPATH = </span></div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;<span class="comment"># If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for</span></div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;<span class="comment"># each documented class showing the direct and indirect inheritance relations.</span></div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;<span class="comment"># Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.</span></div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;<span class="comment">CLASS_GRAPH = YES</span></div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;<span class="comment"># If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a</span></div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;<span class="comment"># graph for each documented class showing the direct and indirect implementation</span></div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;<span class="comment"># dependencies (inheritance, containment, and class references variables) of the</span></div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;<span class="comment"># class with other documented classes.</span></div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;<span class="comment">COLLABORATION_GRAPH = YES</span></div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;<span class="comment"># If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for</span></div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;<span class="comment"># groups, showing the direct groups dependencies.</span></div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;<span class="comment">GROUP_GRAPHS = YES</span></div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;<span class="comment"># If the UML_LOOK tag is set to YES, doxygen will generate inheritance and</span></div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;<span class="comment"># collaboration diagrams in a style similar to the OMG&#39;s Unified Modeling</span></div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;<span class="comment"># Language.</span></div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;<span class="comment">UML_LOOK = NO</span></div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;<span class="comment"># If the UML_LOOK tag is enabled, the fields and methods are shown inside the</span></div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;<span class="comment"># class node. If there are many fields or methods and many nodes the graph may</span></div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;<span class="comment"># become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the</span></div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;<span class="comment"># number of items for each type to make the size more manageable. Set this to 0</span></div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;<span class="comment"># for no limit. Note that the threshold may be exceeded by 50% before the limit</span></div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;<span class="comment"># is enforced. So when you set the threshold to 10, up to 15 fields may appear,</span></div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;<span class="comment"># but if the number exceeds 15, the total amount of fields shown is limited to</span></div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;<span class="comment"># 10.</span></div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 100, default value: 10.</span></div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;<span class="comment">UML_LIMIT_NUM_FIELDS = 10</span></div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;<span class="comment"># If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and</span></div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;<span class="comment"># collaboration graphs will show the relations between templates and their</span></div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;<span class="comment"># instances.</span></div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="comment">TEMPLATE_RELATIONS = NO</span></div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;<span class="comment"># If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to</span></div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;<span class="comment"># YES then doxygen will generate a graph for each documented file showing the</span></div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;<span class="comment"># direct and indirect include dependencies of the file with other documented</span></div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;<span class="comment"># files.</span></div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;<span class="comment">INCLUDE_GRAPH = YES</span></div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;<span class="comment"># If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are</span></div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;<span class="comment"># set to YES then doxygen will generate a graph for each documented file showing</span></div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;<span class="comment"># the direct and indirect include dependencies of the file with other documented</span></div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="comment"># files.</span></div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;<span class="comment">INCLUDED_BY_GRAPH = YES</span></div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;<span class="comment"># If the CALL_GRAPH tag is set to YES then doxygen will generate a call</span></div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;<span class="comment"># dependency graph for every global function or class method.</span></div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;<span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="comment"># So in most cases it will be better to enable call graphs for selected</span></div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;<span class="comment"># functions only using the \callgraph command. Disabling a call graph can be</span></div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;<span class="comment"># accomplished by means of the command \hidecallgraph.</span></div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;<span class="comment">CALL_GRAPH = YES</span></div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;<span class="comment"># If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller</span></div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;<span class="comment"># dependency graph for every global function or class method.</span></div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;<span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;<span class="comment"># So in most cases it will be better to enable caller graphs for selected</span></div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;<span class="comment"># functions only using the \callergraph command. Disabling a caller graph can be</span></div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;<span class="comment"># accomplished by means of the command \hidecallergraph.</span></div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;<span class="comment">CALLER_GRAPH = YES</span></div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;<span class="comment"># If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical</span></div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;<span class="comment"># hierarchy of all classes instead of a textual one.</span></div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;<span class="comment">GRAPHICAL_HIERARCHY = YES</span></div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;<span class="comment"># If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the</span></div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;<span class="comment"># dependencies a directory has on other directories in a graphical way. The</span></div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;<span class="comment"># dependency relations are determined by the #include relations between the</span></div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;<span class="comment"># files in the directories.</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;<span class="comment">DIRECTORY_GRAPH = YES</span></div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;<span class="comment"># The DOT_IMAGE_FORMAT tag can be used to set the image format of the images</span></div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;<span class="comment"># generated by dot. For an explanation of the image formats see the section</span></div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;<span class="comment"># output formats in the documentation of the dot tool (Graphviz (see:</span></div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;<span class="comment"># http://www.graphviz.org/)).</span></div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;<span class="comment"># Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order</span></div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;<span class="comment"># to make the SVG files visible in IE 9+ (other browsers do not have this</span></div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;<span class="comment"># requirement).</span></div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;<span class="comment"># Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,</span></div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;<span class="comment"># png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and</span></div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;<span class="comment"># png:gdiplus:gdiplus.</span></div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;<span class="comment"># The default value is: png.</span></div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;<span class="comment">DOT_IMAGE_FORMAT = png</span></div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;<span class="comment"># If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to</span></div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;<span class="comment"># enable generation of interactive SVG images that allow zooming and panning.</span></div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160;<span class="comment"># Note that this requires a modern browser other than Internet Explorer. Tested</span></div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;<span class="comment"># and working are Firefox, Chrome, Safari, and Opera.</span></div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;<span class="comment"># Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make</span></div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;<span class="comment"># the SVG files visible. Older versions of IE do not have SVG support.</span></div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;<span class="comment">INTERACTIVE_SVG = NO</span></div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;<span class="comment"># The DOT_PATH tag can be used to specify the path where the dot tool can be</span></div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;<span class="comment"># found. If left blank, it is assumed the dot tool can be found in the path.</span></div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;<span class="comment">DOT_PATH = </span></div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;<span class="comment"># The DOTFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;<span class="comment"># contain dot files that are included in the documentation (see the \dotfile</span></div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;<span class="comment"># command).</span></div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;<span class="comment">DOTFILE_DIRS = </span></div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;<span class="comment"># The MSCFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;<span class="comment"># contain msc files that are included in the documentation (see the \mscfile</span></div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;<span class="comment"># command).</span></div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;<span class="comment">MSCFILE_DIRS = </span></div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;<span class="comment"># The DIAFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;<span class="comment"># contain dia files that are included in the documentation (see the \diafile</span></div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;<span class="comment"># command).</span></div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;<span class="comment">DIAFILE_DIRS = </span></div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;<span class="comment"># When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the</span></div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;<span class="comment"># path where java can find the plantuml.jar file. If left blank, it is assumed</span></div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;<span class="comment"># PlantUML is not used or called during a preprocessing step. Doxygen will</span></div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;<span class="comment"># generate a warning when it encounters a \startuml command in this case and</span></div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;<span class="comment"># will not generate output for the diagram.</span></div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;<span class="comment">PLANTUML_JAR_PATH = </span></div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;<span class="comment"># When using plantuml, the specified paths are searched for files specified by</span></div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;<span class="comment"># the !include statement in a plantuml block.</span></div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;<span class="comment">PLANTUML_INCLUDE_PATH = </span></div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;<span class="comment"># The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes</span></div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;<span class="comment"># that will be shown in the graph. If the number of nodes in a graph becomes</span></div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;<span class="comment"># larger than this value, doxygen will truncate the graph, which is visualized</span></div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;<span class="comment"># by representing a node as a red box. Note that doxygen if the number of direct</span></div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;<span class="comment"># children of the root node in a graph is already larger than</span></div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;<span class="comment"># DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that</span></div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;<span class="comment"># the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.</span></div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 10000, default value: 50.</span></div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;<span class="comment">DOT_GRAPH_MAX_NODES = 50</span></div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;<span class="comment"># The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs</span></div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;<span class="comment"># generated by dot. A depth value of 3 means that only nodes reachable from the</span></div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;<span class="comment"># root by following a path via at most 3 edges will be shown. Nodes that lay</span></div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;<span class="comment"># further from the root node will be omitted. Note that setting this option to 1</span></div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;<span class="comment"># or 2 may greatly reduce the computation time needed for large code bases. Also</span></div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;<span class="comment"># note that the size of a graph can be further restricted by</span></div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;<span class="comment"># DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.</span></div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 1000, default value: 0.</span></div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;<span class="comment">MAX_DOT_GRAPH_DEPTH = 1000</span></div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;<span class="comment"># Set the DOT_TRANSPARENT tag to YES to generate images with a transparent</span></div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;<span class="comment"># background. This is disabled by default, because dot on Windows does not seem</span></div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;<span class="comment"># to support this out of the box.</span></div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;<span class="comment"># Warning: Depending on the platform used, enabling this option may lead to</span></div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;<span class="comment"># badly anti-aliased labels on the edges of a graph (i.e. they become hard to</span></div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;<span class="comment"># read).</span></div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;<span class="comment">DOT_TRANSPARENT = NO</span></div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;<span class="comment"># Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output</span></div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;<span class="comment"># files in one run (i.e. multiple -o and -T options on the command line). This</span></div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;<span class="comment"># makes dot run faster, but since only newer versions of dot (&gt;1.8.10) support</span></div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;<span class="comment"># this, this feature is disabled by default.</span></div>
+<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;<span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;<span class="comment">DOT_MULTI_TARGETS = NO</span></div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;<span class="comment"># If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page</span></div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;<span class="comment"># explaining the meaning of the various boxes and arrows in the dot generated</span></div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;<span class="comment"># graphs.</span></div>
+<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;<span class="comment">GENERATE_LEGEND = YES</span></div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;<span class="comment"># If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot</span></div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;<span class="comment"># files that are used to generate the various graphs.</span></div>
+<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;<span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;<span class="comment">DOT_CLEANUP = YES</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00052.html b/3rdparty/glm/doc/api/a00052.html
new file mode 100644
index 00000000000..84c12783a6c
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00052.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: mat2x2.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x2.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
+<p><a href="a00052_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00052_source.html">mat2x2.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00052_source.html b/3rdparty/glm/doc/api/a00052_source.html
index ff72ca2171e..62ad50933a5 100644
--- a/3rdparty/glm/doc/api/a00052_source.html
+++ b/3rdparty/glm/doc/api/a00052_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_matrix.hpp Source File</title>
+<title>0.9.9 API documenation: mat2x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,59 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_matrix.hpp</div> </div>
+<div class="title">mat2x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00050.html">intrinsic_geometric.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">void</span> sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; __m128 sse_mul_ps(__m128 m[4], __m128 v);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; __m128 sse_mul_ps(__m128 v, __m128 m[4]);</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> sse_mul_ps(__m128 <span class="keyword">const</span> in1[4], __m128 <span class="keyword">const</span> in2[4], __m128 out[4]);</div>
+<a href="a00052.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00113.html">detail/type_mat2x2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00157.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">void</span> sse_transpose_ps(__m128 <span class="keyword">const</span> in[4], __m128 out[4]);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">void</span> sse_inverse_ps(__m128 <span class="keyword">const</span> in[4], __m128 out[4]);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> sse_rotate_ps(__m128 <span class="keyword">const</span> in[4], <span class="keywordtype">float</span> Angle, <span class="keywordtype">float</span> <span class="keyword">const</span> v[3], __m128 out[4]);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; __m128 sse_det_ps(__m128 <span class="keyword">const</span> m[4]);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; __m128 sse_slow_det_ps(__m128 <span class="keyword">const</span> m[4]);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;intrinsic_matrix.inl&quot;</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00050_html"><div class="ttname"><a href="a00050.html">intrinsic_geometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00157.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00074">type_mat.hpp:74</a></div></div>
+<div class="ttc" id="a00157_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00053">type_mat.hpp:53</a></div></div>
+<div class="ttc" id="a00157_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00039">type_mat.hpp:39</a></div></div>
+<div class="ttc" id="a00157_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00046">type_mat.hpp:46</a></div></div>
+<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">type_mat2x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00060">type_mat.hpp:60</a></div></div>
+<div class="ttc" id="a00157_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00067">type_mat.hpp:67</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00053.html b/3rdparty/glm/doc/api/a00053.html
index 53427b8a1c3..9f609262cc9 100644
--- a/3rdparty/glm/doc/api/a00053.html
+++ b/3rdparty/glm/doc/api/a00053.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_trigonometric.hpp File Reference</title>
+<title>0.9.9 API documenation: mat2x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,28 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_trigonometric.hpp File Reference</div> </div>
+<div class="title">mat2x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00053_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-09 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00053_source.html">intrinsic_trigonometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00053_source.html">mat2x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00053_source.html b/3rdparty/glm/doc/api/a00053_source.html
index 0e2a1dd64be..f13f7c183ad 100644
--- a/3rdparty/glm/doc/api/a00053_source.html
+++ b/3rdparty/glm/doc/api/a00053_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_trigonometric.hpp Source File</title>
+<title>0.9.9 API documenation: mat2x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,37 +64,50 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_trigonometric.hpp</div> </div>
+<div class="title">mat2x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00053.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00114.html">detail/type_mat2x3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, lowp&gt; <a class="code" href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, highp&gt; <a class="code" href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;intrinsic_trigonometric.inl&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="ttc" id="a00157_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, lowp &gt; lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00086">type_mat.hpp:86</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat2x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, highp &gt; highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00100">type_mat.hpp:100</a></div></div>
+<div class="ttc" id="a00157_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, mediump &gt; mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00093">type_mat.hpp:93</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00054.html b/3rdparty/glm/doc/api/a00054.html
index df68a3efa74..a4d73ff656c 100644
--- a/3rdparty/glm/doc/api/a00054.html
+++ b/3rdparty/glm/doc/api/a00054.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_vector_relational.hpp File Reference</title>
+<title>0.9.9 API documenation: mat2x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,28 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_vector_relational.hpp File Reference</div> </div>
+<div class="title">mat2x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00054_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-09 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00054_source.html">intrinsic_vector_relational.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00054_source.html">mat2x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00054_source.html b/3rdparty/glm/doc/api/a00054_source.html
index 1b9dce7570b..f30a82f949f 100644
--- a/3rdparty/glm/doc/api/a00054_source.html
+++ b/3rdparty/glm/doc/api/a00054_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_vector_relational.hpp Source File</title>
+<title>0.9.9 API documenation: mat2x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,37 +64,49 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_vector_relational.hpp</div> </div>
+<div class="title">mat2x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00054.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00115.html">detail/type_mat2x4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, lowp&gt; <a class="code" href="a00157.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, mediump&gt; <a class="code" href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, highp&gt; <a class="code" href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if(!(GLM_ARCH &amp; GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># error &quot;SSE2 instructions not supported or enabled&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;intrinsic_vector_relational.inl&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00157.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, lowp &gt; lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00112">type_mat.hpp:112</a></div></div>
+<div class="ttc" id="a00115_html"><div class="ttname"><a href="a00115.html">type_mat2x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, mediump &gt; mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00119">type_mat.hpp:119</a></div></div>
+<div class="ttc" id="a00157_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, highp &gt; highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00126">type_mat.hpp:126</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00055.html b/3rdparty/glm/doc/api/a00055.html
index 7598e516618..96800edbd85 100644
--- a/3rdparty/glm/doc/api/a00055.html
+++ b/3rdparty/glm/doc/api/a00055.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: io.hpp File Reference</title>
+<title>0.9.9 API documenation: mat3x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,32 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">io.hpp File Reference</div> </div>
+<div class="title">mat3x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00055_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00205.html">GLM_GTX_io</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-11-22 / 2014-11-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Jan P Springer (<a href="#" onclick="location.href='mai'+'lto:'+'reg'+'ni'+'rps'+'j@'+'gma'+'il'+'.co'+'m'; return false;">regni<span style="display: none;">.nosp@m.</span>rpsj<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00055_source.html">io.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00055_source.html">mat3x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00055_source.html b/3rdparty/glm/doc/api/a00055_source.html
index 43cb20ac870..36efd52d9f4 100644
--- a/3rdparty/glm/doc/api/a00055_source.html
+++ b/3rdparty/glm/doc/api/a00055_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: io.hpp Source File</title>
+<title>0.9.9 API documenation: mat3x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,201 +64,49 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">io.hpp</div> </div>
+<div class="title">mat3x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00055.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(glm_ext))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_io extension included&quot;)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &lt;iosfwd&gt;</span> <span class="comment">// std::basic_ostream&lt;&gt; (fwd)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;locale&gt;</span> <span class="comment">// std::locale, std::locale::facet, std::locale::id</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// std::pair&lt;&gt;</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">namespace </span>io</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">enum</span> order_type { column_major, row_major};</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">class </span>format_punct : <span class="keyword">public</span> std::locale::facet</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> CTy char_type;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">static</span> std::locale::id id;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">bool</span> formatted;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">unsigned</span> precision;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">unsigned</span> width;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; char_type separator;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; char_type delim_left;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; char_type delim_right;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; char_type space;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; char_type newline;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; order_type order;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">explicit</span> format_punct(<span class="keywordtype">size_t</span> a = 0);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">explicit</span> format_punct(format_punct <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; };</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits&lt;CTy&gt; &gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">class </span>basic_state_saver {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">explicit</span> basic_state_saver(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; ~basic_state_saver();</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; typedef ::std::basic_ios&lt;CTy,CTr&gt; state_type;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> state_type::char_type char_type;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; typedef ::std::ios_base::fmtflags flags_type;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; typedef ::std::streamsize streamsize_type;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; typedef ::std::locale <span class="keyword">const</span> locale_type;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; state_type&amp; state_;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; flags_type flags_;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; streamsize_type precision_;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; streamsize_type width_;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; char_type fill_;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; locale_type locale_;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; basic_state_saver&amp; operator=(basic_state_saver <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; };</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">typedef</span> basic_state_saver&lt;char&gt; state_saver;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">typedef</span> basic_state_saver&lt;wchar_t&gt; wstate_saver;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits&lt;CTy&gt; &gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">class </span>basic_format_saver</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">explicit</span> basic_format_saver(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; ~basic_format_saver();</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; basic_state_saver&lt;CTy&gt; <span class="keyword">const</span> bss_;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; basic_format_saver&amp; operator=(basic_format_saver <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; };</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">typedef</span> basic_format_saver&lt;char&gt; format_saver;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">typedef</span> basic_format_saver&lt;wchar_t&gt; wformat_saver;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">struct </span>precision</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">unsigned</span> value;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">explicit</span> precision(<span class="keywordtype">unsigned</span>);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; };</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>width</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">unsigned</span> value;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">explicit</span> width(<span class="keywordtype">unsigned</span>);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; };</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">struct </span>delimeter</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; CTy value[3];</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">explicit</span> delimeter(CTy <span class="comment">/* left */</span>, CTy <span class="comment">/* right */</span>, CTy <span class="comment">/* separator */</span> = <span class="charliteral">&#39;,&#39;</span>);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; };</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">struct </span>order</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; order_type value;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">explicit</span> order(order_type);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// functions, inlined (inline)</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; FTy <span class="keyword">const</span>&amp; get_facet(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::basic_ios&lt;CTy,CTr&gt;&amp; formatted(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; std::basic_ios&lt;CTy,CTr&gt;&amp; unformattet(std::basic_ios&lt;CTy,CTr&gt;&amp;);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, precision <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, width <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, delimeter&lt;CTy&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; std::basic_ostream&lt;CTy, CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy, CTr&gt;&amp;, order <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }<span class="comment">//namespace io</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tquat&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec1&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tvec4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat2x2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat2x3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat2x4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat3x2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat3x3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat3x4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat4x2&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat4x3&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CTy,CTr&gt;&amp;, tmat4x4&lt;T,P&gt; <span class="keyword">const</span>&amp;);</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt; &amp; operator&lt;&lt;(</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; std::basic_ostream&lt;CTy,CTr&gt; &amp;,</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; std::pair&lt;tmat4x4&lt;T,P&gt; <span class="keyword">const</span>,</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; tmat4x4&lt;T,P&gt; <span class="keyword">const</span>&gt; <span class="keyword">const</span> &amp;);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_DECL std::basic_ostream&lt;CTy,CTr&gt; &amp; operator&lt;&lt;(</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; std::basic_ostream&lt;CTy,CTr&gt; &amp;,</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; std::pair&lt;tmat4x4&lt;T,P&gt;,</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; tmat4x4&lt;T,P&gt; &gt; <span class="keyword">const</span> &amp;);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#include &quot;io.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00116.html">detail/type_mat3x2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, lowp&gt; <a class="code" href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, highp&gt; <a class="code" href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}<span class="comment">//namespace</span></div>
+<div class="ttc" id="a00157_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, mediump &gt; mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00145">type_mat.hpp:145</a></div></div>
+<div class="ttc" id="a00157_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, highp &gt; highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00152">type_mat.hpp:152</a></div></div>
+<div class="ttc" id="a00157_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, lowp &gt; lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00138">type_mat.hpp:138</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00116_html"><div class="ttname"><a href="a00116.html">type_mat3x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00056.html b/3rdparty/glm/doc/api/a00056.html
index e53bdf5814c..04d65d66ba2 100644
--- a/3rdparty/glm/doc/api/a00056.html
+++ b/3rdparty/glm/doc/api/a00056.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: log_base.hpp File Reference</title>
+<title>0.9.9 API documenation: mat3x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,42 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">log_base.hpp File Reference</div> </div>
+<div class="title">mat3x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00056_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">log</a> (genType x, genType base)</td></tr>
-<tr class="separator:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)</td></tr>
-<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00206.html">GLM_GTX_log_base</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-24 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00056_source.html">log_base.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00056_source.html">mat3x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00056_source.html b/3rdparty/glm/doc/api/a00056_source.html
index e40f9cd3115..d7cf8fae343 100644
--- a/3rdparty/glm/doc/api/a00056_source.html
+++ b/3rdparty/glm/doc/api/a00056_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: log_base.hpp Source File</title>
+<title>0.9.9 API documenation: mat3x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">log_base.hpp</div> </div>
+<div class="title">mat3x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00056.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_log_base extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">log</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; genType x,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; genType base);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00206.html#ga1842004a127a9f3573764362ff639191">sign</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; base);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;log_base.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00206_html_ga1842004a127a9f3573764362ff639191"><div class="ttname"><a href="a00206.html#ga1842004a127a9f3573764362ff639191">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sign(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)</div><div class="ttdoc">Logarithm for any base. </div></div>
-<div class="ttc" id="a00206_html_ga3e5bcabee78a977e3d7d1bf352b9ea9f"><div class="ttname"><a href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL genType log(genType x, genType base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00117.html">detail/type_mat3x3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00157.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00199">type_mat.hpp:199</a></div></div>
+<div class="ttc" id="a00157_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00164">type_mat.hpp:164</a></div></div>
+<div class="ttc" id="a00157_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00157.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00185">type_mat.hpp:185</a></div></div>
+<div class="ttc" id="a00117_html"><div class="ttname"><a href="a00117.html">type_mat3x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00178">type_mat.hpp:178</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00192">type_mat.hpp:192</a></div></div>
+<div class="ttc" id="a00157_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00171">type_mat.hpp:171</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00057.html b/3rdparty/glm/doc/api/a00057.html
new file mode 100644
index 00000000000..db363a0a875
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00057.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: mat3x4.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x4.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
+<p><a href="a00057_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00057_source.html">mat3x4.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00057_source.html b/3rdparty/glm/doc/api/a00057_source.html
index 6785d38e820..4156ae20190 100644
--- a/3rdparty/glm/doc/api/a00057_source.html
+++ b/3rdparty/glm/doc/api/a00057_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: man.doxy Source File</title>
+<title>0.9.9 API documenation: mat3x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,2413 +64,49 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">man.doxy</div> </div>
+<div class="title">mat3x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor"># Doxyfile 1.8.10</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor"># This file describes the settings to be used by the documentation system</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor"># doxygen (www.doxygen.org) for a project.</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor"># All text after a double hash (##) is considered a comment and is placed in</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"># front of the TAG it is preceding.</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"># All text after a single hash (#) is considered a comment and will be ignored.</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"># The format is:</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"># TAG = value [value, ...]</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># For lists, items can also be appended using:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor"># TAG += value [value, ...]</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor"># Values that contain spaces should be placed between quotes (\&quot; \&quot;).</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"># Project related configuration options</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># This tag specifies the encoding used for all characters in the config file</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># that follow. The default is UTF-8 which is also the encoding used for all text</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># before the first occurrence of this tag. Doxygen uses libiconv (or the iconv</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># built into libc) for the transcoding. See http://www.gnu.org/software/libiconv</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># for the list of possible encodings.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># The default value is: UTF-8.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;DOXYFILE_ENCODING = UTF-8</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># The PROJECT_NAME tag is a single word (or a sequence of words surrounded by</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># double-quotes, unless you are using Doxywizard) that should identify the</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># project for which the documentation is generated. This name is used in the</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># title of most generated pages and in a few other places.</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># The default value is: My Project.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;PROJECT_NAME = 0.9.7</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># The PROJECT_NUMBER tag can be used to enter a project or revision number. This</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># could be handy for archiving the generated documentation or if some version</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># control system is used.</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;PROJECT_NUMBER = </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"># for a project that appears at the top of each page and should give viewer a</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"># quick idea about the purpose of the project. Keep the description short.</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;PROJECT_BRIEF = </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># With the PROJECT_LOGO tag one can specify a logo or an icon that is included</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># in the documentation. The maximum height of the logo should not exceed 55</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pixels and the maximum width should not exceed 200 pixels. Doxygen will copy</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># the logo to the output directory.</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;PROJECT_LOGO = E:/Source/G-Truc/<a class="code" href="a00146.html">glm</a>/doc/logo.png</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># into which the generated documentation will be written. If a relative path is</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># entered, it will be relative to the location where doxygen was started. If</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># left blank the current directory will be used.</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;OUTPUT_DIRECTORY = .</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># directories (in 2 levels) under the output directory of each output format and</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># will distribute the generated files over these directories. Enabling this</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># option can be useful when feeding doxygen a huge amount of source files, where</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># putting all generated files in the same directory would otherwise causes</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"># performance problems for the file system.</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;CREATE_SUBDIRS = NO</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"># characters to appear in the names of generated files. If set to NO, non-ASCII</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># characters will be escaped, for example _xE3_x81_x84 will be used for Unicode</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"># U+3044.</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;ALLOW_UNICODE_NAMES = NO</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"># The OUTPUT_LANGUAGE tag is used to specify the language in which all</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># documentation generated by doxygen is written. Doxygen will use this</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># information to generate all constant output in the proper language.</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"># Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"># Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"># Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"># Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"># Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"># Ukrainian and Vietnamese.</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"># The default value is: English.</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;OUTPUT_LANGUAGE = English</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"># If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># descriptions after the members that are listed in the file and class</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"># documentation (similar to Javadoc). Set to NO to disable this.</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;BRIEF_MEMBER_DESC = NO</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"># If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"># description of a member or function before the detailed description</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"># Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"># brief descriptions will be completely suppressed.</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;REPEAT_BRIEF = YES</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"># This tag implements a quasi-intelligent brief description abbreviator that is</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"># used to form the text in various listings. Each string in this list, if found</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"># as the leading text of the brief description, will be stripped from the text</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"># and the result, after processing the whole list, is used as the annotated</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"># text. Otherwise, the brief description is used as-is. If left blank, the</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"># following values are used ($name is automatically replaced with the name of</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"># the entity):The $name class, The $name widget, The $name file, is, provides,</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"># specifies, contains, represents, a, an and the.</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;ABBREVIATE_BRIEF = <span class="stringliteral">&quot;The $name class &quot;</span> \</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="stringliteral">&quot;The $name widget &quot;</span> \</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="stringliteral">&quot;The $name file &quot;</span> \</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; is \</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; provides \</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; specifies \</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; contains \</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; represents \</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; a \</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; an \</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; the</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor"># If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor"># doxygen will generate a detailed section even if there is only a brief</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"># description.</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;ALWAYS_DETAILED_SEC = NO</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"># If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"># inherited members of a class in the documentation of that class as if those</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"># members were ordinary class members. Constructors, destructors and assignment</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"># operators of the base classes will not be shown.</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;INLINE_INHERITED_MEMB = NO</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"># before files name in the file list and in the header files. If set to NO the</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"># shortest path that makes the file name unique will be used</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;FULL_PATH_NAMES = NO</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"># The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"># Stripping is only done if one of the specified strings matches the left-hand</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"># part of the path. The tag can be used to show relative paths in the file list.</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"># If left blank the directory from which doxygen is run is used as the path to</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"># strip.</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"># Note that you can specify absolute paths here, but also relative paths, which</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"># will be relative from the directory where doxygen is started.</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"># This tag requires that the tag FULL_PATH_NAMES is set to YES.</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;STRIP_FROM_PATH = <span class="stringliteral">&quot;C:/Documents and Settings/Groove/ &quot;</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"># The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"># path mentioned in the documentation of a class, which tells the reader which</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"># header file to include in order to use a class. If left blank only the name of</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"># the header file containing the class definition is used. Otherwise one should</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"># specify the list of include paths that are normally passed to the compiler</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"># using the -I flag.</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;STRIP_FROM_INC_PATH = </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"># If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"># less readable) file names. This can be useful is your file systems doesn&#39;t</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"># support long names like on DOS, Mac, or CD-ROM.</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;SHORT_NAMES = YES</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"># If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"># first line (until the first dot) of a Javadoc-style comment as the brief</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"># description. If set to NO, the Javadoc-style will behave just like regular Qt-</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"># style comments (thus requiring an explicit @brief command for a brief</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"># description.)</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;JAVADOC_AUTOBRIEF = YES</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"># If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"># line (until the first dot) of a Qt-style comment as the brief description. If</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"># set to NO, the Qt-style will behave just like regular Qt-style comments (thus</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"># requiring an explicit \brief command for a brief description.)</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;QT_AUTOBRIEF = NO</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"># The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"># multi-line C++ special comment block (i.e. a block of </span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"># a brief description. This used to be the default behavior. The new default is</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># to treat a multi-line C++ comment block as a detailed description. Set this</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"># tag to YES if you prefer the old behavior instead.</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"># Note that setting this tag to YES also means that rational rose comments are</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"># not recognized any more.</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;MULTILINE_CPP_IS_BRIEF = NO</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"># If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"># documentation from any documented member that it re-implements.</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;INHERIT_DOCS = YES</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"># If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"># page for each member. If set to NO, the documentation of a member will be part</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"># of the file/class/namespace that contains it.</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;SEPARATE_MEMBER_PAGES = NO</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"># The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"># uses this value to replace tabs by spaces in code fragments.</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"># Minimum value: 1, maximum value: 16, default value: 4.</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;TAB_SIZE = 8</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"># This tag can be used to specify a number of aliases that act as commands in</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"># the documentation. An alias has the form:</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"># name=value</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"># For example adding</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"># &quot;sideeffect=@par Side Effects:\n&quot;</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"># will allow you to put the command \sideeffect (or @sideeffect) in the</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"># documentation, which will result in a user-defined paragraph with heading</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"># &quot;Side Effects:&quot;. You can put \n&#39;s in the value part of an alias to insert</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"># newlines.</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;ALIASES = </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"># This tag can be used to specify a number of word-keyword mappings (TCL only).</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"># A mapping has the form &quot;name=value&quot;. For example adding &quot;class=itcl::class&quot;</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"># will allow you to use the command class in the itcl::class meaning.</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;TCL_SUBST = </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"># only. Doxygen will then generate output that is more tailored for C. For</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># instance, some of the names that are used will be different. The list of all</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"># members will be omitted, etc.</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;OPTIMIZE_OUTPUT_FOR_C = NO</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"># Python sources only. Doxygen will then generate output that is more tailored</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"># for that language. For instance, namespaces will be presented as packages,</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># qualified scopes will look different, etc.</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;OPTIMIZE_OUTPUT_JAVA = NO</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"># sources. Doxygen will then generate output that is tailored for Fortran.</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;OPTIMIZE_FOR_FORTRAN = NO</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># sources. Doxygen will then generate output that is tailored for VHDL.</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;OPTIMIZE_OUTPUT_VHDL = NO</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"># Doxygen selects the parser to use depending on the extension of the files it</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"># parses. With this tag you can assign which parser to use for a given</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"># extension. Doxygen has a built-in mapping, but you can override or extend it</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># using this tag. The format is ext=language, where ext is a file extension, and</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"># language is one of the parsers supported by doxygen: IDL, Java, Javascript,</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># Fortran. In the later case the parser tries to guess whether the code is fixed</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"># or free formatted code, this is the default for Fortran type files), VHDL. For</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"># instance to make doxygen treat .inc files as Fortran files (default is PHP),</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"># and .f files as C (default is Fortran), use: inc=Fortran f=C.</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"># Note: For files without extension you can use no_extension as a placeholder.</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># Note that for custom extensions you also need to set FILE_PATTERNS otherwise</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># the files are not read by doxygen.</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;EXTENSION_MAPPING = </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"># according to the Markdown format, which allows for more readable</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># documentation. See http://daringfireball.net/projects/markdown/ for details.</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># The output of markdown processing is further processed by doxygen, so you can</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"># case of backward compatibilities issues.</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;MARKDOWN_SUPPORT = YES</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"># When enabled doxygen tries to link words that correspond to documented</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"># classes, or namespaces to their corresponding documentation. Such a link can</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># be prevented in individual cases by putting a % sign in front of the word or</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"># globally by setting AUTOLINK_SUPPORT to NO.</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;AUTOLINK_SUPPORT = YES</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># If you use STL classes (i.e. std::string, std::vector, etc.) but do not want</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"># to include (a tag file for) the STL sources as input, then you should set this</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"># tag to YES in order to let doxygen match functions declarations and</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"># definitions whose arguments contain STL classes (e.g. func(std::string);</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"># versus func(std::string) {}). This also make the inheritance and collaboration</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"># diagrams that involve STL classes more complete and accurate.</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;BUILTIN_STL_SUPPORT = NO</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># If you use Microsoft&#39;s C++/CLI language, you should set this option to YES to</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"># enable parsing support.</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;CPP_CLI_SUPPORT = NO</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"># Set the SIP_SUPPORT tag to YES if your project consists of sip (see:</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"># http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># will parse them like normal C++ but will assume all classes use public instead</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"># of private inheritance when no explicit protection keyword is present.</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;SIP_SUPPORT = NO</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"># For Microsoft&#39;s IDL there are propget and propput attributes to indicate</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># getter and setter methods for a property. Setting this option to YES will make</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># doxygen to replace the get and set methods by a property in the documentation.</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"># This will only work if the methods are indeed getting or setting a simple</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># type. If this is not the case, or you want to show the methods anyway, you</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"># should set this option to NO.</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;IDL_PROPERTY_SUPPORT = YES</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"># If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"># tag is set to YES then doxygen will reuse the documentation of the first</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"># member in the group (if any) for the other members of the group. By default</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># all members of a group must be documented explicitly.</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;DISTRIBUTE_GROUP_DOC = NO</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"># If one adds a struct or class to a group and this option is enabled, then also</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"># any nested class or struct is added to the same group. By default this option</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"># is disabled and one has to add nested compounds explicitly via \ingroup.</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;GROUP_NESTED_COMPOUNDS = NO</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># Set the SUBGROUPING tag to YES to allow class member groups of the same type</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># (for instance a group of public functions) to be put as a subgroup of that</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"># type (e.g. under the Public Functions section). Set it to NO to prevent</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"># subgrouping. Alternatively, this can be done per class using the</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"># \nosubgrouping command.</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;SUBGROUPING = NO</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"># When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"># are shown inside the group in which they are included (e.g. using \ingroup)</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"># instead of on a separate page (for HTML and Man pages) or section (for LaTeX</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"># and RTF).</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"># Note that this feature does not work in combination with</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"># SEPARATE_MEMBER_PAGES.</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;INLINE_GROUPED_CLASSES = NO</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"># When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># with only public data fields or simple typedef fields will be shown inline in</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"># the documentation of the scope in which they are defined (i.e. file,</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># namespace, or group documentation), provided this scope is documented. If set</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"># to NO, structs, classes, and unions are shown on a separate page (for HTML and</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># Man pages) or section (for LaTeX and RTF).</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;INLINE_SIMPLE_STRUCTS = NO</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"># When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"># enum is documented as struct, union, or enum with the name of the typedef. So</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"># typedef struct TypeS {} TypeT, will appear in the documentation as a struct</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"># with name TypeT. When disabled the typedef will appear as a member of a file,</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"># namespace, or class. And the struct will be named TypeS. This can typically be</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"># useful for C code in case the coding convention dictates that all compound</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"># types are typedef&#39;ed and only the typedef is referenced, never the tag name.</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;TYPEDEF_HIDES_STRUCT = NO</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"># The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"># cache is used to resolve symbols given their name and scope. Since this can be</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"># an expensive process and often the same symbol appears multiple times in the</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"># code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor"># doxygen will become slower. If the cache is too large, memory is wasted. The</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"># cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"># is 0..9, the default is 0, corresponding to a cache size of 2^16=65536</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"># symbols. At the end of a run doxygen will report the cache usage and suggest</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"># the optimal cache size from a speed point of view.</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"># Minimum value: 0, maximum value: 9, default value: 0.</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;LOOKUP_CACHE_SIZE = 0</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"># Build related configuration options</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"># If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"># documentation are documented, even if no documentation was available. Private</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"># class members and static file members will be hidden unless the</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"># EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"># Note: This will also disable the warnings about undocumented members that are</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"># normally produced when WARNINGS is set to YES.</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;EXTRACT_ALL = NO</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"># If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"># be included in the documentation.</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;EXTRACT_PRIVATE = NO</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"># If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor"># scope will be included in the documentation.</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;EXTRACT_PACKAGE = NO</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"># If the EXTRACT_STATIC tag is set to YES, all static members of a file will be</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"># included in the documentation.</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;EXTRACT_STATIC = YES</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"># If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"># locally in source files will be included in the documentation. If set to NO,</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor"># only classes defined in header files are included. Does not have any effect</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"># for Java sources.</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;EXTRACT_LOCAL_CLASSES = NO</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"># This flag is only useful for Objective-C code. If set to YES, local methods,</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"># which are defined in the implementation section but not in the interface are</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"># included in the documentation. If set to NO, only methods in the interface are</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"># included.</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;EXTRACT_LOCAL_METHODS = NO</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"># If this flag is set to YES, the members of anonymous namespaces will be</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"># extracted and appear in the documentation as a namespace called</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"># &#39;anonymous_namespace{file}&#39;, where file will be replaced with the base name of</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"># the file that contains the anonymous namespace. By default anonymous namespace</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"># are hidden.</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;EXTRACT_ANON_NSPACES = NO</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"># If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"># undocumented members inside documented classes or files. If set to NO these</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"># members will be included in the various overviews, but no documentation</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"># section is generated. This option has no effect if EXTRACT_ALL is enabled.</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;HIDE_UNDOC_MEMBERS = YES</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"># If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"># undocumented classes that are normally visible in the class hierarchy. If set</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"># to NO, these classes will be included in the various overviews. This option</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"># has no effect if EXTRACT_ALL is enabled.</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;HIDE_UNDOC_CLASSES = YES</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"># If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"># (class|struct|union) declarations. If set to NO, these declarations will be</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"># included in the documentation.</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;HIDE_FRIEND_COMPOUNDS = YES</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"># If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"># documentation blocks found inside the body of a function. If set to NO, these</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"># blocks will be appended to the function&#39;s detailed documentation block.</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;HIDE_IN_BODY_DOCS = YES</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"># The INTERNAL_DOCS tag determines if documentation that is typed after a</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"># \internal command is included. If the tag is set to NO then the documentation</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"># will be excluded. Set it to YES to include the internal documentation.</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;INTERNAL_DOCS = NO</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"># If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"># names in lower-case letters. If set to YES, upper-case letters are also</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"># allowed. This is useful if you have classes or files whose names only differ</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"># in case and if your file system supports case sensitive file names. Windows</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"># and Mac users are advised to set this option to NO.</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"># The default value is: system dependent.</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;CASE_SENSE_NAMES = YES</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"># If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"># their full class and namespace scopes in the documentation. If set to YES, the</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"># scope will be hidden.</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;HIDE_SCOPE_NAMES = YES</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"># If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"># append additional text to a page&#39;s title, such as Class Reference. If set to</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"># YES the compound reference will be hidden.</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;HIDE_COMPOUND_REFERENCE= NO</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="preprocessor"># If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor"># the files that are included by a file in the documentation of that file.</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;SHOW_INCLUDE_FILES = NO</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"># If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"># grouped member an include statement to the documentation, telling the reader</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"># which file to include in order to use the member.</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;SHOW_GROUPED_MEMB_INC = NO</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"># If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"># files with double quotes in the documentation rather than with sharp brackets.</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;FORCE_LOCAL_INCLUDES = NO</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"># If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"># documentation for inline members.</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;INLINE_INFO = NO</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"># If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"># (detailed) documentation of file and class members alphabetically by member</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"># name. If set to NO, the members will appear in declaration order.</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;SORT_MEMBER_DOCS = YES</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"># If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor"># descriptions of file, namespace and class members alphabetically by member</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor"># name. If set to NO, the members will appear in declaration order. Note that</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor"># this will also influence the order of the classes in the class list.</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;SORT_BRIEF_DOCS = YES</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"># If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"># (brief and detailed) documentation of class members so that constructors and</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"># destructors are listed first. If set to NO the constructors will appear in the</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"># respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor"># Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor"># member documentation.</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"># Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor"># detailed member documentation.</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;SORT_MEMBERS_CTORS_1ST = NO</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"># If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"># of group names into alphabetical order. If set to NO the group names will</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"># appear in their defined order.</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;SORT_GROUP_NAMES = NO</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor"># If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor"># fully-qualified names, including namespaces. If set to NO, the class list will</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"># be sorted only by class name, not including the namespace part.</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor"># Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"># Note: This option applies only to the class list, not to the alphabetical</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor"># list.</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;SORT_BY_SCOPE_NAME = YES</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor"># If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor"># type resolution of all parameters of a function it will reject a match between</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor"># the prototype and the implementation of a member function even if there is</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"># only one candidate or it is obvious which candidate to choose by doing a</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"># simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"># accept a match between prototype and implementation in such cases.</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;STRICT_PROTO_MATCHING = NO</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="preprocessor"># The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor"># list. This list is created by putting \todo commands in the documentation.</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;GENERATE_TODOLIST = YES</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"># The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"># list. This list is created by putting \test commands in the documentation.</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;GENERATE_TESTLIST = YES</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"># The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"># list. This list is created by putting \bug commands in the documentation.</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;GENERATE_BUGLIST = YES</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor"># The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"># the deprecated list. This list is created by putting \deprecated commands in</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"># the documentation.</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;GENERATE_DEPRECATEDLIST= YES</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor"># The ENABLED_SECTIONS tag can be used to enable conditional documentation</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"># sections, marked by \if &lt;section_label&gt; ... \endif and \cond &lt;section_label&gt;</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor"># ... \endcond blocks.</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;ENABLED_SECTIONS = </div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"># The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"># initial value of a variable or macro / define can have for it to appear in the</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"># documentation. If the initializer consists of more lines than specified here</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"># it will be hidden. Use a value of 0 to hide initializers completely. The</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"># appearance of the value of individual variables and macros / defines can be</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"># controlled using \showinitializer or \hideinitializer command in the</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"># documentation regardless of this setting.</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"># Minimum value: 0, maximum value: 10000, default value: 30.</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;MAX_INITIALIZER_LINES = 30</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"># Set the SHOW_USED_FILES tag to NO to disable the list of files generated at</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"># the bottom of the documentation of classes and structs. If set to YES, the</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"># list will mention the files that were used to generate the documentation.</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;SHOW_USED_FILES = NO</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"># Set the SHOW_FILES tag to NO to disable the generation of the Files page. This</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"># will remove the Files entry from the Quick Index and from the Folder Tree View</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"># (if specified).</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;SHOW_FILES = YES</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"># Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"># page. This will remove the Namespaces entry from the Quick Index and from the</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"># Folder Tree View (if specified).</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;SHOW_NAMESPACES = YES</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"># The FILE_VERSION_FILTER tag can be used to specify a program or script that</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"># doxygen should invoke to get the current version for each file (typically from</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"># the version control system). Doxygen will invoke the program by executing (via</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"># popen()) the command command input-file, where command is the value of the</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"># FILE_VERSION_FILTER tag, and input-file is the name of an input file provided</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"># by doxygen. Whatever the program writes to standard output is used as the file</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"># version. For an example see the documentation.</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;FILE_VERSION_FILTER = </div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"># The LAYOUT_FILE tag can be used to specify a layout file which will be parsed</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"># by doxygen. The layout file controls the global structure of the generated</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"># output files in an output format independent way. To create the layout file</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"># that represents doxygen&#39;s defaults, run doxygen with the -l option. You can</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"># optionally specify a file name after the option, if omitted DoxygenLayout.xml</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"># will be used as the name of the layout file.</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"># Note that if you run doxygen from a directory containing a file called</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"># DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"># tag is left empty.</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;LAYOUT_FILE = </div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"># The CITE_BIB_FILES tag can be used to specify one or more bib files containing</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"># the reference definitions. This must be a list of .bib files. The .bib</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"># extension is automatically appended if omitted. This requires the bibtex tool</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"># to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"># For LaTeX the style of the bibliography can be controlled using</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"># LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"># search path. See also \cite for info how to create references.</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;CITE_BIB_FILES = </div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"># Configuration options related to warning and progress messages</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"># The QUIET tag can be used to turn on/off the messages that are generated to</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"># standard output by doxygen. If QUIET is set to YES this implies that the</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"># messages are off.</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;QUIET = NO</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor"># The WARNINGS tag can be used to turn on/off the warning messages that are</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"># generated to standard error (stderr) by doxygen. If WARNINGS is set to YES</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"># this implies that the warnings are on.</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor"># Tip: Turn warnings on while writing the documentation.</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;WARNINGS = YES</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor"># If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor"># warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"># will automatically be disabled.</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;WARN_IF_UNDOCUMENTED = YES</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor"># If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"># potential errors in the documentation, such as not documenting some parameters</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor"># in a documented function, or documenting parameters that don&#39;t exist or using</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"># markup commands wrongly.</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;WARN_IF_DOC_ERROR = YES</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor"># This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"># are documented, but have no documentation for their parameters or return</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor"># value. If set to NO, doxygen will only warn about wrong or incomplete</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"># parameter documentation, but not about the absence of documentation.</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;WARN_NO_PARAMDOC = NO</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor"># The WARN_FORMAT tag determines the format of the warning messages that doxygen</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"># can produce. The string should contain the $file, $line, and $text tags, which</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"># will be replaced by the file and line number from which the warning originated</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"># and the warning text. Optionally the format may contain $version, which will</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"># be replaced by the version of the file (if it could be obtained via</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"># FILE_VERSION_FILTER)</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"># The default value is: $file:$line: $text.</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;WARN_FORMAT = <span class="stringliteral">&quot;$file:$line: $text&quot;</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"># The WARN_LOGFILE tag can be used to specify a file to which warning and error</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"># messages should be written. If left blank the output is written to standard</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"># error (stderr).</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;WARN_LOGFILE = </div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"># Configuration options related to the input files</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor"># The INPUT tag is used to specify the files and/or directories that contain</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"># documented source files. You may enter file names like myfile.cpp or</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"># directories like /usr/src/myproject. Separate the files or directories with</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"># spaces. See also FILE_PATTERNS and EXTENSION_MAPPING</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor"># Note: If this tag is empty the current directory is searched.</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;INPUT = ../<a class="code" href="a00146.html">glm</a> \</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; .</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;# This tag can be used to specify the character encoding of the source files</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"># that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor"># libiconv (or the iconv built into libc) for the transcoding. See the libiconv</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"># documentation (see: http://www.gnu.org/software/libiconv) for the list of</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor"># possible encodings.</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor"># The default value is: UTF-8.</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;INPUT_ENCODING = UTF-8</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor"># FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="preprocessor"># *.h) to filter out the source-files in the directories.</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"># Note that for custom extensions or not directly supported extensions you also</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor"># need to set EXTENSION_MAPPING for the extension otherwise the files are not</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="preprocessor"># read by doxygen.</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"># If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="preprocessor"># *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="preprocessor"># *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor"># *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor"># *.vhdl, *.ucf, *.qsf, *.as and *.js.</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;FILE_PATTERNS = *.hpp \</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; *.doxy</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"># The RECURSIVE tag can be used to specify whether or not subdirectories should</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor"># be searched for input files as well.</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;RECURSIVE = YES</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="preprocessor"># The EXCLUDE tag can be used to specify files and/or directories that should be</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="preprocessor"># excluded from the INPUT source files. This way you can easily exclude a</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="preprocessor"># subdirectory from a directory tree whose root is specified with the INPUT tag.</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="preprocessor"># Note that relative paths are relative to the directory from which doxygen is</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor"># run.</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;EXCLUDE = </div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor"># The EXCLUDE_SYMLINKS tag can be used to select whether or not files or</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor"># directories that are symbolic links (a Unix file system feature) are excluded</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor"># from the input.</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;EXCLUDE_SYMLINKS = NO</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor"># EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="preprocessor"># certain files from those directories.</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="preprocessor">#</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="preprocessor"># exclude all test directories for example use the pattern */test</span><span class="comment">/*</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="comment">EXCLUDE_PATTERNS = </span></div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;<span class="comment"># The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="comment"># (namespaces, classes, functions, etc.) that should be excluded from the</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="comment"># output. The symbol name can be a fully qualified name, a word, or if the</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="comment"># wildcard * is used, a substring. Examples: ANamespace, AClass,</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="comment"># AClass::ANamespace, ANamespace::*Test</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="comment"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<span class="comment"># exclude all test directories use the pattern */</span><span class="preprocessor">test</span><span class="comment">/*</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="comment">EXCLUDE_SYMBOLS = </span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="comment"># The EXAMPLE_PATH tag can be used to specify one or more files or directories</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;<span class="comment"># that contain example code fragments that are included (see the \include</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="comment"># command).</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="comment">EXAMPLE_PATH = </span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="comment"># If the value of the EXAMPLE_PATH tag contains directories, you can use the</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="comment"># EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<span class="comment"># *.h) to filter out the source-files in the directories. If left blank all</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;<span class="comment"># files are included.</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="comment">EXAMPLE_PATTERNS = *</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;<span class="comment"># If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<span class="comment"># searched for input files to be used with the \include or \dontinclude commands</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<span class="comment"># irrespective of the value of the RECURSIVE tag.</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;<span class="comment">EXAMPLE_RECURSIVE = NO</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="comment"># The IMAGE_PATH tag can be used to specify one or more files or directories</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;<span class="comment"># that contain images that are to be included in the documentation (see the</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="comment"># \image command).</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;<span class="comment">IMAGE_PATH = </span></div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;<span class="comment"># The INPUT_FILTER tag can be used to specify a program that doxygen should</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;<span class="comment"># invoke to filter for each input file. Doxygen will invoke the filter program</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="comment"># by executing (via popen()) the command:</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;<span class="comment"># &lt;filter&gt; &lt;input-file&gt;</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;<span class="comment"># where &lt;filter&gt; is the value of the INPUT_FILTER tag, and &lt;input-file&gt; is the</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;<span class="comment"># name of an input file. Doxygen will then use the output that the filter</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;<span class="comment"># program writes to standard output. If FILTER_PATTERNS is specified, this tag</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="comment"># will be ignored.</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;<span class="comment"># Note that the filter must not add or remove lines; it is applied before the</span></div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;<span class="comment"># code is scanned, but not when the output code is generated. If lines are added</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<span class="comment"># or removed, the anchors will not be placed correctly.</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="comment">INPUT_FILTER = </span></div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;<span class="comment"># The FILTER_PATTERNS tag can be used to specify filters on a per file pattern</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="comment"># basis. Doxygen will compare the file name with each pattern and apply the</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;<span class="comment"># filter if there is a match. The filters are a list of the form: pattern=filter</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;<span class="comment"># (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;<span class="comment"># filters are used. If the FILTER_PATTERNS tag is empty or if none of the</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="comment"># patterns match the file name, INPUT_FILTER is applied.</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;<span class="comment">FILTER_PATTERNS = </span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;<span class="comment"># If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;<span class="comment"># INPUT_FILTER) will also be used to filter the input files that are used for</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;<span class="comment"># producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;<span class="comment">FILTER_SOURCE_FILES = NO</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;<span class="comment"># The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;<span class="comment"># pattern. A pattern will override the setting for FILTER_PATTERN (if any) and</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;<span class="comment"># it is also possible to disable source filtering for a specific pattern using</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;<span class="comment"># *.ext= (so without naming a filter).</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;<span class="comment"># This tag requires that the tag FILTER_SOURCE_FILES is set to YES.</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;<span class="comment">FILTER_SOURCE_PATTERNS = </span></div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;<span class="comment"># If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;<span class="comment"># is part of the input, its contents will be placed on the main page</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;<span class="comment"># (index.html). This can be useful if you have a project on for instance GitHub</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="comment"># and want to reuse the introduction page also for the doxygen output.</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;<span class="comment">USE_MDFILE_AS_MAINPAGE = </span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;<span class="comment"># Configuration options related to source browsing</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;<span class="comment"># If the SOURCE_BROWSER tag is set to YES then a list of source files will be</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;<span class="comment"># generated. Documented entities will be cross-referenced with these sources.</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;<span class="comment"># Note: To get rid of all source code in the generated output, make sure that</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<span class="comment"># also VERBATIM_HEADERS is set to NO.</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;<span class="comment">SOURCE_BROWSER = YES</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;<span class="comment"># Setting the INLINE_SOURCES tag to YES will include the body of functions,</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;<span class="comment"># classes and enums directly into the documentation.</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;<span class="comment">INLINE_SOURCES = NO</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;<span class="comment"># Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;<span class="comment"># special comment blocks from generated source code fragments. Normal C, C++ and</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="comment"># Fortran comments will always remain visible.</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="comment">STRIP_CODE_COMMENTS = YES</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;<span class="comment"># If the REFERENCED_BY_RELATION tag is set to YES then for each documented</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;<span class="comment"># function all documented functions referencing it will be listed.</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;<span class="comment">REFERENCED_BY_RELATION = YES</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;<span class="comment"># If the REFERENCES_RELATION tag is set to YES then for each documented function</span></div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;<span class="comment"># all documented entities called/used by that function will be listed.</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;<span class="comment">REFERENCES_RELATION = YES</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;<span class="comment"># If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;<span class="comment"># to YES then the hyperlinks from functions in REFERENCES_RELATION and</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;<span class="comment"># REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;<span class="comment"># link to the documentation.</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="comment">REFERENCES_LINK_SOURCE = YES</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="comment"># If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="comment"># source code will show a tooltip with additional information such as prototype,</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;<span class="comment"># brief description and links to the definition and documentation. Since this</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="comment"># will make the HTML file larger and loading of large files a bit slower, you</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="comment"># can opt to disable this feature.</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;<span class="comment">SOURCE_TOOLTIPS = YES</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="comment"># If the USE_HTAGS tag is set to YES then the references to source code will</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="comment"># point to the HTML generated by the htags(1) tool instead of doxygen built-in</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="comment"># source browser. The htags tool is part of GNU&#39;s global source tagging system</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="comment"># (see http://www.gnu.org/software/global/global.html). You will need version</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="comment"># 4.8.6 or higher.</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="comment"># To use it do the following:</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="comment"># - Install the latest version of global</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="comment"># - Enable SOURCE_BROWSER and USE_HTAGS in the config file</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="comment"># - Make sure the INPUT points to the root of the source tree</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="comment"># - Run doxygen as normal</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<span class="comment"># Doxygen will invoke htags (and that will in turn invoke gtags), so these</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="comment"># tools must be available from the command line (i.e. in the search path).</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="comment"># The result: instead of the source browser generated by doxygen, the links to</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="comment"># source code will now point to the output of htags.</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="comment">USE_HTAGS = NO</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment"># If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="comment"># verbatim copy of the header file for each class for which an include is</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="comment"># specified. Set to NO to disable this.</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="comment"># See also: Section \class.</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="comment">VERBATIM_HEADERS = YES</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="comment"># Configuration options related to the alphabetical class index</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="comment"># If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="comment"># compounds will be generated. Enable this if the project contains a lot of</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="comment"># classes, structs, unions or interfaces.</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="comment">ALPHABETICAL_INDEX = NO</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="comment"># The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in</span></div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="comment"># which the alphabetical index list will be split.</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="comment"># Minimum value: 1, maximum value: 20, default value: 5.</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment">COLS_IN_ALPHA_INDEX = 5</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="comment"># In case all classes in a project start with a common prefix, all classes will</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="comment"># be put under the same header in the alphabetical index. The IGNORE_PREFIX tag</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment"># can be used to specify a prefix (or a list of prefixes) that should be ignored</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment"># while generating the index headers.</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="comment">IGNORE_PREFIX = </span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="comment"># Configuration options related to the HTML output</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="comment"># If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="comment">GENERATE_HTML = YES</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="comment"># The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="comment"># it.</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="comment"># The default directory is: html.</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="comment">HTML_OUTPUT = html</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="comment"># The HTML_FILE_EXTENSION tag can be used to specify the file extension for each</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="comment"># generated HTML page (for example: .htm, .php, .asp).</span></div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="comment"># The default value is: .html.</span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment">HTML_FILE_EXTENSION = .html</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="comment"># The HTML_HEADER tag can be used to specify a user-defined HTML header file for</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="comment"># each generated HTML page. If the tag is left blank doxygen will generate a</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="comment"># standard header.</span></div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment"># To get valid HTML the header file that includes any scripts and style sheets</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment"># that doxygen needs, which is dependent on the configuration options used (e.g.</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment"># the setting GENERATE_TREEVIEW). It is highly recommended to start with a</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="comment"># default header using</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="comment"># doxygen -w html new_header.html new_footer.html new_stylesheet.css</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="comment"># YourConfigFile</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="comment"># and then modify the file new_header.html. See also section &quot;Doxygen usage&quot;</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="comment"># for information on how to generate the default header that doxygen normally</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment"># uses.</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment"># Note: The header is subject to change so you typically have to regenerate the</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="comment"># default header when upgrading to a newer version of doxygen. For a description</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="comment"># of the possible markers and block names see the documentation.</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment">HTML_HEADER = </span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="comment"># The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="comment"># generated HTML page. If the tag is left blank doxygen will generate a standard</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="comment"># footer. See HTML_HEADER for more information on how to generate a default</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="comment"># footer and what special commands can be used inside the footer. See also</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="comment"># section &quot;Doxygen usage&quot; for information on how to generate the default footer</span></div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="comment"># that doxygen normally uses.</span></div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="comment">HTML_FOOTER = </span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="comment"># The HTML_STYLESHEET tag can be used to specify a user-defined cascading style</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="comment"># sheet that is used by each HTML page. It can be used to fine-tune the look of</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="comment"># the HTML output. If left blank doxygen will generate a default style sheet.</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment"># See also section &quot;Doxygen usage&quot; for information on how to generate the style</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="comment"># sheet that doxygen normally uses.</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment"># Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment"># it is more robust and this tag (HTML_STYLESHEET) will in the future become</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="comment"># obsolete.</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment">HTML_STYLESHEET = </span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="comment"># The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="comment"># cascading style sheets that are included after the standard style sheets</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="comment"># created by doxygen. Using this option one can overrule certain style aspects.</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="comment"># This is preferred over using HTML_STYLESHEET since it does not replace the</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment"># standard style sheet and is therefore more robust against future updates.</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="comment"># Doxygen will copy the style sheet files to the output directory.</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="comment"># list). For an example see the documentation.</span></div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="comment">HTML_EXTRA_STYLESHEET = </span></div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment"># The HTML_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment"># other source files which should be copied to the HTML output directory. Note</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment"># that these files will be copied to the base HTML output directory. Use the</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment"># $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment"># files. In the HTML_STYLESHEET file, use the file name only. Also note that the</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment"># files will be copied as-is; there are no commands or markers available.</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="comment">HTML_EXTRA_FILES = </span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="comment"># The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment"># will adjust the colors in the style sheet and background images according to</span></div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="comment"># this color. Hue is specified as an angle on a colorwheel, see</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="comment"># http://en.wikipedia.org/wiki/Hue for more information. For instance the value</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment"># 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="comment"># purple, and 360 is red again.</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 359, default value: 220.</span></div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="comment">HTML_COLORSTYLE_HUE = 220</span></div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="comment"># The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="comment"># in the HTML output. For a value of 0 the output will use grayscales only. A</span></div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="comment"># value of 255 will produce the most vivid colors.</span></div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 255, default value: 100.</span></div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">HTML_COLORSTYLE_SAT = 100</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment"># The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the</span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment"># luminance component of the colors in the HTML output. Values below 100</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment"># gradually make the output lighter, whereas values above 100 make the output</span></div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment"># darker. The value divided by 100 is the actual gamma applied, so 80 represents</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment"># a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment"># change the gamma.</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="comment"># Minimum value: 40, maximum value: 240, default value: 80.</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="comment">HTML_COLORSTYLE_GAMMA = 80</span></div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="comment"># If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML</span></div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="comment"># page will contain the date and time when the page was generated. Setting this</span></div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="comment"># to YES can help to show when doxygen was last run and thus if the</span></div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="comment"># documentation is up to date.</span></div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="comment">HTML_TIMESTAMP = NO</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="comment"># If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="comment"># documentation will contain sections that can be hidden and shown after the</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="comment"># page has loaded.</span></div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment">HTML_DYNAMIC_SECTIONS = NO</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment"># With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment"># shown in the various tree structured indices initially; the user can expand</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment"># and collapse entries dynamically later on. Doxygen will expand the tree to</span></div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="comment"># such a level that at most the specified number of entries are visible (unless</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="comment"># a fully collapsed tree already exceeds this amount). So setting the number of</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="comment"># entries 1 will produce a full collapsed tree by default. 0 is a special value</span></div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="comment"># representing an infinite number of entries and will result in a full expanded</span></div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="comment"># tree by default.</span></div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 9999, default value: 100.</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">HTML_INDEX_NUM_ENTRIES = 100</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="comment"># If the GENERATE_DOCSET tag is set to YES, additional index files will be</span></div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="comment"># generated that can be used as input for Apple&#39;s Xcode 3 integrated development</span></div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="comment"># environment (see: http://developer.apple.com/tools/xcode/), introduced with</span></div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="comment"># OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a</span></div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment"># Makefile in the HTML output directory. Running make will produce the docset in</span></div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment"># that directory and running make install will install the docset in</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="comment"># ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at</span></div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;<span class="comment"># startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html</span></div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="comment"># for more information.</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="comment">GENERATE_DOCSET = NO</span></div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;<span class="comment"># This tag determines the name of the docset feed. A documentation feed provides</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="comment"># an umbrella under which multiple documentation sets from a single provider</span></div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="comment"># (such as a company or product suite) can be grouped.</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;<span class="comment"># The default value is: Doxygen generated docs.</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;<span class="comment">DOCSET_FEEDNAME = &quot;Doxygen generated docs&quot;</span></div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="comment"># This tag specifies a string that should uniquely identify the documentation</span></div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="comment"># set bundle. This should be a reverse domain-name style string, e.g.</span></div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="comment"># com.mycompany.MyDocSet. Doxygen will append .docset to the name.</span></div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="comment"># The default value is: org.doxygen.Project.</span></div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="comment">DOCSET_BUNDLE_ID = org.doxygen.Project</span></div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="comment"># The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify</span></div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="comment"># the documentation publisher. This should be a reverse domain-name style</span></div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<span class="comment"># string, e.g. com.mycompany.MyDocSet.documentation.</span></div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="comment"># The default value is: org.doxygen.Publisher.</span></div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;<span class="comment">DOCSET_PUBLISHER_ID = org.doxygen.Publisher</span></div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;<span class="comment"># The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.</span></div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;<span class="comment"># The default value is: Publisher.</span></div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;<span class="comment">DOCSET_PUBLISHER_NAME = Publisher</span></div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="comment"># If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three</span></div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;<span class="comment"># additional HTML index files: index.hhp, index.hhc, and index.hhk. The</span></div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;<span class="comment"># index.hhp is a project file that can be read by Microsoft&#39;s HTML Help Workshop</span></div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;<span class="comment"># (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on</span></div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;<span class="comment"># Windows.</span></div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;<span class="comment"># The HTML Help Workshop contains a compiler that can convert all HTML output</span></div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;<span class="comment"># generated by doxygen into a single compiled HTML file (.chm). Compiled HTML</span></div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;<span class="comment"># files are now used as the Windows 98 help format, and will replace the old</span></div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;<span class="comment"># Windows help format (.hlp) on all Windows platforms in the future. Compressed</span></div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<span class="comment"># HTML files also contain an index, a table of contents, and you can search for</span></div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;<span class="comment"># words in the documentation. The HTML workshop also contains a viewer for</span></div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;<span class="comment"># compressed HTML files.</span></div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;<span class="comment">GENERATE_HTMLHELP = NO</span></div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;<span class="comment"># The CHM_FILE tag can be used to specify the file name of the resulting .chm</span></div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;<span class="comment"># file. You can add a path in front of the file if the result should not be</span></div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;<span class="comment"># written to the html output directory.</span></div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;<span class="comment">CHM_FILE = </span></div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;<span class="comment"># The HHC_LOCATION tag can be used to specify the location (absolute path</span></div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;<span class="comment"># including file name) of the HTML help compiler (hhc.exe). If non-empty,</span></div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;<span class="comment"># doxygen will try to run the HTML help compiler on the generated index.hhp.</span></div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;<span class="comment"># The file has to be specified with full path.</span></div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<span class="comment">HHC_LOCATION = </span></div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="comment"># The GENERATE_CHI flag controls if a separate .chi index file is generated</span></div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<span class="comment"># (YES) or that it should be included in the master .chm file (NO).</span></div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;<span class="comment">GENERATE_CHI = NO</span></div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;<span class="comment"># The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)</span></div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;<span class="comment"># and project file content.</span></div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;<span class="comment">CHM_INDEX_ENCODING = </span></div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;<span class="comment"># The BINARY_TOC flag controls whether a binary table of contents is generated</span></div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;<span class="comment"># (YES) or a normal table of contents (NO) in the .chm file. Furthermore it</span></div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;<span class="comment"># enables the Previous and Next buttons.</span></div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="comment">BINARY_TOC = NO</span></div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;<span class="comment"># The TOC_EXPAND flag can be set to YES to add extra items for group members to</span></div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="comment"># the table of contents of the HTML help documentation and to the tree view.</span></div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;<span class="comment">TOC_EXPAND = NO</span></div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;<span class="comment"># If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and</span></div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<span class="comment"># QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that</span></div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="comment"># can be used as input for Qt&#39;s qhelpgenerator to generate a Qt Compressed Help</span></div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="comment"># (.qch) of the generated HTML documentation.</span></div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;<span class="comment">GENERATE_QHP = NO</span></div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;<span class="comment"># If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify</span></div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;<span class="comment"># the file name of the resulting .qch file. The path specified is relative to</span></div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="comment"># the HTML output folder.</span></div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="comment">QCH_FILE = </span></div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="comment"># The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help</span></div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;<span class="comment"># Project output. For more information please see Qt Help Project / Namespace</span></div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="comment"># (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).</span></div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;<span class="comment"># The default value is: org.doxygen.Project.</span></div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;<span class="comment">QHP_NAMESPACE = org.doxygen.Project</span></div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;<span class="comment"># The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt</span></div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="comment"># Help Project output. For more information please see Qt Help Project / Virtual</span></div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;<span class="comment"># Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-</span></div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="comment"># folders).</span></div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="comment"># The default value is: doc.</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;<span class="comment">QHP_VIRTUAL_FOLDER = doc</span></div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<span class="comment"># If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom</span></div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;<span class="comment"># filter to add. For more information please see Qt Help Project / Custom</span></div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;<span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;<span class="comment"># filters).</span></div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;<span class="comment">QHP_CUST_FILTER_NAME = </span></div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;<span class="comment"># The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the</span></div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;<span class="comment"># custom filter to add. For more information please see Qt Help Project / Custom</span></div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="comment"># filters).</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;<span class="comment">QHP_CUST_FILTER_ATTRS = </span></div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;<span class="comment"># The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this</span></div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;<span class="comment"># project&#39;s filter section matches. Qt Help Project / Filter Attributes (see:</span></div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;<span class="comment"># http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).</span></div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;<span class="comment">QHP_SECT_FILTER_ATTRS = </span></div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="comment"># The QHG_LOCATION tag can be used to specify the location of Qt&#39;s</span></div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="comment"># qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the</span></div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;<span class="comment"># generated .qhp file.</span></div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;<span class="comment">QHG_LOCATION = </span></div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;<span class="comment"># If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be</span></div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;<span class="comment"># generated, together with the HTML files, they form an Eclipse help plugin. To</span></div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;<span class="comment"># install this plugin and make it available under the help contents menu in</span></div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;<span class="comment"># Eclipse, the contents of the directory containing the HTML and XML files needs</span></div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;<span class="comment"># to be copied into the plugins directory of eclipse. The name of the directory</span></div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="comment"># within the plugins directory should be the same as the ECLIPSE_DOC_ID value.</span></div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="comment"># After copying Eclipse needs to be restarted before the help appears.</span></div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="comment">GENERATE_ECLIPSEHELP = NO</span></div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;<span class="comment"># A unique identifier for the Eclipse help plugin. When installing the plugin</span></div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;<span class="comment"># the directory name containing the HTML and XML files should also have this</span></div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;<span class="comment"># name. Each documentation set should have its own identifier.</span></div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;<span class="comment"># The default value is: org.doxygen.Project.</span></div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.</span></div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;<span class="comment">ECLIPSE_DOC_ID = org.doxygen.Project</span></div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;<span class="comment"># If you want full control over the layout of the generated HTML pages it might</span></div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;<span class="comment"># be necessary to disable the index and replace it with your own. The</span></div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;<span class="comment"># DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top</span></div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;<span class="comment"># of each HTML page. A value of NO enables the index and the value YES disables</span></div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;<span class="comment"># it. Since the tabs in the index contain the same information as the navigation</span></div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;<span class="comment"># tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.</span></div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;<span class="comment">DISABLE_INDEX = NO</span></div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="comment"># The GENERATE_TREEVIEW tag is used to specify whether a tree-like index</span></div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;<span class="comment"># structure should be generated to display hierarchical information. If the tag</span></div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;<span class="comment"># value is set to YES, a side panel will be generated containing a tree-like</span></div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="comment"># index structure (just like the one that is generated for HTML Help). For this</span></div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="comment"># to work a browser that supports JavaScript, DHTML, CSS and frames is required</span></div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;<span class="comment"># (i.e. any modern browser). Windows users are probably better off using the</span></div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;<span class="comment"># HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can</span></div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;<span class="comment"># further fine-tune the look of the index. As an example, the default style</span></div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;<span class="comment"># sheet generated by doxygen has an example that shows how to put an image at</span></div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;<span class="comment"># the root of the tree instead of the PROJECT_NAME. Since the tree basically has</span></div>
-<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<span class="comment"># the same information as the tab index, you could consider setting</span></div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;<span class="comment"># DISABLE_INDEX to YES when enabling this option.</span></div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<span class="comment">GENERATE_TREEVIEW = NO</span></div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;<span class="comment"># The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that</span></div>
-<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;<span class="comment"># doxygen will group on one line in the generated HTML documentation.</span></div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;<span class="comment"># Note that a value of 0 will completely suppress the enum values from appearing</span></div>
-<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;<span class="comment"># in the overview section.</span></div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 20, default value: 4.</span></div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;<span class="comment">ENUM_VALUES_PER_LINE = 4</span></div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;<span class="comment"># If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used</span></div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;<span class="comment"># to set the initial width (in pixels) of the frame in which the tree is shown.</span></div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 1500, default value: 250.</span></div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;<span class="comment">TREEVIEW_WIDTH = 250</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;<span class="comment"># If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to</span></div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;<span class="comment"># external symbols imported via tag files in a separate window.</span></div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="comment">EXT_LINKS_IN_WINDOW = NO</span></div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;<span class="comment"># Use this tag to change the font size of LaTeX formulas included as images in</span></div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;<span class="comment"># the HTML documentation. When you change the font size after a successful</span></div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="comment"># doxygen run you need to manually remove any form_*.png images from the HTML</span></div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;<span class="comment"># output directory to force them to be regenerated.</span></div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="comment"># Minimum value: 8, maximum value: 50, default value: 10.</span></div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;<span class="comment">FORMULA_FONTSIZE = 10</span></div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;<span class="comment"># Use the FORMULA_TRANPARENT tag to determine whether or not the images</span></div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;<span class="comment"># generated for formulas are transparent PNGs. Transparent PNGs are not</span></div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;<span class="comment"># supported properly for IE 6.0, but are supported on all modern browsers.</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="comment"># Note that when changing this option you need to delete any form_*.png files in</span></div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;<span class="comment"># the HTML output directory before the changes have effect.</span></div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;<span class="comment">FORMULA_TRANSPARENT = YES</span></div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;<span class="comment"># Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see</span></div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;<span class="comment"># http://www.mathjax.org) which uses client side Javascript for the rendering</span></div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;<span class="comment"># instead of using pre-rendered bitmaps. Use this if you do not have LaTeX</span></div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;<span class="comment"># installed or if you want to formulas look prettier in the HTML output. When</span></div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;<span class="comment"># enabled you may also need to install MathJax separately and configure the path</span></div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;<span class="comment"># to it using the MATHJAX_RELPATH option.</span></div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;<span class="comment">USE_MATHJAX = NO</span></div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;<span class="comment"># When MathJax is enabled you can set the default output format to be used for</span></div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="comment"># the MathJax output. See the MathJax site (see:</span></div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;<span class="comment"># http://docs.mathjax.org/en/latest/output.html) for more details.</span></div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;<span class="comment"># Possible values are: HTML-CSS (which is slower, but has the best</span></div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;<span class="comment"># compatibility), NativeMML (i.e. MathML) and SVG.</span></div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<span class="comment"># The default value is: HTML-CSS.</span></div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="comment">MATHJAX_FORMAT = HTML-CSS</span></div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;<span class="comment"># When MathJax is enabled you need to specify the location relative to the HTML</span></div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;<span class="comment"># output directory using the MATHJAX_RELPATH option. The destination directory</span></div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;<span class="comment"># should contain the MathJax.js script. For instance, if the mathjax directory</span></div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="comment"># is located at the same level as the HTML output directory, then</span></div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="comment"># MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax</span></div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;<span class="comment"># Content Delivery Network so you can quickly see the result without installing</span></div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="comment"># MathJax. However, it is strongly recommended to install a local copy of</span></div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="comment"># MathJax from http://www.mathjax.org before deployment.</span></div>
-<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;<span class="comment"># The default value is: http://cdn.mathjax.org/mathjax/latest.</span></div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="comment">MATHJAX_RELPATH = http://www.mathjax.org/mathjax</span></div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;<span class="comment"># The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax</span></div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;<span class="comment"># extension names that should be enabled during MathJax rendering. For example</span></div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;<span class="comment"># MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols</span></div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;<span class="comment">MATHJAX_EXTENSIONS = </span></div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;<span class="comment"># The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces</span></div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;<span class="comment"># of code that will be used on startup of the MathJax code. See the MathJax site</span></div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<span class="comment"># (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an</span></div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;<span class="comment"># example see the documentation.</span></div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;<span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;<span class="comment">MATHJAX_CODEFILE = </span></div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;<span class="comment"># When the SEARCHENGINE tag is enabled doxygen will generate a search box for</span></div>
-<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;<span class="comment"># the HTML output. The underlying search engine uses javascript and DHTML and</span></div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;<span class="comment"># should work on any modern browser. Note that when using HTML help</span></div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment"># (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)</span></div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment"># there is already a search function so this one should typically be disabled.</span></div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment"># For large projects the javascript based search engine can be slow, then</span></div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;<span class="comment"># enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to</span></div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;<span class="comment"># search using the keyboard; to jump to the search box use &lt;access key&gt; + S</span></div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;<span class="comment"># (what the &lt;access key&gt; is depends on the OS and browser, but it is typically</span></div>
-<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;<span class="comment"># &lt;CTRL&gt;, &lt;ALT&gt;/&lt;option&gt;, or both). Inside the search box use the &lt;cursor down</span></div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;<span class="comment"># key&gt; to jump into the search results window, the results can be navigated</span></div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;<span class="comment"># using the &lt;cursor keys&gt;. Press &lt;Enter&gt; to select an item or &lt;escape&gt; to cancel</span></div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;<span class="comment"># the search. The filter options can be selected when the cursor is inside the</span></div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="comment"># search box by pressing &lt;Shift&gt;+&lt;cursor down&gt;. Also here use the &lt;cursor keys&gt;</span></div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;<span class="comment"># to select a filter and &lt;Enter&gt; or &lt;escape&gt; to activate or cancel the filter</span></div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;<span class="comment"># option.</span></div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;<span class="comment">SEARCHENGINE = NO</span></div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="comment"># When the SERVER_BASED_SEARCH tag is enabled the search engine will be</span></div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;<span class="comment"># implemented using a web server instead of a web client using Javascript. There</span></div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;<span class="comment"># are two flavors of web server based searching depending on the EXTERNAL_SEARCH</span></div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;<span class="comment"># setting. When disabled, doxygen will generate a PHP script for searching and</span></div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;<span class="comment"># an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing</span></div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;<span class="comment"># and searching needs to be provided by external tools. See the section</span></div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="comment"># &quot;External Indexing and Searching&quot; for details.</span></div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;<span class="comment">SERVER_BASED_SEARCH = NO</span></div>
-<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;<span class="comment"># When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP</span></div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;<span class="comment"># script for searching. Instead the search results are written to an XML file</span></div>
-<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;<span class="comment"># which needs to be processed by an external indexer. Doxygen will invoke an</span></div>
-<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;<span class="comment"># external search engine pointed to by the SEARCHENGINE_URL option to obtain the</span></div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;<span class="comment"># search results.</span></div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;<span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
-<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;<span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;<span class="comment"># Xapian (see: http://xapian.org/).</span></div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;<span class="comment"># See the section &quot;External Indexing and Searching&quot; for details.</span></div>
-<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;<span class="comment">EXTERNAL_SEARCH = NO</span></div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;<span class="comment"># The SEARCHENGINE_URL should point to a search engine hosted by a web server</span></div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;<span class="comment"># which will return the search results when EXTERNAL_SEARCH is enabled.</span></div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;<span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;<span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;<span class="comment"># Xapian (see: http://xapian.org/). See the section &quot;External Indexing and</span></div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;<span class="comment"># Searching&quot; for details.</span></div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;<span class="comment">SEARCHENGINE_URL = </span></div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;<span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed</span></div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;<span class="comment"># search data is written to a file for indexing by an external tool. With the</span></div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;<span class="comment"># SEARCHDATA_FILE tag the name of this file can be specified.</span></div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;<span class="comment"># The default file is: searchdata.xml.</span></div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="comment">SEARCHDATA_FILE = searchdata.xml</span></div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;<span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the</span></div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="comment"># EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is</span></div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;<span class="comment"># useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple</span></div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;<span class="comment"># projects and redirect the results back to the right project.</span></div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;<span class="comment">EXTERNAL_SEARCH_ID = </span></div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;<span class="comment"># The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen</span></div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;<span class="comment"># projects other than the one defined by this configuration file, but that are</span></div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;<span class="comment"># all added to the same external search index. Each project needs to have a</span></div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;<span class="comment"># unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of</span></div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;<span class="comment"># to a relative location where the documentation can be found. The format is:</span></div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;<span class="comment"># EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...</span></div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;<span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;<span class="comment">EXTRA_SEARCH_MAPPINGS = </span></div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;<span class="comment"># Configuration options related to the LaTeX output</span></div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;<span class="comment"># If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.</span></div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;<span class="comment">GENERATE_LATEX = NO</span></div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;<span class="comment"># The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a</span></div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;<span class="comment"># it.</span></div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;<span class="comment"># The default directory is: latex.</span></div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;<span class="comment">LATEX_OUTPUT = latex</span></div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;<span class="comment"># The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be</span></div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="comment"># invoked.</span></div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;<span class="comment"># Note that when enabling USE_PDFLATEX this option is only used for generating</span></div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;<span class="comment"># bitmaps for formulas in the HTML output, but not in the Makefile that is</span></div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;<span class="comment"># written to the output directory.</span></div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;<span class="comment"># The default file is: latex.</span></div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;<span class="comment">LATEX_CMD_NAME = latex</span></div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment"># The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate</span></div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;<span class="comment"># index for LaTeX.</span></div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="comment"># The default file is: makeindex.</span></div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;<span class="comment">MAKEINDEX_CMD_NAME = makeindex</span></div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="comment"># If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX</span></div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;<span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;<span class="comment"># trees in general.</span></div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="comment">COMPACT_LATEX = NO</span></div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;<span class="comment"># The PAPER_TYPE tag can be used to set the paper type that is used by the</span></div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;<span class="comment"># printer.</span></div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;<span class="comment"># Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x</span></div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;<span class="comment"># 14 inches) and executive (7.25 x 10.5 inches).</span></div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;<span class="comment"># The default value is: a4.</span></div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;<span class="comment">PAPER_TYPE = a4wide</span></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;<span class="comment"># The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names</span></div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;<span class="comment"># that should be included in the LaTeX output. The package can be specified just</span></div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;<span class="comment"># by its name or with the correct syntax as to be used with the LaTeX</span></div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;<span class="comment"># \usepackage command. To get the times font for instance you can specify :</span></div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;<span class="comment"># EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}</span></div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="comment"># To use the option intlimits with the amsmath package you can specify:</span></div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;<span class="comment"># EXTRA_PACKAGES=[intlimits]{amsmath}</span></div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;<span class="comment"># If left blank no extra packages will be included.</span></div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<span class="comment">EXTRA_PACKAGES = </span></div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;<span class="comment"># The LATEX_HEADER tag can be used to specify a personal LaTeX header for the</span></div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;<span class="comment"># generated LaTeX document. The header should contain everything until the first</span></div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;<span class="comment"># chapter. If it is left blank doxygen will generate a standard header. See</span></div>
-<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;<span class="comment"># section &quot;Doxygen usage&quot; for information on how to let doxygen write the</span></div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="comment"># default header to a separate file.</span></div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="comment"># Note: Only use a user-defined header if you know what you are doing! The</span></div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;<span class="comment"># following commands have a special meaning inside the header: $title,</span></div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;<span class="comment"># $datetime, $date, $doxygenversion, $projectname, $projectnumber,</span></div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;<span class="comment"># $projectbrief, $projectlogo. Doxygen will replace $title with the empty</span></div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;<span class="comment"># string, for the replacement values of the other commands the user is referred</span></div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;<span class="comment"># to HTML_HEADER.</span></div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;<span class="comment">LATEX_HEADER = </span></div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;<span class="comment"># The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the</span></div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;<span class="comment"># generated LaTeX document. The footer should contain everything after the last</span></div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="comment"># chapter. If it is left blank doxygen will generate a standard footer. See</span></div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;<span class="comment"># LATEX_HEADER for more information on how to generate a default footer and what</span></div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;<span class="comment"># special commands can be used inside the footer.</span></div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment"># Note: Only use a user-defined footer if you know what you are doing!</span></div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;<span class="comment">LATEX_FOOTER = </span></div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;<span class="comment"># The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;<span class="comment"># LaTeX style sheets that are included after the standard style sheets created</span></div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<span class="comment"># by doxygen. Using this option one can overrule certain style aspects. Doxygen</span></div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;<span class="comment"># will copy the style sheet files to the output directory.</span></div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;<span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;<span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;<span class="comment"># list).</span></div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;<span class="comment">LATEX_EXTRA_STYLESHEET = </span></div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;<span class="comment"># The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;<span class="comment"># other source files which should be copied to the LATEX_OUTPUT output</span></div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;<span class="comment"># directory. Note that the files will be copied as-is; there are no commands or</span></div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;<span class="comment"># markers available.</span></div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;<span class="comment">LATEX_EXTRA_FILES = </span></div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;<span class="comment"># If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is</span></div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;<span class="comment"># prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will</span></div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;<span class="comment"># contain links (just like the HTML output) instead of page references. This</span></div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<span class="comment"># makes the output suitable for online browsing using a PDF viewer.</span></div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;<span class="comment">PDF_HYPERLINKS = NO</span></div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;<span class="comment"># If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate</span></div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;<span class="comment"># the PDF file directly from the LaTeX files. Set this option to YES, to get a</span></div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;<span class="comment"># higher quality PDF documentation.</span></div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;<span class="comment">USE_PDFLATEX = YES</span></div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;<span class="comment"># If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode</span></div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;<span class="comment"># command to the generated LaTeX files. This will instruct LaTeX to keep running</span></div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="comment"># if errors occur, instead of asking the user for help. This option is also used</span></div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;<span class="comment"># when generating formulas in HTML.</span></div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;<span class="comment">LATEX_BATCHMODE = NO</span></div>
-<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;<span class="comment"># If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the</span></div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;<span class="comment"># index chapters (such as File Index, Compound Index, etc.) in the output.</span></div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;<span class="comment">LATEX_HIDE_INDICES = NO</span></div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;<span class="comment"># If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source</span></div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;<span class="comment"># code with syntax highlighting in the LaTeX output.</span></div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;<span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;<span class="comment"># SOURCE_BROWSER.</span></div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="comment">LATEX_SOURCE_CODE = NO</span></div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;<span class="comment"># The LATEX_BIB_STYLE tag can be used to specify the style to use for the</span></div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;<span class="comment"># bibliography, e.g. plainnat, or ieeetr. See</span></div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;<span class="comment"># http://en.wikipedia.org/wiki/BibTeX and \cite for more info.</span></div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;<span class="comment"># The default value is: plain.</span></div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;<span class="comment">LATEX_BIB_STYLE = plain</span></div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;<span class="comment"># Configuration options related to the RTF output</span></div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;<span class="comment"># If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The</span></div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;<span class="comment"># RTF output is optimized for Word 97 and may not look too pretty with other RTF</span></div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;<span class="comment"># readers/editors.</span></div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;<span class="comment">GENERATE_RTF = NO</span></div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;<span class="comment"># The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a</span></div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;<span class="comment"># it.</span></div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;<span class="comment"># The default directory is: rtf.</span></div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;<span class="comment">RTF_OUTPUT = glm.rtf</span></div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;<span class="comment"># If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF</span></div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;<span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;<span class="comment"># trees in general.</span></div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;<span class="comment">COMPACT_RTF = NO</span></div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;<span class="comment"># If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will</span></div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;<span class="comment"># contain hyperlink fields. The RTF file will contain links (just like the HTML</span></div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;<span class="comment"># output) instead of page references. This makes the output suitable for online</span></div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;<span class="comment"># browsing using Word or some other Word compatible readers that support those</span></div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;<span class="comment"># fields.</span></div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;<span class="comment"># Note: WordPad (write) and others do not support links.</span></div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;<span class="comment">RTF_HYPERLINKS = YES</span></div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;<span class="comment"># Load stylesheet definitions from file. Syntax is similar to doxygen&#39;s config</span></div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;<span class="comment"># file, i.e. a series of assignments. You only have to provide replacements,</span></div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;<span class="comment"># missing definitions are set to their default value.</span></div>
-<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;<span class="comment"># See also section &quot;Doxygen usage&quot; for information on how to generate the</span></div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;<span class="comment"># default style sheet that doxygen normally uses.</span></div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;<span class="comment">RTF_STYLESHEET_FILE = </span></div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;<span class="comment"># Set optional variables used in the generation of an RTF document. Syntax is</span></div>
-<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;<span class="comment"># similar to doxygen&#39;s config file. A template extensions file can be generated</span></div>
-<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;<span class="comment"># using doxygen -e rtf extensionFile.</span></div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;<span class="comment">RTF_EXTENSIONS_FILE = </span></div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;<span class="comment"># If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code</span></div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;<span class="comment"># with syntax highlighting in the RTF output.</span></div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;<span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;<span class="comment"># SOURCE_BROWSER.</span></div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;<span class="comment">RTF_SOURCE_CODE = NO</span></div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;<span class="comment"># Configuration options related to the man page output</span></div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;<span class="comment"># If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for</span></div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;<span class="comment"># classes and files.</span></div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;<span class="comment">GENERATE_MAN = NO</span></div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;<span class="comment"># The MAN_OUTPUT tag is used to specify where the man pages will be put. If a</span></div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;<span class="comment"># it. A directory man3 will be created inside the directory specified by</span></div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;<span class="comment"># MAN_OUTPUT.</span></div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;<span class="comment"># The default directory is: man.</span></div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;<span class="comment">MAN_OUTPUT = man</span></div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;<span class="comment"># The MAN_EXTENSION tag determines the extension that is added to the generated</span></div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;<span class="comment"># man pages. In case the manual section does not start with a number, the number</span></div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;<span class="comment"># 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is</span></div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;<span class="comment"># optional.</span></div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;<span class="comment"># The default value is: .3.</span></div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;<span class="comment">MAN_EXTENSION = .3</span></div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;<span class="comment"># The MAN_SUBDIR tag determines the name of the directory created within</span></div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;<span class="comment"># MAN_OUTPUT in which the man pages are placed. If defaults to man followed by</span></div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;<span class="comment"># MAN_EXTENSION with the initial . removed.</span></div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;<span class="comment">MAN_SUBDIR = </span></div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;<span class="comment"># If the MAN_LINKS tag is set to YES and doxygen generates man output, then it</span></div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;<span class="comment"># will generate one additional man file for each entity documented in the real</span></div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;<span class="comment"># man page(s). These additional files only source the real man page, but without</span></div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;<span class="comment"># them the man command would be unable to find the correct page.</span></div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;<span class="comment">MAN_LINKS = NO</span></div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;<span class="comment"># Configuration options related to the XML output</span></div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;<span class="comment"># If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that</span></div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;<span class="comment"># captures the structure of the code including all documentation.</span></div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;<span class="comment">GENERATE_XML = NO</span></div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;<span class="comment"># The XML_OUTPUT tag is used to specify where the XML pages will be put. If a</span></div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;<span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;<span class="comment"># it.</span></div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;<span class="comment"># The default directory is: xml.</span></div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
-<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;<span class="comment">XML_OUTPUT = xml</span></div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;<span class="comment"># If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program</span></div>
-<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;<span class="comment"># listings (including syntax highlighting and cross-referencing information) to</span></div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="comment"># the XML output. Note that enabling this will significantly increase the size</span></div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;<span class="comment"># of the XML output.</span></div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;<span class="comment">XML_PROGRAMLISTING = YES</span></div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;<span class="comment"># Configuration options related to the DOCBOOK output</span></div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;<span class="comment"># If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files</span></div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;<span class="comment"># that can be used to generate PDF.</span></div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;<span class="comment">GENERATE_DOCBOOK = NO</span></div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;<span class="comment"># The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.</span></div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;<span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be put in</span></div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;<span class="comment"># front of it.</span></div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;<span class="comment"># The default directory is: docbook.</span></div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;<span class="comment">DOCBOOK_OUTPUT = docbook</span></div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;<span class="comment"># If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the</span></div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;<span class="comment"># program listings (including syntax highlighting and cross-referencing</span></div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;<span class="comment"># information) to the DOCBOOK output. Note that enabling this will significantly</span></div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;<span class="comment"># increase the size of the DOCBOOK output.</span></div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;<span class="comment">DOCBOOK_PROGRAMLISTING = NO</span></div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;<span class="comment"># Configuration options for the AutoGen Definitions output</span></div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;<span class="comment"># If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an</span></div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;<span class="comment"># AutoGen Definitions (see http://autogen.sf.net) file that captures the</span></div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;<span class="comment"># structure of the code including all documentation. Note that this feature is</span></div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;<span class="comment"># still experimental and incomplete at the moment.</span></div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="comment">GENERATE_AUTOGEN_DEF = NO</span></div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="comment"># Configuration options related to the Perl module output</span></div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="comment"># If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module</span></div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="comment"># file that captures the structure of the code including all documentation.</span></div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;<span class="comment"># Note that this feature is still experimental and incomplete at the moment.</span></div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;<span class="comment">GENERATE_PERLMOD = NO</span></div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;<span class="comment"># If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary</span></div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;<span class="comment"># Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI</span></div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;<span class="comment"># output from the Perl module output.</span></div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;<span class="comment">PERLMOD_LATEX = NO</span></div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<span class="comment"># If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely</span></div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;<span class="comment"># formatted so it can be parsed by a human reader. This is useful if you want to</span></div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;<span class="comment"># understand what is going on. On the other hand, if this tag is set to NO, the</span></div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;<span class="comment"># size of the Perl module output will be much smaller and Perl will parse it</span></div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;<span class="comment"># just the same.</span></div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;<span class="comment">PERLMOD_PRETTY = YES</span></div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;<span class="comment"># The names of the make variables in the generated doxyrules.make file are</span></div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;<span class="comment"># prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful</span></div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;<span class="comment"># so different doxyrules.make files included by the same Makefile don&#39;t</span></div>
-<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;<span class="comment"># overwrite each other&#39;s variables.</span></div>
-<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;<span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;<span class="comment">PERLMOD_MAKEVAR_PREFIX = </span></div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;<span class="comment"># Configuration options related to the preprocessor</span></div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;<span class="comment"># If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all</span></div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="comment"># C-preprocessor directives found in the sources and include files.</span></div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;<span class="comment">ENABLE_PREPROCESSING = YES</span></div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;<span class="comment"># If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names</span></div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;<span class="comment"># in the source code. If set to NO, only conditional compilation will be</span></div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;<span class="comment"># performed. Macro expansion can be done in a controlled way by setting</span></div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;<span class="comment"># EXPAND_ONLY_PREDEF to YES.</span></div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;<span class="comment">MACRO_EXPANSION = NO</span></div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;<span class="comment"># If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then</span></div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;<span class="comment"># the macro expansion is limited to the macros specified with the PREDEFINED and</span></div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;<span class="comment"># EXPAND_AS_DEFINED tags.</span></div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;<span class="comment">EXPAND_ONLY_PREDEF = NO</span></div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;<span class="comment"># If the SEARCH_INCLUDES tag is set to YES, the include files in the</span></div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;<span class="comment"># INCLUDE_PATH will be searched if a #include is found.</span></div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;<span class="comment">SEARCH_INCLUDES = YES</span></div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;<span class="comment"># The INCLUDE_PATH tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;<span class="comment"># contain include files that are not input files but should be processed by the</span></div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;<span class="comment"># preprocessor.</span></div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;<span class="comment"># This tag requires that the tag SEARCH_INCLUDES is set to YES.</span></div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;<span class="comment">INCLUDE_PATH = </span></div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;<span class="comment"># You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard</span></div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;<span class="comment"># patterns (like *.h and *.hpp) to filter out the header-files in the</span></div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;<span class="comment"># directories. If left blank, the patterns specified with FILE_PATTERNS will be</span></div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;<span class="comment"># used.</span></div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;<span class="comment">INCLUDE_FILE_PATTERNS = </span></div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;<span class="comment"># The PREDEFINED tag can be used to specify one or more macro names that are</span></div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;<span class="comment"># defined before the preprocessor is started (similar to the -D option of e.g.</span></div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;<span class="comment"># gcc). The argument of the tag is a list of macros of the form: name or</span></div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;<span class="comment"># name=definition (no spaces). If the definition and the &quot;=&quot; are omitted, &quot;=1&quot;</span></div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;<span class="comment"># is assumed. To prevent a macro definition from being undefined via #undef or</span></div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;<span class="comment"># recursively expanded use the := operator instead of the = operator.</span></div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;<span class="comment">PREDEFINED = </span></div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;<span class="comment"># If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this</span></div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;<span class="comment"># tag can be used to specify a list of macro names that should be expanded. The</span></div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;<span class="comment"># macro definition that is found in the sources will be used. Use the PREDEFINED</span></div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;<span class="comment"># tag if you want to use a different macro definition that overrules the</span></div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;<span class="comment"># definition found in the source code.</span></div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;<span class="comment">EXPAND_AS_DEFINED = </span></div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;<span class="comment"># If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen&#39;s preprocessor will</span></div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;<span class="comment"># remove all references to function-like macros that are alone on a line, have</span></div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;<span class="comment"># an all uppercase name, and do not end with a semicolon. Such function macros</span></div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;<span class="comment"># are typically used for boiler-plate code, and will confuse the parser if not</span></div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;<span class="comment"># removed.</span></div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;<span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;<span class="comment">SKIP_FUNCTION_MACROS = YES</span></div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;<span class="comment"># Configuration options related to external references</span></div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;<span class="comment"># The TAGFILES tag can be used to specify one or more tag files. For each tag</span></div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;<span class="comment"># file the location of the external documentation should be added. The format of</span></div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;<span class="comment"># a tag file without this location is as follows:</span></div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;<span class="comment"># TAGFILES = file1 file2 ...</span></div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;<span class="comment"># Adding location for the tag files is done as follows:</span></div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;<span class="comment"># TAGFILES = file1=loc1 &quot;file2 = loc2&quot; ...</span></div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;<span class="comment"># where loc1 and loc2 can be relative or absolute paths or URLs. See the</span></div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;<span class="comment"># section &quot;Linking to external documentation&quot; for more information about the use</span></div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;<span class="comment"># of tag files.</span></div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;<span class="comment"># Note: Each tag file must have a unique name (where the name does NOT include</span></div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;<span class="comment"># the path). If a tag file is not located in the directory in which doxygen is</span></div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;<span class="comment"># run, you must also specify the path to the tagfile here.</span></div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;<span class="comment">TAGFILES = </span></div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;<span class="comment"># When a file name is specified after GENERATE_TAGFILE, doxygen will create a</span></div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;<span class="comment"># tag file that is based on the input files it reads. See section &quot;Linking to</span></div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;<span class="comment"># external documentation&quot; for more information about the usage of tag files.</span></div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;<span class="comment">GENERATE_TAGFILE = </span></div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;<span class="comment"># If the ALLEXTERNALS tag is set to YES, all external class will be listed in</span></div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;<span class="comment"># the class index. If set to NO, only the inherited external classes will be</span></div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;<span class="comment"># listed.</span></div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;<span class="comment">ALLEXTERNALS = NO</span></div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;<span class="comment"># If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed</span></div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;<span class="comment"># in the modules index. If set to NO, only the current project&#39;s groups will be</span></div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;<span class="comment"># listed.</span></div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;<span class="comment">EXTERNAL_GROUPS = YES</span></div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;<span class="comment"># If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in</span></div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;<span class="comment"># the related pages index. If set to NO, only the current project&#39;s pages will</span></div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;<span class="comment"># be listed.</span></div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;<span class="comment">EXTERNAL_PAGES = YES</span></div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;<span class="comment"># The PERL_PATH should be the absolute path and name of the perl script</span></div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;<span class="comment"># interpreter (i.e. the result of &#39;which perl&#39;).</span></div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;<span class="comment"># The default file (with absolute path) is: /usr/bin/perl.</span></div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;<span class="comment">PERL_PATH = /usr/bin/perl</span></div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;<span class="comment"># Configuration options related to the dot tool</span></div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;<span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<span class="comment"># If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram</span></div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="comment"># (in HTML and LaTeX) for classes with base or super classes. Setting the tag to</span></div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="comment"># NO turns the diagrams off. Note that this option also works with HAVE_DOT</span></div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;<span class="comment"># disabled, but it is recommended to install and use dot, since it yields more</span></div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;<span class="comment"># powerful graphs.</span></div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;<span class="comment">CLASS_DIAGRAMS = YES</span></div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;<span class="comment"># You can define message sequence charts within doxygen comments using the \msc</span></div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<span class="comment"># command. Doxygen will then run the mscgen tool (see:</span></div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;<span class="comment"># http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the</span></div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;<span class="comment"># documentation. The MSCGEN_PATH tag allows you to specify the directory where</span></div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;<span class="comment"># the mscgen tool resides. If left empty the tool is assumed to be found in the</span></div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;<span class="comment"># default search path.</span></div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="comment">MSCGEN_PATH = </span></div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;<span class="comment"># You can include diagrams made with dia in doxygen documentation. Doxygen will</span></div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;<span class="comment"># then run dia to produce the diagram and insert it in the documentation. The</span></div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;<span class="comment"># DIA_PATH tag allows you to specify the directory where the dia binary resides.</span></div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;<span class="comment"># If left empty dia is assumed to be found in the default search path.</span></div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;<span class="comment">DIA_PATH = </span></div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;<span class="comment"># If set to YES the inheritance and collaboration graphs will hide inheritance</span></div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;<span class="comment"># and usage relations if the target is undocumented or is not a class.</span></div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;<span class="comment">HIDE_UNDOC_RELATIONS = YES</span></div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;<span class="comment"># If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is</span></div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;<span class="comment"># available from the path. This tool is part of Graphviz (see:</span></div>
-<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;<span class="comment"># http://www.graphviz.org/), a graph visualization toolkit from AT&amp;T and Lucent</span></div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;<span class="comment"># Bell Labs. The other options in this section have no effect if this option is</span></div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;<span class="comment"># set to NO</span></div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;<span class="comment">HAVE_DOT = NO</span></div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;<span class="comment"># The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed</span></div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;<span class="comment"># to run in parallel. When set to 0 doxygen will base this on the number of</span></div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;<span class="comment"># processors available in the system. You can set it explicitly to a value</span></div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;<span class="comment"># larger than 0 to get control over the balance between CPU load and processing</span></div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;<span class="comment"># speed.</span></div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 32, default value: 0.</span></div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;<span class="comment">DOT_NUM_THREADS = 0</span></div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;<span class="comment"># When you want a differently looking font in the dot files that doxygen</span></div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;<span class="comment"># generates you can specify the font name using DOT_FONTNAME. You need to make</span></div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;<span class="comment"># sure dot is able to find the font, which can be done by putting it in a</span></div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;<span class="comment"># standard location or by setting the DOTFONTPATH environment variable or by</span></div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="comment"># setting DOT_FONTPATH to the directory containing the font.</span></div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;<span class="comment"># The default value is: Helvetica.</span></div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<span class="comment">DOT_FONTNAME = Helvetica</span></div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;<span class="comment"># The DOT_FONTSIZE tag can be used to set the size (in points) of the font of</span></div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;<span class="comment"># dot graphs.</span></div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;<span class="comment"># Minimum value: 4, maximum value: 24, default value: 10.</span></div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="comment">DOT_FONTSIZE = 10</span></div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;<span class="comment"># By default doxygen will tell dot to use the default font as specified with</span></div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;<span class="comment"># DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set</span></div>
-<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;<span class="comment"># the path where dot can find it using this tag.</span></div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;<span class="comment">DOT_FONTPATH = </span></div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;<span class="comment"># If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for</span></div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;<span class="comment"># each documented class showing the direct and indirect inheritance relations.</span></div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;<span class="comment"># Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.</span></div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;<span class="comment">CLASS_GRAPH = YES</span></div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;<span class="comment"># If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a</span></div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;<span class="comment"># graph for each documented class showing the direct and indirect implementation</span></div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;<span class="comment"># dependencies (inheritance, containment, and class references variables) of the</span></div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;<span class="comment"># class with other documented classes.</span></div>
-<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;<span class="comment">COLLABORATION_GRAPH = YES</span></div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<span class="comment"># If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for</span></div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;<span class="comment"># groups, showing the direct groups dependencies.</span></div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;<span class="comment">GROUP_GRAPHS = YES</span></div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;<span class="comment"># If the UML_LOOK tag is set to YES, doxygen will generate inheritance and</span></div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;<span class="comment"># collaboration diagrams in a style similar to the OMG&#39;s Unified Modeling</span></div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;<span class="comment"># Language.</span></div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;<span class="comment">UML_LOOK = NO</span></div>
-<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;<span class="comment"># If the UML_LOOK tag is enabled, the fields and methods are shown inside the</span></div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;<span class="comment"># class node. If there are many fields or methods and many nodes the graph may</span></div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;<span class="comment"># become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the</span></div>
-<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;<span class="comment"># number of items for each type to make the size more manageable. Set this to 0</span></div>
-<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;<span class="comment"># for no limit. Note that the threshold may be exceeded by 50% before the limit</span></div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;<span class="comment"># is enforced. So when you set the threshold to 10, up to 15 fields may appear,</span></div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;<span class="comment"># but if the number exceeds 15, the total amount of fields shown is limited to</span></div>
-<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;<span class="comment"># 10.</span></div>
-<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 100, default value: 10.</span></div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;<span class="comment">UML_LIMIT_NUM_FIELDS = 10</span></div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;<span class="comment"># If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and</span></div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;<span class="comment"># collaboration graphs will show the relations between templates and their</span></div>
-<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;<span class="comment"># instances.</span></div>
-<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;<span class="comment">TEMPLATE_RELATIONS = NO</span></div>
-<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;<span class="comment"># If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to</span></div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;<span class="comment"># YES then doxygen will generate a graph for each documented file showing the</span></div>
-<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;<span class="comment"># direct and indirect include dependencies of the file with other documented</span></div>
-<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;<span class="comment"># files.</span></div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;<span class="comment">INCLUDE_GRAPH = YES</span></div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;<span class="comment"># If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are</span></div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="comment"># set to YES then doxygen will generate a graph for each documented file showing</span></div>
-<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;<span class="comment"># the direct and indirect include dependencies of the file with other documented</span></div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;<span class="comment"># files.</span></div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;<span class="comment">INCLUDED_BY_GRAPH = YES</span></div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;<span class="comment"># If the CALL_GRAPH tag is set to YES then doxygen will generate a call</span></div>
-<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;<span class="comment"># dependency graph for every global function or class method.</span></div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;<span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
-<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;<span class="comment"># So in most cases it will be better to enable call graphs for selected</span></div>
-<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;<span class="comment"># functions only using the \callgraph command. Disabling a call graph can be</span></div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;<span class="comment"># accomplished by means of the command \hidecallgraph.</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;<span class="comment">CALL_GRAPH = YES</span></div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;<span class="comment"># If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller</span></div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="comment"># dependency graph for every global function or class method.</span></div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;<span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
-<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;<span class="comment"># So in most cases it will be better to enable caller graphs for selected</span></div>
-<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;<span class="comment"># functions only using the \callergraph command. Disabling a caller graph can be</span></div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;<span class="comment"># accomplished by means of the command \hidecallergraph.</span></div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;<span class="comment">CALLER_GRAPH = YES</span></div>
-<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;<span class="comment"># If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical</span></div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;<span class="comment"># hierarchy of all classes instead of a textual one.</span></div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;<span class="comment">GRAPHICAL_HIERARCHY = YES</span></div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;<span class="comment"># If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the</span></div>
-<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;<span class="comment"># dependencies a directory has on other directories in a graphical way. The</span></div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;<span class="comment"># dependency relations are determined by the #include relations between the</span></div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;<span class="comment"># files in the directories.</span></div>
-<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;<span class="comment">DIRECTORY_GRAPH = YES</span></div>
-<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;<span class="comment"># The DOT_IMAGE_FORMAT tag can be used to set the image format of the images</span></div>
-<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;<span class="comment"># generated by dot. For an explanation of the image formats see the section</span></div>
-<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;<span class="comment"># output formats in the documentation of the dot tool (Graphviz (see:</span></div>
-<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;<span class="comment"># http://www.graphviz.org/)).</span></div>
-<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;<span class="comment"># Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order</span></div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;<span class="comment"># to make the SVG files visible in IE 9+ (other browsers do not have this</span></div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;<span class="comment"># requirement).</span></div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;<span class="comment"># Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,</span></div>
-<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;<span class="comment"># png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and</span></div>
-<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;<span class="comment"># png:gdiplus:gdiplus.</span></div>
-<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;<span class="comment"># The default value is: png.</span></div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;<span class="comment">DOT_IMAGE_FORMAT = png</span></div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;<span class="comment"># If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to</span></div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;<span class="comment"># enable generation of interactive SVG images that allow zooming and panning.</span></div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;<span class="comment"># Note that this requires a modern browser other than Internet Explorer. Tested</span></div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;<span class="comment"># and working are Firefox, Chrome, Safari, and Opera.</span></div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;<span class="comment"># Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make</span></div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;<span class="comment"># the SVG files visible. Older versions of IE do not have SVG support.</span></div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;<span class="comment">INTERACTIVE_SVG = NO</span></div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;<span class="comment"># The DOT_PATH tag can be used to specify the path where the dot tool can be</span></div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;<span class="comment"># found. If left blank, it is assumed the dot tool can be found in the path.</span></div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;<span class="comment">DOT_PATH = </span></div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;<span class="comment"># The DOTFILE_DIRS tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;<span class="comment"># contain dot files that are included in the documentation (see the \dotfile</span></div>
-<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;<span class="comment"># command).</span></div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;<span class="comment">DOTFILE_DIRS = </span></div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;<span class="comment"># The MSCFILE_DIRS tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;<span class="comment"># contain msc files that are included in the documentation (see the \mscfile</span></div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;<span class="comment"># command).</span></div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;<span class="comment">MSCFILE_DIRS = </span></div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;<span class="comment"># The DIAFILE_DIRS tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;<span class="comment"># contain dia files that are included in the documentation (see the \diafile</span></div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;<span class="comment"># command).</span></div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;<span class="comment">DIAFILE_DIRS = </span></div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;<span class="comment"># When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the</span></div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;<span class="comment"># path where java can find the plantuml.jar file. If left blank, it is assumed</span></div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;<span class="comment"># PlantUML is not used or called during a preprocessing step. Doxygen will</span></div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;<span class="comment"># generate a warning when it encounters a \startuml command in this case and</span></div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;<span class="comment"># will not generate output for the diagram.</span></div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;<span class="comment">PLANTUML_JAR_PATH = </span></div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;<span class="comment"># When using plantuml, the specified paths are searched for files specified by</span></div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;<span class="comment"># the !include statement in a plantuml block.</span></div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;<span class="comment">PLANTUML_INCLUDE_PATH = </span></div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;<span class="comment"># The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes</span></div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;<span class="comment"># that will be shown in the graph. If the number of nodes in a graph becomes</span></div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;<span class="comment"># larger than this value, doxygen will truncate the graph, which is visualized</span></div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;<span class="comment"># by representing a node as a red box. Note that doxygen if the number of direct</span></div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;<span class="comment"># children of the root node in a graph is already larger than</span></div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;<span class="comment"># DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that</span></div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;<span class="comment"># the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.</span></div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 10000, default value: 50.</span></div>
-<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;<span class="comment">DOT_GRAPH_MAX_NODES = 50</span></div>
-<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;<span class="comment"># The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs</span></div>
-<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;<span class="comment"># generated by dot. A depth value of 3 means that only nodes reachable from the</span></div>
-<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;<span class="comment"># root by following a path via at most 3 edges will be shown. Nodes that lay</span></div>
-<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;<span class="comment"># further from the root node will be omitted. Note that setting this option to 1</span></div>
-<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;<span class="comment"># or 2 may greatly reduce the computation time needed for large code bases. Also</span></div>
-<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;<span class="comment"># note that the size of a graph can be further restricted by</span></div>
-<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;<span class="comment"># DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.</span></div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;<span class="comment"># Minimum value: 0, maximum value: 1000, default value: 0.</span></div>
-<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;<span class="comment">MAX_DOT_GRAPH_DEPTH = 1000</span></div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;<span class="comment"># Set the DOT_TRANSPARENT tag to YES to generate images with a transparent</span></div>
-<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;<span class="comment"># background. This is disabled by default, because dot on Windows does not seem</span></div>
-<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;<span class="comment"># to support this out of the box.</span></div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;<span class="comment">#</span></div>
-<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;<span class="comment"># Warning: Depending on the platform used, enabling this option may lead to</span></div>
-<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;<span class="comment"># badly anti-aliased labels on the edges of a graph (i.e. they become hard to</span></div>
-<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;<span class="comment"># read).</span></div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;<span class="comment">DOT_TRANSPARENT = NO</span></div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;<span class="comment"># Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output</span></div>
-<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;<span class="comment"># files in one run (i.e. multiple -o and -T options on the command line). This</span></div>
-<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;<span class="comment"># makes dot run faster, but since only newer versions of dot (&gt;1.8.10) support</span></div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;<span class="comment"># this, this feature is disabled by default.</span></div>
-<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;<span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;<span class="comment">DOT_MULTI_TARGETS = NO</span></div>
-<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;<span class="comment"># If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page</span></div>
-<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;<span class="comment"># explaining the meaning of the various boxes and arrows in the dot generated</span></div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;<span class="comment"># graphs.</span></div>
-<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;<span class="comment">GENERATE_LEGEND = YES</span></div>
-<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;<span class="comment"># If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot</span></div>
-<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;<span class="comment"># files that are used to generate the various graphs.</span></div>
-<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;<span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;<span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;<span class="comment">DOT_CLEANUP = YES</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<a href="a00057.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00118.html">detail/type_mat3x4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, lowp&gt; <a class="code" href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, mediump&gt; <a class="code" href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, highp&gt; <a class="code" href="a00157.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, lowp &gt; lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00211">type_mat.hpp:211</a></div></div>
+<div class="ttc" id="a00157_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, mediump &gt; mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00218">type_mat.hpp:218</a></div></div>
+<div class="ttc" id="a00118_html"><div class="ttname"><a href="a00118.html">type_mat3x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00157.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, highp &gt; highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00225">type_mat.hpp:225</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00058.html b/3rdparty/glm/doc/api/a00058.html
index e9dd025a791..695ffc071d2 100644
--- a/3rdparty/glm/doc/api/a00058.html
+++ b/3rdparty/glm/doc/api/a00058.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x2.hpp File Reference</title>
+<title>0.9.9 API documenation: mat4x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x2.hpp File Reference</div> </div>
+<div class="title">mat4x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00058_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00058_source.html">mat2x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00058_source.html">mat4x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00058_source.html b/3rdparty/glm/doc/api/a00058_source.html
index f182e64de38..05a9a29d45a 100644
--- a/3rdparty/glm/doc/api/a00058_source.html
+++ b/3rdparty/glm/doc/api/a00058_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x2.hpp Source File</title>
+<title>0.9.9 API documenation: mat4x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,49 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x2.hpp</div> </div>
+<div class="title">mat4x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00058.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00121.html">detail/type_mat2x2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00072">type_mat.hpp:72</a></div></div>
-<div class="ttc" id="a00121_html"><div class="ttname"><a href="a00121.html">type_mat2x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00093">type_mat.hpp:93</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00086">type_mat.hpp:86</a></div></div>
-<div class="ttc" id="a00164_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00079">type_mat.hpp:79</a></div></div>
-<div class="ttc" id="a00164_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00164.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00100">type_mat.hpp:100</a></div></div>
-<div class="ttc" id="a00164_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00065">type_mat.hpp:65</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00119.html">detail/type_mat4x2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, lowp&gt; <a class="code" href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, highp&gt; <a class="code" href="a00157.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00157.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, highp &gt; highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="ttc" id="a00157_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, lowp &gt; lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00237">type_mat.hpp:237</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, mediump &gt; mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00244">type_mat.hpp:244</a></div></div>
+<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_mat4x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00059.html b/3rdparty/glm/doc/api/a00059.html
index 044915bdbce..261776ca5d2 100644
--- a/3rdparty/glm/doc/api/a00059.html
+++ b/3rdparty/glm/doc/api/a00059.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x3.hpp File Reference</title>
+<title>0.9.9 API documenation: mat4x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x3.hpp File Reference</div> </div>
+<div class="title">mat4x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00059_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00059_source.html">mat2x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00059_source.html">mat4x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00059_source.html b/3rdparty/glm/doc/api/a00059_source.html
index 784348a9610..177b4f0d93b 100644
--- a/3rdparty/glm/doc/api/a00059_source.html
+++ b/3rdparty/glm/doc/api/a00059_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x3.hpp Source File</title>
+<title>0.9.9 API documenation: mat4x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,36 +64,49 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x3.hpp</div> </div>
+<div class="title">mat4x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00059.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00122.html">detail/type_mat2x3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, lowp&gt; <a class="code" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, highp&gt; <a class="code" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="ttc" id="a00122_html"><div class="ttname"><a href="a00122.html">type_mat2x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, lowp &gt; lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00112">type_mat.hpp:112</a></div></div>
-<div class="ttc" id="a00164_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, mediump &gt; mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00119">type_mat.hpp:119</a></div></div>
-<div class="ttc" id="a00164_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, highp &gt; highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00126">type_mat.hpp:126</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">detail/type_mat4x3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, lowp&gt; <a class="code" href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, highp&gt; <a class="code" href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, mediump &gt; mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00270">type_mat.hpp:270</a></div></div>
+<div class="ttc" id="a00157_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, highp &gt; highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat4x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, lowp &gt; lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00263">type_mat.hpp:263</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00060.html b/3rdparty/glm/doc/api/a00060.html
index b07f429cd5b..0823a438f71 100644
--- a/3rdparty/glm/doc/api/a00060.html
+++ b/3rdparty/glm/doc/api/a00060.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x4.hpp File Reference</title>
+<title>0.9.9 API documenation: mat4x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x4.hpp File Reference</div> </div>
+<div class="title">mat4x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00060_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00060_source.html">mat2x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00060_source.html">mat4x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00060_source.html b/3rdparty/glm/doc/api/a00060_source.html
index a572c7510a9..7abd424371c 100644
--- a/3rdparty/glm/doc/api/a00060_source.html
+++ b/3rdparty/glm/doc/api/a00060_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x4.hpp Source File</title>
+<title>0.9.9 API documenation: mat4x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x4.hpp</div> </div>
+<div class="title">mat4x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00060.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00123.html">detail/type_mat2x4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, lowp&gt; <a class="code" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, mediump&gt; <a class="code" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, highp&gt; <a class="code" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, mediump &gt; mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00145">type_mat.hpp:145</a></div></div>
-<div class="ttc" id="a00123_html"><div class="ttname"><a href="a00123.html">type_mat2x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00164.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, lowp &gt; lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00138">type_mat.hpp:138</a></div></div>
-<div class="ttc" id="a00164_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, highp &gt; highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00152">type_mat.hpp:152</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00121.html">detail/type_mat4x4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00157.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00304">type_mat.hpp:304</a></div></div>
+<div class="ttc" id="a00157_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00325">type_mat.hpp:325</a></div></div>
+<div class="ttc" id="a00121_html"><div class="ttname"><a href="a00121.html">type_mat4x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00311">type_mat.hpp:311</a></div></div>
+<div class="ttc" id="a00157_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00297">type_mat.hpp:297</a></div></div>
+<div class="ttc" id="a00157_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00157.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00318">type_mat.hpp:318</a></div></div>
+<div class="ttc" id="a00157_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00290">type_mat.hpp:290</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00061.html b/3rdparty/glm/doc/api/a00061.html
index 1c2251f6617..6531e416dcd 100644
--- a/3rdparty/glm/doc/api/a00061.html
+++ b/3rdparty/glm/doc/api/a00061.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x2.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x2.hpp File Reference</div> </div>
+<div class="title">matrix.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00061_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00061_source.html">mat3x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00061_source.html">matrix.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00061_source.html b/3rdparty/glm/doc/api/a00061_source.html
index 9f9b131359c..b5d97dc6716 100644
--- a/3rdparty/glm/doc/api/a00061_source.html
+++ b/3rdparty/glm/doc/api/a00061_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x2.hpp Source File</title>
+<title>0.9.9 API documenation: matrix.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x2.hpp</div> </div>
+<div class="title">matrix.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00061.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00124.html">detail/type_mat3x2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, lowp&gt; <a class="code" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, highp&gt; <a class="code" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace</span></div>
-<div class="ttc" id="a00124_html"><div class="ttname"><a href="a00124.html">type_mat3x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, highp &gt; highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00178">type_mat.hpp:178</a></div></div>
-<div class="ttc" id="a00164_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, lowp &gt; lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00164">type_mat.hpp:164</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, mediump &gt; mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00171">type_mat.hpp:171</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00034.html">detail/func_matrix.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00034_html"><div class="ttname"><a href="a00034.html">func_matrix.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00062.html b/3rdparty/glm/doc/api/a00062.html
index a29ea7d3deb..aae7ce8809c 100644
--- a/3rdparty/glm/doc/api/a00062.html
+++ b/3rdparty/glm/doc/api/a00062.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x3.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_access.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,62 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat3x3.hpp File Reference</div> </div>
+<div class="title">matrix_access.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00166.html">GLM_GTC_matrix_access</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00062_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &amp;m, length_t index)</td></tr>
+<tr class="memdesc:ga96022eb0d3fae39d89fc7a954e59b374"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a specific column of a matrix. <a href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">More...</a><br /></td></tr>
+<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &amp;m, length_t index, typename genType::col_type const &amp;x)</td></tr>
+<tr class="memdesc:ga9e757377523890e8b80c5843dbe4dd15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a specific column to a matrix. <a href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">More...</a><br /></td></tr>
+<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &amp;m, length_t index)</td></tr>
+<tr class="memdesc:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a specific row of a matrix. <a href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">More...</a><br /></td></tr>
+<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &amp;m, length_t index, typename genType::row_type const &amp;x)</td></tr>
+<tr class="memdesc:gaadcc64829aadf4103477679e48c7594f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a specific row to a matrix. <a href="a00166.html#gaadcc64829aadf4103477679e48c7594f">More...</a><br /></td></tr>
+<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00166.html">GLM_GTC_matrix_access</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00062_source.html">mat3x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00062_source.html">matrix_access.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00062_source.html b/3rdparty/glm/doc/api/a00062_source.html
index 53861a680b1..da78282a53c 100644
--- a/3rdparty/glm/doc/api/a00062_source.html
+++ b/3rdparty/glm/doc/api/a00062_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x3.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_access.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,71 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x3.hpp</div> </div>
+<div class="title">matrix_access.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00062.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">detail/type_mat3x3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00197">type_mat.hpp:197</a></div></div>
-<div class="ttc" id="a00164_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00225">type_mat.hpp:225</a></div></div>
-<div class="ttc" id="a00164_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00190">type_mat.hpp:190</a></div></div>
-<div class="ttc" id="a00164_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00218">type_mat.hpp:218</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00164.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00211">type_mat.hpp:211</a></div></div>
-<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_mat3x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00204">type_mat.hpp:204</a></div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_access extension included&quot;)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::row_type <a class="code" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; length_t index);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; length_t index,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::col_type <a class="code" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; length_t index);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; length_t index,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;matrix_access.inl&quot;</span></div>
+<div class="ttc" id="a00166_html_gaadcc64829aadf4103477679e48c7594f"><div class="ttname"><a href="a00166.html#gaadcc64829aadf4103477679e48c7594f">glm::row</a></div><div class="ttdeci">GLM_FUNC_DECL genType row(genType const &amp;m, length_t index, typename genType::row_type const &amp;x)</div><div class="ttdoc">Set a specific row to a matrix. </div></div>
+<div class="ttc" id="a00166_html_ga9e757377523890e8b80c5843dbe4dd15"><div class="ttname"><a href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">glm::column</a></div><div class="ttdeci">GLM_FUNC_DECL genType column(genType const &amp;m, length_t index, typename genType::col_type const &amp;x)</div><div class="ttdoc">Set a specific column to a matrix. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00063.html b/3rdparty/glm/doc/api/a00063.html
index c2976b7bcef..23c08bc8697 100644
--- a/3rdparty/glm/doc/api/a00063.html
+++ b/3rdparty/glm/doc/api/a00063.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x4.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_cross_product.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,56 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat3x4.hpp File Reference</div> </div>
+<div class="title">matrix_cross_product.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00063_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga04385b2e3a93c78d116b51af2d8d708e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a cross product matrix. <a href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">More...</a><br /></td></tr>
+<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2d46cc5253761c214aa5c782865156b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a cross product matrix. <a href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">More...</a><br /></td></tr>
+<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00063_source.html">mat3x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00063_source.html">matrix_cross_product.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00063_source.html b/3rdparty/glm/doc/api/a00063_source.html
index 03d24b73f93..523905a76df 100644
--- a/3rdparty/glm/doc/api/a00063_source.html
+++ b/3rdparty/glm/doc/api/a00063_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x4.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_cross_product.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,61 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x4.hpp</div> </div>
+<div class="title">matrix_cross_product.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00063.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00126.html">detail/type_mat3x4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, lowp&gt; <a class="code" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, mediump&gt; <a class="code" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, highp&gt; <a class="code" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, mediump &gt; mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00244">type_mat.hpp:244</a></div></div>
-<div class="ttc" id="a00126_html"><div class="ttname"><a href="a00126.html">type_mat3x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, lowp &gt; lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00237">type_mat.hpp:237</a></div></div>
-<div class="ttc" id="a00164_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00164.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, highp &gt; highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_cross_product is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_cross_product extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;matrix_cross_product.inl&quot;</span></div>
+<div class="ttc" id="a00203_html_ga2d46cc5253761c214aa5c782865156b1"><div class="ttname"><a href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">glm::matrixCross4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; matrixCross4(tvec3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
+<div class="ttc" id="a00203_html_ga04385b2e3a93c78d116b51af2d8d708e"><div class="ttname"><a href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">glm::matrixCross3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; matrixCross3(tvec3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00064.html b/3rdparty/glm/doc/api/a00064.html
index e75f7e34dd0..4d9bb834bae 100644
--- a/3rdparty/glm/doc/api/a00064.html
+++ b/3rdparty/glm/doc/api/a00064.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x2.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_decompose.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,50 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat4x2.hpp File Reference</div> </div>
+<div class="title">matrix_decompose.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00064_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4&lt; T, P &gt; const &amp;modelMatrix, tvec3&lt; T, P &gt; &amp;scale, tquat&lt; T, P &gt; &amp;orientation, tvec3&lt; T, P &gt; &amp;translation, tvec3&lt; T, P &gt; &amp;skew, tvec4&lt; T, P &gt; &amp;perspective)</td></tr>
+<tr class="memdesc:ga0f1245817507156b337798a253577c8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decomposes a model matrix to translations, rotation and scale components. <a href="a00204.html#ga0f1245817507156b337798a253577c8b">More...</a><br /></td></tr>
+<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00064_source.html">mat4x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00064_source.html">matrix_decompose.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00064_source.html b/3rdparty/glm/doc/api/a00064_source.html
index f6fb41949bd..f5a85d131ab 100644
--- a/3rdparty/glm/doc/api/a00064_source.html
+++ b/3rdparty/glm/doc/api/a00064_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x2.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_decompose.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,65 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat4x2.hpp</div> </div>
+<div class="title">matrix_decompose.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00064.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">detail/type_mat4x2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, lowp&gt; <a class="code" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, highp&gt; <a class="code" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_mat4x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, lowp &gt; lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00263">type_mat.hpp:263</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, mediump &gt; mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00270">type_mat.hpp:270</a></div></div>
-<div class="ttc" id="a00164_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00164.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, highp &gt; highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtc/matrix_transform.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_decompose is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_decompose extension included&quot;)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; modelMatrix,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; tvec3&lt;T, P&gt; &amp; <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, tquat&lt;T, P&gt; &amp; <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3&lt;T, P&gt; &amp; translation, tvec3&lt;T, P&gt; &amp; skew, tvec4&lt;T, P&gt; &amp; <a class="code" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;matrix_decompose.inl&quot;</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientation(tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00169_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
+<div class="ttc" id="a00204_html_ga0f1245817507156b337798a253577c8b"><div class="ttname"><a href="a00204.html#ga0f1245817507156b337798a253577c8b">glm::decompose</a></div><div class="ttdeci">GLM_FUNC_DECL bool decompose(tmat4x4&lt; T, P &gt; const &amp;modelMatrix, tvec3&lt; T, P &gt; &amp;scale, tquat&lt; T, P &gt; &amp;orientation, tvec3&lt; T, P &gt; &amp;translation, tvec3&lt; T, P &gt; &amp;skew, tvec4&lt; T, P &gt; &amp;perspective)</div><div class="ttdoc">Decomposes a model matrix to translations, rotation and scale components. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00065.html b/3rdparty/glm/doc/api/a00065.html
new file mode 100644
index 00000000000..2c6e2b97448
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00065.html
@@ -0,0 +1,403 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: matrix_integer.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_integer.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a>
+<a href="#details">More...</a></p>
+
+<p><a href="a00065_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
+<tr class="memdesc:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x2 matrix. <a href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">More...</a><br /></td></tr>
+<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
+<tr class="memdesc:gac455e55e7cb32e31396a9d4613da046a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x2 matrix. <a href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">More...</a><br /></td></tr>
+<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
+<tr class="memdesc:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x3 matrix. <a href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">More...</a><br /></td></tr>
+<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
+<tr class="memdesc:ga73b855cc40e5d8202b7ab38461326d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x4 matrix. <a href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">More...</a><br /></td></tr>
+<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
+<tr class="memdesc:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x3 matrix. <a href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">More...</a><br /></td></tr>
+<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
+<tr class="memdesc:ga0413bf87605b9247be2533c439127a1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x2 matrix. <a href="a00167.html#ga0413bf87605b9247be2533c439127a1c">More...</a><br /></td></tr>
+<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
+<tr class="memdesc:gacce460d54216438bb577bf8c9d68299c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x3 matrix. <a href="a00167.html#gacce460d54216438bb577bf8c9d68299c">More...</a><br /></td></tr>
+<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
+<tr class="memdesc:gad4fea24b4100e21ed7742c91e5458d49"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x4 matrix. <a href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">More...</a><br /></td></tr>
+<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
+<tr class="memdesc:ga159ce04cc638ff4db755542cd8f758cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x4 matrix. <a href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">More...</a><br /></td></tr>
+<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
+<tr class="memdesc:ga7d43dd8332000f7f19379efa1b303599"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x2 matrix. <a href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">More...</a><br /></td></tr>
+<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
+<tr class="memdesc:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x3 matrix. <a href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">More...</a><br /></td></tr>
+<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
+<tr class="memdesc:gae53db595d36f49a299e180302795e3c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x4 matrix. <a href="a00167.html#gae53db595d36f49a299e180302795e3c9">More...</a><br /></td></tr>
+<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
+<tr class="memdesc:gae7b96c808a36fbe87f41af1c77b7941c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x2 matrix. <a href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">More...</a><br /></td></tr>
+<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
+<tr class="memdesc:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">More...</a><br /></td></tr>
+<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
+<tr class="memdesc:gac351446661e5a8168473ff7b3b5ac3b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x3 matrix. <a href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">More...</a><br /></td></tr>
+<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
+<tr class="memdesc:ga815eb9fdf70edc45687cbcda07e97213"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x4 matrix. <a href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">More...</a><br /></td></tr>
+<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
+<tr class="memdesc:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x3 matrix. <a href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">More...</a><br /></td></tr>
+<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
+<tr class="memdesc:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x2 matrix. <a href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">More...</a><br /></td></tr>
+<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
+<tr class="memdesc:gacf71e9abe57bcfd18b4b003421e306aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x3 matrix. <a href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">More...</a><br /></td></tr>
+<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
+<tr class="memdesc:ga6edbf193ad6c4309e31262165f2655e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x4 matrix. <a href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">More...</a><br /></td></tr>
+<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
+<tr class="memdesc:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x4 matrix. <a href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">More...</a><br /></td></tr>
+<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
+<tr class="memdesc:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x2 matrix. <a href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">More...</a><br /></td></tr>
+<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
+<tr class="memdesc:ga899a376888652fe3c03718641812bb27"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x3 matrix. <a href="a00167.html#ga899a376888652fe3c03718641812bb27">More...</a><br /></td></tr>
+<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
+<tr class="memdesc:gab8068521c0ad6990373d27d87d333084"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x4 matrix. <a href="a00167.html#gab8068521c0ad6990373d27d87d333084">More...</a><br /></td></tr>
+<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
+<tr class="memdesc:gaabe04f9948d4a213bb1c20137de03e01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x2 matrix. <a href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">More...</a><br /></td></tr>
+<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
+<tr class="memdesc:gaa4732a240522ad9bc28144fda2fc14ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x2 matrix. <a href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">More...</a><br /></td></tr>
+<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
+<tr class="memdesc:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x3 matrix. <a href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">More...</a><br /></td></tr>
+<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
+<tr class="memdesc:ga9d8faafdca42583d67e792dd038fc668"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x4 matrix. <a href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">More...</a><br /></td></tr>
+<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
+<tr class="memdesc:ga038f68437155ffa3c2583a15264a8195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x3 matrix. <a href="a00167.html#ga038f68437155ffa3c2583a15264a8195">More...</a><br /></td></tr>
+<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
+<tr class="memdesc:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x2 matrix. <a href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">More...</a><br /></td></tr>
+<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
+<tr class="memdesc:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x3 matrix. <a href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">More...</a><br /></td></tr>
+<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
+<tr class="memdesc:ga6e9ce23496d8b08dfc302d4039694b58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x4 matrix. <a href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">More...</a><br /></td></tr>
+<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
+<tr class="memdesc:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x4 matrix. <a href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">More...</a><br /></td></tr>
+<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
+<tr class="memdesc:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x2 matrix. <a href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">More...</a><br /></td></tr>
+<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
+<tr class="memdesc:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x3 matrix. <a href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">More...</a><br /></td></tr>
+<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
+<tr class="memdesc:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x4 matrix. <a href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">More...</a><br /></td></tr>
+<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
+<tr class="memdesc:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x2 matrix. <a href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">More...</a><br /></td></tr>
+<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
+<tr class="memdesc:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x2 matrix. <a href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">More...</a><br /></td></tr>
+<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
+<tr class="memdesc:ga3f8fb92b62e31528886cc728d3404ecc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x3 matrix. <a href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">More...</a><br /></td></tr>
+<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
+<tr class="memdesc:ga892b53e26d36763f380b08a5768dee6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x4 matrix. <a href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">More...</a><br /></td></tr>
+<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
+<tr class="memdesc:ga148f3a81d15a570b9460158e6964f41c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x3 matrix. <a href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">More...</a><br /></td></tr>
+<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
+<tr class="memdesc:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x2 matrix. <a href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">More...</a><br /></td></tr>
+<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
+<tr class="memdesc:gab3d5c6aaeb5815f8f080305888f6828f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x3 matrix. <a href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">More...</a><br /></td></tr>
+<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
+<tr class="memdesc:ga3d913d70c629aa7ad504739286328f1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x4 matrix. <a href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">More...</a><br /></td></tr>
+<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
+<tr class="memdesc:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x4 matrix. <a href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">More...</a><br /></td></tr>
+<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
+<tr class="memdesc:ga3fdfce509d30bdd7778b8b156cb968df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x2 matrix. <a href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">More...</a><br /></td></tr>
+<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
+<tr class="memdesc:ga6a9945878f99294cfde40c6c3a867d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x3 matrix. <a href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">More...</a><br /></td></tr>
+<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
+<tr class="memdesc:ga330140b22a9449caab308f2c69bf4c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x4 matrix. <a href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">More...</a><br /></td></tr>
+<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
+<tr class="memdesc:ga1406406e396b56bde3c7c0722f657064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga1406406e396b56bde3c7c0722f657064">More...</a><br /></td></tr>
+<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
+<tr class="memdesc:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">More...</a><br /></td></tr>
+<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
+<tr class="memdesc:gaa86bd9dc8463b46a46ee944948111676"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x3 matrix. <a href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">More...</a><br /></td></tr>
+<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
+<tr class="memdesc:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x4 matrix. <a href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">More...</a><br /></td></tr>
+<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
+<tr class="memdesc:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x3 matrix. <a href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">More...</a><br /></td></tr>
+<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
+<tr class="memdesc:gad73943020bb49a072317ecfc52d587f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x2 matrix. <a href="a00167.html#gad73943020bb49a072317ecfc52d587f0">More...</a><br /></td></tr>
+<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
+<tr class="memdesc:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x3 matrix. <a href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">More...</a><br /></td></tr>
+<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
+<tr class="memdesc:ga2dce1c00ed50fd09fe349de3713d96db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x4 matrix. <a href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">More...</a><br /></td></tr>
+<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
+<tr class="memdesc:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x4 matrix. <a href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">More...</a><br /></td></tr>
+<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
+<tr class="memdesc:ga76cab31d492ea214c693ab9132b4de95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x2 matrix. <a href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">More...</a><br /></td></tr>
+<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
+<tr class="memdesc:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x3 matrix. <a href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">More...</a><br /></td></tr>
+<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
+<tr class="memdesc:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x4 matrix. <a href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">More...</a><br /></td></tr>
+<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
+<tr class="memdesc:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x2 matrix. <a href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">More...</a><br /></td></tr>
+<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
+<tr class="memdesc:gabc572d47b60f7e595d7aad945f5d13a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x2 matrix. <a href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">More...</a><br /></td></tr>
+<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
+<tr class="memdesc:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x3 matrix. <a href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">More...</a><br /></td></tr>
+<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
+<tr class="memdesc:gaa08e27efc514088315ccbaf818f01880"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x4 matrix. <a href="a00167.html#gaa08e27efc514088315ccbaf818f01880">More...</a><br /></td></tr>
+<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
+<tr class="memdesc:gac2b0985b576fe0eba47227499aed2b3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x3 matrix. <a href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">More...</a><br /></td></tr>
+<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
+<tr class="memdesc:ga1a61c706b31aa60fd7012b2b27765983"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x2 matrix. <a href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">More...</a><br /></td></tr>
+<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
+<tr class="memdesc:ga05064e28b911be1af0503ddf6e6204a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x3 matrix. <a href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">More...</a><br /></td></tr>
+<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
+<tr class="memdesc:ga8e0f797a57fec255f0eec7da1511bc38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x4 matrix. <a href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">More...</a><br /></td></tr>
+<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
+<tr class="memdesc:ga551ad2e4e0304c67451ffbadeef0d615"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x4 matrix. <a href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">More...</a><br /></td></tr>
+<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
+<tr class="memdesc:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x2 matrix. <a href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">More...</a><br /></td></tr>
+<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
+<tr class="memdesc:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x3 matrix. <a href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">More...</a><br /></td></tr>
+<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
+<tr class="memdesc:ga655bfcca624f422aff308dcc99688ce8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x4 matrix. <a href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">More...</a><br /></td></tr>
+<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
+<tr class="memdesc:ga7322b97f1be10c83290ab57ef784d493"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">More...</a><br /></td></tr>
+<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
+<tr class="memdesc:ga0ffed083b64e4f764db0f446d2c49163"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">More...</a><br /></td></tr>
+<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
+<tr class="memdesc:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x3 matrix. <a href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">More...</a><br /></td></tr>
+<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
+<tr class="memdesc:gac4abd549f2e521c7f40f53b6235c450e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x4 matrix. <a href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">More...</a><br /></td></tr>
+<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
+<tr class="memdesc:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x3 matrix. <a href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">More...</a><br /></td></tr>
+<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
+<tr class="memdesc:ga3fb358a947f8ceaefddd75bce22cd947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x2 matrix. <a href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">More...</a><br /></td></tr>
+<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
+<tr class="memdesc:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x3 matrix. <a href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">More...</a><br /></td></tr>
+<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
+<tr class="memdesc:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x4 matrix. <a href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">More...</a><br /></td></tr>
+<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
+<tr class="memdesc:gac23667a99ae1ec649b5e55cd5a05b833"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x4 matrix. <a href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">More...</a><br /></td></tr>
+<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
+<tr class="memdesc:gac8d1db85d62244fd90d240227c7f51ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x2 matrix. <a href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">More...</a><br /></td></tr>
+<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
+<tr class="memdesc:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x3 matrix. <a href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">More...</a><br /></td></tr>
+<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
+<tr class="memdesc:ga24716579cf155f4e042542808f83978c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x4 matrix. <a href="a00167.html#ga24716579cf155f4e042542808f83978c">More...</a><br /></td></tr>
+<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
+<tr class="memdesc:ga4cae85566f900debf930c41944b64691"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x2 matrix. <a href="a00167.html#ga4cae85566f900debf930c41944b64691">More...</a><br /></td></tr>
+<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
+<tr class="memdesc:gabf8acdd33ce8951051edbca5200898aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x2 matrix. <a href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">More...</a><br /></td></tr>
+<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
+<tr class="memdesc:ga1870da7578d5022b973a83155d386ab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x3 matrix. <a href="a00167.html#ga1870da7578d5022b973a83155d386ab3">More...</a><br /></td></tr>
+<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
+<tr class="memdesc:ga57936a3998e992370e59a223e0ee4fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x4 matrix. <a href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">More...</a><br /></td></tr>
+<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
+<tr class="memdesc:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x3 matrix. <a href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">More...</a><br /></td></tr>
+<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
+<tr class="memdesc:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x2 matrix. <a href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">More...</a><br /></td></tr>
+<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
+<tr class="memdesc:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x3 matrix. <a href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">More...</a><br /></td></tr>
+<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
+<tr class="memdesc:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x4 matrix. <a href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">More...</a><br /></td></tr>
+<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
+<tr class="memdesc:ga38bc7bb6494e344185df596deeb4544c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x4 matrix. <a href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">More...</a><br /></td></tr>
+<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
+<tr class="memdesc:ga70fa2d05896aa83cbc8c07672a429b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x2 matrix. <a href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">More...</a><br /></td></tr>
+<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
+<tr class="memdesc:ga87581417945411f75cb31dd6ca1dba98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x3 matrix. <a href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">More...</a><br /></td></tr>
+<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
+<tr class="memdesc:gaf72e6d399c42985db6872c50f53d7eb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x4 matrix. <a href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">More...</a><br /></td></tr>
+<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00065_source.html b/3rdparty/glm/doc/api/a00065_source.html
index d18acc991e3..b78654adf40 100644
--- a/3rdparty/glm/doc/api/a00065_source.html
+++ b/3rdparty/glm/doc/api/a00065_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x3.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,408 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat4x3.hpp</div> </div>
+<div class="title">matrix_integer.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">detail/type_mat4x3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, lowp&gt; <a class="code" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, highp&gt; <a class="code" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, highp &gt; highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00303">type_mat.hpp:303</a></div></div>
-<div class="ttc" id="a00164_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, lowp &gt; lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00289">type_mat.hpp:289</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, mediump &gt; mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00296">type_mat.hpp:296</a></div></div>
-<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_mat4x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<a href="a00065.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_integer extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a"> 36</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, highp&gt; <a class="code" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9"> 40</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, highp&gt; <a class="code" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb"> 44</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, highp&gt; <a class="code" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a"> 48</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, highp&gt; <a class="code" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e"> 52</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, highp&gt; <a class="code" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65"> 56</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, highp&gt; <a class="code" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00167.html#ga0413bf87605b9247be2533c439127a1c"> 60</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, highp&gt; <a class="code" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00167.html#gacce460d54216438bb577bf8c9d68299c"> 64</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, highp&gt; <a class="code" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49"> 68</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, highp&gt; <a class="code" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599"> 72</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, highp&gt; <a class="code" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73"> 76</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, highp&gt; <a class="code" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00167.html#gae53db595d36f49a299e180302795e3c9"> 80</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, highp&gt; <a class="code" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655"> 85</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, mediump&gt; <a class="code" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c"> 89</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, mediump&gt; <a class="code" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615"> 93</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, mediump&gt; <a class="code" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8"> 98</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, mediump&gt; <a class="code" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a"> 102</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, mediump&gt; <a class="code" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00167.html#gaa08e27efc514088315ccbaf818f01880"> 106</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, mediump&gt; <a class="code" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983"> 110</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, mediump&gt; <a class="code" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3"> 114</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, mediump&gt; <a class="code" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38"> 118</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, mediump&gt; <a class="code" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54"> 122</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, mediump&gt; <a class="code" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d"> 126</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, mediump&gt; <a class="code" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8"> 130</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, mediump&gt; <a class="code" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0"> 135</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, lowp&gt; <a class="code" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c"> 139</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, lowp&gt; <a class="code" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4"> 143</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, lowp&gt; <a class="code" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31"> 148</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, lowp&gt; <a class="code" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc"> 152</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, lowp&gt; <a class="code" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b"> 156</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, lowp&gt; <a class="code" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35"> 160</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, lowp&gt; <a class="code" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f"> 164</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, lowp&gt; <a class="code" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b"> 168</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, lowp&gt; <a class="code" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df"> 172</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, lowp&gt; <a class="code" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69"> 176</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, lowp&gt; <a class="code" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80"> 180</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, lowp&gt; <a class="code" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c"> 185</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, highp&gt; <a class="code" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a>; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147"> 189</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, highp&gt; <a class="code" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c"> 193</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, highp&gt; <a class="code" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb"> 197</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, highp&gt; <a class="code" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a>;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5"> 201</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;uint, highp&gt; <a class="code" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213"> 205</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;uint, highp&gt; <a class="code" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f"> 209</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;uint, highp&gt; <a class="code" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa"> 213</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, highp&gt; <a class="code" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7"> 217</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;uint, highp&gt; <a class="code" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292"> 221</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;uint, highp&gt; <a class="code" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00167.html#ga899a376888652fe3c03718641812bb27"> 225</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;uint, highp&gt; <a class="code" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00167.html#gab8068521c0ad6990373d27d87d333084"> 229</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, highp&gt; <a class="code" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493"> 234</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6"> 238</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833"> 242</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, mediump&gt; <a class="code" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163"> 247</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb"> 251</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e"> 255</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;uint, mediump&gt; <a class="code" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947"> 259</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5"> 263</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, mediump&gt; <a class="code" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc"> 267</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad"> 271</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;uint, mediump&gt; <a class="code" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39"> 275</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="a00167.html#ga24716579cf155f4e042542808f83978c"> 279</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, mediump&gt; <a class="code" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00167.html#ga1406406e396b56bde3c7c0722f657064"> 284</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
+<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033"> 288</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884"> 292</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, lowp&gt; <a class="code" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3"> 297</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676"> 301</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;uint, lowp&gt; <a class="code" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4"> 305</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00167.html#gad73943020bb49a072317ecfc52d587f0"> 309</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;uint, lowp&gt; <a class="code" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67"> 313</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db"> 317</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95"> 321</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d"> 325</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;uint, lowp&gt; <a class="code" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2"> 329</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, lowp&gt; <a class="code" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">typedef</span> highp_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">typedef</span> highp_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">typedef</span> highp_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">typedef</span> highp_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">typedef</span> highp_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">typedef</span> highp_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">typedef</span> highp_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">typedef</span> highp_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">typedef</span> highp_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">typedef</span> highp_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">typedef</span> highp_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">typedef</span> highp_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">typedef</span> lowp_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">typedef</span> lowp_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">typedef</span> lowp_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">typedef</span> lowp_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">typedef</span> lowp_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">typedef</span> lowp_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">typedef</span> lowp_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">typedef</span> lowp_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">typedef</span> lowp_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">typedef</span> lowp_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">typedef</span> lowp_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">typedef</span> lowp_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01"> 361</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="a00167.html#ga038f68437155ffa3c2583a15264a8195"> 365</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb"> 369</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec"> 373</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605"> 377</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668"> 381</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f"> 385</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4"> 389</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58"> 393</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa"> 397</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5"> 401</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b"> 405</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">typedef</span> highp_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">typedef</span> highp_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">typedef</span> highp_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">typedef</span> highp_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">typedef</span> highp_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">typedef</span> highp_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">typedef</span> highp_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">typedef</span> highp_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">typedef</span> highp_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">typedef</span> highp_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">typedef</span> highp_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">typedef</span> highp_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">typedef</span> lowp_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">typedef</span> lowp_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">typedef</span> lowp_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">typedef</span> lowp_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">typedef</span> lowp_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">typedef</span> lowp_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">typedef</span> lowp_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">typedef</span> lowp_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">typedef</span> lowp_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">typedef</span> lowp_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">typedef</span> lowp_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">typedef</span> lowp_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
+<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="a00167.html#ga4cae85566f900debf930c41944b64691"> 438</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6"> 442</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c"> 446</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa"> 450</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00167.html#ga1870da7578d5022b973a83155d386ab3"> 454</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4"> 458</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a"> 462</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb"> 466</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba"> 470</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53"> 474</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98"> 478</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8"> 482</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00167_html_ga705ee0bf49d6c3de4404ce2481bf0df5"><div class="ttname"><a href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::imat4x3</a></div><div class="ttdeci">mediump_imat4x3 imat4x3</div><div class="ttdoc">Signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00401">matrix_integer.hpp:401</a></div></div>
+<div class="ttc" id="a00167_html_ga148f3a81d15a570b9460158e6964f41c"><div class="ttname"><a href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">glm::lowp_imat3</a></div><div class="ttdeci">tmat3x3&lt; int, lowp &gt; lowp_imat3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00139">matrix_integer.hpp:139</a></div></div>
+<div class="ttc" id="a00167_html_gabc572d47b60f7e595d7aad945f5d13a8"><div class="ttname"><a href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">glm::mediump_imat2x2</a></div><div class="ttdeci">tmat2x2&lt; int, mediump &gt; mediump_imat2x2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00098">matrix_integer.hpp:98</a></div></div>
+<div class="ttc" id="a00167_html_ga8e0f797a57fec255f0eec7da1511bc38"><div class="ttname"><a href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">glm::mediump_imat3x4</a></div><div class="ttdeci">tmat3x4&lt; int, mediump &gt; mediump_imat3x4</div><div class="ttdoc">Medium-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00118">matrix_integer.hpp:118</a></div></div>
+<div class="ttc" id="a00167_html_ga0413bf87605b9247be2533c439127a1c"><div class="ttname"><a href="a00167.html#ga0413bf87605b9247be2533c439127a1c">glm::highp_imat3x2</a></div><div class="ttdeci">tmat3x2&lt; int, highp &gt; highp_imat3x2</div><div class="ttdoc">High-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00060">matrix_integer.hpp:60</a></div></div>
+<div class="ttc" id="a00167_html_ga76cab31d492ea214c693ab9132b4de95"><div class="ttname"><a href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">glm::lowp_umat4x2</a></div><div class="ttdeci">tmat4x2&lt; uint, lowp &gt; lowp_umat4x2</div><div class="ttdoc">Low-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00321">matrix_integer.hpp:321</a></div></div>
+<div class="ttc" id="a00167_html_ga3fb358a947f8ceaefddd75bce22cd947"><div class="ttname"><a href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">glm::mediump_umat3x2</a></div><div class="ttdeci">tmat3x2&lt; uint, mediump &gt; mediump_umat3x2</div><div class="ttdoc">Medium-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00259">matrix_integer.hpp:259</a></div></div>
+<div class="ttc" id="a00167_html_ga05064e28b911be1af0503ddf6e6204a3"><div class="ttname"><a href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">glm::mediump_imat3x3</a></div><div class="ttdeci">tmat3x3&lt; int, mediump &gt; mediump_imat3x3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00114">matrix_integer.hpp:114</a></div></div>
+<div class="ttc" id="a00167_html_ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><div class="ttname"><a href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::imat2x3</a></div><div class="ttdeci">mediump_imat2x3 imat2x3</div><div class="ttdoc">Signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00377">matrix_integer.hpp:377</a></div></div>
+<div class="ttc" id="a00167_html_ga70fa2d05896aa83cbc8c07672a429b53"><div class="ttname"><a href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::umat4x2</a></div><div class="ttdeci">mediump_umat4x2 umat4x2</div><div class="ttdoc">Unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00474">matrix_integer.hpp:474</a></div></div>
+<div class="ttc" id="a00167_html_ga4efd6470c0edf9704d2244fc92dbc2a9"><div class="ttname"><a href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">glm::highp_imat3</a></div><div class="ttdeci">tmat3x3&lt; int, highp &gt; highp_imat3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00040">matrix_integer.hpp:40</a></div></div>
+<div class="ttc" id="a00167_html_ga7d43dd8332000f7f19379efa1b303599"><div class="ttname"><a href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">glm::highp_imat4x2</a></div><div class="ttdeci">tmat4x2&lt; int, highp &gt; highp_imat4x2</div><div class="ttdoc">High-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00072">matrix_integer.hpp:72</a></div></div>
+<div class="ttc" id="a00167_html_gae53db595d36f49a299e180302795e3c9"><div class="ttname"><a href="a00167.html#gae53db595d36f49a299e180302795e3c9">glm::highp_imat4x4</a></div><div class="ttdeci">tmat4x4&lt; int, highp &gt; highp_imat4x4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00080">matrix_integer.hpp:80</a></div></div>
+<div class="ttc" id="a00167_html_ga7655dfee0d726e80d7a3b72f46d5fd35"><div class="ttname"><a href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">glm::lowp_imat3x2</a></div><div class="ttdeci">tmat3x2&lt; int, lowp &gt; lowp_imat3x2</div><div class="ttdoc">Low-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00160">matrix_integer.hpp:160</a></div></div>
+<div class="ttc" id="a00167_html_ga1a61c706b31aa60fd7012b2b27765983"><div class="ttname"><a href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">glm::mediump_imat3x2</a></div><div class="ttdeci">tmat3x2&lt; int, mediump &gt; mediump_imat3x2</div><div class="ttdoc">Medium-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00110">matrix_integer.hpp:110</a></div></div>
+<div class="ttc" id="a00167_html_ga4cae85566f900debf930c41944b64691"><div class="ttname"><a href="a00167.html#ga4cae85566f900debf930c41944b64691">glm::umat2</a></div><div class="ttdeci">mediump_umat2 umat2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00438">matrix_integer.hpp:438</a></div></div>
+<div class="ttc" id="a00167_html_gaa08e27efc514088315ccbaf818f01880"><div class="ttname"><a href="a00167.html#gaa08e27efc514088315ccbaf818f01880">glm::mediump_imat2x4</a></div><div class="ttdeci">tmat2x4&lt; int, mediump &gt; mediump_imat2x4</div><div class="ttdoc">Medium-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00106">matrix_integer.hpp:106</a></div></div>
+<div class="ttc" id="a00167_html_gaa4732a240522ad9bc28144fda2fc14ec"><div class="ttname"><a href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::imat2x2</a></div><div class="ttdeci">mediump_imat2x2 imat2x2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00373">matrix_integer.hpp:373</a></div></div>
+<div class="ttc" id="a00167_html_ga0ffed083b64e4f764db0f446d2c49163"><div class="ttname"><a href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">glm::mediump_umat2x2</a></div><div class="ttdeci">tmat2x2&lt; uint, mediump &gt; mediump_umat2x2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00247">matrix_integer.hpp:247</a></div></div>
+<div class="ttc" id="a00167_html_gacf71e9abe57bcfd18b4b003421e306aa"><div class="ttname"><a href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">glm::highp_umat3x3</a></div><div class="ttdeci">tmat3x3&lt; uint, highp &gt; highp_umat3x3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00213">matrix_integer.hpp:213</a></div></div>
+<div class="ttc" id="a00167_html_ga3d913d70c629aa7ad504739286328f1b"><div class="ttname"><a href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">glm::lowp_imat3x4</a></div><div class="ttdeci">tmat3x4&lt; int, lowp &gt; lowp_imat3x4</div><div class="ttdoc">Low-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00168">matrix_integer.hpp:168</a></div></div>
+<div class="ttc" id="a00167_html_gabf8acdd33ce8951051edbca5200898aa"><div class="ttname"><a href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">glm::umat2x2</a></div><div class="ttdeci">mediump_umat2x2 umat2x2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00450">matrix_integer.hpp:450</a></div></div>
+<div class="ttc" id="a00167_html_gaf72e6d399c42985db6872c50f53d7eb8"><div class="ttname"><a href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::umat4x4</a></div><div class="ttdeci">mediump_umat4x4 umat4x4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00482">matrix_integer.hpp:482</a></div></div>
+<div class="ttc" id="a00167_html_ga96b0d26a33b81bb6a60ca0f39682f7eb"><div class="ttname"><a href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::imat4</a></div><div class="ttdeci">mediump_imat4 imat4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00369">matrix_integer.hpp:369</a></div></div>
+<div class="ttc" id="a00167_html_ga5085e3ff02abbac5e537eb7b89ab63b6"><div class="ttname"><a href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::umat3</a></div><div class="ttdeci">mediump_umat3 umat3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00442">matrix_integer.hpp:442</a></div></div>
+<div class="ttc" id="a00167_html_ga3f8fb92b62e31528886cc728d3404ecc"><div class="ttname"><a href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">glm::lowp_imat2x3</a></div><div class="ttdeci">tmat2x3&lt; int, lowp &gt; lowp_imat2x3</div><div class="ttdoc">Low-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00152">matrix_integer.hpp:152</a></div></div>
+<div class="ttc" id="a00167_html_gaa86bd9dc8463b46a46ee944948111676"><div class="ttname"><a href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">glm::lowp_umat2x3</a></div><div class="ttdeci">tmat2x3&lt; uint, lowp &gt; lowp_umat2x3</div><div class="ttdoc">Low-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00301">matrix_integer.hpp:301</a></div></div>
+<div class="ttc" id="a00167_html_ga038f68437155ffa3c2583a15264a8195"><div class="ttname"><a href="a00167.html#ga038f68437155ffa3c2583a15264a8195">glm::imat3</a></div><div class="ttdeci">mediump_imat3 imat3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00365">matrix_integer.hpp:365</a></div></div>
+<div class="ttc" id="a00167_html_ga1870da7578d5022b973a83155d386ab3"><div class="ttname"><a href="a00167.html#ga1870da7578d5022b973a83155d386ab3">glm::umat2x3</a></div><div class="ttdeci">mediump_umat2x3 umat2x3</div><div class="ttdoc">Unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00454">matrix_integer.hpp:454</a></div></div>
+<div class="ttc" id="a00167_html_ga8368cb49cb0bd5ac682a71d1eccc9a8c"><div class="ttname"><a href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">glm::highp_umat4</a></div><div class="ttdeci">tmat4x4&lt; uint, highp &gt; highp_umat4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00193">matrix_integer.hpp:193</a></div></div>
+<div class="ttc" id="a00167_html_gae3ca9e28a9d2e5fce5e28593d27e370d"><div class="ttname"><a href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">glm::lowp_umat4x3</a></div><div class="ttdeci">tmat4x3&lt; uint, lowp &gt; lowp_umat4x3</div><div class="ttdoc">Low-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00325">matrix_integer.hpp:325</a></div></div>
+<div class="ttc" id="a00167_html_gac8d1db85d62244fd90d240227c7f51ad"><div class="ttname"><a href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">glm::mediump_umat4x2</a></div><div class="ttdeci">tmat4x2&lt; uint, mediump &gt; mediump_umat4x2</div><div class="ttdoc">Medium-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00271">matrix_integer.hpp:271</a></div></div>
+<div class="ttc" id="a00167_html_ga7fc1f795f2abd0020c7b5204f4c83033"><div class="ttname"><a href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">glm::lowp_umat3</a></div><div class="ttdeci">tmat3x3&lt; uint, lowp &gt; lowp_umat3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00288">matrix_integer.hpp:288</a></div></div>
+<div class="ttc" id="a00167_html_gac455e55e7cb32e31396a9d4613da046a"><div class="ttname"><a href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">glm::highp_imat2x2</a></div><div class="ttdeci">tmat2x2&lt; int, highp &gt; highp_imat2x2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00048">matrix_integer.hpp:48</a></div></div>
+<div class="ttc" id="a00167_html_ga815eb9fdf70edc45687cbcda07e97213"><div class="ttname"><a href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">glm::highp_umat2x4</a></div><div class="ttdeci">tmat2x4&lt; uint, highp &gt; highp_umat2x4</div><div class="ttdoc">High-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00205">matrix_integer.hpp:205</a></div></div>
+<div class="ttc" id="a00167_html_ga7d332d462f2c1ad5a65dc580d3d1aa39"><div class="ttname"><a href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">glm::mediump_umat4x3</a></div><div class="ttdeci">tmat4x3&lt; uint, mediump &gt; mediump_umat4x3</div><div class="ttdoc">Medium-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00275">matrix_integer.hpp:275</a></div></div>
+<div class="ttc" id="a00167_html_ga655bfcca624f422aff308dcc99688ce8"><div class="ttname"><a href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">glm::mediump_imat4x4</a></div><div class="ttdeci">tmat4x4&lt; int, mediump &gt; mediump_imat4x4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00130">matrix_integer.hpp:130</a></div></div>
+<div class="ttc" id="a00167_html_gac2b0985b576fe0eba47227499aed2b3c"><div class="ttname"><a href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">glm::mediump_imat3</a></div><div class="ttdeci">tmat3x3&lt; int, mediump &gt; mediump_imat3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00089">matrix_integer.hpp:89</a></div></div>
+<div class="ttc" id="a00167_html_ga7ecc585b71766cfa96bd54a595bea1fb"><div class="ttname"><a href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">glm::mediump_umat2x3</a></div><div class="ttdeci">tmat2x3&lt; uint, mediump &gt; mediump_umat2x3</div><div class="ttdoc">Medium-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00251">matrix_integer.hpp:251</a></div></div>
+<div class="ttc" id="a00167_html_ga6e9ce23496d8b08dfc302d4039694b58"><div class="ttname"><a href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::imat3x4</a></div><div class="ttdeci">mediump_imat3x4 imat3x4</div><div class="ttdoc">Signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00393">matrix_integer.hpp:393</a></div></div>
+<div class="ttc" id="a00167_html_gac23667a99ae1ec649b5e55cd5a05b833"><div class="ttname"><a href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">glm::mediump_umat4</a></div><div class="ttdeci">tmat4x4&lt; uint, mediump &gt; mediump_umat4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00242">matrix_integer.hpp:242</a></div></div>
+<div class="ttc" id="a00167_html_ga892b53e26d36763f380b08a5768dee6b"><div class="ttname"><a href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">glm::lowp_imat2x4</a></div><div class="ttdeci">tmat2x4&lt; int, lowp &gt; lowp_imat2x4</div><div class="ttdoc">Low-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00156">matrix_integer.hpp:156</a></div></div>
+<div class="ttc" id="a00167_html_gacce460d54216438bb577bf8c9d68299c"><div class="ttname"><a href="a00167.html#gacce460d54216438bb577bf8c9d68299c">glm::highp_imat3x3</a></div><div class="ttdeci">tmat3x3&lt; int, highp &gt; highp_imat3x3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00064">matrix_integer.hpp:64</a></div></div>
+<div class="ttc" id="a00167_html_ga2dce1c00ed50fd09fe349de3713d96db"><div class="ttname"><a href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">glm::lowp_umat3x4</a></div><div class="ttdeci">tmat3x4&lt; uint, lowp &gt; lowp_umat3x4</div><div class="ttdoc">Low-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00317">matrix_integer.hpp:317</a></div></div>
+<div class="ttc" id="a00167_html_ga402d169fc3cdca5f3ea47a358a7b7c67"><div class="ttname"><a href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">glm::lowp_umat3x3</a></div><div class="ttdeci">tmat3x3&lt; uint, lowp &gt; lowp_umat3x3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00313">matrix_integer.hpp:313</a></div></div>
+<div class="ttc" id="a00167_html_ga24716579cf155f4e042542808f83978c"><div class="ttname"><a href="a00167.html#ga24716579cf155f4e042542808f83978c">glm::mediump_umat4x4</a></div><div class="ttdeci">tmat4x4&lt; uint, mediump &gt; mediump_umat4x4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00279">matrix_integer.hpp:279</a></div></div>
+<div class="ttc" id="a00167_html_gae7b96c808a36fbe87f41af1c77b7941c"><div class="ttname"><a href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">glm::highp_umat2</a></div><div class="ttdeci">tmat2x2&lt; uint, highp &gt; highp_umat2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00185">matrix_integer.hpp:185</a></div></div>
+<div class="ttc" id="a00167_html_ga57936a3998e992370e59a223e0ee4fd4"><div class="ttname"><a href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">glm::umat2x4</a></div><div class="ttdeci">mediump_umat2x4 umat2x4</div><div class="ttdoc">Unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00458">matrix_integer.hpp:458</a></div></div>
+<div class="ttc" id="a00167_html_ga5b7e9af5024e1a164db6419f67ecfc9a"><div class="ttname"><a href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">glm::mediump_imat2x3</a></div><div class="ttdeci">tmat2x3&lt; int, mediump &gt; mediump_imat2x3</div><div class="ttdoc">Medium-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00102">matrix_integer.hpp:102</a></div></div>
+<div class="ttc" id="a00167_html_ga6edbf193ad6c4309e31262165f2655e7"><div class="ttname"><a href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">glm::highp_umat3x4</a></div><div class="ttdeci">tmat3x4&lt; uint, highp &gt; highp_umat3x4</div><div class="ttdoc">High-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00217">matrix_integer.hpp:217</a></div></div>
+<div class="ttc" id="a00167_html_ga5bfe58853451fbc1f1ef6ce1f93c5e31"><div class="ttname"><a href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">glm::lowp_imat2x2</a></div><div class="ttdeci">tmat2x2&lt; int, lowp &gt; lowp_imat2x2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00148">matrix_integer.hpp:148</a></div></div>
+<div class="ttc" id="a00167_html_ga3c035fec7db0d671ec8f9f1f0d05bed0"><div class="ttname"><a href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">glm::lowp_imat2</a></div><div class="ttdeci">tmat2x2&lt; int, lowp &gt; lowp_imat2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00135">matrix_integer.hpp:135</a></div></div>
+<div class="ttc" id="a00167_html_gaa9f8144beebdefd85e2a9ac480e7608a"><div class="ttname"><a href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">glm::highp_imat2</a></div><div class="ttdeci">tmat2x2&lt; int, highp &gt; highp_imat2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00036">matrix_integer.hpp:36</a></div></div>
+<div class="ttc" id="a00167_html_gac4abd549f2e521c7f40f53b6235c450e"><div class="ttname"><a href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">glm::mediump_umat2x4</a></div><div class="ttdeci">tmat2x4&lt; uint, mediump &gt; mediump_umat2x4</div><div class="ttdoc">Medium-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00255">matrix_integer.hpp:255</a></div></div>
+<div class="ttc" id="a00167_html_ga87581417945411f75cb31dd6ca1dba98"><div class="ttname"><a href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">glm::umat4x3</a></div><div class="ttdeci">mediump_umat4x3 umat4x3</div><div class="ttdoc">Unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00478">matrix_integer.hpp:478</a></div></div>
+<div class="ttc" id="a00167_html_ga1406406e396b56bde3c7c0722f657064"><div class="ttname"><a href="a00167.html#ga1406406e396b56bde3c7c0722f657064">glm::lowp_umat2</a></div><div class="ttdeci">tmat2x2&lt; uint, lowp &gt; lowp_umat2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00284">matrix_integer.hpp:284</a></div></div>
+<div class="ttc" id="a00167_html_ga4860b4b01430bdb70643808c8d3bf5cb"><div class="ttname"><a href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">glm::highp_umat2x2</a></div><div class="ttdeci">tmat2x2&lt; uint, highp &gt; highp_umat2x2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00197">matrix_integer.hpp:197</a></div></div>
+<div class="ttc" id="a00167_html_gaa60b19d7cadbaa56bed1e6e0047af147"><div class="ttname"><a href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">glm::highp_umat3</a></div><div class="ttdeci">tmat3x3&lt; uint, highp &gt; highp_umat3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00189">matrix_integer.hpp:189</a></div></div>
+<div class="ttc" id="a00167_html_ga5a9d62e44668ca2222f0362f9c99d9cc"><div class="ttname"><a href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">glm::mediump_umat3x4</a></div><div class="ttdeci">tmat3x4&lt; uint, mediump &gt; mediump_umat3x4</div><div class="ttdoc">Medium-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00267">matrix_integer.hpp:267</a></div></div>
+<div class="ttc" id="a00167_html_ga1526c62951b04f5cd73f541f7b3b7d8d"><div class="ttname"><a href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">glm::mediump_imat4x3</a></div><div class="ttdeci">tmat4x3&lt; int, mediump &gt; mediump_imat4x3</div><div class="ttdoc">Medium-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00126">matrix_integer.hpp:126</a></div></div>
+<div class="ttc" id="a00167_html_ga73b855cc40e5d8202b7ab38461326d65"><div class="ttname"><a href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">glm::highp_imat2x4</a></div><div class="ttdeci">tmat2x4&lt; int, highp &gt; highp_imat2x4</div><div class="ttdoc">High-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00056">matrix_integer.hpp:56</a></div></div>
+<div class="ttc" id="a00167_html_ga43ed5e4f475b6f4cad7cba78f29c405b"><div class="ttname"><a href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::imat4x4</a></div><div class="ttdeci">mediump_imat4x4 imat4x4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00405">matrix_integer.hpp:405</a></div></div>
+<div class="ttc" id="a00167_html_gad73943020bb49a072317ecfc52d587f0"><div class="ttname"><a href="a00167.html#gad73943020bb49a072317ecfc52d587f0">glm::lowp_umat3x2</a></div><div class="ttdeci">tmat3x2&lt; uint, lowp &gt; lowp_umat3x2</div><div class="ttdoc">Low-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00309">matrix_integer.hpp:309</a></div></div>
+<div class="ttc" id="a00167_html_ga1582c5dc83e49a7e53bb0b94bef9de54"><div class="ttname"><a href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">glm::mediump_imat4x2</a></div><div class="ttdeci">tmat4x2&lt; int, mediump &gt; mediump_imat4x2</div><div class="ttdoc">Medium-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00122">matrix_integer.hpp:122</a></div></div>
+<div class="ttc" id="a00167_html_ga330140b22a9449caab308f2c69bf4c80"><div class="ttname"><a href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">glm::lowp_imat4x4</a></div><div class="ttdeci">tmat4x4&lt; int, lowp &gt; lowp_imat4x4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00180">matrix_integer.hpp:180</a></div></div>
+<div class="ttc" id="a00167_html_gac351446661e5a8168473ff7b3b5ac3b5"><div class="ttname"><a href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">glm::highp_umat2x3</a></div><div class="ttdeci">tmat2x3&lt; uint, highp &gt; highp_umat2x3</div><div class="ttdoc">High-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00201">matrix_integer.hpp:201</a></div></div>
+<div class="ttc" id="a00167_html_ga9d8faafdca42583d67e792dd038fc668"><div class="ttname"><a href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">glm::imat2x4</a></div><div class="ttdeci">mediump_imat2x4 imat2x4</div><div class="ttdoc">Signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00381">matrix_integer.hpp:381</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00167_html_gab8068521c0ad6990373d27d87d333084"><div class="ttname"><a href="a00167.html#gab8068521c0ad6990373d27d87d333084">glm::highp_umat4x4</a></div><div class="ttdeci">tmat4x4&lt; uint, highp &gt; highp_umat4x4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00229">matrix_integer.hpp:229</a></div></div>
+<div class="ttc" id="a00167_html_gaabe04f9948d4a213bb1c20137de03e01"><div class="ttname"><a href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">glm::imat2</a></div><div class="ttdeci">mediump_imat2 imat2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00361">matrix_integer.hpp:361</a></div></div>
+<div class="ttc" id="a00167_html_ga8ce7ef51d8b2c1901fa5414deccbc3fa"><div class="ttname"><a href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::imat4x2</a></div><div class="ttdeci">mediump_imat4x2 imat4x2</div><div class="ttdoc">Signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00397">matrix_integer.hpp:397</a></div></div>
+<div class="ttc" id="a00167_html_gafe68c1cf2b379a9a11d1a11c9c2f8884"><div class="ttname"><a href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">glm::lowp_umat4</a></div><div class="ttdeci">tmat4x4&lt; uint, lowp &gt; lowp_umat4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00292">matrix_integer.hpp:292</a></div></div>
+<div class="ttc" id="a00167_html_ga1f0cea730f6c13b16e511bd2d63507a3"><div class="ttname"><a href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">glm::lowp_umat2x2</a></div><div class="ttdeci">tmat2x2&lt; uint, lowp &gt; lowp_umat2x2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00297">matrix_integer.hpp:297</a></div></div>
+<div class="ttc" id="a00167_html_ga3fdfce509d30bdd7778b8b156cb968df"><div class="ttname"><a href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">glm::lowp_imat4x2</a></div><div class="ttdeci">tmat4x2&lt; int, lowp &gt; lowp_imat4x2</div><div class="ttdoc">Low-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00172">matrix_integer.hpp:172</a></div></div>
+<div class="ttc" id="a00167_html_ga6a9945878f99294cfde40c6c3a867d69"><div class="ttname"><a href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">glm::lowp_imat4x3</a></div><div class="ttdeci">tmat4x3&lt; int, lowp &gt; lowp_imat4x3</div><div class="ttdoc">Low-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00176">matrix_integer.hpp:176</a></div></div>
+<div class="ttc" id="a00167_html_ga9cd7fa637a4a6788337f45231fad9e1a"><div class="ttname"><a href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::umat3x2</a></div><div class="ttdeci">mediump_umat3x2 umat3x2</div><div class="ttdoc">Unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00462">matrix_integer.hpp:462</a></div></div>
+<div class="ttc" id="a00167_html_gae7c78ff3fc4309605ab0fa186c8d48ba"><div class="ttname"><a href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::umat3x4</a></div><div class="ttdeci">mediump_umat3x4 umat3x4</div><div class="ttdoc">Unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00470">matrix_integer.hpp:470</a></div></div>
+<div class="ttc" id="a00167_html_ga7322b97f1be10c83290ab57ef784d493"><div class="ttname"><a href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">glm::mediump_umat2</a></div><div class="ttdeci">tmat2x2&lt; uint, mediump &gt; mediump_umat2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00234">matrix_integer.hpp:234</a></div></div>
+<div class="ttc" id="a00167_html_ga6aacc960f62e8f7d2fe9d32d5050e7a4"><div class="ttname"><a href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::imat3x3</a></div><div class="ttdeci">mediump_imat3x3 imat3x3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00389">matrix_integer.hpp:389</a></div></div>
+<div class="ttc" id="a00167_html_gad4809dbfb1bfcf222d7b34a97a8eafe5"><div class="ttname"><a href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">glm::mediump_umat3x3</a></div><div class="ttdeci">tmat3x3&lt; uint, mediump &gt; mediump_umat3x3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00263">matrix_integer.hpp:263</a></div></div>
+<div class="ttc" id="a00167_html_gad3d7b23bdb4ed9b7d53c9db792db9bb4"><div class="ttname"><a href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">glm::lowp_imat4</a></div><div class="ttdeci">tmat4x4&lt; int, lowp &gt; lowp_imat4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00143">matrix_integer.hpp:143</a></div></div>
+<div class="ttc" id="a00167_html_gab3d5c6aaeb5815f8f080305888f6828f"><div class="ttname"><a href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">glm::lowp_imat3x3</a></div><div class="ttdeci">tmat3x3&lt; int, lowp &gt; lowp_imat3x3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00164">matrix_integer.hpp:164</a></div></div>
+<div class="ttc" id="a00167_html_ga3f8e55e14a6fc61850f8c0df9b4ff655"><div class="ttname"><a href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">glm::mediump_imat2</a></div><div class="ttdeci">tmat2x2&lt; int, mediump &gt; mediump_imat2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00085">matrix_integer.hpp:85</a></div></div>
+<div class="ttc" id="a00167_html_ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><div class="ttname"><a href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::umat3x3</a></div><div class="ttdeci">mediump_umat3x3 umat3x3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00466">matrix_integer.hpp:466</a></div></div>
+<div class="ttc" id="a00167_html_ga551ad2e4e0304c67451ffbadeef0d615"><div class="ttname"><a href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">glm::mediump_imat4</a></div><div class="ttdeci">tmat4x4&lt; int, mediump &gt; mediump_imat4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00093">matrix_integer.hpp:93</a></div></div>
+<div class="ttc" id="a00167_html_ga93961d3aac6efa36dc3f9cfa7e9056e6"><div class="ttname"><a href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">glm::mediump_umat3</a></div><div class="ttdeci">tmat3x3&lt; uint, mediump &gt; mediump_umat3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00238">matrix_integer.hpp:238</a></div></div>
+<div class="ttc" id="a00167_html_ga742be484e56e08ef637f8ec4ab7c8bb2"><div class="ttname"><a href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">glm::lowp_umat4x4</a></div><div class="ttdeci">tmat4x4&lt; uint, lowp &gt; lowp_umat4x4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00329">matrix_integer.hpp:329</a></div></div>
+<div class="ttc" id="a00167_html_ga5f5f1e6dc06b72216463a425b2f7613e"><div class="ttname"><a href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">glm::highp_imat2x3</a></div><div class="ttdeci">tmat2x3&lt; int, highp &gt; highp_imat2x3</div><div class="ttdoc">High-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00052">matrix_integer.hpp:52</a></div></div>
+<div class="ttc" id="a00167_html_ga7b6c64600bad79d735fa6bec843b2bb4"><div class="ttname"><a href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">glm::lowp_umat2x4</a></div><div class="ttdeci">tmat2x4&lt; uint, lowp &gt; lowp_umat2x4</div><div class="ttdoc">Low-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00305">matrix_integer.hpp:305</a></div></div>
+<div class="ttc" id="a00167_html_ga38bc7bb6494e344185df596deeb4544c"><div class="ttname"><a href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">glm::umat4</a></div><div class="ttdeci">mediump_umat4 umat4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00446">matrix_integer.hpp:446</a></div></div>
+<div class="ttc" id="a00167_html_ga7b33bbe4f12c060892bd3cc8d4cd737f"><div class="ttname"><a href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::imat3x2</a></div><div class="ttdeci">mediump_imat3x2 imat3x2</div><div class="ttdoc">Signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00385">matrix_integer.hpp:385</a></div></div>
+<div class="ttc" id="a00167_html_ga159ce04cc638ff4db755542cd8f758cb"><div class="ttname"><a href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">glm::highp_imat4</a></div><div class="ttdeci">tmat4x4&lt; int, highp &gt; highp_imat4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00044">matrix_integer.hpp:44</a></div></div>
+<div class="ttc" id="a00167_html_gad4fea24b4100e21ed7742c91e5458d49"><div class="ttname"><a href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">glm::highp_imat3x4</a></div><div class="ttdeci">tmat3x4&lt; int, highp &gt; highp_imat3x4</div><div class="ttdoc">High-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00068">matrix_integer.hpp:68</a></div></div>
+<div class="ttc" id="a00167_html_gab1d8e627b6a0b21c9b5e599a89132d8f"><div class="ttname"><a href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">glm::highp_umat3x2</a></div><div class="ttdeci">tmat3x2&lt; uint, highp &gt; highp_umat3x2</div><div class="ttdoc">High-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00209">matrix_integer.hpp:209</a></div></div>
+<div class="ttc" id="a00167_html_ga0c66b9b7c10a6017a58a03489c8d4c73"><div class="ttname"><a href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">glm::highp_imat4x3</a></div><div class="ttdeci">tmat4x3&lt; int, highp &gt; highp_imat4x3</div><div class="ttdoc">High-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00076">matrix_integer.hpp:76</a></div></div>
+<div class="ttc" id="a00167_html_ga899a376888652fe3c03718641812bb27"><div class="ttname"><a href="a00167.html#ga899a376888652fe3c03718641812bb27">glm::highp_umat4x3</a></div><div class="ttdeci">tmat4x3&lt; uint, highp &gt; highp_umat4x3</div><div class="ttdoc">High-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00225">matrix_integer.hpp:225</a></div></div>
+<div class="ttc" id="a00167_html_gaaba8a59eac3e5c0b3aaa9b35c1f10292"><div class="ttname"><a href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">glm::highp_umat4x2</a></div><div class="ttdeci">tmat4x2&lt; uint, highp &gt; highp_umat4x2</div><div class="ttdoc">High-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00221">matrix_integer.hpp:221</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00066.html b/3rdparty/glm/doc/api/a00066.html
index e9d3ffde64f..87e9f6d164c 100644
--- a/3rdparty/glm/doc/api/a00066.html
+++ b/3rdparty/glm/doc/api/a00066.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x4.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_interpolation.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,63 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat4x4.hpp File Reference</div> </div>
+<div class="title">matrix_interpolation.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00066_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4&lt; T, P &gt; const &amp;mat, tvec3&lt; T, P &gt; &amp;axis, T &amp;angle)</td></tr>
+<tr class="memdesc:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the axis and angle of the rotation from a matrix. <a href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">More...</a><br /></td></tr>
+<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3&lt; T, P &gt; const &amp;axis, T const angle)</td></tr>
+<tr class="memdesc:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from axis and angle. <a href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">More...</a><br /></td></tr>
+<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4&lt; T, P &gt; const &amp;mat)</td></tr>
+<tr class="memdesc:ga6b8170aa4cf43caf81400696ebb38afe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts the rotation part of a matrix. <a href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">More...</a><br /></td></tr>
+<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4&lt; T, P &gt; const &amp;m1, tmat4x4&lt; T, P &gt; const &amp;m2, T const delta)</td></tr>
+<tr class="memdesc:ga45099a92c5c704503565619ac2bcd5c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a interpolation of 4 * 4 matrixes. <a href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">More...</a><br /></td></tr>
+<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Ghenadii Ursachi (<a href="#" onclick="location.href='mai'+'lto:'+'the'+'.a'+'ste'+'ro'+'th@'+'gm'+'ail'+'.c'+'om'; return false;">the.a<span style="display: none;">.nosp@m.</span>ster<span style="display: none;">.nosp@m.</span>oth@g<span style="display: none;">.nosp@m.</span>mail<span style="display: none;">.nosp@m.</span>.com</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00066_source.html">mat4x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00066_source.html">matrix_interpolation.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00066_source.html b/3rdparty/glm/doc/api/a00066_source.html
index 1924241be14..f8f8dab0c4e 100644
--- a/3rdparty/glm/doc/api/a00066_source.html
+++ b/3rdparty/glm/doc/api/a00066_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x4.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_interpolation.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,78 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat4x4.hpp</div> </div>
+<div class="title">matrix_interpolation.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00066.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">detail/type_mat4x4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00337">type_mat.hpp:337</a></div></div>
-<div class="ttc" id="a00164_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00330">type_mat.hpp:330</a></div></div>
-<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_mat4x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00316">type_mat.hpp:316</a></div></div>
-<div class="ttc" id="a00164_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00351">type_mat.hpp:351</a></div></div>
-<div class="ttc" id="a00164_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00323">type_mat.hpp:323</a></div></div>
-<div class="ttc" id="a00164_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00164.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00344">type_mat.hpp:344</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_interpolation is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_interpolation extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; mat,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; tvec3&lt;T, P&gt; &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; T <span class="keyword">const</span> <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; mat);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a>(</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; T <span class="keyword">const</span> delta);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;matrix_interpolation.inl&quot;</span></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00205_html_ga82d4bc058e9628cb2ea1d4e117a0cf39"><div class="ttname"><a href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">glm::axisAngleMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; axisAngleMatrix(tvec3&lt; T, P &gt; const &amp;axis, T const angle)</div><div class="ttdoc">Build a matrix from axis and angle. </div></div>
+<div class="ttc" id="a00205_html_ga9aef292eb5f29bdbb58a53ef4281af92"><div class="ttname"><a href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">glm::axisAngle</a></div><div class="ttdeci">GLM_FUNC_DECL void axisAngle(tmat4x4&lt; T, P &gt; const &amp;mat, tvec3&lt; T, P &gt; &amp;axis, T &amp;angle)</div><div class="ttdoc">Get the axis and angle of the rotation from a matrix. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00205_html_ga6b8170aa4cf43caf81400696ebb38afe"><div class="ttname"><a href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">glm::extractMatrixRotation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; extractMatrixRotation(tmat4x4&lt; T, P &gt; const &amp;mat)</div><div class="ttdoc">Extracts the rotation part of a matrix. </div></div>
+<div class="ttc" id="a00205_html_ga45099a92c5c704503565619ac2bcd5c6"><div class="ttname"><a href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">glm::interpolate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; interpolate(tmat4x4&lt; T, P &gt; const &amp;m1, tmat4x4&lt; T, P &gt; const &amp;m2, T const delta)</div><div class="ttdoc">Build a interpolation of 4 * 4 matrixes. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00067.html b/3rdparty/glm/doc/api/a00067.html
index c317f8a69c1..ffa2f271d1e 100644
--- a/3rdparty/glm/doc/api/a00067.html
+++ b/3rdparty/glm/doc/api/a00067.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_inverse.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,54 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix.hpp File Reference</div> </div>
+<div class="title">matrix_inverse.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00067_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &amp;m)</td></tr>
+<tr class="memdesc:gae0fcc5fc8783291f9702272de428fa0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast matrix inverse for affine matrix. <a href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">More...</a><br /></td></tr>
+<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &amp;m)</td></tr>
+<tr class="memdesc:gab213cd0e3ead5f316d583f99d6312008"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the inverse transpose of a matrix. <a href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">More...</a><br /></td></tr>
+<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00067_source.html">matrix.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00067_source.html">matrix_inverse.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00067_source.html b/3rdparty/glm/doc/api/a00067_source.html
index fb3c7491d0d..bcb437c6ee9 100644
--- a/3rdparty/glm/doc/api/a00067_source.html
+++ b/3rdparty/glm/doc/api/a00067_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_inverse.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,59 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix.hpp</div> </div>
+<div class="title">matrix_inverse.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00067.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00033.html">detail/func_matrix.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">func_matrix.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../matrix.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_inverse extension included&quot;)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a>(genType <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a>(genType <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;matrix_inverse.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00168_html_gab213cd0e3ead5f316d583f99d6312008"><div class="ttname"><a href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">glm::inverseTranspose</a></div><div class="ttdeci">GLM_FUNC_DECL genType inverseTranspose(genType const &amp;m)</div><div class="ttdoc">Compute the inverse transpose of a matrix. </div></div>
+<div class="ttc" id="a00168_html_gae0fcc5fc8783291f9702272de428fa0e"><div class="ttname"><a href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">glm::affineInverse</a></div><div class="ttdeci">GLM_FUNC_DECL genType affineInverse(genType const &amp;m)</div><div class="ttdoc">Fast matrix inverse for affine matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00068.html b/3rdparty/glm/doc/api/a00068.html
index 2728d67bab1..52a7efe9b44 100644
--- a/3rdparty/glm/doc/api/a00068.html
+++ b/3rdparty/glm/doc/api/a00068.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_access.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_major_storage.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,48 +64,96 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_access.hpp File Reference</div> </div>
+<div class="title">matrix_major_storage.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00068_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &amp;m, length_t index)</td></tr>
-<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &amp;m, length_t index, typename genType::col_type const &amp;x)</td></tr>
-<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &amp;m, length_t index)</td></tr>
-<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &amp;m, length_t index, typename genType::row_type const &amp;x)</td></tr>
-<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
+<tr class="memdesc:ga599fff4f1c65912b256a82138ebcca37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from column vectors. <a href="a00206.html#ga599fff4f1c65912b256a82138ebcca37">More...</a><br /></td></tr>
+<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from other matrix. <a href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">More...</a><br /></td></tr>
+<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
+<tr class="memdesc:ga3a55e2948193e91733e434e7cc3c1540"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from column vectors. <a href="a00206.html#ga3a55e2948193e91733e434e7cc3c1540">More...</a><br /></td></tr>
+<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:gaa93f3dcc47ced18e5db4a853363d9386"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from other matrix. <a href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">More...</a><br /></td></tr>
+<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
+<tr class="memdesc:ga2829de096bb67ab5cd670958f3d402b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from column vectors. <a href="a00206.html#ga2829de096bb67ab5cd670958f3d402b6">More...</a><br /></td></tr>
+<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga7592acfd27da055e2d7c39564cf8803d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from other matrix. <a href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">More...</a><br /></td></tr>
+<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
+<tr class="memdesc:ga0c7f4d56a85865f0002127119ab7d551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from row vectors. <a href="a00206.html#ga0c7f4d56a85865f0002127119ab7d551">More...</a><br /></td></tr>
+<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga42a006aa66198452bd3c89415f892196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from other matrix. <a href="a00206.html#ga42a006aa66198452bd3c89415f892196">More...</a><br /></td></tr>
+<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
+<tr class="memdesc:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from row vectors. <a href="a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">More...</a><br /></td></tr>
+<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga38537061135b55e7a053926ca55e6e20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from other matrix. <a href="a00206.html#ga38537061135b55e7a053926ca55e6e20">More...</a><br /></td></tr>
+<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
+<tr class="memdesc:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from row vectors. <a href="a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">More...</a><br /></td></tr>
+<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga85771a88c114a088a0414bcfce55e729"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from other matrix. <a href="a00206.html#ga85771a88c114a088a0414bcfce55e729">More...</a><br /></td></tr>
+<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00171.html">GLM_GTC_matrix_access</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-27 / 2011-05-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00068_source.html">matrix_access.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00068_source.html">matrix_major_storage.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00068_source.html b/3rdparty/glm/doc/api/a00068_source.html
index 08a5368a478..1f22009f81b 100644
--- a/3rdparty/glm/doc/api/a00068_source.html
+++ b/3rdparty/glm/doc/api/a00068_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_access.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_major_storage.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,57 +64,117 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_access.hpp</div> </div>
+<div class="title">matrix_major_storage.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00068.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_access extension included&quot;)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::row_type <a class="code" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; length_t index);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; length_t index,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::col_type <a class="code" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; length_t index);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; genType <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; length_t index,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#include &quot;matrix_access.inl&quot;</span></div>
-<div class="ttc" id="a00171_html_ga9e757377523890e8b80c5843dbe4dd15"><div class="ttname"><a href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">glm::column</a></div><div class="ttdeci">GLM_FUNC_DECL genType column(genType const &amp;m, length_t index, typename genType::col_type const &amp;x)</div><div class="ttdoc">Set a specific column to a matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00171_html_gaadcc64829aadf4103477679e48c7594f"><div class="ttname"><a href="a00171.html#gaadcc64829aadf4103477679e48c7594f">glm::row</a></div><div class="ttdeci">GLM_FUNC_DECL genType row(genType const &amp;m, length_t index, typename genType::row_type const &amp;x)</div><div class="ttdoc">Set a specific row to a matrix. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_major_storage is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_major_storage extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v3);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v3, </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v4);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v3);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v3, </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v4);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#include &quot;matrix_major_storage.inl&quot;</span></div>
+<div class="ttc" id="a00206_html_ga7592acfd27da055e2d7c39564cf8803d"><div class="ttname"><a href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">glm::colMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; colMajor4(tmat4x4&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga42a006aa66198452bd3c89415f892196"><div class="ttname"><a href="a00206.html#ga42a006aa66198452bd3c89415f892196">glm::rowMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, P &gt; rowMajor2(tmat2x2&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga38537061135b55e7a053926ca55e6e20"><div class="ttname"><a href="a00206.html#ga38537061135b55e7a053926ca55e6e20">glm::rowMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; rowMajor3(tmat3x3&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga5cfd25de9d5b4c6a825085f38ddfeff7"><div class="ttname"><a href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">glm::colMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, P &gt; colMajor2(tmat2x2&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00206_html_gaa93f3dcc47ced18e5db4a853363d9386"><div class="ttname"><a href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">glm::colMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; colMajor3(tmat3x3&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga85771a88c114a088a0414bcfce55e729"><div class="ttname"><a href="a00206.html#ga85771a88c114a088a0414bcfce55e729">glm::rowMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; rowMajor4(tmat4x4&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00069.html b/3rdparty/glm/doc/api/a00069.html
index 543624f0b04..ded6c475548 100644
--- a/3rdparty/glm/doc/api/a00069.html
+++ b/3rdparty/glm/doc/api/a00069.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_cross_product.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_operation.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,82 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_cross_product.hpp File Reference</div> </div>
+<div class="title">matrix_operation.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00069_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga01dc503262dba9c457113d131fc8c024"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga01dc503262dba9c457113d131fc8c024">More...</a><br /></td></tr>
+<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga763817f07d6a94b722a48adfa87a35db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">More...</a><br /></td></tr>
+<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">More...</a><br /></td></tr>
+<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga586e1ced91fd8a7c414186a200f13532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">More...</a><br /></td></tr>
+<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga8e817dba22f2305cdebae07bbbe0360c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">More...</a><br /></td></tr>
+<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gae3f85af86c18c80f2acbe3223feb8e81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">More...</a><br /></td></tr>
+<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">More...</a><br /></td></tr>
+<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">More...</a><br /></td></tr>
+<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gade576e044d8e52f343166f665589d782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#gade576e044d8e52f343166f665589d782">More...</a><br /></td></tr>
+<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00207.html">GLM_GTX_matrix_cross_product</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00069_source.html">matrix_cross_product.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00069_source.html">matrix_operation.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00069_source.html b/3rdparty/glm/doc/api/a00069_source.html
index faebf034a07..aca82f3cacc 100644
--- a/3rdparty/glm/doc/api/a00069_source.html
+++ b/3rdparty/glm/doc/api/a00069_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_cross_product.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_operation.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,43 +64,96 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_cross_product.hpp</div> </div>
+<div class="title">matrix_operation.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00069.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_cross_product extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;matrix_cross_product.inl&quot;</span></div>
-<div class="ttc" id="a00207_html_ga2d46cc5253761c214aa5c782865156b1"><div class="ttname"><a href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">glm::matrixCross4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; matrixCross4(tvec3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
-<div class="ttc" id="a00207_html_ga04385b2e3a93c78d116b51af2d8d708e"><div class="ttname"><a href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">glm::matrixCross3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; matrixCross3(tvec3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_operation is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_operation extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00207.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; <a class="code" href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; <a class="code" href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; <a class="code" href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; <a class="code" href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a>(</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; <a class="code" href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a>(</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; <a class="code" href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a>(</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00207.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a>(</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#include &quot;matrix_operation.inl&quot;</span></div>
+<div class="ttc" id="a00207_html_gade576e044d8e52f343166f665589d782"><div class="ttname"><a href="a00207.html#gade576e044d8e52f343166f665589d782">glm::diagonal4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; diagonal4x4(tvec4&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga49b37c819cf6dd8e35112ed1a13d45a3"><div class="ttname"><a href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">glm::diagonal2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4&lt; T, P &gt; diagonal2x4(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga8e817dba22f2305cdebae07bbbe0360c"><div class="ttname"><a href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">glm::diagonal3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; diagonal3x3(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><div class="ttname"><a href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">glm::diagonal4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2&lt; T, P &gt; diagonal4x2(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00207_html_ga763817f07d6a94b722a48adfa87a35db"><div class="ttname"><a href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">glm::diagonal2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3&lt; T, P &gt; diagonal2x3(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga01dc503262dba9c457113d131fc8c024"><div class="ttname"><a href="a00207.html#ga01dc503262dba9c457113d131fc8c024">glm::diagonal2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, P &gt; diagonal2x2(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga586e1ced91fd8a7c414186a200f13532"><div class="ttname"><a href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">glm::diagonal3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2&lt; T, P &gt; diagonal3x2(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_gae3f85af86c18c80f2acbe3223feb8e81"><div class="ttname"><a href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">glm::diagonal3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4&lt; T, P &gt; diagonal3x4(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga4242ea5681f81539e0c5b54fadcd9ddf"><div class="ttname"><a href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">glm::diagonal4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3&lt; T, P &gt; diagonal4x3(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00070.html b/3rdparty/glm/doc/api/a00070.html
index d9d1cda3acf..19d5bbf1728 100644
--- a/3rdparty/glm/doc/api/a00070.html
+++ b/3rdparty/glm/doc/api/a00070.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_decompose.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_query.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,39 +64,80 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_decompose.hpp File Reference</div> </div>
+<div class="title">matrix_query.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00208.html">GLM_GTX_matrix_query</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00070_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4&lt; T, P &gt; const &amp;modelMatrix, tvec3&lt; T, P &gt; &amp;scale, tquat&lt; T, P &gt; &amp;orientation, tvec3&lt; T, P &gt; &amp;translation, tvec3&lt; T, P &gt; &amp;skew, tvec4&lt; T, P &gt; &amp;perspective)</td></tr>
-<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gafc1ce12c738b8c5d007179e615609330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is an identity matrix. <a href="a00208.html#gafc1ce12c738b8c5d007179e615609330">More...</a><br /></td></tr>
+<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a normalized matrix. <a href="a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">More...</a><br /></td></tr>
+<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga351bcc8d485d329b78cfa875e084964d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a normalized matrix. <a href="a00208.html#ga351bcc8d485d329b78cfa875e084964d">More...</a><br /></td></tr>
+<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a normalized matrix. <a href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">More...</a><br /></td></tr>
+<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga37e535cbeaea383b8c1247b98875cd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix a null matrix. <a href="a00208.html#ga37e535cbeaea383b8c1247b98875cd4b">More...</a><br /></td></tr>
+<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gac67a5c7e029a84b74b02ac9599b8972d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix a null matrix. <a href="a00208.html#gac67a5c7e029a84b74b02ac9599b8972d">More...</a><br /></td></tr>
+<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga326de496972051413c7b44b85fc9cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a null matrix. <a href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">More...</a><br /></td></tr>
+<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is an orthonormalized matrix. <a href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">More...</a><br /></td></tr>
+<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00208.html">GLM_GTX_matrix_decompose</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-08-29 / 2014-08-29 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00208.html">GLM_GTX_matrix_query</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00070_source.html">matrix_decompose.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00070_source.html">matrix_query.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00070_source.html b/3rdparty/glm/doc/api/a00070_source.html
index 82477bfc664..4618efb9982 100644
--- a/3rdparty/glm/doc/api/a00070_source.html
+++ b/3rdparty/glm/doc/api/a00070_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_decompose.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_query.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,46 +64,82 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_decompose.hpp</div> </div>
+<div class="title">matrix_query.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00070.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtc/matrix_transform.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_decompose extension included&quot;)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga0f1245817507156b337798a253577c8b">decompose</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; modelMatrix,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec3&lt;T, P&gt; &amp; <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, tquat&lt;T, P&gt; &amp; <a class="code" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3&lt;T, P&gt; &amp; translation, tvec3&lt;T, P&gt; &amp; skew, tvec4&lt;T, P&gt; &amp; <a class="code" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;matrix_decompose.inl&quot;</span></div>
-<div class="ttc" id="a00174_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
-<div class="ttc" id="a00228_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientation(tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00208_html_ga0f1245817507156b337798a253577c8b"><div class="ttname"><a href="a00208.html#ga0f1245817507156b337798a253577c8b">glm::decompose</a></div><div class="ttdeci">GLM_FUNC_DECL bool decompose(tmat4x4&lt; T, P &gt; const &amp;modelMatrix, tvec3&lt; T, P &gt; &amp;scale, tquat&lt; T, P &gt; &amp;orientation, tvec3&lt; T, P &gt; &amp;translation, tvec3&lt; T, P &gt; &amp;skew, tvec4&lt; T, P &gt; &amp;perspective)</div><div class="ttdoc">Decomposes a model matrix to translations, rotation and scale components. </div></div>
-<div class="ttc" id="a00174_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../gtx/vector_query.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_query is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_query extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;matrix_query.inl&quot;</span></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00208_html_ga326de496972051413c7b44b85fc9cb6e"><div class="ttname"><a href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is a null matrix. </div></div>
+<div class="ttc" id="a00208_html_gafc1ce12c738b8c5d007179e615609330"><div class="ttname"><a href="a00208.html#gafc1ce12c738b8c5d007179e615609330">glm::isIdentity</a></div><div class="ttdeci">GLM_FUNC_DECL bool isIdentity(matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is an identity matrix. </div></div>
+<div class="ttc" id="a00208_html_ga934b673ec0e16d79eca0ca9dbb5d6d8b"><div class="ttname"><a href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is a normalized matrix. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00208_html_gab2cb5d23df77b4e4e63ad2965acd31b3"><div class="ttname"><a href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">glm::isOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool isOrthogonal(matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is an orthonormalized matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00071.html b/3rdparty/glm/doc/api/a00071.html
index c2ede18608b..894e32faf5b 100644
--- a/3rdparty/glm/doc/api/a00071.html
+++ b/3rdparty/glm/doc/api/a00071.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_integer.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_transform.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,228 +64,158 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_integer.hpp File Reference</div> </div>
+<div class="title">matrix_transform.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00071_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
-<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
-<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
-<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
-<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
-<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
-<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
-<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
-<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
-<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
-<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
-<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
-<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
-<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
-<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
-<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
-<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
-<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
-<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
-<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
-<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
-<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
-<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
-<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
-<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
-<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
-<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
-<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
-<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
-<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
-<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
-<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
-<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
-<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
-<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
-<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
-<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
-<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
-<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
-<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
-<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
-<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
-<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
-<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
-<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
-<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
-<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
-<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
-<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
-<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
-<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
-<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
-<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
-<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
-<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
-<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
-<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
-<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
-<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
-<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
-<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
-<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
-<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
-<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
-<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
-<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
-<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
-<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
-<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
-<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
-<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
-<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
-<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
-<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
-<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
-<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
-<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
-<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
-<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
-<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
-<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
-<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
-<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
-<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
-<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
-<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
-<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
-<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
-<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
-<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
-<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
-<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
-<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
-<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
-<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
-<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
-<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gada6deb989d4b553fe0f7e3279f3afae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix with default handedness. <a href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">More...</a><br /></td></tr>
+<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">frustumLH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left handed frustum matrix. <a href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">More...</a><br /></td></tr>
+<tr class="separator:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">frustumRH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gad0e184273bdacbe769e5cd81069e48ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right handed frustum matrix. <a href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">More...</a><br /></td></tr>
+<tr class="separator:gad0e184273bdacbe769e5cd81069e48ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. <a href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">More...</a><br /></td></tr>
+<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">infinitePerspectiveLH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga47af534da2b28effa4c7945ec82ccd9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. <a href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">More...</a><br /></td></tr>
+<tr class="separator:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79575023763df88dff1bf8255a42d0be">infinitePerspectiveRH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga79575023763df88dff1bf8255a42d0be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. <a href="a00169.html#ga79575023763df88dff1bf8255a42d0be">More...</a><br /></td></tr>
+<tr class="separator:ga79575023763df88dff1bf8255a42d0be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
+<tr class="memdesc:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a look at view matrix based on the default handedness. <a href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">More...</a><br /></td></tr>
+<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
+<tr class="memdesc:gacd0c077ec7b58a575855e29cb5fb586d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a left handed look at view matrix. <a href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">More...</a><br /></td></tr>
+<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
+<tr class="memdesc:ga2876d9313334980b94292d2ec169088e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a right handed look at view matrix. <a href="a00169.html#ga2876d9313334980b94292d2ec169088e">More...</a><br /></td></tr>
+<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga65280251de6e38580110a0577a43d8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using the default handedness. <a href="a00169.html#ga65280251de6e38580110a0577a43d8f8">More...</a><br /></td></tr>
+<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
+<tr class="memdesc:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for projecting two-dimensional coordinates onto the screen. <a href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">More...</a><br /></td></tr>
+<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">orthoLH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga71503df1e691b12cc2d45e64fd0628fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handedness. <a href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">More...</a><br /></td></tr>
+<tr class="separator:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">orthoRH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gada0aaaee76f1fd3c272698c8eca735a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handedness. <a href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">More...</a><br /></td></tr>
+<tr class="separator:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gac3613dcb6c6916465ad5b7ad5a786175"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symetric perspective-view frustum based on the default handedness. <a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">More...</a><br /></td></tr>
+<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gae9146e2c550fc8646299e4b900238145"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view and the default handedness. <a href="a00169.html#gae9146e2c550fc8646299e4b900238145">More...</a><br /></td></tr>
+<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a left handed perspective projection matrix based on a field of view. <a href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">More...</a><br /></td></tr>
+<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:ga07cd8df791bf90dcb782645fe0b21261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a right handed perspective projection matrix based on a field of view. <a href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">More...</a><br /></td></tr>
+<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga34048da27c559f1ac8e9550d169dd6f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left handed, symetric perspective-view frustum. <a href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">More...</a><br /></td></tr>
+<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right handed, symetric perspective-view frustum. <a href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">More...</a><br /></td></tr>
+<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, typename U &gt; </td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2&lt; T, P &gt; const &amp;center, tvec2&lt; T, P &gt; const &amp;delta, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
+<tr class="memdesc:ga9026c77505b99990f68826f27c267dc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a picking region. <a href="a00169.html#ga9026c77505b99990f68826f27c267dc5">More...</a><br /></td></tr>
+<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3&lt; T, P &gt; const &amp;obj, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
+<tr class="memdesc:gad743556abd138264d4f06f4ca27f1d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. <a href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">More...</a><br /></td></tr>
+<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:ga161b1df124348f232d994ba7958e4815"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 4 * 4 matrix created from an axis vector and an angle. <a href="a00169.html#ga161b1df124348f232d994ba7958e4815">More...</a><br /></td></tr>
+<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga8f062fcc07e2445500793f2803afebb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a scale 4 * 4 matrix created from 3 scalars. <a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">More...</a><br /></td></tr>
+<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a translation 4 * 4 matrix created from a vector of 3 components. <a href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">More...</a><br /></td></tr>
+<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. <a href="a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194">More...</a><br /></td></tr>
+<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
+<tr class="memdesc:gaa50fce7f50b5d5da881ed30f5532a921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. <a href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">More...</a><br /></td></tr>
+<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3&lt; T, P &gt; const &amp;win, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
+<tr class="memdesc:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. <a href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">More...</a><br /></td></tr>
+<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00172.html">GLM_GTC_matrix_integer</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-01-20 / 2011-06-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
+<dd>
+<a class="el" href="a00230.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00071_source.html">matrix_transform.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00071_source.html b/3rdparty/glm/doc/api/a00071_source.html
index b47819227d2..eefc52913d8 100644
--- a/3rdparty/glm/doc/api/a00071_source.html
+++ b/3rdparty/glm/doc/api/a00071_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_integer.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_transform.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,394 +64,259 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_integer.hpp</div> </div>
+<div class="title">matrix_transform.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00071.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_integer extension included&quot;)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a"> 65</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, highp&gt; <a class="code" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9"> 69</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, highp&gt; <a class="code" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb"> 73</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, highp&gt; <a class="code" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a"> 77</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, highp&gt; <a class="code" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a>;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e"> 81</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, highp&gt; <a class="code" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65"> 85</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, highp&gt; <a class="code" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00172.html#ga0413bf87605b9247be2533c439127a1c"> 89</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, highp&gt; <a class="code" href="a00172.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a>;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00172.html#gacce460d54216438bb577bf8c9d68299c"> 93</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, highp&gt; <a class="code" href="a00172.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49"> 97</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, highp&gt; <a class="code" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599"> 101</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, highp&gt; <a class="code" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73"> 105</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, highp&gt; <a class="code" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a>;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00172.html#gae53db595d36f49a299e180302795e3c9"> 109</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, highp&gt; <a class="code" href="a00172.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a>;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655"> 114</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, mediump&gt; <a class="code" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c"> 118</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, mediump&gt; <a class="code" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a>;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615"> 122</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, mediump&gt; <a class="code" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8"> 127</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, mediump&gt; <a class="code" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a"> 131</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, mediump&gt; <a class="code" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00172.html#gaa08e27efc514088315ccbaf818f01880"> 135</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, mediump&gt; <a class="code" href="a00172.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983"> 139</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, mediump&gt; <a class="code" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3"> 143</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, mediump&gt; <a class="code" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a>;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38"> 147</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, mediump&gt; <a class="code" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a>;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54"> 151</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, mediump&gt; <a class="code" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d"> 155</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, mediump&gt; <a class="code" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a>;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8"> 159</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, mediump&gt; <a class="code" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0"> 164</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, lowp&gt; <a class="code" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a>;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c"> 168</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, lowp&gt; <a class="code" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a>;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4"> 172</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, lowp&gt; <a class="code" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a>;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31"> 177</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;int, lowp&gt; <a class="code" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a>;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc"> 181</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;int, lowp&gt; <a class="code" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b"> 185</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;int, lowp&gt; <a class="code" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35"> 189</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;int, lowp&gt; <a class="code" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a>;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f"> 193</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;int, lowp&gt; <a class="code" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b"> 197</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;int, lowp&gt; <a class="code" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df"> 201</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;int, lowp&gt; <a class="code" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a>;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69"> 205</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;int, lowp&gt; <a class="code" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a>;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80"> 209</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;int, lowp&gt; <a class="code" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c"> 214</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, highp&gt; <a class="code" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a>; </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147"> 218</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, highp&gt; <a class="code" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a>;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c"> 222</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, highp&gt; <a class="code" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb"> 226</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, highp&gt; <a class="code" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5"> 230</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;uint, highp&gt; <a class="code" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a>;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213"> 234</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;uint, highp&gt; <a class="code" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a>;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f"> 238</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;uint, highp&gt; <a class="code" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a>;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa"> 242</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, highp&gt; <a class="code" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7"> 246</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;uint, highp&gt; <a class="code" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a>;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292"> 250</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;uint, highp&gt; <a class="code" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a>;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="a00172.html#ga899a376888652fe3c03718641812bb27"> 254</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;uint, highp&gt; <a class="code" href="a00172.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a>;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="a00172.html#gab8068521c0ad6990373d27d87d333084"> 258</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, highp&gt; <a class="code" href="a00172.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a>;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493"> 263</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6"> 267</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a>;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833"> 271</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, mediump&gt; <a class="code" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a>;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163"> 276</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a>;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb"> 280</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a>;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e"> 284</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;uint, mediump&gt; <a class="code" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a>;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947"> 288</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a>;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5"> 292</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, mediump&gt; <a class="code" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc"> 296</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad"> 300</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;uint, mediump&gt; <a class="code" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_transform extension included&quot;)</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#ga161b1df124348f232d994ba7958e4815">rotate</a>(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>(</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; T left,</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; T right,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; T bottom,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; T top,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; T zNear,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; T zFar);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">orthoLH</a>(</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; T left,</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; T right,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; T bottom,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; T top,</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; T zNear,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; T zFar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">orthoRH</a>(</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; T left,</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; T right,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; T bottom,</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; T top,</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; T zNear,</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; T zFar);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; T left,</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; T right,</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; T bottom,</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; T top);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a>(</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; T left,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; T right,</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; T bottom,</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; T top,</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; T near,</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; T far);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">frustumLH</a>(</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; T left,</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; T right,</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; T bottom,</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; T top,</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; T near,</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; T far);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">frustumRH</a>(</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; T left,</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; T right,</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; T bottom,</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; T top,</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; T near,</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; T far);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>(</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; T fovy,</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; T aspect,</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; T near,</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; T far);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a>(</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; T fovy,</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; T aspect,</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; T near,</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; T far);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a>(</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; T fovy,</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; T aspect,</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; T near,</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; T far);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a>(</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; T fov,</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; T width,</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; T height,</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; T near,</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; T far);</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a>(</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; T fov,</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; T width,</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; T height,</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; T near,</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; T far);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39"> 304</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a>;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00172.html#ga24716579cf155f4e042542808f83978c"> 308</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, mediump&gt; <a class="code" href="a00172.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a>;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="a00172.html#ga1406406e396b56bde3c7c0722f657064"> 313</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a>;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033"> 317</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a>(</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; T fov,</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; T width,</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; T height,</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; T near,</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; T far);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884"> 321</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, lowp&gt; <a class="code" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a>;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3"> 326</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676"> 330</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;uint, lowp&gt; <a class="code" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a>;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4"> 334</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a>;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="a00172.html#gad73943020bb49a072317ecfc52d587f0"> 338</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;uint, lowp&gt; <a class="code" href="a00172.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a>;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67"> 342</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a>;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db"> 346</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a>;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95"> 350</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a>(</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">infinitePerspectiveLH</a>(</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#ga79575023763df88dff1bf8255a42d0be">infinitePerspectiveRH</a>(</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; T fovy, T aspect, T near);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d"> 354</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;uint, lowp&gt; <a class="code" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a>;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2"> 358</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;uint, lowp&gt; <a class="code" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a>;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">typedef</span> highp_imat2 <a class="code" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">typedef</span> highp_imat3 <a class="code" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">typedef</span> highp_imat4 <a class="code" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">typedef</span> highp_imat2x2 <a class="code" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">typedef</span> highp_imat2x3 <a class="code" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">typedef</span> highp_imat2x4 <a class="code" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">typedef</span> highp_imat3x2 <a class="code" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">typedef</span> highp_imat3x3 <a class="code" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">typedef</span> highp_imat3x4 <a class="code" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">typedef</span> highp_imat4x2 <a class="code" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">typedef</span> highp_imat4x3 <a class="code" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">typedef</span> highp_imat4x4 <a class="code" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">typedef</span> lowp_imat2 <a class="code" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">typedef</span> lowp_imat3 <a class="code" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">typedef</span> lowp_imat4 <a class="code" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">typedef</span> lowp_imat2x2 <a class="code" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">typedef</span> lowp_imat2x3 <a class="code" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">typedef</span> lowp_imat2x4 <a class="code" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">typedef</span> lowp_imat3x2 <a class="code" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">typedef</span> lowp_imat3x3 <a class="code" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">typedef</span> lowp_imat3x4 <a class="code" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">typedef</span> lowp_imat4x2 <a class="code" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">typedef</span> lowp_imat4x3 <a class="code" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">typedef</span> lowp_imat4x4 <a class="code" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01"> 390</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2 <a class="code" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; T fovy, T aspect, T near, T ep);</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P&gt;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">project</a>(</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; obj,</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; model,</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; viewport);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="a00172.html#ga038f68437155ffa3c2583a15264a8195"> 394</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3 <a class="code" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb"> 398</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4 <a class="code" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec"> 402</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2x2 <a class="code" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605"> 406</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2x3 <a class="code" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668"> 410</a></span>&#160; <span class="keyword">typedef</span> mediump_imat2x4 <a class="code" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f"> 414</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3x2 <a class="code" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4"> 418</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3x3 <a class="code" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58"> 422</a></span>&#160; <span class="keyword">typedef</span> mediump_imat3x4 <a class="code" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa"> 426</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4x2 <a class="code" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
-<div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5"> 430</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4x3 <a class="code" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b"> 434</a></span>&#160; <span class="keyword">typedef</span> mediump_imat4x4 <a class="code" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">typedef</span> highp_umat2 <a class="code" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">typedef</span> highp_umat3 <a class="code" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keyword">typedef</span> highp_umat4 <a class="code" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">typedef</span> highp_umat2x2 <a class="code" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">typedef</span> highp_umat2x3 <a class="code" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">typedef</span> highp_umat2x4 <a class="code" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">typedef</span> highp_umat3x2 <a class="code" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">typedef</span> highp_umat3x3 <a class="code" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">typedef</span> highp_umat3x4 <a class="code" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">typedef</span> highp_umat4x2 <a class="code" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">typedef</span> highp_umat4x3 <a class="code" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">typedef</span> highp_umat4x4 <a class="code" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">typedef</span> lowp_umat2 <a class="code" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">typedef</span> lowp_umat3 <a class="code" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">typedef</span> lowp_umat4 <a class="code" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">typedef</span> lowp_umat2x2 <a class="code" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">typedef</span> lowp_umat2x3 <a class="code" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">typedef</span> lowp_umat2x4 <a class="code" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">typedef</span> lowp_umat3x2 <a class="code" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">typedef</span> lowp_umat3x3 <a class="code" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">typedef</span> lowp_umat3x4 <a class="code" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">typedef</span> lowp_umat4x2 <a class="code" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">typedef</span> lowp_umat4x3 <a class="code" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">typedef</span> lowp_umat4x4 <a class="code" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="a00172.html#ga4cae85566f900debf930c41944b64691"> 467</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2 <a class="code" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6"> 471</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3 <a class="code" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c"> 475</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4 <a class="code" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa"> 479</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2x2 <a class="code" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="a00172.html#ga1870da7578d5022b973a83155d386ab3"> 483</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2x3 <a class="code" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4"> 487</a></span>&#160; <span class="keyword">typedef</span> mediump_umat2x4 <a class="code" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a"> 491</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3x2 <a class="code" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
-<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb"> 495</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3x3 <a class="code" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
-<div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba"> 499</a></span>&#160; <span class="keyword">typedef</span> mediump_umat3x4 <a class="code" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53"> 503</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4x2 <a class="code" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98"> 507</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4x3 <a class="code" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8"> 511</a></span>&#160; <span class="keyword">typedef</span> mediump_umat4x4 <a class="code" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00172_html_ga96b0d26a33b81bb6a60ca0f39682f7eb"><div class="ttname"><a href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::imat4</a></div><div class="ttdeci">mediump_imat4 imat4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00398">matrix_integer.hpp:398</a></div></div>
-<div class="ttc" id="a00172_html_ga1406406e396b56bde3c7c0722f657064"><div class="ttname"><a href="a00172.html#ga1406406e396b56bde3c7c0722f657064">glm::lowp_umat2</a></div><div class="ttdeci">tmat2x2&lt; uint, lowp &gt; lowp_umat2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00313">matrix_integer.hpp:313</a></div></div>
-<div class="ttc" id="a00172_html_ga1582c5dc83e49a7e53bb0b94bef9de54"><div class="ttname"><a href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">glm::mediump_imat4x2</a></div><div class="ttdeci">tmat4x2&lt; int, mediump &gt; mediump_imat4x2</div><div class="ttdoc">Medium-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00151">matrix_integer.hpp:151</a></div></div>
-<div class="ttc" id="a00172_html_ga7ecc585b71766cfa96bd54a595bea1fb"><div class="ttname"><a href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">glm::mediump_umat2x3</a></div><div class="ttdeci">tmat2x3&lt; uint, mediump &gt; mediump_umat2x3</div><div class="ttdoc">Medium-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00280">matrix_integer.hpp:280</a></div></div>
-<div class="ttc" id="a00172_html_ga5a9d62e44668ca2222f0362f9c99d9cc"><div class="ttname"><a href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">glm::mediump_umat3x4</a></div><div class="ttdeci">tmat3x4&lt; uint, mediump &gt; mediump_umat3x4</div><div class="ttdoc">Medium-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00296">matrix_integer.hpp:296</a></div></div>
-<div class="ttc" id="a00172_html_ga4860b4b01430bdb70643808c8d3bf5cb"><div class="ttname"><a href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">glm::highp_umat2x2</a></div><div class="ttdeci">tmat2x2&lt; uint, highp &gt; highp_umat2x2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00226">matrix_integer.hpp:226</a></div></div>
-<div class="ttc" id="a00172_html_ga1870da7578d5022b973a83155d386ab3"><div class="ttname"><a href="a00172.html#ga1870da7578d5022b973a83155d386ab3">glm::umat2x3</a></div><div class="ttdeci">mediump_umat2x3 umat2x3</div><div class="ttdoc">Unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00483">matrix_integer.hpp:483</a></div></div>
-<div class="ttc" id="a00172_html_ga0ffed083b64e4f764db0f446d2c49163"><div class="ttname"><a href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">glm::mediump_umat2x2</a></div><div class="ttdeci">tmat2x2&lt; uint, mediump &gt; mediump_umat2x2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00276">matrix_integer.hpp:276</a></div></div>
-<div class="ttc" id="a00172_html_ga4cae85566f900debf930c41944b64691"><div class="ttname"><a href="a00172.html#ga4cae85566f900debf930c41944b64691">glm::umat2</a></div><div class="ttdeci">mediump_umat2 umat2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00467">matrix_integer.hpp:467</a></div></div>
-<div class="ttc" id="a00172_html_gae3ca9e28a9d2e5fce5e28593d27e370d"><div class="ttname"><a href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">glm::lowp_umat4x3</a></div><div class="ttdeci">tmat4x3&lt; uint, lowp &gt; lowp_umat4x3</div><div class="ttdoc">Low-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00354">matrix_integer.hpp:354</a></div></div>
-<div class="ttc" id="a00172_html_gaa86bd9dc8463b46a46ee944948111676"><div class="ttname"><a href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">glm::lowp_umat2x3</a></div><div class="ttdeci">tmat2x3&lt; uint, lowp &gt; lowp_umat2x3</div><div class="ttdoc">Low-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00330">matrix_integer.hpp:330</a></div></div>
-<div class="ttc" id="a00172_html_ga899a376888652fe3c03718641812bb27"><div class="ttname"><a href="a00172.html#ga899a376888652fe3c03718641812bb27">glm::highp_umat4x3</a></div><div class="ttdeci">tmat4x3&lt; uint, highp &gt; highp_umat4x3</div><div class="ttdoc">High-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00254">matrix_integer.hpp:254</a></div></div>
-<div class="ttc" id="a00172_html_ga7b6c64600bad79d735fa6bec843b2bb4"><div class="ttname"><a href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">glm::lowp_umat2x4</a></div><div class="ttdeci">tmat2x4&lt; uint, lowp &gt; lowp_umat2x4</div><div class="ttdoc">Low-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00334">matrix_integer.hpp:334</a></div></div>
-<div class="ttc" id="a00172_html_gab8068521c0ad6990373d27d87d333084"><div class="ttname"><a href="a00172.html#gab8068521c0ad6990373d27d87d333084">glm::highp_umat4x4</a></div><div class="ttdeci">tmat4x4&lt; uint, highp &gt; highp_umat4x4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00258">matrix_integer.hpp:258</a></div></div>
-<div class="ttc" id="a00172_html_gad73943020bb49a072317ecfc52d587f0"><div class="ttname"><a href="a00172.html#gad73943020bb49a072317ecfc52d587f0">glm::lowp_umat3x2</a></div><div class="ttdeci">tmat3x2&lt; uint, lowp &gt; lowp_umat3x2</div><div class="ttdoc">Low-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00338">matrix_integer.hpp:338</a></div></div>
-<div class="ttc" id="a00172_html_gab3d5c6aaeb5815f8f080305888f6828f"><div class="ttname"><a href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">glm::lowp_imat3x3</a></div><div class="ttdeci">tmat3x3&lt; int, lowp &gt; lowp_imat3x3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00193">matrix_integer.hpp:193</a></div></div>
-<div class="ttc" id="a00172_html_gac23667a99ae1ec649b5e55cd5a05b833"><div class="ttname"><a href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">glm::mediump_umat4</a></div><div class="ttdeci">tmat4x4&lt; uint, mediump &gt; mediump_umat4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00271">matrix_integer.hpp:271</a></div></div>
-<div class="ttc" id="a00172_html_ga8e0f797a57fec255f0eec7da1511bc38"><div class="ttname"><a href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">glm::mediump_imat3x4</a></div><div class="ttdeci">tmat3x4&lt; int, mediump &gt; mediump_imat3x4</div><div class="ttdoc">Medium-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00147">matrix_integer.hpp:147</a></div></div>
-<div class="ttc" id="a00172_html_gac351446661e5a8168473ff7b3b5ac3b5"><div class="ttname"><a href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">glm::highp_umat2x3</a></div><div class="ttdeci">tmat2x3&lt; uint, highp &gt; highp_umat2x3</div><div class="ttdoc">High-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00230">matrix_integer.hpp:230</a></div></div>
-<div class="ttc" id="a00172_html_ga57936a3998e992370e59a223e0ee4fd4"><div class="ttname"><a href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">glm::umat2x4</a></div><div class="ttdeci">mediump_umat2x4 umat2x4</div><div class="ttdoc">Unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00487">matrix_integer.hpp:487</a></div></div>
-<div class="ttc" id="a00172_html_ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><div class="ttname"><a href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::imat2x3</a></div><div class="ttdeci">mediump_imat2x3 imat2x3</div><div class="ttdoc">Signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00406">matrix_integer.hpp:406</a></div></div>
-<div class="ttc" id="a00172_html_ga402d169fc3cdca5f3ea47a358a7b7c67"><div class="ttname"><a href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">glm::lowp_umat3x3</a></div><div class="ttdeci">tmat3x3&lt; uint, lowp &gt; lowp_umat3x3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00342">matrix_integer.hpp:342</a></div></div>
-<div class="ttc" id="a00172_html_ga24716579cf155f4e042542808f83978c"><div class="ttname"><a href="a00172.html#ga24716579cf155f4e042542808f83978c">glm::mediump_umat4x4</a></div><div class="ttdeci">tmat4x4&lt; uint, mediump &gt; mediump_umat4x4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00308">matrix_integer.hpp:308</a></div></div>
-<div class="ttc" id="a00172_html_ga0c66b9b7c10a6017a58a03489c8d4c73"><div class="ttname"><a href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">glm::highp_imat4x3</a></div><div class="ttdeci">tmat4x3&lt; int, highp &gt; highp_imat4x3</div><div class="ttdoc">High-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00105">matrix_integer.hpp:105</a></div></div>
-<div class="ttc" id="a00172_html_gacf71e9abe57bcfd18b4b003421e306aa"><div class="ttname"><a href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">glm::highp_umat3x3</a></div><div class="ttdeci">tmat3x3&lt; uint, highp &gt; highp_umat3x3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00242">matrix_integer.hpp:242</a></div></div>
-<div class="ttc" id="a00172_html_ga0413bf87605b9247be2533c439127a1c"><div class="ttname"><a href="a00172.html#ga0413bf87605b9247be2533c439127a1c">glm::highp_imat3x2</a></div><div class="ttdeci">tmat3x2&lt; int, highp &gt; highp_imat3x2</div><div class="ttdoc">High-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00089">matrix_integer.hpp:89</a></div></div>
-<div class="ttc" id="a00172_html_gafe68c1cf2b379a9a11d1a11c9c2f8884"><div class="ttname"><a href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">glm::lowp_umat4</a></div><div class="ttdeci">tmat4x4&lt; uint, lowp &gt; lowp_umat4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00321">matrix_integer.hpp:321</a></div></div>
-<div class="ttc" id="a00172_html_ga148f3a81d15a570b9460158e6964f41c"><div class="ttname"><a href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">glm::lowp_imat3</a></div><div class="ttdeci">tmat3x3&lt; int, lowp &gt; lowp_imat3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00168">matrix_integer.hpp:168</a></div></div>
-<div class="ttc" id="a00172_html_ga8ce7ef51d8b2c1901fa5414deccbc3fa"><div class="ttname"><a href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::imat4x2</a></div><div class="ttdeci">mediump_imat4x2 imat4x2</div><div class="ttdoc">Signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00426">matrix_integer.hpp:426</a></div></div>
-<div class="ttc" id="a00172_html_ga8368cb49cb0bd5ac682a71d1eccc9a8c"><div class="ttname"><a href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">glm::highp_umat4</a></div><div class="ttdeci">tmat4x4&lt; uint, highp &gt; highp_umat4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00222">matrix_integer.hpp:222</a></div></div>
-<div class="ttc" id="a00172_html_ga87581417945411f75cb31dd6ca1dba98"><div class="ttname"><a href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">glm::umat4x3</a></div><div class="ttdeci">mediump_umat4x3 umat4x3</div><div class="ttdoc">Unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00507">matrix_integer.hpp:507</a></div></div>
-<div class="ttc" id="a00172_html_ga3f8fb92b62e31528886cc728d3404ecc"><div class="ttname"><a href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">glm::lowp_imat2x3</a></div><div class="ttdeci">tmat2x3&lt; int, lowp &gt; lowp_imat2x3</div><div class="ttdoc">Low-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00181">matrix_integer.hpp:181</a></div></div>
-<div class="ttc" id="a00172_html_ga76cab31d492ea214c693ab9132b4de95"><div class="ttname"><a href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">glm::lowp_umat4x2</a></div><div class="ttdeci">tmat4x2&lt; uint, lowp &gt; lowp_umat4x2</div><div class="ttdoc">Low-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00350">matrix_integer.hpp:350</a></div></div>
-<div class="ttc" id="a00172_html_ga5b7e9af5024e1a164db6419f67ecfc9a"><div class="ttname"><a href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">glm::mediump_imat2x3</a></div><div class="ttdeci">tmat2x3&lt; int, mediump &gt; mediump_imat2x3</div><div class="ttdoc">Medium-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00131">matrix_integer.hpp:131</a></div></div>
-<div class="ttc" id="a00172_html_ga159ce04cc638ff4db755542cd8f758cb"><div class="ttname"><a href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">glm::highp_imat4</a></div><div class="ttdeci">tmat4x4&lt; int, highp &gt; highp_imat4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00073">matrix_integer.hpp:73</a></div></div>
-<div class="ttc" id="a00172_html_ga70fa2d05896aa83cbc8c07672a429b53"><div class="ttname"><a href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::umat4x2</a></div><div class="ttdeci">mediump_umat4x2 umat4x2</div><div class="ttdoc">Unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00503">matrix_integer.hpp:503</a></div></div>
-<div class="ttc" id="a00172_html_ga038f68437155ffa3c2583a15264a8195"><div class="ttname"><a href="a00172.html#ga038f68437155ffa3c2583a15264a8195">glm::imat3</a></div><div class="ttdeci">mediump_imat3 imat3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00394">matrix_integer.hpp:394</a></div></div>
-<div class="ttc" id="a00172_html_ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><div class="ttname"><a href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::umat3x3</a></div><div class="ttdeci">mediump_umat3x3 umat3x3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00495">matrix_integer.hpp:495</a></div></div>
-<div class="ttc" id="a00172_html_ga742be484e56e08ef637f8ec4ab7c8bb2"><div class="ttname"><a href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">glm::lowp_umat4x4</a></div><div class="ttdeci">tmat4x4&lt; uint, lowp &gt; lowp_umat4x4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00358">matrix_integer.hpp:358</a></div></div>
-<div class="ttc" id="a00172_html_ga1526c62951b04f5cd73f541f7b3b7d8d"><div class="ttname"><a href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">glm::mediump_imat4x3</a></div><div class="ttdeci">tmat4x3&lt; int, mediump &gt; mediump_imat4x3</div><div class="ttdoc">Medium-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00155">matrix_integer.hpp:155</a></div></div>
-<div class="ttc" id="a00172_html_gabf8acdd33ce8951051edbca5200898aa"><div class="ttname"><a href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">glm::umat2x2</a></div><div class="ttdeci">mediump_umat2x2 umat2x2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00479">matrix_integer.hpp:479</a></div></div>
-<div class="ttc" id="a00172_html_gad3d7b23bdb4ed9b7d53c9db792db9bb4"><div class="ttname"><a href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">glm::lowp_imat4</a></div><div class="ttdeci">tmat4x4&lt; int, lowp &gt; lowp_imat4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00172">matrix_integer.hpp:172</a></div></div>
-<div class="ttc" id="a00172_html_ga5bfe58853451fbc1f1ef6ce1f93c5e31"><div class="ttname"><a href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">glm::lowp_imat2x2</a></div><div class="ttdeci">tmat2x2&lt; int, lowp &gt; lowp_imat2x2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00177">matrix_integer.hpp:177</a></div></div>
-<div class="ttc" id="a00172_html_gac8d1db85d62244fd90d240227c7f51ad"><div class="ttname"><a href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">glm::mediump_umat4x2</a></div><div class="ttdeci">tmat4x2&lt; uint, mediump &gt; mediump_umat4x2</div><div class="ttdoc">Medium-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00300">matrix_integer.hpp:300</a></div></div>
-<div class="ttc" id="a00172_html_ga6a9945878f99294cfde40c6c3a867d69"><div class="ttname"><a href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">glm::lowp_imat4x3</a></div><div class="ttdeci">tmat4x3&lt; int, lowp &gt; lowp_imat4x3</div><div class="ttdoc">Low-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00205">matrix_integer.hpp:205</a></div></div>
-<div class="ttc" id="a00172_html_gac455e55e7cb32e31396a9d4613da046a"><div class="ttname"><a href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">glm::highp_imat2x2</a></div><div class="ttdeci">tmat2x2&lt; int, highp &gt; highp_imat2x2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00077">matrix_integer.hpp:77</a></div></div>
-<div class="ttc" id="a00172_html_gae7b96c808a36fbe87f41af1c77b7941c"><div class="ttname"><a href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">glm::highp_umat2</a></div><div class="ttdeci">tmat2x2&lt; uint, highp &gt; highp_umat2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00214">matrix_integer.hpp:214</a></div></div>
-<div class="ttc" id="a00172_html_ga705ee0bf49d6c3de4404ce2481bf0df5"><div class="ttname"><a href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::imat4x3</a></div><div class="ttdeci">mediump_imat4x3 imat4x3</div><div class="ttdoc">Signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00430">matrix_integer.hpp:430</a></div></div>
-<div class="ttc" id="a00172_html_ga1a61c706b31aa60fd7012b2b27765983"><div class="ttname"><a href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">glm::mediump_imat3x2</a></div><div class="ttdeci">tmat3x2&lt; int, mediump &gt; mediump_imat3x2</div><div class="ttdoc">Medium-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00139">matrix_integer.hpp:139</a></div></div>
-<div class="ttc" id="a00172_html_ga7d332d462f2c1ad5a65dc580d3d1aa39"><div class="ttname"><a href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">glm::mediump_umat4x3</a></div><div class="ttdeci">tmat4x3&lt; uint, mediump &gt; mediump_umat4x3</div><div class="ttdoc">Medium-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00304">matrix_integer.hpp:304</a></div></div>
-<div class="ttc" id="a00172_html_ga9cd7fa637a4a6788337f45231fad9e1a"><div class="ttname"><a href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::umat3x2</a></div><div class="ttdeci">mediump_umat3x2 umat3x2</div><div class="ttdoc">Unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00491">matrix_integer.hpp:491</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00172_html_ga5085e3ff02abbac5e537eb7b89ab63b6"><div class="ttname"><a href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::umat3</a></div><div class="ttdeci">mediump_umat3 umat3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00471">matrix_integer.hpp:471</a></div></div>
-<div class="ttc" id="a00172_html_ga73b855cc40e5d8202b7ab38461326d65"><div class="ttname"><a href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">glm::highp_imat2x4</a></div><div class="ttdeci">tmat2x4&lt; int, highp &gt; highp_imat2x4</div><div class="ttdoc">High-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00085">matrix_integer.hpp:85</a></div></div>
-<div class="ttc" id="a00172_html_ga892b53e26d36763f380b08a5768dee6b"><div class="ttname"><a href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">glm::lowp_imat2x4</a></div><div class="ttdeci">tmat2x4&lt; int, lowp &gt; lowp_imat2x4</div><div class="ttdoc">Low-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00185">matrix_integer.hpp:185</a></div></div>
-<div class="ttc" id="a00172_html_ga7d43dd8332000f7f19379efa1b303599"><div class="ttname"><a href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">glm::highp_imat4x2</a></div><div class="ttdeci">tmat4x2&lt; int, highp &gt; highp_imat4x2</div><div class="ttdoc">High-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00101">matrix_integer.hpp:101</a></div></div>
-<div class="ttc" id="a00172_html_ga6e9ce23496d8b08dfc302d4039694b58"><div class="ttname"><a href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::imat3x4</a></div><div class="ttdeci">mediump_imat3x4 imat3x4</div><div class="ttdoc">Signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00422">matrix_integer.hpp:422</a></div></div>
-<div class="ttc" id="a00172_html_ga7322b97f1be10c83290ab57ef784d493"><div class="ttname"><a href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">glm::mediump_umat2</a></div><div class="ttdeci">tmat2x2&lt; uint, mediump &gt; mediump_umat2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00263">matrix_integer.hpp:263</a></div></div>
-<div class="ttc" id="a00172_html_gac4abd549f2e521c7f40f53b6235c450e"><div class="ttname"><a href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">glm::mediump_umat2x4</a></div><div class="ttdeci">tmat2x4&lt; uint, mediump &gt; mediump_umat2x4</div><div class="ttdoc">Medium-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00284">matrix_integer.hpp:284</a></div></div>
-<div class="ttc" id="a00172_html_ga7655dfee0d726e80d7a3b72f46d5fd35"><div class="ttname"><a href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">glm::lowp_imat3x2</a></div><div class="ttdeci">tmat3x2&lt; int, lowp &gt; lowp_imat3x2</div><div class="ttdoc">Low-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00189">matrix_integer.hpp:189</a></div></div>
-<div class="ttc" id="a00172_html_ga9d8faafdca42583d67e792dd038fc668"><div class="ttname"><a href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">glm::imat2x4</a></div><div class="ttdeci">mediump_imat2x4 imat2x4</div><div class="ttdoc">Signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00410">matrix_integer.hpp:410</a></div></div>
-<div class="ttc" id="a00172_html_ga3fdfce509d30bdd7778b8b156cb968df"><div class="ttname"><a href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">glm::lowp_imat4x2</a></div><div class="ttdeci">tmat4x2&lt; int, lowp &gt; lowp_imat4x2</div><div class="ttdoc">Low-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00201">matrix_integer.hpp:201</a></div></div>
-<div class="ttc" id="a00172_html_ga5f5f1e6dc06b72216463a425b2f7613e"><div class="ttname"><a href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">glm::highp_imat2x3</a></div><div class="ttdeci">tmat2x3&lt; int, highp &gt; highp_imat2x3</div><div class="ttdoc">High-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00081">matrix_integer.hpp:81</a></div></div>
-<div class="ttc" id="a00172_html_ga38bc7bb6494e344185df596deeb4544c"><div class="ttname"><a href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">glm::umat4</a></div><div class="ttdeci">mediump_umat4 umat4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00475">matrix_integer.hpp:475</a></div></div>
-<div class="ttc" id="a00172_html_gac2b0985b576fe0eba47227499aed2b3c"><div class="ttname"><a href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">glm::mediump_imat3</a></div><div class="ttdeci">tmat3x3&lt; int, mediump &gt; mediump_imat3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00118">matrix_integer.hpp:118</a></div></div>
-<div class="ttc" id="a00172_html_gaa08e27efc514088315ccbaf818f01880"><div class="ttname"><a href="a00172.html#gaa08e27efc514088315ccbaf818f01880">glm::mediump_imat2x4</a></div><div class="ttdeci">tmat2x4&lt; int, mediump &gt; mediump_imat2x4</div><div class="ttdoc">Medium-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00135">matrix_integer.hpp:135</a></div></div>
-<div class="ttc" id="a00172_html_gae7c78ff3fc4309605ab0fa186c8d48ba"><div class="ttname"><a href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::umat3x4</a></div><div class="ttdeci">mediump_umat3x4 umat3x4</div><div class="ttdoc">Unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00499">matrix_integer.hpp:499</a></div></div>
-<div class="ttc" id="a00172_html_ga3c035fec7db0d671ec8f9f1f0d05bed0"><div class="ttname"><a href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">glm::lowp_imat2</a></div><div class="ttdeci">tmat2x2&lt; int, lowp &gt; lowp_imat2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00164">matrix_integer.hpp:164</a></div></div>
-<div class="ttc" id="a00172_html_gacce460d54216438bb577bf8c9d68299c"><div class="ttname"><a href="a00172.html#gacce460d54216438bb577bf8c9d68299c">glm::highp_imat3x3</a></div><div class="ttdeci">tmat3x3&lt; int, highp &gt; highp_imat3x3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00093">matrix_integer.hpp:93</a></div></div>
-<div class="ttc" id="a00172_html_ga6edbf193ad6c4309e31262165f2655e7"><div class="ttname"><a href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">glm::highp_umat3x4</a></div><div class="ttdeci">tmat3x4&lt; uint, highp &gt; highp_umat3x4</div><div class="ttdoc">High-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00246">matrix_integer.hpp:246</a></div></div>
-<div class="ttc" id="a00172_html_ga43ed5e4f475b6f4cad7cba78f29c405b"><div class="ttname"><a href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::imat4x4</a></div><div class="ttdeci">mediump_imat4x4 imat4x4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00434">matrix_integer.hpp:434</a></div></div>
-<div class="ttc" id="a00172_html_gaa4732a240522ad9bc28144fda2fc14ec"><div class="ttname"><a href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::imat2x2</a></div><div class="ttdeci">mediump_imat2x2 imat2x2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00402">matrix_integer.hpp:402</a></div></div>
-<div class="ttc" id="a00172_html_gabc572d47b60f7e595d7aad945f5d13a8"><div class="ttname"><a href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">glm::mediump_imat2x2</a></div><div class="ttdeci">tmat2x2&lt; int, mediump &gt; mediump_imat2x2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00127">matrix_integer.hpp:127</a></div></div>
-<div class="ttc" id="a00172_html_ga3f8e55e14a6fc61850f8c0df9b4ff655"><div class="ttname"><a href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">glm::mediump_imat2</a></div><div class="ttdeci">tmat2x2&lt; int, mediump &gt; mediump_imat2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00114">matrix_integer.hpp:114</a></div></div>
-<div class="ttc" id="a00172_html_ga93961d3aac6efa36dc3f9cfa7e9056e6"><div class="ttname"><a href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">glm::mediump_umat3</a></div><div class="ttdeci">tmat3x3&lt; uint, mediump &gt; mediump_umat3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00267">matrix_integer.hpp:267</a></div></div>
-<div class="ttc" id="a00172_html_ga330140b22a9449caab308f2c69bf4c80"><div class="ttname"><a href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">glm::lowp_imat4x4</a></div><div class="ttdeci">tmat4x4&lt; int, lowp &gt; lowp_imat4x4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00209">matrix_integer.hpp:209</a></div></div>
-<div class="ttc" id="a00172_html_gae53db595d36f49a299e180302795e3c9"><div class="ttname"><a href="a00172.html#gae53db595d36f49a299e180302795e3c9">glm::highp_imat4x4</a></div><div class="ttdeci">tmat4x4&lt; int, highp &gt; highp_imat4x4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00109">matrix_integer.hpp:109</a></div></div>
-<div class="ttc" id="a00172_html_ga05064e28b911be1af0503ddf6e6204a3"><div class="ttname"><a href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">glm::mediump_imat3x3</a></div><div class="ttdeci">tmat3x3&lt; int, mediump &gt; mediump_imat3x3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00143">matrix_integer.hpp:143</a></div></div>
-<div class="ttc" id="a00172_html_gad4fea24b4100e21ed7742c91e5458d49"><div class="ttname"><a href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">glm::highp_imat3x4</a></div><div class="ttdeci">tmat3x4&lt; int, highp &gt; highp_imat3x4</div><div class="ttdoc">High-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00097">matrix_integer.hpp:97</a></div></div>
-<div class="ttc" id="a00172_html_ga7fc1f795f2abd0020c7b5204f4c83033"><div class="ttname"><a href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">glm::lowp_umat3</a></div><div class="ttdeci">tmat3x3&lt; uint, lowp &gt; lowp_umat3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00317">matrix_integer.hpp:317</a></div></div>
-<div class="ttc" id="a00172_html_gab1d8e627b6a0b21c9b5e599a89132d8f"><div class="ttname"><a href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">glm::highp_umat3x2</a></div><div class="ttdeci">tmat3x2&lt; uint, highp &gt; highp_umat3x2</div><div class="ttdoc">High-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00238">matrix_integer.hpp:238</a></div></div>
-<div class="ttc" id="a00172_html_ga655bfcca624f422aff308dcc99688ce8"><div class="ttname"><a href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">glm::mediump_imat4x4</a></div><div class="ttdeci">tmat4x4&lt; int, mediump &gt; mediump_imat4x4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00159">matrix_integer.hpp:159</a></div></div>
-<div class="ttc" id="a00172_html_ga3fb358a947f8ceaefddd75bce22cd947"><div class="ttname"><a href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">glm::mediump_umat3x2</a></div><div class="ttdeci">tmat3x2&lt; uint, mediump &gt; mediump_umat3x2</div><div class="ttdoc">Medium-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00288">matrix_integer.hpp:288</a></div></div>
-<div class="ttc" id="a00172_html_gaaba8a59eac3e5c0b3aaa9b35c1f10292"><div class="ttname"><a href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">glm::highp_umat4x2</a></div><div class="ttdeci">tmat4x2&lt; uint, highp &gt; highp_umat4x2</div><div class="ttdoc">High-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00250">matrix_integer.hpp:250</a></div></div>
-<div class="ttc" id="a00172_html_ga4efd6470c0edf9704d2244fc92dbc2a9"><div class="ttname"><a href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">glm::highp_imat3</a></div><div class="ttdeci">tmat3x3&lt; int, highp &gt; highp_imat3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00069">matrix_integer.hpp:69</a></div></div>
-<div class="ttc" id="a00172_html_ga2dce1c00ed50fd09fe349de3713d96db"><div class="ttname"><a href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">glm::lowp_umat3x4</a></div><div class="ttdeci">tmat3x4&lt; uint, lowp &gt; lowp_umat3x4</div><div class="ttdoc">Low-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00346">matrix_integer.hpp:346</a></div></div>
-<div class="ttc" id="a00172_html_gad4809dbfb1bfcf222d7b34a97a8eafe5"><div class="ttname"><a href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">glm::mediump_umat3x3</a></div><div class="ttdeci">tmat3x3&lt; uint, mediump &gt; mediump_umat3x3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00292">matrix_integer.hpp:292</a></div></div>
-<div class="ttc" id="a00172_html_ga815eb9fdf70edc45687cbcda07e97213"><div class="ttname"><a href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">glm::highp_umat2x4</a></div><div class="ttdeci">tmat2x4&lt; uint, highp &gt; highp_umat2x4</div><div class="ttdoc">High-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00234">matrix_integer.hpp:234</a></div></div>
-<div class="ttc" id="a00172_html_ga6aacc960f62e8f7d2fe9d32d5050e7a4"><div class="ttname"><a href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::imat3x3</a></div><div class="ttdeci">mediump_imat3x3 imat3x3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00418">matrix_integer.hpp:418</a></div></div>
-<div class="ttc" id="a00172_html_gaf72e6d399c42985db6872c50f53d7eb8"><div class="ttname"><a href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::umat4x4</a></div><div class="ttdeci">mediump_umat4x4 umat4x4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00511">matrix_integer.hpp:511</a></div></div>
-<div class="ttc" id="a00172_html_ga551ad2e4e0304c67451ffbadeef0d615"><div class="ttname"><a href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">glm::mediump_imat4</a></div><div class="ttdeci">tmat4x4&lt; int, mediump &gt; mediump_imat4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00122">matrix_integer.hpp:122</a></div></div>
-<div class="ttc" id="a00172_html_gaabe04f9948d4a213bb1c20137de03e01"><div class="ttname"><a href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">glm::imat2</a></div><div class="ttdeci">mediump_imat2 imat2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00390">matrix_integer.hpp:390</a></div></div>
-<div class="ttc" id="a00172_html_ga7b33bbe4f12c060892bd3cc8d4cd737f"><div class="ttname"><a href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::imat3x2</a></div><div class="ttdeci">mediump_imat3x2 imat3x2</div><div class="ttdoc">Signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00414">matrix_integer.hpp:414</a></div></div>
-<div class="ttc" id="a00172_html_ga3d913d70c629aa7ad504739286328f1b"><div class="ttname"><a href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">glm::lowp_imat3x4</a></div><div class="ttdeci">tmat3x4&lt; int, lowp &gt; lowp_imat3x4</div><div class="ttdoc">Low-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00197">matrix_integer.hpp:197</a></div></div>
-<div class="ttc" id="a00172_html_gaa9f8144beebdefd85e2a9ac480e7608a"><div class="ttname"><a href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">glm::highp_imat2</a></div><div class="ttdeci">tmat2x2&lt; int, highp &gt; highp_imat2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00065">matrix_integer.hpp:65</a></div></div>
-<div class="ttc" id="a00172_html_ga1f0cea730f6c13b16e511bd2d63507a3"><div class="ttname"><a href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">glm::lowp_umat2x2</a></div><div class="ttdeci">tmat2x2&lt; uint, lowp &gt; lowp_umat2x2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00326">matrix_integer.hpp:326</a></div></div>
-<div class="ttc" id="a00172_html_gaa60b19d7cadbaa56bed1e6e0047af147"><div class="ttname"><a href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">glm::highp_umat3</a></div><div class="ttdeci">tmat3x3&lt; uint, highp &gt; highp_umat3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00218">matrix_integer.hpp:218</a></div></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P&gt;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a>(</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; win,</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; model,</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; viewport);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a>(</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; delta,</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; viewport);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a>(</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; eye,</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; up);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a>(</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; eye,</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; up);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a>(</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; eye,</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; up);</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#include &quot;matrix_transform.inl&quot;</span></div>
+<div class="ttc" id="a00169_html_ga79575023763df88dff1bf8255a42d0be"><div class="ttname"><a href="a00169.html#ga79575023763df88dff1bf8255a42d0be">glm::infinitePerspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; infinitePerspectiveRH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite...</div></div>
+<div class="ttc" id="a00219_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &amp;x, vecType const &amp;Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
+<div class="ttc" id="a00169_html_gacd0c077ec7b58a575855e29cb5fb586d"><div class="ttname"><a href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">glm::lookAtLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; lookAtLH(tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</div><div class="ttdoc">Build a left handed look at view matrix. </div></div>
+<div class="ttc" id="a00169_html_gada6deb989d4b553fe0f7e3279f3afae1"><div class="ttname"><a href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">glm::frustum</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; frustum(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix with default handedness. </div></div>
+<div class="ttc" id="a00169_html_ga79f704ad91a5f0d68abd88c66c8186e5"><div class="ttname"><a href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">glm::infinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; infinitePerspective(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...</div></div>
+<div class="ttc" id="a00169_html_gaf8eef81da1ad09f6a8920101c01eaae4"><div class="ttname"><a href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">glm::lookAt</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; lookAt(tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</div><div class="ttdoc">Build a look at view matrix based on the default handedness. </div></div>
+<div class="ttc" id="a00169_html_ga161b1df124348f232d994ba7958e4815"><div class="ttname"><a href="a00169.html#ga161b1df124348f232d994ba7958e4815">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; rotate(tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </div></div>
+<div class="ttc" id="a00169_html_gad743556abd138264d4f06f4ca27f1d7e"><div class="ttname"><a href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">glm::project</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; project(tvec3&lt; T, P &gt; const &amp;obj, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</div><div class="ttdoc">Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </div></div>
+<div class="ttc" id="a00169_html_gae705a2f19c3ef5ef880bd6c92759cf2d"><div class="ttname"><a href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">glm::perspectiveFovLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveFovLH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a left handed perspective projection matrix based on a field of view. </div></div>
+<div class="ttc" id="a00169_html_ga2876d9313334980b94292d2ec169088e"><div class="ttname"><a href="a00169.html#ga2876d9313334980b94292d2ec169088e">glm::lookAtRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; lookAtRH(tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</div><div class="ttdoc">Build a right handed look at view matrix. </div></div>
+<div class="ttc" id="a00169_html_ga07cd8df791bf90dcb782645fe0b21261"><div class="ttname"><a href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">glm::perspectiveFovRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveFovRH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a right handed perspective projection matrix based on a field of view. </div></div>
+<div class="ttc" id="a00169_html_gae9146e2c550fc8646299e4b900238145"><div class="ttname"><a href="a00169.html#gae9146e2c550fc8646299e4b900238145">glm::perspectiveFov</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveFov(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view and the default handedness. </div></div>
+<div class="ttc" id="a00169_html_gaa50fce7f50b5d5da881ed30f5532a921"><div class="ttname"><a href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">glm::tweakedInfinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...</div></div>
+<div class="ttc" id="a00169_html_ga71503df1e691b12cc2d45e64fd0628fe"><div class="ttname"><a href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">glm::orthoLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handedness. </div></div>
+<div class="ttc" id="a00169_html_gada0aaaee76f1fd3c272698c8eca735a1"><div class="ttname"><a href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">glm::orthoRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handedness. </div></div>
+<div class="ttc" id="a00169_html_gaee134ab77c6c5548a6ebf4e8e476c6ed"><div class="ttname"><a href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; translate(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a translation 4 * 4 matrix created from a vector of 3 components. </div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00169_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
+<div class="ttc" id="a00169_html_ga47af534da2b28effa4c7945ec82ccd9d"><div class="ttname"><a href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">glm::infinitePerspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; infinitePerspectiveLH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite...</div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00169_html_gad0e184273bdacbe769e5cd81069e48ed"><div class="ttname"><a href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">glm::frustumRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; frustumRH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right handed frustum matrix. </div></div>
+<div class="ttc" id="a00169_html_ga82a558de3ce42cbeed0f6ec292a4e1b3"><div class="ttname"><a href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">glm::unProject</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; unProject(tvec3&lt; T, P &gt; const &amp;win, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</div><div class="ttdoc">Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </div></div>
+<div class="ttc" id="a00169_html_ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><div class="ttname"><a href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">glm::perspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveRH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right handed, symetric perspective-view frustum. </div></div>
+<div class="ttc" id="a00169_html_ga9026c77505b99990f68826f27c267dc5"><div class="ttname"><a href="a00169.html#ga9026c77505b99990f68826f27c267dc5">glm::pickMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; pickMatrix(tvec2&lt; T, P &gt; const &amp;center, tvec2&lt; T, P &gt; const &amp;delta, tvec4&lt; U, P &gt; const &amp;viewport)</div><div class="ttdoc">Define a picking region. </div></div>
+<div class="ttc" id="a00169_html_ga75b1c1d0ee1f80c1e873605adeb1838c"><div class="ttname"><a href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">glm::frustumLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; frustumLH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left handed frustum matrix. </div></div>
+<div class="ttc" id="a00169_html_ga34048da27c559f1ac8e9550d169dd6f3"><div class="ttname"><a href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">glm::perspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveLH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left handed, symetric perspective-view frustum. </div></div>
+<div class="ttc" id="a00169_html_ga45b1b64f99255c07119b4f1aaed04dd7"><div class="ttname"><a href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">glm::ortho</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; ortho(T left, T right, T bottom, T top)</div><div class="ttdoc">Creates a matrix for projecting two-dimensional coordinates onto the screen. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00072.html b/3rdparty/glm/doc/api/a00072.html
index 81fd34b6df2..509bcfe8b28 100644
--- a/3rdparty/glm/doc/api/a00072.html
+++ b/3rdparty/glm/doc/api/a00072.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_interpolation.hpp File Reference</title>
+<title>0.9.9 API documenation: matrix_transform_2d.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,48 +64,67 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_interpolation.hpp File Reference</div> </div>
+<div class="title">matrix_transform_2d.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00072_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4&lt; T, P &gt; const &amp;mat, tvec3&lt; T, P &gt; &amp;axis, T &amp;angle)</td></tr>
-<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3&lt; T, P &gt; const &amp;axis, T const angle)</td></tr>
-<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4&lt; T, P &gt; const &amp;mat)</td></tr>
-<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4&lt; T, P &gt; const &amp;m1, tmat4x4&lt; T, P &gt; const &amp;m2, T const delta)</td></tr>
-<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3&lt; T, P &gt; const &amp;m, T angle)</td></tr>
+<tr class="memdesc:gab4f798c6048db91a6d0686812fd54022"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 3 * 3 matrix created from an angle. <a href="a00209.html#gab4f798c6048db91a6d0686812fd54022">More...</a><br /></td></tr>
+<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a scale 3 * 3 matrix created from a vector of 2 components. <a href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">More...</a><br /></td></tr>
+<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
+<tr class="memdesc:ga3da9ea234fdb2a96c75a97a18c903489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. <a href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">More...</a><br /></td></tr>
+<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
+<tr class="memdesc:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. <a href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">More...</a><br /></td></tr>
+<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a translation 3 * 3 matrix created from a vector of 2 components. <a href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">More...</a><br /></td></tr>
+<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00209.html">GLM_GTX_matrix_interpolation</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-03-05 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Ghenadii Ursachi (<a href="#" onclick="location.href='mai'+'lto:'+'the'+'.a'+'ste'+'ro'+'th@'+'gm'+'ail'+'.c'+'om'; return false;">the.a<span style="display: none;">.nosp@m.</span>ster<span style="display: none;">.nosp@m.</span>oth@g<span style="display: none;">.nosp@m.</span>mail<span style="display: none;">.nosp@m.</span>.com</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Miguel Ãngel Pérez Martínez</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00072_source.html">matrix_interpolation.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00072_source.html">matrix_transform_2d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00072_source.html b/3rdparty/glm/doc/api/a00072_source.html
index a023120a493..a624b47ed3a 100644
--- a/3rdparty/glm/doc/api/a00072_source.html
+++ b/3rdparty/glm/doc/api/a00072_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_interpolation.hpp Source File</title>
+<title>0.9.9 API documenation: matrix_transform_2d.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,60 +64,83 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_interpolation.hpp</div> </div>
+<div class="title">matrix_transform_2d.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00072.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_interpolation extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_matrix_transform_2d is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_transform_2d extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a>(</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00209.html#gab4f798c6048db91a6d0686812fd54022">rotate</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; mat,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; T <span class="keyword">const</span> <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a>(</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; mat);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; T <span class="keyword">const</span> delta);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &quot;matrix_interpolation.inl&quot;</span></div>
-<div class="ttc" id="a00209_html_ga6b8170aa4cf43caf81400696ebb38afe"><div class="ttname"><a href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">glm::extractMatrixRotation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; extractMatrixRotation(tmat4x4&lt; T, P &gt; const &amp;mat)</div><div class="ttdoc">Extracts the rotation part of a matrix. </div></div>
-<div class="ttc" id="a00209_html_ga45099a92c5c704503565619ac2bcd5c6"><div class="ttname"><a href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">glm::interpolate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; interpolate(tmat4x4&lt; T, P &gt; const &amp;m1, tmat4x4&lt; T, P &gt; const &amp;m2, T const delta)</div><div class="ttdoc">Build a interpolation of 4 * 4 matrixes. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00209_html_ga9aef292eb5f29bdbb58a53ef4281af92"><div class="ttname"><a href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">glm::axisAngle</a></div><div class="ttdeci">GLM_FUNC_DECL void axisAngle(tmat4x4&lt; T, P &gt; const &amp;mat, tvec3&lt; T, P &gt; &amp;axis, T &amp;angle)</div><div class="ttdoc">Get the axis and angle of the rotation from a matrix. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00209_html_ga82d4bc058e9628cb2ea1d4e117a0cf39"><div class="ttname"><a href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">glm::axisAngleMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; axisAngleMatrix(tvec3&lt; T, P &gt; const &amp;axis, T const angle)</div><div class="ttdoc">Build a matrix from axis and angle. </div></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a>(</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; T y);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a>(</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#include &quot;matrix_transform_2d.inl&quot;</span></div>
+<div class="ttc" id="a00209_html_gab4f798c6048db91a6d0686812fd54022"><div class="ttname"><a href="a00209.html#gab4f798c6048db91a6d0686812fd54022">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; rotate(tmat3x3&lt; T, P &gt; const &amp;m, T angle)</div><div class="ttdoc">Builds a rotation 3 * 3 matrix created from an angle. </div></div>
+<div class="ttc" id="a00209_html_ga93bb348e7d251bcc2c17bfc11bd82e91"><div class="ttname"><a href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">glm::shearY</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; shearY(tmat3x3&lt; T, P &gt; const &amp;m, T x)</div><div class="ttdoc">Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00209_html_ga5a608eaf1fdfd0a349a30181cb6a0240"><div class="ttname"><a href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">glm::scale</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; scale(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 3 * 3 matrix created from a vector of 2 components. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00209_html_ga3da9ea234fdb2a96c75a97a18c903489"><div class="ttname"><a href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">glm::shearX</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; shearX(tmat3x3&lt; T, P &gt; const &amp;m, T y)</div><div class="ttdoc">Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00209_html_ga22b5e806a6d2e2be54ebd29100d11c51"><div class="ttname"><a href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">glm::translate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; translate(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a translation 3 * 3 matrix created from a vector of 2 components. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00073.html b/3rdparty/glm/doc/api/a00073.html
index 70b20290161..5f78119d6ad 100644
--- a/3rdparty/glm/doc/api/a00073.html
+++ b/3rdparty/glm/doc/api/a00073.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_inverse.hpp File Reference</title>
+<title>0.9.9 API documenation: mixed_product.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,42 +64,51 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_inverse.hpp File Reference</div> </div>
+<div class="title">mixed_product.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00073_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &amp;m)</td></tr>
-<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &amp;m)</td></tr>
-<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
+<tr class="memdesc:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) <br /></td></tr>
+<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00173.html">GLM_GTC_matrix_inverse</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00073_source.html">matrix_inverse.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00073_source.html">mixed_product.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00073_source.html b/3rdparty/glm/doc/api/a00073_source.html
index 35d125edb9c..01195ad9055 100644
--- a/3rdparty/glm/doc/api/a00073_source.html
+++ b/3rdparty/glm/doc/api/a00073_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_inverse.hpp Source File</title>
+<title>0.9.9 API documenation: mixed_product.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_inverse.hpp</div> </div>
+<div class="title">mixed_product.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00073.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../matrix.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_inverse extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a>(genType <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a>(genType <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &quot;matrix_inverse.inl&quot;</span></div>
-<div class="ttc" id="a00173_html_gab213cd0e3ead5f316d583f99d6312008"><div class="ttname"><a href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">glm::inverseTranspose</a></div><div class="ttdeci">GLM_FUNC_DECL genType inverseTranspose(genType const &amp;m)</div><div class="ttdoc">Compute the inverse transpose of a matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00173_html_gae0fcc5fc8783291f9702272de428fa0e"><div class="ttname"><a href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">glm::affineInverse</a></div><div class="ttdeci">GLM_FUNC_DECL genType affineInverse(genType const &amp;m)</div><div class="ttdoc">Fast matrix inverse for affine matrix. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_mixed_product is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_mixed_product extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a>(</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v3);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;mixed_product.inl&quot;</span></div>
+<div class="ttc" id="a00210_html_gaaee4cf80d69cb86de80f12af88b3c3af"><div class="ttname"><a href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">glm::mixedProduct</a></div><div class="ttdeci">GLM_FUNC_DECL T mixedProduct(tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</div><div class="ttdoc">Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00074.html b/3rdparty/glm/doc/api/a00074.html
index 6db99833816..fa927c5f8c3 100644
--- a/3rdparty/glm/doc/api/a00074.html
+++ b/3rdparty/glm/doc/api/a00074.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_major_storage.hpp File Reference</title>
+<title>0.9.9 API documenation: noise.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,74 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_major_storage.hpp File Reference</div> </div>
+<div class="title">noise.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00170.html">GLM_GTC_noise</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00074_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
-<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
-<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
-<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
-<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
-<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
-<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
+<tr class="memdesc:ga14e5975486b2b36e747861d3c65b16c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Classic perlin noise. <a href="a00170.html#ga14e5975486b2b36e747861d3c65b16c1">More...</a><br /></td></tr>
+<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)</td></tr>
+<tr class="memdesc:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Periodic perlin noise. <a href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">More...</a><br /></td></tr>
+<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
+<tr class="memdesc:ga05f5ab240c9a3fdeee353636e464c285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplex noise. <a href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">More...</a><br /></td></tr>
+<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00210.html">GLM_GTX_matrix_major_storage</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-04-19 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00170.html">GLM_GTC_noise</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00074_source.html">matrix_major_storage.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00074_source.html">noise.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00074_source.html b/3rdparty/glm/doc/api/a00074_source.html
index c3bd54b24af..0febf794a62 100644
--- a/3rdparty/glm/doc/api/a00074_source.html
+++ b/3rdparty/glm/doc/api/a00074_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_major_storage.hpp Source File</title>
+<title>0.9.9 API documenation: noise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,99 +64,70 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_major_storage.hpp</div> </div>
+<div class="title">noise.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00074.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_major_storage extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../detail/_noise.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../vector_relational.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_noise extension included&quot;)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; rep);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v3);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v3, </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v4);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v3);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v3, </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v4);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#include &quot;matrix_major_storage.inl&quot;</span></div>
-<div class="ttc" id="a00210_html_ga5cfd25de9d5b4c6a825085f38ddfeff7"><div class="ttname"><a href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">glm::colMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, P &gt; colMajor2(tmat2x2&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_ga7592acfd27da055e2d7c39564cf8803d"><div class="ttname"><a href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">glm::colMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; colMajor4(tmat4x4&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_ga85771a88c114a088a0414bcfce55e729"><div class="ttname"><a href="a00210.html#ga85771a88c114a088a0414bcfce55e729">glm::rowMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; rowMajor4(tmat4x4&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_ga42a006aa66198452bd3c89415f892196"><div class="ttname"><a href="a00210.html#ga42a006aa66198452bd3c89415f892196">glm::rowMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, P &gt; rowMajor2(tmat2x2&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00210_html_ga38537061135b55e7a053926ca55e6e20"><div class="ttname"><a href="a00210.html#ga38537061135b55e7a053926ca55e6e20">glm::rowMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; rowMajor3(tmat3x3&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_gaa93f3dcc47ced18e5db4a853363d9386"><div class="ttname"><a href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">glm::colMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; colMajor3(tmat3x3&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;noise.inl&quot;</span></div>
+<div class="ttc" id="a00170_html_ga7e103ffffacb322fe2d4863c372ae2fd"><div class="ttname"><a href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">glm::perlin</a></div><div class="ttdeci">GLM_FUNC_DECL T perlin(vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)</div><div class="ttdoc">Periodic perlin noise. </div></div>
+<div class="ttc" id="a00170_html_ga05f5ab240c9a3fdeee353636e464c285"><div class="ttname"><a href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">glm::simplex</a></div><div class="ttdeci">GLM_FUNC_DECL T simplex(vecType&lt; T, P &gt; const &amp;p)</div><div class="ttdoc">Simplex noise. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00075.html b/3rdparty/glm/doc/api/a00075.html
index 9aa4b800c9c..a4ad80b01e0 100644
--- a/3rdparty/glm/doc/api/a00075.html
+++ b/3rdparty/glm/doc/api/a00075.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_operation.hpp File Reference</title>
+<title>0.9.9 API documenation: norm.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,63 +64,80 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_operation.hpp File Reference</div> </div>
+<div class="title">norm.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00211.html">GLM_GTX_norm</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00075_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">distance2</a> (vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</td></tr>
+<tr class="memdesc:ga647d2602008801d6ed78f9708eb439cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). <a href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">More...</a><br /></td></tr>
+<tr class="separator:ga647d2602008801d6ed78f9708eb439cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaebe5a39b06e262e615622129f37da4f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L1 norm between x and y. <a href="a00211.html#gaebe5a39b06e262e615622129f37da4f4">More...</a><br /></td></tr>
+<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L1 norm of v. <a href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">More...</a><br /></td></tr>
+<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L2 norm between x and y. <a href="a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">More...</a><br /></td></tr>
+<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L2 norm of v. <a href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">More...</a><br /></td></tr>
+<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">length2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared length of x. <a href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">More...</a><br /></td></tr>
+<tr class="separator:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, unsigned int Depth)</td></tr>
+<tr class="memdesc:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L norm between x and y. <a href="a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7">More...</a><br /></td></tr>
+<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)</td></tr>
+<tr class="memdesc:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L norm of v. <a href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">More...</a><br /></td></tr>
+<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00211.html">GLM_GTX_matrix_operation</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-08-29 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00211.html">GLM_GTX_norm</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00075_source.html">matrix_operation.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00075_source.html">norm.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00075_source.html b/3rdparty/glm/doc/api/a00075_source.html
index 9130d00e98d..faafd3038e5 100644
--- a/3rdparty/glm/doc/api/a00075_source.html
+++ b/3rdparty/glm/doc/api/a00075_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_operation.hpp Source File</title>
+<title>0.9.9 API documenation: norm.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,78 +64,95 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_operation.hpp</div> </div>
+<div class="title">norm.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00075.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_operation extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <a class="code" href="a00211.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; <a class="code" href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; <a class="code" href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; <a class="code" href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/func_geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_norm is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_norm extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">length2</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">distance2</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p0,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p1);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; <a class="code" href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a>(</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; <a class="code" href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a>(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; <a class="code" href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00211.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a>(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#include &quot;matrix_operation.inl&quot;</span></div>
-<div class="ttc" id="a00211_html_gae3f85af86c18c80f2acbe3223feb8e81"><div class="ttname"><a href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">glm::diagonal3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4&lt; T, P &gt; diagonal3x4(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga586e1ced91fd8a7c414186a200f13532"><div class="ttname"><a href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">glm::diagonal3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2&lt; T, P &gt; diagonal3x2(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><div class="ttname"><a href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">glm::diagonal4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2&lt; T, P &gt; diagonal4x2(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga49b37c819cf6dd8e35112ed1a13d45a3"><div class="ttname"><a href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">glm::diagonal2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4&lt; T, P &gt; diagonal2x4(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00211_html_ga4242ea5681f81539e0c5b54fadcd9ddf"><div class="ttname"><a href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">glm::diagonal4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3&lt; T, P &gt; diagonal4x3(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_gade576e044d8e52f343166f665589d782"><div class="ttname"><a href="a00211.html#gade576e044d8e52f343166f665589d782">glm::diagonal4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; diagonal4x4(tvec4&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga01dc503262dba9c457113d131fc8c024"><div class="ttname"><a href="a00211.html#ga01dc503262dba9c457113d131fc8c024">glm::diagonal2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, P &gt; diagonal2x2(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga8e817dba22f2305cdebae07bbbe0360c"><div class="ttname"><a href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">glm::diagonal3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; diagonal3x3(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga763817f07d6a94b722a48adfa87a35db"><div class="ttname"><a href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">glm::diagonal2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3&lt; T, P &gt; diagonal2x3(tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#include &quot;norm.inl&quot;</span></div>
+<div class="ttc" id="a00211_html_ga0a8cb8a0ce88d1d977de23209bf04610"><div class="ttname"><a href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">glm::l2Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l2Norm(tvec3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the L2 norm of v. </div></div>
+<div class="ttc" id="a00211_html_ga647d2602008801d6ed78f9708eb439cc"><div class="ttname"><a href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">glm::distance2</a></div><div class="ttdeci">GLM_FUNC_DECL T distance2(vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</div><div class="ttdoc">Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </div></div>
+<div class="ttc" id="a00211_html_ga6d5964f09cdb43803496a5ee3ced71cb"><div class="ttname"><a href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">glm::l1Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l1Norm(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the L1 norm of v. </div></div>
+<div class="ttc" id="a00211_html_gaab931b0d1acfe2f9c1cb78311edf24fc"><div class="ttname"><a href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">glm::lxNorm</a></div><div class="ttdeci">GLM_FUNC_DECL T lxNorm(tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)</div><div class="ttdoc">Returns the L norm of v. </div></div>
+<div class="ttc" id="a00211_html_ga6d326d62fd9b7f4f0a1b79e56492a7e4"><div class="ttname"><a href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL T length2(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the squared length of x. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00076.html b/3rdparty/glm/doc/api/a00076.html
index 3f902aca1a8..c2dca490c17 100644
--- a/3rdparty/glm/doc/api/a00076.html
+++ b/3rdparty/glm/doc/api/a00076.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_query.hpp File Reference</title>
+<title>0.9.9 API documenation: normal.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,62 +64,52 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_query.hpp File Reference</div> </div>
+<div class="title">normal.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00212.html">GLM_GTX_normal</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00076_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3&lt; T, P &gt; const &amp;p1, tvec3&lt; T, P &gt; const &amp;p2, tvec3&lt; T, P &gt; const &amp;p3)</td></tr>
+<tr class="memdesc:ga7842850bcda582f1756883e3ed950e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes triangle normal from triangle points. <a href="a00212.html#ga7842850bcda582f1756883e3ed950e14">More...</a><br /></td></tr>
+<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00212.html">GLM_GTX_matrix_query</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-05 / 2011-08-28 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00212.html">GLM_GTX_normal</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> (dependence) </dd></dl>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00076_source.html">matrix_query.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00076_source.html">normal.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00076_source.html b/3rdparty/glm/doc/api/a00076_source.html
index 11cb5945f0a..1fb3b73f833 100644
--- a/3rdparty/glm/doc/api/a00076_source.html
+++ b/3rdparty/glm/doc/api/a00076_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_query.hpp Source File</title>
+<title>0.9.9 API documenation: normal.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,64 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_query.hpp</div> </div>
+<div class="title">normal.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00076.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/vector_query.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_query extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#include &quot;matrix_query.inl&quot;</span></div>
-<div class="ttc" id="a00212_html_ga326de496972051413c7b44b85fc9cb6e"><div class="ttname"><a href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is a null matrix. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00212_html_gafc1ce12c738b8c5d007179e615609330"><div class="ttname"><a href="a00212.html#gafc1ce12c738b8c5d007179e615609330">glm::isIdentity</a></div><div class="ttdeci">GLM_FUNC_DECL bool isIdentity(matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is an identity matrix. </div></div>
-<div class="ttc" id="a00212_html_ga934b673ec0e16d79eca0ca9dbb5d6d8b"><div class="ttname"><a href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is a normalized matrix. </div></div>
-<div class="ttc" id="a00212_html_gab2cb5d23df77b4e4e63ad2965acd31b3"><div class="ttname"><a href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">glm::isOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool isOrthogonal(matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</div><div class="ttdoc">Return whether a matrix is an orthonormalized matrix. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_normal is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_normal extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00212.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; p1, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; p2, </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; p3);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;normal.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00212_html_ga7842850bcda582f1756883e3ed950e14"><div class="ttname"><a href="a00212.html#ga7842850bcda582f1756883e3ed950e14">glm::triangleNormal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; triangleNormal(tvec3&lt; T, P &gt; const &amp;p1, tvec3&lt; T, P &gt; const &amp;p2, tvec3&lt; T, P &gt; const &amp;p3)</div><div class="ttdoc">Computes triangle normal from triangle points. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00077.html b/3rdparty/glm/doc/api/a00077.html
index 7f0fe334df9..d5995dfcbd1 100644
--- a/3rdparty/glm/doc/api/a00077.html
+++ b/3rdparty/glm/doc/api/a00077.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform.hpp File Reference</title>
+<title>0.9.9 API documenation: normalize_dot.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,103 +64,56 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_transform.hpp File Reference</div> </div>
+<div class="title">normalize_dot.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00077_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
-<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
-<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
-<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
-<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, typename U &gt; </td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2&lt; T, P &gt; const &amp;center, tvec2&lt; T, P &gt; const &amp;delta, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
-<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3&lt; T, P &gt; const &amp;obj, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
-<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
-<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3&lt; T, P &gt; const &amp;win, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
-<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalize parameters and returns the dot product of x and y. <a href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">More...</a><br /></td></tr>
+<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaffbc2f2cb15838de8886a68048f9004d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalize parameters and returns the dot product of x and y. <a href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">More...</a><br /></td></tr>
+<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00174.html">GLM_GTC_matrix_transform</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-04-29 / 2011-05-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
+<div class="textblock"><p><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00237.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
+<a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00077_source.html">matrix_transform.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00077_source.html">normalize_dot.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00077_source.html b/3rdparty/glm/doc/api/a00077_source.html
index 28b22c11e5f..d626026492a 100644
--- a/3rdparty/glm/doc/api/a00077_source.html
+++ b/3rdparty/glm/doc/api/a00077_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform.hpp Source File</title>
+<title>0.9.9 API documenation: normalize_dot.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,196 +64,59 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_transform.hpp</div> </div>
+<div class="title">normalize_dot.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00077.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_matrix_transform extension included&quot;)</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#ga161b1df124348f232d994ba7958e4815">rotate</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>(</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; T left,</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; T right,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; T bottom,</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; T top,</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; T zNear,</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; T zFar);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; T left,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; T right,</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; T bottom,</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; T top);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a>(</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; T left,</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; T right,</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; T bottom,</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; T top,</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; T near,</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; T far);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>(</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; T fovy,</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; T aspect,</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; T near,</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; T far);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a>(</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; T fovy,</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; T aspect,</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; T near,</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; T far);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a>(</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; T fovy,</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; T aspect,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; T near,</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; T far);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a>(</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; T fov,</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; T width,</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; T height,</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; T near,</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; T far);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a>(</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; T fov,</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; T width,</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; T height,</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; T near,</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; T far);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a>(</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; T fov,</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; T width,</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; T height,</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; T near,</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; T far);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a>(</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; T fovy, T aspect, T near, T ep);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P&gt;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">project</a>(</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; obj,</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; model,</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; viewport);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P&gt;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a>(</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; win,</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; model,</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; viewport);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a>(</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; delta,</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; viewport);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a>(</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; eye,</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; up);</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a>(</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; eye,</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; up);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a>(</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; eye,</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; center,</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; up);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#include &quot;matrix_transform.inl&quot;</span></div>
-<div class="ttc" id="a00223_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &amp;x, vecType const &amp;Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
-<div class="ttc" id="a00174_html_gaee134ab77c6c5548a6ebf4e8e476c6ed"><div class="ttname"><a href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; translate(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a translation 4 * 4 matrix created from a vector of 3 components. </div></div>
-<div class="ttc" id="a00174_html_gae9146e2c550fc8646299e4b900238145"><div class="ttname"><a href="a00174.html#gae9146e2c550fc8646299e4b900238145">glm::perspectiveFov</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveFov(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view and the default handedness. </div></div>
-<div class="ttc" id="a00174_html_gaa50fce7f50b5d5da881ed30f5532a921"><div class="ttname"><a href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">glm::tweakedInfinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...</div></div>
-<div class="ttc" id="a00174_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
-<div class="ttc" id="a00174_html_ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><div class="ttname"><a href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">glm::perspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveRH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right handed, symetric perspective-view frustum. </div></div>
-<div class="ttc" id="a00174_html_ga82a558de3ce42cbeed0f6ec292a4e1b3"><div class="ttname"><a href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">glm::unProject</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; unProject(tvec3&lt; T, P &gt; const &amp;win, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</div><div class="ttdoc">Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </div></div>
-<div class="ttc" id="a00174_html_ga45b1b64f99255c07119b4f1aaed04dd7"><div class="ttname"><a href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">glm::ortho</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; ortho(T left, T right, T bottom, T top)</div><div class="ttdoc">Creates a matrix for projecting two-dimensional coordinates onto the screen. </div></div>
-<div class="ttc" id="a00174_html_gaf8eef81da1ad09f6a8920101c01eaae4"><div class="ttname"><a href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">glm::lookAt</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; lookAt(tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</div><div class="ttdoc">Build a look at view matrix based on the default handedness. </div></div>
-<div class="ttc" id="a00174_html_ga9026c77505b99990f68826f27c267dc5"><div class="ttname"><a href="a00174.html#ga9026c77505b99990f68826f27c267dc5">glm::pickMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; pickMatrix(tvec2&lt; T, P &gt; const &amp;center, tvec2&lt; T, P &gt; const &amp;delta, tvec4&lt; U, P &gt; const &amp;viewport)</div><div class="ttdoc">Define a picking region. </div></div>
-<div class="ttc" id="a00174_html_ga34048da27c559f1ac8e9550d169dd6f3"><div class="ttname"><a href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">glm::perspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveLH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left handed, symetric perspective-view frustum. </div></div>
-<div class="ttc" id="a00174_html_ga79f704ad91a5f0d68abd88c66c8186e5"><div class="ttname"><a href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">glm::infinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; infinitePerspective(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite. </div></div>
-<div class="ttc" id="a00174_html_gad743556abd138264d4f06f4ca27f1d7e"><div class="ttname"><a href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">glm::project</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; project(tvec3&lt; T, P &gt; const &amp;obj, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</div><div class="ttdoc">Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00174_html_ga07cd8df791bf90dcb782645fe0b21261"><div class="ttname"><a href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">glm::perspectiveFovRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveFovRH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a right handed perspective projection matrix based on a field of view. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00174_html_gada6deb989d4b553fe0f7e3279f3afae1"><div class="ttname"><a href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">glm::frustum</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; frustum(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix. </div></div>
-<div class="ttc" id="a00174_html_gacd0c077ec7b58a575855e29cb5fb586d"><div class="ttname"><a href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">glm::lookAtLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; lookAtLH(tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</div><div class="ttdoc">Build a left handed look at view matrix. </div></div>
-<div class="ttc" id="a00174_html_ga161b1df124348f232d994ba7958e4815"><div class="ttname"><a href="a00174.html#ga161b1df124348f232d994ba7958e4815">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; rotate(tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </div></div>
-<div class="ttc" id="a00174_html_gae705a2f19c3ef5ef880bd6c92759cf2d"><div class="ttname"><a href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">glm::perspectiveFovLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; perspectiveFovLH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a left handed perspective projection matrix based on a field of view. </div></div>
-<div class="ttc" id="a00174_html_ga2876d9313334980b94292d2ec169088e"><div class="ttname"><a href="a00174.html#ga2876d9313334980b94292d2ec169088e">glm::lookAtRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; lookAtRH(tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</div><div class="ttdoc">Build a right handed look at view matrix. </div></div>
-<div class="ttc" id="a00174_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtx/fast_square_root.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_normalize_dot is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_normalize_dot extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;normalize_dot.inl&quot;</span></div>
+<div class="ttc" id="a00213_html_gaffbc2f2cb15838de8886a68048f9004d"><div class="ttname"><a href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">glm::normalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T normalizeDot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
+<div class="ttc" id="a00213_html_ga8593b21bc2fe22184f01d5e08b5a2024"><div class="ttname"><a href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">glm::fastNormalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T fastNormalizeDot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00078.html b/3rdparty/glm/doc/api/a00078.html
index 2da3820d9cd..104910542f8 100644
--- a/3rdparty/glm/doc/api/a00078.html
+++ b/3rdparty/glm/doc/api/a00078.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform_2d.hpp File Reference</title>
+<title>0.9.9 API documenation: number_precision.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,51 +64,90 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">matrix_transform_2d.hpp File Reference</div> </div>
+<div class="title">number_precision.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00214.html">GLM_GTX_number_precision</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00078_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3&lt; T, P &gt; const &amp;m, T angle)</td></tr>
-<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
-<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
-<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
+typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
+<tr class="memdesc:ga145ad477a2a3e152855511c3b52469a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
+typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
+<tr class="memdesc:gac88c6a4dbfc380aa26e3adbbade36348"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
+typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
+<tr class="memdesc:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
+typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
+<tr class="memdesc:ga59bfa589419b5265d01314fcecd33435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
+typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
+<tr class="memdesc:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
+typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
+<tr class="memdesc:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
+typedef u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
+<tr class="memdesc:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="mdescLeft">&#160;</td><td class="mdescRight">16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
+typedef u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
+<tr class="memdesc:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
+typedef u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
+<tr class="memdesc:ga818de170e2584ab037130f2881925974"><td class="mdescLeft">&#160;</td><td class="mdescRight">64bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
+typedef u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
+<tr class="memdesc:ga5853fe457f4c8a6bc09343d0e9833980"><td class="mdescLeft">&#160;</td><td class="mdescRight">8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00213.html">GLM_GTX_matrix_transform_2d</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-02-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Miguel Ãngel Pérez Martínez</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00214.html">GLM_GTX_number_precision</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00078_source.html">matrix_transform_2d.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00078_source.html">number_precision.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00078_source.html b/3rdparty/glm/doc/api/a00078_source.html
index 0c2076c0973..0e0ce7f4e54 100644
--- a/3rdparty/glm/doc/api/a00078_source.html
+++ b/3rdparty/glm/doc/api/a00078_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform_2d.hpp Source File</title>
+<title>0.9.9 API documenation: number_precision.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,66 +64,89 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_transform_2d.hpp</div> </div>
+<div class="title">number_precision.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00078.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_precision.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_number_precision is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_number_precision extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span>gtx</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// Unsigned int vector types </span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980"> 38</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a> <a class="code" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a>; </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0"> 39</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a> <a class="code" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a>; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3"> 40</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a> <a class="code" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a>; </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00214.html#ga818de170e2584ab037130f2881925974"> 41</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a> <a class="code" href="a00214.html#ga818de170e2584ab037130f2881925974">u64vec1</a>; </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Float vector types </span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943"> 46</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a>; </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1"> 47</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a>; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_matrix_transform_2d extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00213.html#gab4f798c6048db91a6d0686812fd54022">rotate</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a>(</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; T y);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; <a class="code" href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a>(</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; T x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#include &quot;matrix_transform_2d.inl&quot;</span></div>
-<div class="ttc" id="a00213_html_ga5a608eaf1fdfd0a349a30181cb6a0240"><div class="ttname"><a href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">glm::scale</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; scale(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 3 * 3 matrix created from a vector of 2 components. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00213_html_ga22b5e806a6d2e2be54ebd29100d11c51"><div class="ttname"><a href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">glm::translate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; translate(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a translation 3 * 3 matrix created from a vector of 2 components. </div></div>
-<div class="ttc" id="a00213_html_gab4f798c6048db91a6d0686812fd54022"><div class="ttname"><a href="a00213.html#gab4f798c6048db91a6d0686812fd54022">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; rotate(tmat3x3&lt; T, P &gt; const &amp;m, T angle)</div><div class="ttdoc">Builds a rotation 3 * 3 matrix created from an angle. </div></div>
-<div class="ttc" id="a00213_html_ga93bb348e7d251bcc2c17bfc11bd82e91"><div class="ttname"><a href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">glm::shearY</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; shearY(tmat3x3&lt; T, P &gt; const &amp;m, T x)</div><div class="ttdoc">Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </div></div>
-<div class="ttc" id="a00213_html_ga3da9ea234fdb2a96c75a97a18c903489"><div class="ttname"><a href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">glm::shearX</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt; shearX(tmat3x3&lt; T, P &gt; const &amp;m, T y)</div><div class="ttdoc">Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// Float matrix types </span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6"> 52</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a>; </div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348"> 53</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a>; </div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00214.html#ga59bfa589419b5265d01314fcecd33435"> 54</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00214.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a>; </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd"> 55</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a>; </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}<span class="comment">//namespace gtx</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;number_precision.inl&quot;</span></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00214_html_gac88c6a4dbfc380aa26e3adbbade36348"><div class="ttname"><a href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::f32mat1x1</a></div><div class="ttdeci">f32 f32mat1x1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00053">number_precision.hpp:53</a></div></div>
+<div class="ttc" id="a00214_html_ga145ad477a2a3e152855511c3b52469a6"><div class="ttname"><a href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::f32mat1</a></div><div class="ttdeci">f32 f32mat1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00052">number_precision.hpp:52</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00214_html_ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><div class="ttname"><a href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::u32vec1</a></div><div class="ttdeci">u32 u32vec1</div><div class="ttdoc">32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00040">number_precision.hpp:40</a></div></div>
+<div class="ttc" id="a00214_html_ga448eeb08d0b7d8c43a8b292c981955fd"><div class="ttname"><a href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::f64mat1x1</a></div><div class="ttdeci">f64 f64mat1x1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00055">number_precision.hpp:55</a></div></div>
+<div class="ttc" id="a00214_html_ga818de170e2584ab037130f2881925974"><div class="ttname"><a href="a00214.html#ga818de170e2584ab037130f2881925974">glm::gtx::u64vec1</a></div><div class="ttdeci">u64 u64vec1</div><div class="ttdoc">64bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00041">number_precision.hpp:41</a></div></div>
+<div class="ttc" id="a00214_html_ga5853fe457f4c8a6bc09343d0e9833980"><div class="ttname"><a href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::u8vec1</a></div><div class="ttdeci">u8 u8vec1</div><div class="ttdoc">8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00038">number_precision.hpp:38</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00214_html_gae5987a61b8c03d5c432a9e62f0b3efe1"><div class="ttname"><a href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::f64vec1</a></div><div class="ttdeci">f64 f64vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00047">number_precision.hpp:47</a></div></div>
+<div class="ttc" id="a00214_html_ga07f8d7348eb7ae059a84c118fdfeb943"><div class="ttname"><a href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::f32vec1</a></div><div class="ttdeci">f32 f32vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00046">number_precision.hpp:46</a></div></div>
+<div class="ttc" id="a00214_html_ga59bfa589419b5265d01314fcecd33435"><div class="ttname"><a href="a00214.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::f64mat1</a></div><div class="ttdeci">f64 f64mat1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00054">number_precision.hpp:54</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00214_html_ga52cc069a92e126c3a8dcde93424d2ef0"><div class="ttname"><a href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::u16vec1</a></div><div class="ttdeci">u16 u16vec1</div><div class="ttdoc">16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00078_source.html#l00039">number_precision.hpp:39</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01505">fwd.hpp:1505</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00079.html b/3rdparty/glm/doc/api/a00079.html
index 6826a28e985..41d4fba18ff 100644
--- a/3rdparty/glm/doc/api/a00079.html
+++ b/3rdparty/glm/doc/api/a00079.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mixed_product.hpp File Reference</title>
+<title>0.9.9 API documenation: optimum_pow.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,40 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mixed_product.hpp File Reference</div> </div>
+<div class="title">optimum_pow.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00079_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
-<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga19aaff3213bf23bdec3ef124ace237e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the power of 2. <a href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">More...</a><br /></td></tr>
+<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga35689d03cd434d6ea819f1942d3bf82e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the power of 3. <a href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">More...</a><br /></td></tr>
+<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:gacef0968763026e180e53e735007dbf5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the power of 4. <a href="a00215.html#gacef0968763026e180e53e735007dbf5a">More...</a><br /></td></tr>
+<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00214.html">GLM_GTX_mixed_producte</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-04-03 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00079_source.html">mixed_product.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00079_source.html">optimum_pow.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00079_source.html b/3rdparty/glm/doc/api/a00079_source.html
index ba9410175da..513bbd3427c 100644
--- a/3rdparty/glm/doc/api/a00079_source.html
+++ b/3rdparty/glm/doc/api/a00079_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mixed_product.hpp Source File</title>
+<title>0.9.9 API documenation: optimum_pow.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,40 +64,65 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mixed_product.hpp</div> </div>
+<div class="title">optimum_pow.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00079.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_optimum_pow is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_optimum_pow extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span>gtx</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a>(genType <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a>(genType <span class="keyword">const</span> &amp; x);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_mixed_product extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a>(</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v3);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;mixed_product.inl&quot;</span></div>
-<div class="ttc" id="a00214_html_gaaee4cf80d69cb86de80f12af88b3c3af"><div class="ttname"><a href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">glm::mixedProduct</a></div><div class="ttdeci">GLM_FUNC_DECL T mixedProduct(tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</div><div class="ttdoc">Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00215.html#gacef0968763026e180e53e735007dbf5a">pow4</a>(genType <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}<span class="comment">//namespace gtx</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;optimum_pow.inl&quot;</span></div>
+<div class="ttc" id="a00215_html_ga19aaff3213bf23bdec3ef124ace237e9"><div class="ttname"><a href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">glm::gtx::pow2</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow2(genType const &amp;x)</div><div class="ttdoc">Returns x raised to the power of 2. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00215_html_ga35689d03cd434d6ea819f1942d3bf82e"><div class="ttname"><a href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">glm::gtx::pow3</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow3(genType const &amp;x)</div><div class="ttdoc">Returns x raised to the power of 3. </div></div>
+<div class="ttc" id="a00215_html_gacef0968763026e180e53e735007dbf5a"><div class="ttname"><a href="a00215.html#gacef0968763026e180e53e735007dbf5a">glm::gtx::pow4</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow4(genType const &amp;x)</div><div class="ttdoc">Returns x raised to the power of 4. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00080.html b/3rdparty/glm/doc/api/a00080.html
index 9aecd22f945..b625b9330b4 100644
--- a/3rdparty/glm/doc/api/a00080.html
+++ b/3rdparty/glm/doc/api/a00080.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: noise.hpp File Reference</title>
+<title>0.9.9 API documenation: orthonormalize.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,56 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">noise.hpp File Reference</div> </div>
+<div class="title">orthonormalize.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00080_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
-<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)</td></tr>
-<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
-<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the orthonormalized matrix of m. <a href="a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97">More...</a><br /></td></tr>
+<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="mdescLeft">&#160;</td><td class="mdescRight">Orthonormalizes x according y. <a href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">More...</a><br /></td></tr>
+<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00175.html">GLM_GTC_noise</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-04-21 / 2011-09-27 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00080_source.html">noise.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00080_source.html">orthonormalize.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00080_source.html b/3rdparty/glm/doc/api/a00080_source.html
index c84f65b5b2e..a2aaf71985d 100644
--- a/3rdparty/glm/doc/api/a00080_source.html
+++ b/3rdparty/glm/doc/api/a00080_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: noise.hpp Source File</title>
+<title>0.9.9 API documenation: orthonormalize.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,56 +64,60 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">noise.hpp</div> </div>
+<div class="title">orthonormalize.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00080.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../detail/_noise.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;../vector_relational.hpp&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_noise extension included&quot;)</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; rep);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &quot;noise.inl&quot;</span></div>
-<div class="ttc" id="a00175_html_ga05f5ab240c9a3fdeee353636e464c285"><div class="ttname"><a href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">glm::simplex</a></div><div class="ttdeci">GLM_FUNC_DECL T simplex(vecType&lt; T, P &gt; const &amp;p)</div><div class="ttdoc">Simplex noise. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00175_html_ga7e103ffffacb322fe2d4863c372ae2fd"><div class="ttname"><a href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">glm::perlin</a></div><div class="ttdeci">GLM_FUNC_DECL T perlin(vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)</div><div class="ttdoc">Periodic perlin noise. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_orthonormalize is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_orthonormalize extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;orthonormalize.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00216_html_gad7afff30d7323fdc7aed7f5a16a0c596"><div class="ttname"><a href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">glm::orthonormalize</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; orthonormalize(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Orthonormalizes x according y. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00081.html b/3rdparty/glm/doc/api/a00081.html
index 7bf8f84713b..89d4c9c9436 100644
--- a/3rdparty/glm/doc/api/a00081.html
+++ b/3rdparty/glm/doc/api/a00081.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: norm.hpp File Reference</title>
+<title>0.9.9 API documenation: packing.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,68 +64,204 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">norm.hpp File Reference</div> </div>
+<div class="title">gtc/packing.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00171.html">GLM_GTC_packing</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00081_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga3544f6288d3bce2cf2a9f6ebe39e0557">distance2</a> (T const &amp;p0, T const &amp;p1)</td></tr>
-<tr class="separator:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
-<tr class="separator:gaec2d9df62436879b48207d39516f3788"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga08c670024cd230e22f8b853f185ff533">length2</a> (T const &amp;x)</td></tr>
-<tr class="separator:ga08c670024cd230e22f8b853f185ff533"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, unsigned int Depth)</td></tr>
-<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)</td></tr>
-<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga4944ad465ff950e926d49621f916c78d"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. <a href="a00171.html#ga4944ad465ff950e926d49621f916c78d">More...</a><br /></td></tr>
+<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">packF3x9_E1x5</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga3f648fc205467792dc6d8c59c748f8a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. <a href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">More...</a><br /></td></tr>
+<tr class="separator:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint16, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga896d806b72e390eb953786cca3632ec9">packHalf</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga896d806b72e390eb953786cca3632ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. <a href="a00171.html#ga896d806b72e390eb953786cca3632ec9">More...</a><br /></td></tr>
+<tr class="separator:ga896d806b72e390eb953786cca3632ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
+<tr class="memdesc:ga43f2093b6ff192a79058ff7834fc3528"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">More...</a><br /></td></tr>
+<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">More...</a><br /></td></tr>
+<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga06ecb6afb902dba45419008171db9023"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#ga06ecb6afb902dba45419008171db9023">More...</a><br /></td></tr>
+<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1">packRGBM</a> (tvec3&lt; T, P &gt; const &amp;rgb)</td></tr>
+<tr class="memdesc:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. <a href="a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1">More...</a><br /></td></tr>
+<tr class="separator:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplParams" colspan="2">template&lt;typename intType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; intType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga1be760860697db386b36513aeafe9d5e">packSnorm</a> (vecType&lt; floatType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1be760860697db386b36513aeafe9d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into signed integer values. <a href="a00171.html#ga1be760860697db386b36513aeafe9d5e">More...</a><br /></td></tr>
+<tr class="separator:ga1be760860697db386b36513aeafe9d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
+<tr class="memdesc:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into 16-bit integer value. <a href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">More...</a><br /></td></tr>
+<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
+<tr class="memdesc:gae3592e0795e62aaa1865b3a10496a7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into 8-bit integer value. <a href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">More...</a><br /></td></tr>
+<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8-bit integer values. <a href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">More...</a><br /></td></tr>
+<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gab997545661877d2c7362a5084d3897d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. <a href="a00171.html#gab997545661877d2c7362a5084d3897d3">More...</a><br /></td></tr>
+<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga358943934d21da947d5bcc88c2ab7832"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 16-bit integer values. <a href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">More...</a><br /></td></tr>
+<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &amp;v)</td></tr>
+<tr class="memdesc:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">More...</a><br /></td></tr>
+<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplParams" colspan="2">template&lt;typename uintType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uintType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">packUnorm</a> (vecType&lt; floatType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">More...</a><br /></td></tr>
+<tr class="separator:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
+<tr class="memdesc:ga9f82737bf2a44bedff1d286b76837886"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into a 16-bit integer value. <a href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">More...</a><br /></td></tr>
+<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">packUnorm1x5_1x6_1x5</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga768e0337dd6246773f14aa0a421fe9a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">More...</a><br /></td></tr>
+<tr class="separator:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
+<tr class="memdesc:ga4b2fa60df3460403817d28b082ee0736"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into a 8-bit integer value. <a href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">More...</a><br /></td></tr>
+<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">packUnorm2x3_1x2</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">More...</a><br /></td></tr>
+<tr class="separator:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">packUnorm2x4</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">More...</a><br /></td></tr>
+<tr class="separator:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga9a666b1c688ab54100061ed06526de6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8-bit integer values. <a href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">More...</a><br /></td></tr>
+<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga8a1ee625d2707c60530fb3fca2980b19"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. <a href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">More...</a><br /></td></tr>
+<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec4112086d7fb133bea104a7c237de52"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaec4112086d7fb133bea104a7c237de52">packUnorm3x5_1x1</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gaec4112086d7fb133bea104a7c237de52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gaec4112086d7fb133bea104a7c237de52">More...</a><br /></td></tr>
+<tr class="separator:gaec4112086d7fb133bea104a7c237de52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga1f63c264e7ab63264e2b2a99fd393897"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 16-bit integer values. <a href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">More...</a><br /></td></tr>
+<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">packUnorm4x4</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gad3e7e3ce521513584a53aedc5f9765c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">More...</a><br /></td></tr>
+<tr class="separator:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga2b1fd1e854705b1345e98409e0a25e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">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 . <a href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">More...</a><br /></td></tr>
+<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">unpackF3x9_E1x5</a> (uint32 p)</td></tr>
+<tr class="memdesc:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="mdescLeft">&#160;</td><td class="mdescRight">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 . <a href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">More...</a><br /></td></tr>
+<tr class="separator:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">unpackHalf</a> (vecType&lt; uint16, P &gt; const &amp;p)</td></tr>
+<tr class="memdesc:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. <a href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">More...</a><br /></td></tr>
+<tr class="separator:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
+<tr class="memdesc:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">More...</a><br /></td></tr>
+<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
+<tr class="memdesc:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">More...</a><br /></td></tr>
+<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga9a05330e5490be0908d3b117d82aff56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. <a href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">More...</a><br /></td></tr>
+<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga44274002723e379ad5c4ece8300a9308"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga44274002723e379ad5c4ece8300a9308"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga44274002723e379ad5c4ece8300a9308">unpackRGBM</a> (tvec4&lt; T, P &gt; const &amp;rgbm)</td></tr>
+<tr class="memdesc:ga44274002723e379ad5c4ece8300a9308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. <a href="a00171.html#ga44274002723e379ad5c4ece8300a9308">More...</a><br /></td></tr>
+<tr class="separator:ga44274002723e379ad5c4ece8300a9308"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplParams" colspan="2">template&lt;typename intType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; floatType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">unpackSnorm</a> (vecType&lt; intType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each signed integer components of a vector to normalized floating-point values. <a href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">More...</a><br /></td></tr>
+<tr class="separator:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga96dd15002370627a443c835ab03a766c"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. <a href="a00171.html#ga96dd15002370627a443c835ab03a766c">More...</a><br /></td></tr>
+<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga4851ff86678aa1c7ace9d67846894285"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. <a href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">More...</a><br /></td></tr>
+<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga8b128e89be449fc71336968a66bf6e1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. <a href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">More...</a><br /></td></tr>
+<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. <a href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">More...</a><br /></td></tr>
+<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
+<tr class="memdesc:gaaddf9c353528fe896106f7181219c7f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. <a href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">More...</a><br /></td></tr>
+<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga48df3042a7d079767f5891a1bfd8a60a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. <a href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">More...</a><br /></td></tr>
+<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplParams" colspan="2">template&lt;typename uintType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; floatType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">unpackUnorm</a> (vecType&lt; uintType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">More...</a><br /></td></tr>
+<tr class="separator:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga83d34160a5cb7bcb5339823210fc7501"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. <a href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">More...</a><br /></td></tr>
+<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">unpackUnorm1x5_1x6_1x5</a> (uint16 p)</td></tr>
+<tr class="memdesc:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">More...</a><br /></td></tr>
+<tr class="separator:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga1319207e30874fb4931a9ee913983ee1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a single 8-bit integer to a normalized floating-point value. <a href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">More...</a><br /></td></tr>
+<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6abd5a9014df3b5ce4059008d2491260"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">unpackUnorm2x3_1x2</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga6abd5a9014df3b5ce4059008d2491260"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">More...</a><br /></td></tr>
+<tr class="separator:ga6abd5a9014df3b5ce4059008d2491260"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">unpackUnorm2x4</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga2e50476132fe5f27f08e273d9c70d85b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">More...</a><br /></td></tr>
+<tr class="separator:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. <a href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">More...</a><br /></td></tr>
+<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga5156d3060355fe332865da2c7f78815f"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. <a href="a00171.html#ga5156d3060355fe332865da2c7f78815f">More...</a><br /></td></tr>
+<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">unpackUnorm3x5_1x1</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">More...</a><br /></td></tr>
+<tr class="separator:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
+<tr class="memdesc:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. <a href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">More...</a><br /></td></tr>
+<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">unpackUnorm4x4</a> (uint16 p)</td></tr>
+<tr class="memdesc:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">More...</a><br /></td></tr>
+<tr class="separator:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00215.html">GLM_GTX_norm</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00171.html">GLM_GTC_packing</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00081_source.html">norm.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00081_source.html">gtc/packing.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00081_source.html b/3rdparty/glm/doc/api/a00081_source.html
index 764876422bb..4f8c0655a78 100644
--- a/3rdparty/glm/doc/api/a00081_source.html
+++ b/3rdparty/glm/doc/api/a00081_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: norm.hpp Source File</title>
+<title>0.9.9 API documenation: packing.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,86 +64,211 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">norm.hpp</div> </div>
+<div class="title">gtc/packing.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00081.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_norm extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00122.html">type_precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_packing extension included&quot;)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a>(uint8 p);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a>(</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T <span class="keyword">const</span> &amp; p0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T <span class="keyword">const</span> &amp; p1);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a>(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; genType <span class="keyword">const</span> &amp; p0,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; genType <span class="keyword">const</span> &amp; p1);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#include &quot;norm.inl&quot;</span></div>
-<div class="ttc" id="a00215_html_gaab931b0d1acfe2f9c1cb78311edf24fc"><div class="ttname"><a href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">glm::lxNorm</a></div><div class="ttdeci">GLM_FUNC_DECL T lxNorm(tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)</div><div class="ttdoc">Returns the L norm of v. </div></div>
-<div class="ttc" id="a00215_html_gaec2d9df62436879b48207d39516f3788"><div class="ttname"><a href="a00215.html#gaec2d9df62436879b48207d39516f3788">glm::distance2</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type distance2(genType const &amp;p0, genType const &amp;p1)</div><div class="ttdoc">Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </div></div>
-<div class="ttc" id="a00215_html_ga0a8cb8a0ce88d1d977de23209bf04610"><div class="ttname"><a href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">glm::l2Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l2Norm(tvec3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the L2 norm of v. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00215_html_ga6d5964f09cdb43803496a5ee3ced71cb"><div class="ttname"><a href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">glm::l1Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l1Norm(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the L1 norm of v. </div></div>
-<div class="ttc" id="a00215_html_gaa279ba7fdecbed3f9f2b60502b7ec8ca"><div class="ttname"><a href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type length2(genType const &amp;x)</div><div class="ttdoc">Returns the squared length of x. </div></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a>(uint16 p);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a>(<span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a>(uint8 p);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a>(uint16 p);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a>(uint16 p);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a>(uint64 p);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a>(uint16 p);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a>(uint64 p);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a>(uint16 v);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a>(uint64 p);</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a>(<a class="code" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <a class="code" href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a>(<a class="code" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <a class="code" href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a>(<a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a>(uint32 p);</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">packF3x9_E1x5</a>(<a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">unpackF3x9_E1x5</a>(uint32 p);</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1">packRGBM</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; rgb);</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00171.html#ga44274002723e379ad5c4ece8300a9308">unpackRGBM</a>(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; rgbm);</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; GLM_FUNC_DECL vecType&lt;uint16, P&gt; <a class="code" href="a00171.html#ga896d806b72e390eb953786cca3632ec9">packHalf</a>(vecType&lt;float, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">template</span> &lt;precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; GLM_FUNC_DECL vecType&lt;float, P&gt; <a class="code" href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">unpackHalf</a>(vecType&lt;uint16, P&gt; <span class="keyword">const</span> &amp; p);</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> u<span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; GLM_FUNC_DECL vecType&lt;uintType, P&gt; <a class="code" href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">packUnorm</a>(vecType&lt;floatType, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> u<span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; GLM_FUNC_DECL vecType&lt;floatType, P&gt; <a class="code" href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">unpackUnorm</a>(vecType&lt;uintType, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; GLM_FUNC_DECL vecType&lt;intType, P&gt; <a class="code" href="a00171.html#ga1be760860697db386b36513aeafe9d5e">packSnorm</a>(vecType&lt;floatType, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; GLM_FUNC_DECL vecType&lt;floatType, P&gt; <a class="code" href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">unpackSnorm</a>(vecType&lt;intType, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">packUnorm2x4</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">unpackUnorm2x4</a>(uint8 p);</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">packUnorm4x4</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">unpackUnorm4x4</a>(uint16 p);</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">packUnorm1x5_1x6_1x5</a>(<a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">unpackUnorm1x5_1x6_1x5</a>(uint16 p);</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#gaec4112086d7fb133bea104a7c237de52">packUnorm3x5_1x1</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">unpackUnorm3x5_1x1</a>(uint16 p);</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">packUnorm2x3_1x2</a>(<a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; GLM_FUNC_DECL <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">unpackUnorm2x3_1x2</a>(uint8 p);</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="preprocessor">#include &quot;packing.inl&quot;</span></div>
+<div class="ttc" id="a00171_html_ga358943934d21da947d5bcc88c2ab7832"><div class="ttname"><a href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">glm::packSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_ga7f9abdb50f9be1aa1c14912504a0d98d"><div class="ttname"><a href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">glm::packUnorm2x3_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_ga3f648fc205467792dc6d8c59c748f8a6"><div class="ttname"><a href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">glm::packF3x9_E1x5</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const &amp;v)</div><div class="ttdoc">First, converts the first two components of the normalized floating-point value v into 11-bit signles...</div></div>
+<div class="ttc" id="a00171_html_gab3bc08ecfc0f3339be93fb2b3b56d88a"><div class="ttname"><a href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">glm::unpackUnorm1x5_1x6_1x5</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00122_html"><div class="ttname"><a href="a00122.html">type_precision.hpp</a></div><div class="ttdoc">GLM_GTC_type_precision </div></div>
+<div class="ttc" id="a00171_html_gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><div class="ttname"><a href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">glm::unpackUnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; floatType, P &gt; unpackUnorm(vecType&lt; uintType, P &gt; const &amp;v)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_gad3e7e3ce521513584a53aedc5f9765c1"><div class="ttname"><a href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">glm::packUnorm4x4</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_gac37dedaba24b00adb4ec6e8f92c19dbf"><div class="ttname"><a href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">glm::unpackHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackHalf1x16(uint16 v)</div><div class="ttdoc">Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...</div></div>
+<div class="ttc" id="a00171_html_gab22f8bcfdb5fc65af4701b25f143c1af"><div class="ttname"><a href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">glm::packSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into 16-bit integer value. </div></div>
+<div class="ttc" id="a00171_html_ga06ecb6afb902dba45419008171db9023"><div class="ttname"><a href="a00171.html#ga06ecb6afb902dba45419008171db9023">glm::packI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component signed integer ...</div></div>
+<div class="ttc" id="a00171_html_ga9f82737bf2a44bedff1d286b76837886"><div class="ttname"><a href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">glm::packUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 16-bit integer value. </div></div>
+<div class="ttc" id="a00171_html_ga5156d3060355fe332865da2c7f78815f"><div class="ttname"><a href="a00171.html#ga5156d3060355fe332865da2c7f78815f">glm::unpackUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_gada3d88d59f0f458f9c51a9fd359a4bc0"><div class="ttname"><a href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">glm::packU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...</div></div>
+<div class="ttc" id="a00171_html_ga2ae149c5d2473ac1e5f347bb654a242d"><div class="ttname"><a href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">glm::unpackUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </div></div>
+<div class="ttc" id="a00171_html_ga637cbe3913dd95c6e7b4c99c61bd611f"><div class="ttname"><a href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">glm::unpackUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </div></div>
+<div class="ttc" id="a00171_html_ga83d34160a5cb7bcb5339823210fc7501"><div class="ttname"><a href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">glm::unpackUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </div></div>
+<div class="ttc" id="a00171_html_ga9a05330e5490be0908d3b117d82aff56"><div class="ttname"><a href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">glm::unpackI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...</div></div>
+<div class="ttc" id="a00156_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00518">type_vec.hpp:518</a></div></div>
+<div class="ttc" id="a00171_html_ga1be760860697db386b36513aeafe9d5e"><div class="ttname"><a href="a00171.html#ga1be760860697db386b36513aeafe9d5e">glm::packSnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; intType, P &gt; packSnorm(vecType&lt; floatType, P &gt; const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into signed integer values...</div></div>
+<div class="ttc" id="a00171_html_gac58ee89d0e224bb6df5e8bbb18843a2d"><div class="ttname"><a href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">glm::unpackUnorm4x4</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga1319207e30874fb4931a9ee913983ee1"><div class="ttname"><a href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">glm::unpackUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)</div><div class="ttdoc">Convert a single 8-bit integer to a normalized floating-point value. </div></div>
+<div class="ttc" id="a00171_html_ga63eeec0d416e48462f341f4a7a9a45fe"><div class="ttname"><a href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">glm::unpackSnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; floatType, P &gt; unpackSnorm(vecType&lt; intType, P &gt; const &amp;v)</div><div class="ttdoc">Convert each signed integer components of a vector to normalized floating-point values. </div></div>
+<div class="ttc" id="a00171_html_gaf3f9387834f8d8beadfe723c1dd247a7"><div class="ttname"><a href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">glm::unpackHalf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; float, P &gt; unpackHalf(vecType&lt; uint16, P &gt; const &amp;p)</div><div class="ttdoc">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...</div></div>
+<div class="ttc" id="a00171_html_ga57dfc41b2eb20b0ac00efae7d9c49dcd"><div class="ttname"><a href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">glm::unpackHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)</div><div class="ttdoc">Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...</div></div>
+<div class="ttc" id="a00171_html_ga43f2093b6ff192a79058ff7834fc3528"><div class="ttname"><a href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">glm::packHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packHalf1x16(float v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...</div></div>
+<div class="ttc" id="a00171_html_gab9e60ebe3ad3eeced6a9ec6eb876d74e"><div class="ttname"><a href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">glm::unpackF3x9_E1x5</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...</div></div>
+<div class="ttc" id="a00171_html_ga48df3042a7d079767f5891a1bfd8a60a"><div class="ttname"><a href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">glm::unpackU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...</div></div>
+<div class="ttc" id="a00171_html_ga6abd5a9014df3b5ce4059008d2491260"><div class="ttname"><a href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">glm::unpackUnorm2x3_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga9a666b1c688ab54100061ed06526de6e"><div class="ttname"><a href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">glm::packUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_gae3592e0795e62aaa1865b3a10496a7a1"><div class="ttname"><a href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">glm::packSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packSnorm1x8(float s)</div><div class="ttdoc">First, converts the normalized floating-point value v into 8-bit integer value. </div></div>
+<div class="ttc" id="a00156_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00459">type_vec.hpp:459</a></div></div>
+<div class="ttc" id="a00171_html_ga896d806b72e390eb953786cca3632ec9"><div class="ttname"><a href="a00171.html#ga896d806b72e390eb953786cca3632ec9">glm::packHalf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint16, P &gt; packHalf(vecType&lt; float, P &gt; const &amp;v)</div><div class="ttdoc">Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...</div></div>
+<div class="ttc" id="a00171_html_gab997545661877d2c7362a5084d3897d3"><div class="ttname"><a href="a00171.html#gab997545661877d2c7362a5084d3897d3">glm::packSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &amp;v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit signe...</div></div>
+<div class="ttc" id="a00171_html_gab6bbd5be3b8e6db538ecb33a7844481c"><div class="ttname"><a href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">glm::packUnorm2x4</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_gacb9a3df68172c1193c9d701a3fa4d88b"><div class="ttname"><a href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">glm::packUnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uintType, P &gt; packUnorm(vecType&lt; floatType, P &gt; const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_gafe2f7b39caf8f5ec555e1c059ec530e6"><div class="ttname"><a href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">glm::packHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component floating-point ...</div></div>
+<div class="ttc" id="a00171_html_gaec4112086d7fb133bea104a7c237de52"><div class="ttname"><a href="a00171.html#gaec4112086d7fb133bea104a7c237de52">glm::packUnorm3x5_1x1</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_ga768e0337dd6246773f14aa0a421fe9a8"><div class="ttname"><a href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">glm::packUnorm1x5_1x6_1x5</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const &amp;v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00156_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00454">type_vec.hpp:454</a></div></div>
+<div class="ttc" id="a00171_html_gaaddf9c353528fe896106f7181219c7f4"><div class="ttname"><a href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">glm::unpackSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga6be3cfb2cce3702f03e91bbeb5286d7e"><div class="ttname"><a href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">glm::packSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00171_html_ga4944ad465ff950e926d49621f916c78d"><div class="ttname"><a href="a00171.html#ga4944ad465ff950e926d49621f916c78d">glm::packF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &amp;v)</div><div class="ttdoc">First, converts the first two components of the normalized floating-point value v into 11-bit signles...</div></div>
+<div class="ttc" id="a00171_html_ga4851ff86678aa1c7ace9d67846894285"><div class="ttname"><a href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">glm::unpackSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)</div><div class="ttdoc">First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga2e50476132fe5f27f08e273d9c70d85b"><div class="ttname"><a href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">glm::unpackUnorm2x4</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga96dd15002370627a443c835ab03a766c"><div class="ttname"><a href="a00171.html#ga96dd15002370627a443c835ab03a766c">glm::unpackSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga8b128e89be449fc71336968a66bf6e1a"><div class="ttname"><a href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">glm::unpackSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga44274002723e379ad5c4ece8300a9308"><div class="ttname"><a href="a00171.html#ga44274002723e379ad5c4ece8300a9308">glm::unpackRGBM</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; unpackRGBM(tvec4&lt; T, P &gt; const &amp;rgbm)</div><div class="ttdoc">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...</div></div>
+<div class="ttc" id="a00171_html_ga540fc5d8654b7bcfe207ac2491f161d1"><div class="ttname"><a href="a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1">glm::packRGBM</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; packRGBM(tvec3&lt; T, P &gt; const &amp;rgb)</div><div class="ttdoc">Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...</div></div>
+<div class="ttc" id="a00171_html_ga4b2fa60df3460403817d28b082ee0736"><div class="ttname"><a href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">glm::packUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm1x8(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 8-bit integer value. ...</div></div>
+<div class="ttc" id="a00156_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00464">type_vec.hpp:464</a></div></div>
+<div class="ttc" id="a00171_html_ga5ff95ff5bc16f396432ab67243dbae4d"><div class="ttname"><a href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">glm::unpackUnorm3x5_1x1</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga1f63c264e7ab63264e2b2a99fd393897"><div class="ttname"><a href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">glm::packUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_ga7a4fbf79be9740e3c57737bc2af05e5b"><div class="ttname"><a href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">glm::unpackSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga8a1ee625d2707c60530fb3fca2980b19"><div class="ttname"><a href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">glm::packUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &amp;v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit unsig...</div></div>
+<div class="ttc" id="a00156_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00545">type_vec.hpp:545</a></div></div>
+<div class="ttc" id="a00171_html_ga2b1fd1e854705b1345e98409e0a25e50"><div class="ttname"><a href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">glm::unpackF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00082.html b/3rdparty/glm/doc/api/a00082.html
index d9bbc61f9e4..b50c7ed234c 100644
--- a/3rdparty/glm/doc/api/a00082.html
+++ b/3rdparty/glm/doc/api/a00082.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normal.hpp File Reference</title>
+<title>0.9.9 API documenation: packing.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,41 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">normal.hpp File Reference</div> </div>
+<div class="title">packing.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00082_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3&lt; T, P &gt; const &amp;p1, tvec3&lt; T, P &gt; const &amp;p2, tvec3&lt; T, P &gt; const &amp;p3)</td></tr>
-<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00216.html">GLM_GTX_normal</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00082_source.html">normal.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00082_source.html">packing.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00082_source.html b/3rdparty/glm/doc/api/a00082_source.html
index 09c74b4ac37..263bf658d36 100644
--- a/3rdparty/glm/doc/api/a00082_source.html
+++ b/3rdparty/glm/doc/api/a00082_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normal.hpp Source File</title>
+<title>0.9.9 API documenation: packing.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,40 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">normal.hpp</div> </div>
+<div class="title">packing.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00082.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_normal extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00216.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; p1, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; p2, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; p3);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;normal.inl&quot;</span></div>
-<div class="ttc" id="a00216_html_ga7842850bcda582f1756883e3ed950e14"><div class="ttname"><a href="a00216.html#ga7842850bcda582f1756883e3ed950e14">glm::triangleNormal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; triangleNormal(tvec3&lt; T, P &gt; const &amp;p1, tvec3&lt; T, P &gt; const &amp;p2, tvec3&lt; T, P &gt; const &amp;p3)</div><div class="ttdoc">Computes triangle normal from triangle points. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00035.html">detail/func_packing.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00035_html"><div class="ttname"><a href="a00035.html">func_packing.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00083.html b/3rdparty/glm/doc/api/a00083.html
deleted file mode 100644
index a9204dbecc1..00000000000
--- a/3rdparty/glm/doc/api/a00083.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normalize_dot.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">normalize_dot.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00083_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00217.html">GLM_GTX_normalize_dot</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-09-28 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00083_source.html">normalize_dot.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00083_source.html b/3rdparty/glm/doc/api/a00083_source.html
index b86653e69c0..ae478fd9175 100644
--- a/3rdparty/glm/doc/api/a00083_source.html
+++ b/3rdparty/glm/doc/api/a00083_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normalize_dot.hpp Source File</title>
+<title>0.9.9 API documenation: pages.doxy Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,41 +64,31 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_48eca2e6cf73effdec262031e861eeb0.html">doc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">normalize_dot.hpp</div> </div>
+<div class="title">pages.doxy</div> </div>
</div><!--header-->
<div class="contents">
-<a href="a00083.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtx/fast_square_root.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_normalize_dot extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;normalize_dot.inl&quot;</span></div>
-<div class="ttc" id="a00217_html_ga8593b21bc2fe22184f01d5e08b5a2024"><div class="ttname"><a href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">glm::fastNormalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T fastNormalizeDot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00217_html_gaffbc2f2cb15838de8886a68048f9004d"><div class="ttname"><a href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">glm::normalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T normalizeDot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00084.html b/3rdparty/glm/doc/api/a00084.html
index 1a2a1e2f973..2de4028ff86 100644
--- a/3rdparty/glm/doc/api/a00084.html
+++ b/3rdparty/glm/doc/api/a00084.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: number_precision.hpp File Reference</title>
+<title>0.9.9 API documenation: perpendicular.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,70 +64,52 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">number_precision.hpp File Reference</div> </div>
+<div class="title">perpendicular.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00217.html">GLM_GTX_perpendicular</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00084_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
-typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
-<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
-typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
-<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
-typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
-<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
-typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
-<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
-typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
-<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
-typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
-<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
-typedef u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
-<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
-typedef u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
-<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
-typedef u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
-<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
-typedef u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
-<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
+<tr class="memdesc:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Projects x a perpendicular axis of Normal. <a href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">More...</a><br /></td></tr>
+<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00218.html">GLM_GTX_number_precision</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-05-10 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00217.html">GLM_GTX_perpendicular</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<a class="el" href="a00219.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00084_source.html">number_precision.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00084_source.html">perpendicular.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00084_source.html b/3rdparty/glm/doc/api/a00084_source.html
index b145b8dcd09..13d91fbc74b 100644
--- a/3rdparty/glm/doc/api/a00084_source.html
+++ b/3rdparty/glm/doc/api/a00084_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: number_precision.hpp Source File</title>
+<title>0.9.9 API documenation: perpendicular.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,71 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">number_precision.hpp</div> </div>
+<div class="title">perpendicular.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00084.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_precision.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_number_precision extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span>gtx</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Unsigned int vector types </span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980"> 63</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a> <a class="code" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a>; </div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a> <a class="code" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a>; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3"> 65</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a> <a class="code" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a>; </div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="a00218.html#ga818de170e2584ab037130f2881925974"> 66</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a> <a class="code" href="a00218.html#ga818de170e2584ab037130f2881925974">u64vec1</a>; </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Float vector types </span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943"> 71</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a>; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1"> 72</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a>; </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Float matrix types </span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6"> 77</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a>; </div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348"> 78</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a>; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00218.html#ga59bfa589419b5265d01314fcecd33435"> 79</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00218.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a>; </div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd"> 80</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a>; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}<span class="comment">//namespace gtx</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#include &quot;number_precision.inl&quot;</span></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00218_html_gac88c6a4dbfc380aa26e3adbbade36348"><div class="ttname"><a href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::f32mat1x1</a></div><div class="ttdeci">f32 f32mat1x1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00078">number_precision.hpp:78</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00218_html_ga5853fe457f4c8a6bc09343d0e9833980"><div class="ttname"><a href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::u8vec1</a></div><div class="ttdeci">u8 u8vec1</div><div class="ttdoc">8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00063">number_precision.hpp:63</a></div></div>
-<div class="ttc" id="a00218_html_ga145ad477a2a3e152855511c3b52469a6"><div class="ttname"><a href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::f32mat1</a></div><div class="ttdeci">f32 f32mat1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00077">number_precision.hpp:77</a></div></div>
-<div class="ttc" id="a00218_html_ga07f8d7348eb7ae059a84c118fdfeb943"><div class="ttname"><a href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::f32vec1</a></div><div class="ttdeci">f32 f32vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00071">number_precision.hpp:71</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00181_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01538">fwd.hpp:1538</a></div></div>
-<div class="ttc" id="a00218_html_gae5987a61b8c03d5c432a9e62f0b3efe1"><div class="ttname"><a href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::f64vec1</a></div><div class="ttdeci">f64 f64vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00072">number_precision.hpp:72</a></div></div>
-<div class="ttc" id="a00218_html_ga448eeb08d0b7d8c43a8b292c981955fd"><div class="ttname"><a href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::f64mat1x1</a></div><div class="ttdeci">f64 f64mat1x1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00080">number_precision.hpp:80</a></div></div>
-<div class="ttc" id="a00181_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01534">fwd.hpp:1534</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00218_html_ga52cc069a92e126c3a8dcde93424d2ef0"><div class="ttname"><a href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::u16vec1</a></div><div class="ttdeci">u16 u16vec1</div><div class="ttdoc">16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00064">number_precision.hpp:64</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00218_html_ga59bfa589419b5265d01314fcecd33435"><div class="ttname"><a href="a00218.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::f64mat1</a></div><div class="ttdeci">f64 f64mat1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00079">number_precision.hpp:79</a></div></div>
-<div class="ttc" id="a00218_html_ga818de170e2584ab037130f2881925974"><div class="ttname"><a href="a00218.html#ga818de170e2584ab037130f2881925974">glm::gtx::u64vec1</a></div><div class="ttdeci">u64 u64vec1</div><div class="ttdoc">64bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00066">number_precision.hpp:66</a></div></div>
-<div class="ttc" id="a00218_html_ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><div class="ttname"><a href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::u32vec1</a></div><div class="ttdeci">u32 u32vec1</div><div class="ttdoc">32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00065">number_precision.hpp:65</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../gtx/projection.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_perpendicular is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_perpendicular extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL vecType <a class="code" href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; vecType <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; vecType <span class="keyword">const</span> &amp; Normal);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;perpendicular.inl&quot;</span></div>
+<div class="ttc" id="a00217_html_ga41f8c73da9798a18e6b1e32f1e301f07"><div class="ttname"><a href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">glm::perp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType perp(vecType const &amp;x, vecType const &amp;Normal)</div><div class="ttdoc">Projects x a perpendicular axis of Normal. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00085.html b/3rdparty/glm/doc/api/a00085.html
index 6fd8d18cdfb..c049126c032 100644
--- a/3rdparty/glm/doc/api/a00085.html
+++ b/3rdparty/glm/doc/api/a00085.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: optimum_pow.hpp File Reference</title>
+<title>0.9.9 API documenation: polar_coordinates.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,54 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">optimum_pow.hpp File Reference</div> </div>
+<div class="title">polar_coordinates.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00085_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2&lt; T, P &gt; const &amp;polar)</td></tr>
+<tr class="memdesc:ga45ece1fbf7260c43e0f873c498202581"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Polar to Euclidean coordinates. <a href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">More...</a><br /></td></tr>
+<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3&lt; T, P &gt; const &amp;euclidean)</td></tr>
+<tr class="memdesc:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. <a href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">More...</a><br /></td></tr>
+<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00219.html">GLM_GTX_optimum_pow</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00085_source.html">optimum_pow.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00085_source.html">polar_coordinates.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00085_source.html b/3rdparty/glm/doc/api/a00085_source.html
index bb0e89cfc0b..be74bd92b7f 100644
--- a/3rdparty/glm/doc/api/a00085_source.html
+++ b/3rdparty/glm/doc/api/a00085_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: optimum_pow.hpp Source File</title>
+<title>0.9.9 API documenation: polar_coordinates.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,47 +64,61 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">optimum_pow.hpp</div> </div>
+<div class="title">polar_coordinates.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00085.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_optimum_pow extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span>gtx</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00219.html#gacef0968763026e180e53e735007dbf5a">pow4</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}<span class="comment">//namespace gtx</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;optimum_pow.inl&quot;</span></div>
-<div class="ttc" id="a00219_html_ga35689d03cd434d6ea819f1942d3bf82e"><div class="ttname"><a href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">glm::gtx::pow3</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow3(genType const &amp;x)</div><div class="ttdoc">Returns x raised to the power of 3. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00219_html_gacef0968763026e180e53e735007dbf5a"><div class="ttname"><a href="a00219.html#gacef0968763026e180e53e735007dbf5a">glm::gtx::pow4</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow4(genType const &amp;x)</div><div class="ttdoc">Returns x raised to the power of 4. </div></div>
-<div class="ttc" id="a00219_html_ga19aaff3213bf23bdec3ef124ace237e9"><div class="ttname"><a href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">glm::gtx::pow2</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow2(genType const &amp;x)</div><div class="ttdoc">Returns x raised to the power of 2. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_polar_coordinates is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_polar_coordinates extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;polar_coordinates.inl&quot;</span></div>
+<div class="ttc" id="a00218_html_gafcf95a38c780a4ad5ba14c8ac9e522bb"><div class="ttname"><a href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">glm::polar</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; polar(tvec3&lt; T, P &gt; const &amp;euclidean)</div><div class="ttdoc">Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...</div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00218_html_ga45ece1fbf7260c43e0f873c498202581"><div class="ttname"><a href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">glm::euclidean</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; euclidean(tvec2&lt; T, P &gt; const &amp;polar)</div><div class="ttdoc">Convert Polar to Euclidean coordinates. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00086.html b/3rdparty/glm/doc/api/a00086.html
index 9ad48941eab..73da67a6d68 100644
--- a/3rdparty/glm/doc/api/a00086.html
+++ b/3rdparty/glm/doc/api/a00086.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: orthonormalize.hpp File Reference</title>
+<title>0.9.9 API documenation: precision.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">orthonormalize.hpp File Reference</div> </div>
+<div class="title">precision.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00086_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00220.html">GLM_GTX_orthonormalize</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00086_source.html">orthonormalize.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00086_source.html">precision.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00086_source.html b/3rdparty/glm/doc/api/a00086_source.html
index 3d3bbf63eaa..811cde256a0 100644
--- a/3rdparty/glm/doc/api/a00086_source.html
+++ b/3rdparty/glm/doc/api/a00086_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: orthonormalize.hpp Source File</title>
+<title>0.9.9 API documenation: precision.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,42 +64,93 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">orthonormalize.hpp</div> </div>
+<div class="title">precision.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00086.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">enum</span> precision</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; {</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; packed_highp,</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; packed_mediump,</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; packed_lowp,</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; aligned_highp,</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; aligned_mediump,</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; aligned_lowp,</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; aligned = aligned_highp,</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; highp = packed_highp,</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; mediump = packed_mediump,</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; lowp = packed_lowp,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; packed = packed_highp,</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE &amp;&amp; defined(GLM_FORCE_ALIGNED)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; defaultp = aligned_highp</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; defaultp = highp</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; };</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;glm::precision P&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">struct </span>is_aligned</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; };</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>is_aligned&lt;<a class="code" href="a00140.html">glm</a>::aligned_lowp&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_orthonormalize extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;orthonormalize.inl&quot;</span></div>
-<div class="ttc" id="a00220_html_gad7afff30d7323fdc7aed7f5a16a0c596"><div class="ttname"><a href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">glm::orthonormalize</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; orthonormalize(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Orthonormalizes x according y. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">struct </span>is_aligned&lt;<a class="code" href="a00140.html">glm</a>::aligned_mediump&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; };</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">struct </span>is_aligned&lt;<a class="code" href="a00140.html">glm</a>::aligned_highp&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00087.html b/3rdparty/glm/doc/api/a00087.html
index c3eec70c0b0..b80bfc8c0e2 100644
--- a/3rdparty/glm/doc/api/a00087.html
+++ b/3rdparty/glm/doc/api/a00087.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp File Reference</title>
+<title>0.9.9 API documenation: projection.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,96 +64,50 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtc/packing.hpp File Reference</div> </div>
+<div class="title">projection.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00219.html">GLM_GTX_projection</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00087_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &amp;v)</td></tr>
-<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
-<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &amp;v)</td></tr>
-<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
-<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
-<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &amp;v)</td></tr>
-<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
-<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
-<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
-<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
-<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
+<tr class="memdesc:gadf29123bcf748fc9d6fb0998192184cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Projects x on Normal. <a href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">More...</a><br /></td></tr>
+<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00176.html">GLM_GTC_packing</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-08-08 / 2013-08-08 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00219.html">GLM_GTX_projection</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00087_source.html">gtc/packing.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00087_source.html">projection.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00087_source.html b/3rdparty/glm/doc/api/a00087_source.html
index ff97023ba1e..ef0e33ee6db 100644
--- a/3rdparty/glm/doc/api/a00087_source.html
+++ b/3rdparty/glm/doc/api/a00087_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp Source File</title>
+<title>0.9.9 API documenation: projection.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,129 +64,55 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtc/packing.hpp</div> </div>
+<div class="title">projection.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00087.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00130.html">type_precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_packing extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL uint8 <a class="code" href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a>(<span class="keywordtype">float</span> v);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a>(uint8 p);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a>(uint16 p);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL uint8 <a class="code" href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a>(<span class="keywordtype">float</span> s);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a>(uint8 p);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a>(uint16 p);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a>(uint16 p);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a>(uint64 p);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a>(uint16 p);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a>(uint64 p);</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; </div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a>(<span class="keywordtype">float</span> v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a>(uint16 v);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL uint64 <a class="code" href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a>(uint64 p);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a>(<a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <a class="code" href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a>(<a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <a class="code" href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a>(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; GLM_FUNC_DECL <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a>(uint32 p);</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#include &quot;packing.inl&quot;</span></div>
-<div class="ttc" id="a00176_html_ga9f82737bf2a44bedff1d286b76837886"><div class="ttname"><a href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">glm::packUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 16-bit integer value. </div></div>
-<div class="ttc" id="a00176_html_ga83d34160a5cb7bcb5339823210fc7501"><div class="ttname"><a href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">glm::unpackUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </div></div>
-<div class="ttc" id="a00176_html_ga1f63c264e7ab63264e2b2a99fd393897"><div class="ttname"><a href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">glm::packUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
-<div class="ttc" id="a00176_html_gab22f8bcfdb5fc65af4701b25f143c1af"><div class="ttname"><a href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">glm::packSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into 16-bit integer value. </div></div>
-<div class="ttc" id="a00176_html_gac37dedaba24b00adb4ec6e8f92c19dbf"><div class="ttname"><a href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">glm::unpackHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackHalf1x16(uint16 v)</div><div class="ttdoc">Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...</div></div>
-<div class="ttc" id="a00176_html_ga8a1ee625d2707c60530fb3fca2980b19"><div class="ttname"><a href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">glm::packUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &amp;v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit unsig...</div></div>
-<div class="ttc" id="a00176_html_ga2b1fd1e854705b1345e98409e0a25e50"><div class="ttname"><a href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">glm::unpackF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...</div></div>
-<div class="ttc" id="a00176_html_ga9a05330e5490be0908d3b117d82aff56"><div class="ttname"><a href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">glm::unpackI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...</div></div>
-<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00176_html_ga358943934d21da947d5bcc88c2ab7832"><div class="ttname"><a href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">glm::packSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
-<div class="ttc" id="a00176_html_ga637cbe3913dd95c6e7b4c99c61bd611f"><div class="ttname"><a href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">glm::unpackUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </div></div>
-<div class="ttc" id="a00163_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00481">type_vec.hpp:481</a></div></div>
-<div class="ttc" id="a00176_html_ga9a666b1c688ab54100061ed06526de6e"><div class="ttname"><a href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">glm::packUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
-<div class="ttc" id="a00176_html_ga57dfc41b2eb20b0ac00efae7d9c49dcd"><div class="ttname"><a href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">glm::unpackHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)</div><div class="ttdoc">Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...</div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00176_html_gab997545661877d2c7362a5084d3897d3"><div class="ttname"><a href="a00176.html#gab997545661877d2c7362a5084d3897d3">glm::packSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &amp;v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit signe...</div></div>
-<div class="ttc" id="a00176_html_ga2ae149c5d2473ac1e5f347bb654a242d"><div class="ttname"><a href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">glm::unpackUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </div></div>
-<div class="ttc" id="a00176_html_ga06ecb6afb902dba45419008171db9023"><div class="ttname"><a href="a00176.html#ga06ecb6afb902dba45419008171db9023">glm::packI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component signed integer ...</div></div>
-<div class="ttc" id="a00176_html_ga1319207e30874fb4931a9ee913983ee1"><div class="ttname"><a href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">glm::unpackUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)</div><div class="ttdoc">Convert a single 8-bit integer to a normalized floating-point value. </div></div>
-<div class="ttc" id="a00176_html_ga7a4fbf79be9740e3c57737bc2af05e5b"><div class="ttname"><a href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">glm::unpackSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00176_html_ga6be3cfb2cce3702f03e91bbeb5286d7e"><div class="ttname"><a href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">glm::packSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &amp;v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
-<div class="ttc" id="a00163_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00454">type_vec.hpp:454</a></div></div>
-<div class="ttc" id="a00176_html_gae3592e0795e62aaa1865b3a10496a7a1"><div class="ttname"><a href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">glm::packSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packSnorm1x8(float s)</div><div class="ttdoc">First, converts the normalized floating-point value v into 8-bit integer value. </div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00176_html_gada3d88d59f0f458f9c51a9fd359a4bc0"><div class="ttname"><a href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">glm::packU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...</div></div>
-<div class="ttc" id="a00176_html_gafe2f7b39caf8f5ec555e1c059ec530e6"><div class="ttname"><a href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">glm::packHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &amp;v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component floating-point ...</div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00176_html_ga48df3042a7d079767f5891a1bfd8a60a"><div class="ttname"><a href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">glm::unpackU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...</div></div>
-<div class="ttc" id="a00176_html_ga4b2fa60df3460403817d28b082ee0736"><div class="ttname"><a href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">glm::packUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm1x8(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 8-bit integer value. ...</div></div>
-<div class="ttc" id="a00176_html_gaaddf9c353528fe896106f7181219c7f4"><div class="ttname"><a href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">glm::unpackSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga96dd15002370627a443c835ab03a766c"><div class="ttname"><a href="a00176.html#ga96dd15002370627a443c835ab03a766c">glm::unpackSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga5156d3060355fe332865da2c7f78815f"><div class="ttname"><a href="a00176.html#ga5156d3060355fe332865da2c7f78815f">glm::unpackUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga8b128e89be449fc71336968a66bf6e1a"><div class="ttname"><a href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">glm::unpackSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga4851ff86678aa1c7ace9d67846894285"><div class="ttname"><a href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">glm::unpackSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)</div><div class="ttdoc">First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga43f2093b6ff192a79058ff7834fc3528"><div class="ttname"><a href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">glm::packHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packHalf1x16(float v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...</div></div>
-<div class="ttc" id="a00176_html_ga4944ad465ff950e926d49621f916c78d"><div class="ttname"><a href="a00176.html#ga4944ad465ff950e926d49621f916c78d">glm::packF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &amp;v)</div><div class="ttdoc">First, converts the first two components of the normalized floating-point value v into 11-bit signles...</div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_projection is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_projection extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL vecType <a class="code" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; Normal);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;projection.inl&quot;</span></div>
+<div class="ttc" id="a00219_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &amp;x, vecType const &amp;Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00088.html b/3rdparty/glm/doc/api/a00088.html
index 048f97a43e2..2fd5a0d87d9 100644
--- a/3rdparty/glm/doc/api/a00088.html
+++ b/3rdparty/glm/doc/api/a00088.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp File Reference</title>
+<title>0.9.9 API documenation: quaternion.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,160 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">packing.hpp File Reference</div> </div>
+<div class="title">gtc/quaternion.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00172.html">GLM_GTC_quaternion</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00088_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gad4a4448baedb198b2b1e7880d2544dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the quaternion rotation angle. <a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">More...</a><br /></td></tr>
+<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:ga37ae19405f1ccf766f27e4fcd035d859"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a quaternion from an angle and a normalized axis. <a href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">More...</a><br /></td></tr>
+<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0b3e87a13b2708154b72259e50789a19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q rotation axis. <a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">More...</a><br /></td></tr>
+<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:gab1ace864fbf189ffa368950001808a3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q conjugate. <a href="a00172.html#gab1ace864fbf189ffa368950001808a3c">More...</a><br /></td></tr>
+<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class quatType&gt; </td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gac54dfc83de465a2d03e90d342242ab3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... <a href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">More...</a><br /></td></tr>
+<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gac187115710365e0b2902220b9611e7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x == y. <a href="a00172.html#gac187115710365e0b2902220b9611e7b6">More...</a><br /></td></tr>
+<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns euler angles, pitch as x, yaw as y, roll as z. <a href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">More...</a><br /></td></tr>
+<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt; y. <a href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">More...</a><br /></td></tr>
+<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt;= y. <a href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">More...</a><br /></td></tr>
+<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga5f47300c024c2d809944e6ac661d6d14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q inverse. <a href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">More...</a><br /></td></tr>
+<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0a850f06736d25887536d0da88e63c70">isinf</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0a850f06736d25887536d0da88e63c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. <a href="a00172.html#ga0a850f06736d25887536d0da88e63c70">More...</a><br /></td></tr>
+<tr class="separator:ga0a850f06736d25887536d0da88e63c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">isnan</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. <a href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">More...</a><br /></td></tr>
+<tr class="separator:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:gac682181783027544c8d251b4d3a60cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the quaternion. <a href="a00172.html#gac682181783027544c8d251b4d3a60cf8">More...</a><br /></td></tr>
+<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
+<tr class="memdesc:ga5692804fa4db9e762a1c19b607e54435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear interpolation of two quaternions. <a href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">More...</a><br /></td></tr>
+<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison result of x &lt; y. <a href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">More...</a><br /></td></tr>
+<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga7c81996ed2724f26fe76faf352c76294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &lt;= y. <a href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">More...</a><br /></td></tr>
+<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gae04c39422eb4e450ec8c4f45a1057b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 3 * 3 matrix. <a href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">More...</a><br /></td></tr>
+<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 4 * 4 matrix. <a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">More...</a><br /></td></tr>
+<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
+<tr class="memdesc:ga31cc82178742c36450f5662bd4fb30b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spherical linear interpolation of two quaternions. <a href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">More...</a><br /></td></tr>
+<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the normalized quaternion. <a href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">More...</a><br /></td></tr>
+<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga484c4633f7c05d8e29ee8b452350f539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x != y. <a href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">More...</a><br /></td></tr>
+<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2c08b93a4261c10748fd4d2104346f17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pitch value of euler angles expressed in radians. <a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">More...</a><br /></td></tr>
+<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 3 * 3 matrix to a quaternion. <a href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">More...</a><br /></td></tr>
+<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 4 * 4 matrix to a quaternion. <a href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">More...</a><br /></td></tr>
+<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns roll value of euler angles expressed in radians. <a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">More...</a><br /></td></tr>
+<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:gaa8f42979c921e450ff2812fb43c25702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates a quaternion from a vector of 3 components axis and an angle. <a href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">More...</a><br /></td></tr>
+<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
+<tr class="memdesc:ga22b438c7252f3fa5b773c9882471652a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spherical linear interpolation of two quaternions. <a href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">More...</a><br /></td></tr>
+<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns yaw value of euler angles expressed in radians. <a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">More...</a><br /></td></tr>
+<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00172.html">GLM_GTC_quaternion</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00088_source.html">packing.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00088_source.html">gtc/quaternion.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00088_source.html b/3rdparty/glm/doc/api/a00088_source.html
index af98a975f73..adcfd5a4645 100644
--- a/3rdparty/glm/doc/api/a00088_source.html
+++ b/3rdparty/glm/doc/api/a00088_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp Source File</title>
+<title>0.9.9 API documenation: quaternion.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,299 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">packing.hpp</div> </div>
+<div class="title">gtc/quaternion.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00088.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00035.html">detail/func_packing.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00035_html"><div class="ttname"><a href="a00035.html">func_packing.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_quaternion extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">struct </span>tquat</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">typedef</span> tquat&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">union</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">struct </span>{ T x, y, z, w;};</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">typename</span> detail::storage&lt;T, sizeof(T) * 4, detail::is_aligned&lt;P&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; };</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; T x, y, z, w;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> length_type <a class="code" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tquat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat&lt;T, P&gt; const &amp; q) GLM_DEFAULT;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat&lt;T, Q&gt; const &amp; q);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tquat(ctor);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const &amp; s, tvec3&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const &amp; w, T const &amp; x, T const &amp; y, T const &amp; z);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tquat&lt;U, Q&gt; const &amp; q);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat3x3&lt;T, P&gt;();</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat4x4&lt;T, P&gt;();</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tquat(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; u, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tquat(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator=(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator+=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator-=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator*=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; };</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator+(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator-(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator+(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator/(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q1, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q2);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q1, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q2);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>quatType&gt;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a>(quatType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, quatType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y, T a);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y, T a);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y, T a);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#gac187115710365e0b2902220b9611e7b6">equal</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">isnan</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00172.html#ga0a850f06736d25887536d0da88e63c70">isinf</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
+<div class="ttc" id="a00172_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00172_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00172_html_gac187115710365e0b2902220b9611e7b6"><div class="ttname"><a href="a00172.html#gac187115710365e0b2902220b9611e7b6">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; equal(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
+<div class="ttc" id="a00172_html_gaa8f42979c921e450ff2812fb43c25702"><div class="ttname"><a href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; rotate(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components axis and an angle. </div></div>
+<div class="ttc" id="a00172_html_ga0906a221a2037519fcf316ea5c1e3b3e"><div class="ttname"><a href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; greaterThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
+<div class="ttc" id="a00172_html_ga3e4615e9884dd0f41f5617b9848a5d9c"><div class="ttname"><a href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; quat_cast(tmat4x4&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div></div>
+<div class="ttc" id="a00172_html_gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><div class="ttname"><a href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; isnan(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...</div></div>
+<div class="ttc" id="a00172_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00172.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; conjugate(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
+<div class="ttc" id="a00172_html_ga09d21a588ae425ac7517ea65cc59a5ae"><div class="ttname"><a href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; greaterThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
+<div class="ttc" id="a00172_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; lerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; mat4_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
+<div class="ttc" id="a00172_html_ga35b6bcb22ac6d1e4a85440f5b69bdf86"><div class="ttname"><a href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; normalize(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
+<div class="ttc" id="a00172_html_gac682181783027544c8d251b4d3a60cf8"><div class="ttname"><a href="a00172.html#gac682181783027544c8d251b4d3a60cf8">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the length of the quaternion. </div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00172_html_gac54dfc83de465a2d03e90d342242ab3d"><div class="ttname"><a href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_ga7c81996ed2724f26fe76faf352c76294"><div class="ttname"><a href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; lessThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
+<div class="ttc" id="a00172_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; eulerAngles(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns euler angles, pitch as x, yaw as y, roll as z. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00172_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; slerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga484c4633f7c05d8e29ee8b452350f539"><div class="ttname"><a href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; notEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="ttc" id="a00172_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; mat3_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00172_html_ga37ae19405f1ccf766f27e4fcd035d859"><div class="ttname"><a href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">glm::angleAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; angleAxis(T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Build a quaternion from an angle and a normalized axis. </div></div>
+<div class="ttc" id="a00172_html_ga91a40d16a3b5bb47d71ac1a3fb688ffa"><div class="ttname"><a href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; lessThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
+<div class="ttc" id="a00172_html_ga0a850f06736d25887536d0da88e63c70"><div class="ttname"><a href="a00172.html#ga0a850f06736d25887536d0da88e63c70">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; isinf(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
+<div class="ttc" id="a00172_html_ga31cc82178742c36450f5662bd4fb30b0"><div class="ttname"><a href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; mix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga5f47300c024c2d809944e6ac661d6d14"><div class="ttname"><a href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; inverse(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q inverse. </div></div>
+<div class="ttc" id="a00172_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00089.html b/3rdparty/glm/doc/api/a00089.html
new file mode 100644
index 00000000000..4bff82f9ba6
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00089.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: quaternion.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gtx/quaternion.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="a00220.html">GLM_GTX_quaternion</a>
+<a href="#details">More...</a></p>
+
+<p><a href="a00089_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a cross product between a quaternion and a vector. <a href="a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">More...</a><br /></td></tr>
+<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a cross product between a vector and a quaternion. <a href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">More...</a><br /></td></tr>
+<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga17295173d4c2b5ae49b84e9993b63a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a exp of a quaternion. <a href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">More...</a><br /></td></tr>
+<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga90de879d97487ec804522dd418e5d8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the real component of a quaternion. <a href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">More...</a><br /></td></tr>
+<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:gac11bf550f17d1da14423595a27575084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion normalized linear interpolation. <a href="a00220.html#gac11bf550f17d1da14423595a27575084">More...</a><br /></td></tr>
+<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat&lt; T, P &gt; const &amp;prev, tquat&lt; T, P &gt; const &amp;curr, tquat&lt; T, P &gt; const &amp;next)</td></tr>
+<tr class="memdesc:ga56abae85b3669c866e91f3c57b298b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an intermediate control point for squad interpolation. <a href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">More...</a><br /></td></tr>
+<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga02b45352c7ac345cabc9e877314acda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared length of x. <a href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">More...</a><br /></td></tr>
+<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga791f42e134bfe97fc9c96f4668dd7489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a log of a quaternion. <a href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">More...</a><br /></td></tr>
+<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat&lt; T, P &gt; const &amp;x, T const &amp;y)</td></tr>
+<tr class="memdesc:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the y power. <a href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">More...</a><br /></td></tr>
+<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns quarternion square root. <a href="a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2">More...</a><br /></td></tr>
+<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates a 4 components vector by a quaternion. <a href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">More...</a><br /></td></tr>
+<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3&lt; T, P &gt; const &amp;orig, tvec3&lt; T, P &gt; const &amp;dest)</td></tr>
+<tr class="memdesc:gac4856d356c5c97cec74e9b672ea89240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the rotation between two vectors. <a href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">More...</a><br /></td></tr>
+<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:ga3534443de2a1a806f386976546cddc81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion interpolation using the rotation short path. <a href="a00220.html#ga3534443de2a1a806f386976546cddc81">More...</a><br /></td></tr>
+<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat&lt; T, P &gt; const &amp;q1, tquat&lt; T, P &gt; const &amp;q2, tquat&lt; T, P &gt; const &amp;s1, tquat&lt; T, P &gt; const &amp;s2, T const &amp;h)</td></tr>
+<tr class="memdesc:gae75f537becdf2b1381b4482ec96e6c82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a point on a path according squad equation. <a href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">More...</a><br /></td></tr>
+<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 3 * 3 matrix. <a href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">More...</a><br /></td></tr>
+<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaedc9fba6485eade37cc26c16df9d7aad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 4 * 4 matrix. <a href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">More...</a><br /></td></tr>
+<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gac9e3109ca60b644ce508d6b71a1697bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 3 * 3 matrix to a quaternion. <a href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc">More...</a><br /></td></tr>
+<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga808dd0f83ee8150db7e652313bde8eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 4 * 4 matrix to a quaternion. <a href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">More...</a><br /></td></tr>
+<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00220.html">GLM_GTX_quaternion</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00089_source.html">gtx/quaternion.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00089_source.html b/3rdparty/glm/doc/api/a00089_source.html
index 36f060b96e0..05cab146859 100644
--- a/3rdparty/glm/doc/api/a00089_source.html
+++ b/3rdparty/glm/doc/api/a00089_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: pages.doxy Source File</title>
+<title>0.9.9 API documenation: quaternion.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,17 +64,163 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">pages.doxy</div> </div>
+<div class="title">gtx/quaternion.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<a href="a00089.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtx/norm.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_quaternion is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_quaternion extension included&quot;)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q1,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q2,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; s1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; s2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T <span class="keyword">const</span> &amp; h);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a>(</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; prev,</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; curr,</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; next);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a>(</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a>(</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a>(</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; T <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">//template&lt;typename T, precision P&gt;</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">//tquat&lt;T, P&gt; sqrt(</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// tquat&lt;T, P&gt; const &amp; q);</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a>(</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b"> 128</a></span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a>(</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(x);}</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad"> 135</a></span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a>(</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(x);}</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc"> 142</a></span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2"> 149</a></span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#ga3534443de2a1a806f386976546cddc81">shortMix</a>(</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a>(</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; orig, </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; dest);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">length2</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
+<div class="ttc" id="a00220_html_ga42a0cf206c59eaeff4c67dd62e09a580"><div class="ttname"><a href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; pow(tquat&lt; T, P &gt; const &amp;x, T const &amp;y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="ttc" id="a00220_html_ga02b45352c7ac345cabc9e877314acda6"><div class="ttname"><a href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL T length2(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the squared length of x. </div></div>
+<div class="ttc" id="a00220_html_gaedc9fba6485eade37cc26c16df9d7aad"><div class="ttname"><a href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">glm::toMat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; toMat4(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00089_source.html#l00135">gtx/quaternion.hpp:135</a></div></div>
+<div class="ttc" id="a00220_html_ga4bfe3c7770fc43d14b8ef0058c4a86b5"><div class="ttname"><a href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; cross(tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Compute a cross product between a vector and a quaternion. </div></div>
+<div class="ttc" id="a00220_html_ga3534443de2a1a806f386976546cddc81"><div class="ttname"><a href="a00220.html#ga3534443de2a1a806f386976546cddc81">glm::shortMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; shortMix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Quaternion interpolation using the rotation short path. </div></div>
+<div class="ttc" id="a00220_html_ga01935b66ba245c2fd7dee5427d86ce9b"><div class="ttname"><a href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">glm::toMat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; toMat3(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00089_source.html#l00128">gtx/quaternion.hpp:128</a></div></div>
+<div class="ttc" id="a00220_html_gac4856d356c5c97cec74e9b672ea89240"><div class="ttname"><a href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">glm::rotation</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; rotation(tvec3&lt; T, P &gt; const &amp;orig, tvec3&lt; T, P &gt; const &amp;dest)</div><div class="ttdoc">Compute the rotation between two vectors. </div></div>
+<div class="ttc" id="a00172_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; mat4_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
+<div class="ttc" id="a00220_html_ga90de879d97487ec804522dd418e5d8a0"><div class="ttname"><a href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">glm::extractRealComponent</a></div><div class="ttdeci">GLM_FUNC_DECL T extractRealComponent(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Extract the real component of a quaternion. </div></div>
+<div class="ttc" id="a00220_html_ga56abae85b3669c866e91f3c57b298b9c"><div class="ttname"><a href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">glm::intermediate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; intermediate(tquat&lt; T, P &gt; const &amp;prev, tquat&lt; T, P &gt; const &amp;curr, tquat&lt; T, P &gt; const &amp;next)</div><div class="ttdoc">Returns an intermediate control point for squad interpolation. </div></div>
+<div class="ttc" id="a00220_html_ga17295173d4c2b5ae49b84e9993b63a62"><div class="ttname"><a href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; exp(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns a exp of a quaternion. </div></div>
+<div class="ttc" id="a00220_html_ga96575f8868b3f2aa3e13cab9b94ccbd3"><div class="ttname"><a href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotate(tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Rotates a 4 components vector by a quaternion. </div></div>
+<div class="ttc" id="a00220_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00220.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; fastMix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00220_html_ga808dd0f83ee8150db7e652313bde8eb2"><div class="ttname"><a href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">glm::toQuat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; toQuat(tmat4x4&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00089_source.html#l00149">gtx/quaternion.hpp:149</a></div></div>
+<div class="ttc" id="a00172_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; quat_cast(tmat3x3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
+<div class="ttc" id="a00172_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; mat3_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00220_html_gae75f537becdf2b1381b4482ec96e6c82"><div class="ttname"><a href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">glm::squad</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; squad(tquat&lt; T, P &gt; const &amp;q1, tquat&lt; T, P &gt; const &amp;q2, tquat&lt; T, P &gt; const &amp;s1, tquat&lt; T, P &gt; const &amp;s2, T const &amp;h)</div><div class="ttdoc">Compute a point on a path according squad equation. </div></div>
+<div class="ttc" id="a00220_html_ga791f42e134bfe97fc9c96f4668dd7489"><div class="ttname"><a href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; log(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns a log of a quaternion. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00090.html b/3rdparty/glm/doc/api/a00090.html
index ced6e852409..cbab6f33e0a 100644
--- a/3rdparty/glm/doc/api/a00090.html
+++ b/3rdparty/glm/doc/api/a00090.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: perpendicular.hpp File Reference</title>
+<title>0.9.9 API documenation: random.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,41 +64,76 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">perpendicular.hpp File Reference</div> </div>
+<div class="title">random.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00173.html">GLM_GTC_random</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00090_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
-<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
+<tr class="memdesc:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. <a href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">More...</a><br /></td></tr>
+<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
+<tr class="memdesc:gae989c26a2899b2fb7444abe7c275c29c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. <a href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">More...</a><br /></td></tr>
+<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
+<tr class="memdesc:gad3a3ee7d26502a31ba552cb627a68606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. <a href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">More...</a><br /></td></tr>
+<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
+<tr class="memdesc:ga5193a83e49e4fdc5652c084711083574"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random numbers in the interval [Min, Max], according a gaussian distribution. <a href="a00173.html#ga5193a83e49e4fdc5652c084711083574">More...</a><br /></td></tr>
+<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template&lt;typename genTYpe &gt; </td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
+<tr class="memdesc:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random numbers in the interval [Min, Max], according a linear distribution. <a href="a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716">More...</a><br /></td></tr>
+<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a> (vecType&lt; T, P &gt; const &amp;Min, vecType&lt; T, P &gt; const &amp;Max)</td></tr>
+<tr class="memdesc:gaba9cec867916d894d794a32897b7fdfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random numbers in the interval [Min, Max], according a linear distribution. <a href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">More...</a><br /></td></tr>
+<tr class="separator:gaba9cec867916d894d794a32897b7fdfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
+<tr class="memdesc:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. <a href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">More...</a><br /></td></tr>
+<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00221.html">GLM_GTX_perpendicular</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00173.html">GLM_GTC_random</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00223.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> (dependence) </dd></dl>
+gtx_random (extended) </dd></dl>
-<p>Definition in file <a class="el" href="a00090_source.html">perpendicular.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00090_source.html">random.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00090_source.html b/3rdparty/glm/doc/api/a00090_source.html
index 65255072533..e849e7a91fa 100644
--- a/3rdparty/glm/doc/api/a00090_source.html
+++ b/3rdparty/glm/doc/api/a00090_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: perpendicular.hpp Source File</title>
+<title>0.9.9 API documenation: random.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,40 +64,85 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">perpendicular.hpp</div> </div>
+<div class="title">random.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00090.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/projection.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_perpendicular extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt; </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL vecType <a class="code" href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a>(</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; vecType <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; vecType <span class="keyword">const</span> &amp; Normal);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;perpendicular.inl&quot;</span></div>
-<div class="ttc" id="a00221_html_ga41f8c73da9798a18e6b1e32f1e301f07"><div class="ttname"><a href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">glm::perp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType perp(vecType const &amp;x, vecType const &amp;Normal)</div><div class="ttdoc">Projects x a perpendicular axis of Normal. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_random extension included&quot;)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTYpe&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL genTYpe <a class="code" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; genTYpe Min,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; genTYpe Max);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Min,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Max);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00173.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; genType Mean,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; genType Deviation);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; <a class="code" href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a>(</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; T Radius);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; <a class="code" href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a>(</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T Radius);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; <a class="code" href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a>(</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; T Radius);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; <a class="code" href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a>(</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; T Radius);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;random.inl&quot;</span></div>
+<div class="ttc" id="a00173_html_gaa9a6fc2d7a295b3857f7db23b1053d9d"><div class="ttname"><a href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">glm::sphericalRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt; sphericalRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...</div></div>
+<div class="ttc" id="a00173_html_gad3a3ee7d26502a31ba552cb627a68606"><div class="ttname"><a href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">glm::diskRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt; diskRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...</div></div>
+<div class="ttc" id="a00173_html_gaba9cec867916d894d794a32897b7fdfd"><div class="ttname"><a href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">glm::linearRand</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; linearRand(vecType&lt; T, P &gt; const &amp;Min, vecType&lt; T, P &gt; const &amp;Max)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a linear distribution. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00173_html_ga5506dee301160e3a06aef9b9bc7a0a83"><div class="ttname"><a href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">glm::ballRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt; ballRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...</div></div>
+<div class="ttc" id="a00173_html_gae989c26a2899b2fb7444abe7c275c29c"><div class="ttname"><a href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">glm::circularRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt; circularRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...</div></div>
+<div class="ttc" id="a00173_html_ga5193a83e49e4fdc5652c084711083574"><div class="ttname"><a href="a00173.html#ga5193a83e49e4fdc5652c084711083574">glm::gaussRand</a></div><div class="ttdeci">GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a gaussian distribution. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00091.html b/3rdparty/glm/doc/api/a00091.html
index 8430ec600ec..fb2a731e449 100644
--- a/3rdparty/glm/doc/api/a00091.html
+++ b/3rdparty/glm/doc/api/a00091.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: polar_coordinates.hpp File Reference</title>
+<title>0.9.9 API documenation: range.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,42 +64,40 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">polar_coordinates.hpp File Reference</div> </div>
+<div class="title">range.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00221.html">GLM_GTX_range</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00091_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2&lt; T, P &gt; const &amp;polar)</td></tr>
-<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3&lt; T, P &gt; const &amp;euclidean)</td></tr>
-<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00222.html">GLM_GTX_polar_coordinates</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-06 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00221.html">GLM_GTX_range</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Joshua Moerman </dd></dl>
-<p>Definition in file <a class="el" href="a00091_source.html">polar_coordinates.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00091_source.html">range.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00091_source.html b/3rdparty/glm/doc/api/a00091_source.html
index 85f39574260..c99c54b88da 100644
--- a/3rdparty/glm/doc/api/a00091_source.html
+++ b/3rdparty/glm/doc/api/a00091_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: polar_coordinates.hpp Source File</title>
+<title>0.9.9 API documenation: range.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,43 +64,107 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">polar_coordinates.hpp</div> </div>
+<div class="title">range.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00091.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_polar_coordinates extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>);</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_range is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if !GLM_HAS_RANGE_FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_range requires C++11 suppport or &#39;range for&#39;&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_ptr.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">inline</span> length_t components(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">inline</span> length_t components(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">inline</span> length_t components(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">inline</span> length_t components(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">inline</span> length_t components(genType <span class="keyword">const</span> &amp; m)</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> m.length() * m[0].length();</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * begin(genType <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;polar_coordinates.inl&quot;</span></div>
-<div class="ttc" id="a00222_html_ga45ece1fbf7260c43e0f873c498202581"><div class="ttname"><a href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">glm::euclidean</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; euclidean(tvec2&lt; T, P &gt; const &amp;polar)</div><div class="ttdoc">Convert Polar to Euclidean coordinates. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00222_html_gafcf95a38c780a4ad5ba14c8ac9e522bb"><div class="ttname"><a href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">glm::polar</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; polar(tvec3&lt; T, P &gt; const &amp;euclidean)</div><div class="ttdoc">Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...</div></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * end(genType <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> begin(v) + components(v);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type * begin(genType&amp; v)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type * end(genType&amp; v)</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> begin(v) + components(v);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00178_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &amp;vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00092.html b/3rdparty/glm/doc/api/a00092.html
index b9cc9950ede..d9a436ffebe 100644
--- a/3rdparty/glm/doc/api/a00092.html
+++ b/3rdparty/glm/doc/api/a00092.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: precision.hpp File Reference</title>
+<title>0.9.9 API documenation: raw_data.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">precision.hpp File Reference</div> </div>
+<div class="title">raw_data.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00222.html">GLM_GTX_raw_data</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00092_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
+<tr class="memdesc:ga3005cb0d839d546c616becfa6602c607"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for byte numbers. <a href="a00222.html#ga3005cb0d839d546c616becfa6602c607">More...</a><br /></td></tr>
+<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
+<tr class="memdesc:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for dword numbers. <a href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">More...</a><br /></td></tr>
+<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
+<tr class="memdesc:ga4021754ffb8e5ef14c75802b15657714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for qword numbers. <a href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">More...</a><br /></td></tr>
+<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
+<tr class="memdesc:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for word numbers. <a href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">More...</a><br /></td></tr>
+<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-04-01 / 2013-04-01 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00222.html">GLM_GTX_raw_data</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00092_source.html">precision.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00092_source.html">raw_data.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00092_source.html b/3rdparty/glm/doc/api/a00092_source.html
index 7d19976900d..7e3df155449 100644
--- a/3rdparty/glm/doc/api/a00092_source.html
+++ b/3rdparty/glm/doc/api/a00092_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: precision.hpp Source File</title>
+<title>0.9.9 API documenation: raw_data.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,30 +64,64 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">precision.hpp</div> </div>
+<div class="title">raw_data.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00092.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">enum</span> precision</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; highp,</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; mediump,</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; lowp,</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; defaultp = highp</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; };</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/type_int.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_raw_data is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_raw_data extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00222.html#ga3005cb0d839d546c616becfa6602c607"> 34</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00222.html#ga3005cb0d839d546c616becfa6602c607">byte</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5"> 38</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a"> 42</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714"> 46</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">qword</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;raw_data.inl&quot;</span></div>
+<div class="ttc" id="a00222_html_ga4021754ffb8e5ef14c75802b15657714"><div class="ttname"><a href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">glm::qword</a></div><div class="ttdeci">detail::uint64 qword</div><div class="ttdoc">Type for qword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00092_source.html#l00046">raw_data.hpp:46</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00222_html_ga3005cb0d839d546c616becfa6602c607"><div class="ttname"><a href="a00222.html#ga3005cb0d839d546c616becfa6602c607">glm::byte</a></div><div class="ttdeci">detail::uint8 byte</div><div class="ttdoc">Type for byte numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00092_source.html#l00034">raw_data.hpp:34</a></div></div>
+<div class="ttc" id="a00222_html_ga16e9fea0ef1e6c4ef472d3d1731c49a5"><div class="ttname"><a href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">glm::word</a></div><div class="ttdeci">detail::uint16 word</div><div class="ttdoc">Type for word numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00092_source.html#l00038">raw_data.hpp:38</a></div></div>
+<div class="ttc" id="a00222_html_ga86e46fff9f80ae33893d8d697f2ca98a"><div class="ttname"><a href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">glm::dword</a></div><div class="ttdeci">detail::uint32 dword</div><div class="ttdoc">Type for dword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00092_source.html#l00042">raw_data.hpp:42</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00093.html b/3rdparty/glm/doc/api/a00093.html
index e1b77796cf9..0c19602c6c5 100644
--- a/3rdparty/glm/doc/api/a00093.html
+++ b/3rdparty/glm/doc/api/a00093.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: projection.hpp File Reference</title>
+<title>0.9.9 API documenation: reciprocal.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,39 +64,94 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">projection.hpp File Reference</div> </div>
+<div class="title">reciprocal.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00174.html">GLM_GTC_reciprocal</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00093_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
-<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">acot</a> (genType x)</td></tr>
+<tr class="memdesc:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cotangent function. <a href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">More...</a><br /></td></tr>
+<tr class="separator:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gafaca98a7100170db8841f446282debfa">acoth</a> (genType x)</td></tr>
+<tr class="memdesc:gafaca98a7100170db8841f446282debfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cotangent hyperbolic function. <a href="a00174.html#gafaca98a7100170db8841f446282debfa">More...</a><br /></td></tr>
+<tr class="separator:gafaca98a7100170db8841f446282debfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">acsc</a> (genType x)</td></tr>
+<tr class="memdesc:ga1b4bed91476b9b915e76b4a30236d330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cosecant function. <a href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">More...</a><br /></td></tr>
+<tr class="separator:ga1b4bed91476b9b915e76b4a30236d330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">acsch</a> (genType x)</td></tr>
+<tr class="memdesc:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cosecant hyperbolic function. <a href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">More...</a><br /></td></tr>
+<tr class="separator:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">asec</a> (genType x)</td></tr>
+<tr class="memdesc:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse secant function. <a href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">More...</a><br /></td></tr>
+<tr class="separator:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">asech</a> (genType x)</td></tr>
+<tr class="memdesc:gaec7586dccfe431f850d006f3824b8ca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse secant hyperbolic function. <a href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">More...</a><br /></td></tr>
+<tr class="separator:gaec7586dccfe431f850d006f3824b8ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">cot</a> (genType angle)</td></tr>
+<tr class="memdesc:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cotangent function. <a href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">More...</a><br /></td></tr>
+<tr class="separator:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">coth</a> (genType angle)</td></tr>
+<tr class="memdesc:ga6b8b770eb7198e4dea59d52e6db81442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cotangent hyperbolic function. <a href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">More...</a><br /></td></tr>
+<tr class="separator:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">csc</a> (genType angle)</td></tr>
+<tr class="memdesc:ga59dd0005b6474eea48af743b4f14ebbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cosecant function. <a href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">More...</a><br /></td></tr>
+<tr class="separator:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">csch</a> (genType angle)</td></tr>
+<tr class="memdesc:ga6d95843ff3ca6472ab399ba171d290a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cosecant hyperbolic function. <a href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">More...</a><br /></td></tr>
+<tr class="separator:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">sec</a> (genType angle)</td></tr>
+<tr class="memdesc:gae4bcbebee670c5ea155f0777b3acbd84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secant function. <a href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">More...</a><br /></td></tr>
+<tr class="separator:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">sech</a> (genType angle)</td></tr>
+<tr class="memdesc:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secant hyperbolic function. <a href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">More...</a><br /></td></tr>
+<tr class="separator:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00223.html">GLM_GTX_projection</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00174.html">GLM_GTC_reciprocal</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00093_source.html">projection.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00093_source.html">reciprocal.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00093_source.html b/3rdparty/glm/doc/api/a00093_source.html
index 880b8584985..79446fa7920 100644
--- a/3rdparty/glm/doc/api/a00093_source.html
+++ b/3rdparty/glm/doc/api/a00093_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: projection.hpp Source File</title>
+<title>0.9.9 API documenation: reciprocal.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,37 +64,96 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">projection.hpp</div> </div>
+<div class="title">reciprocal.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00093.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../geometric.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_projection extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL vecType <a class="code" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>(vecType <span class="keyword">const</span> &amp; x, vecType <span class="keyword">const</span> &amp; Normal);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;projection.inl&quot;</span></div>
-<div class="ttc" id="a00223_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &amp;x, vecType const &amp;Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_reciprocal extension included&quot;)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">sec</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">csc</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">cot</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">asec</a>(genType x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">acsc</a>(genType x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">acot</a>(genType x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">sech</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">csch</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">coth</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">asech</a>(genType x);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">acsch</a>(genType x);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00174.html#gafaca98a7100170db8841f446282debfa">acoth</a>(genType x);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#include &quot;reciprocal.inl&quot;</span></div>
+<div class="ttc" id="a00174_html_ga59dd0005b6474eea48af743b4f14ebbb"><div class="ttname"><a href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">glm::csc</a></div><div class="ttdeci">GLM_FUNC_DECL genType csc(genType angle)</div><div class="ttdoc">Cosecant function. </div></div>
+<div class="ttc" id="a00174_html_ga6b8b770eb7198e4dea59d52e6db81442"><div class="ttname"><a href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">glm::coth</a></div><div class="ttdeci">GLM_FUNC_DECL genType coth(genType angle)</div><div class="ttdoc">Cotangent hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_ga9a5cfd1e7170104a7b33863b1b75e5ae"><div class="ttname"><a href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">glm::sech</a></div><div class="ttdeci">GLM_FUNC_DECL genType sech(genType angle)</div><div class="ttdoc">Secant hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_gaeadfb9c9d71093f7865b2ba2ca8d104d"><div class="ttname"><a href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">glm::acot</a></div><div class="ttdeci">GLM_FUNC_DECL genType acot(genType x)</div><div class="ttdoc">Inverse cotangent function. </div></div>
+<div class="ttc" id="a00174_html_ga3a7b517a95bbd3ad74da3aea87a66314"><div class="ttname"><a href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">glm::cot</a></div><div class="ttdeci">GLM_FUNC_DECL genType cot(genType angle)</div><div class="ttdoc">Cotangent function. </div></div>
+<div class="ttc" id="a00174_html_gaec7586dccfe431f850d006f3824b8ca6"><div class="ttname"><a href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">glm::asech</a></div><div class="ttdeci">GLM_FUNC_DECL genType asech(genType x)</div><div class="ttdoc">Inverse secant hyperbolic function. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00174_html_gae4bcbebee670c5ea155f0777b3acbd84"><div class="ttname"><a href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">glm::sec</a></div><div class="ttdeci">GLM_FUNC_DECL genType sec(genType angle)</div><div class="ttdoc">Secant function. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00174_html_ga1b4bed91476b9b915e76b4a30236d330"><div class="ttname"><a href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">glm::acsc</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsc(genType x)</div><div class="ttdoc">Inverse cosecant function. </div></div>
+<div class="ttc" id="a00174_html_gafaca98a7100170db8841f446282debfa"><div class="ttname"><a href="a00174.html#gafaca98a7100170db8841f446282debfa">glm::acoth</a></div><div class="ttdeci">GLM_FUNC_DECL genType acoth(genType x)</div><div class="ttdoc">Inverse cotangent hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_ga2c5b7f962c2c9ff684e6d2de48db1f10"><div class="ttname"><a href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">glm::asec</a></div><div class="ttdeci">GLM_FUNC_DECL genType asec(genType x)</div><div class="ttdoc">Inverse secant function. </div></div>
+<div class="ttc" id="a00174_html_ga6d95843ff3ca6472ab399ba171d290a0"><div class="ttname"><a href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">glm::csch</a></div><div class="ttdeci">GLM_FUNC_DECL genType csch(genType angle)</div><div class="ttdoc">Cosecant hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_ga4b50aa5e5afc7e19ec113ab91596c576"><div class="ttname"><a href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">glm::acsch</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsch(genType x)</div><div class="ttdoc">Inverse cosecant hyperbolic function. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00094.html b/3rdparty/glm/doc/api/a00094.html
index 1fb0bc3cd94..5a6679fc20d 100644
--- a/3rdparty/glm/doc/api/a00094.html
+++ b/3rdparty/glm/doc/api/a00094.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp File Reference</title>
+<title>0.9.9 API documenation: rotate_normalized_axis.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,118 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtc/quaternion.hpp File Reference</div> </div>
+<div class="title">rotate_normalized_axis.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00094_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class quatType&gt; </td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
-<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
-<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
-<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:gaada623964a895def5a8b77b5b7887dc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. <a href="a00223.html#gaada623964a895def5a8b77b5b7887dc4">More...</a><br /></td></tr>
+<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:ga6c00234d844faef36a6a94669fbd1639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates a quaternion from a vector of 3 components normalized axis and an angle. <a href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">More...</a><br /></td></tr>
+<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00177.html">GLM_GTC_quaternion</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-21 / 2012-12-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-gtc_half_float (dependence) </dd>
+<a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
<dd>
-<a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd></dl>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00094_source.html">rotate_normalized_axis.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00094_source.html b/3rdparty/glm/doc/api/a00094_source.html
index 26b913ca34f..93fb9f84e92 100644
--- a/3rdparty/glm/doc/api/a00094_source.html
+++ b/3rdparty/glm/doc/api/a00094_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp Source File</title>
+<title>0.9.9 API documenation: rotate_normalized_axis.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,251 +64,68 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtc/quaternion.hpp</div> </div>
+<div class="title">rotate_normalized_axis.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00094.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_quaternion extension included&quot;)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">struct </span>tquat</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> tquat&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; T x, y, z, w;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL T &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tquat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL tquat(tquat&lt;T, P&gt; const &amp; q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tquat(tquat&lt;T, Q&gt; const &amp; q);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL explicit tquat(ctor);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL explicit tquat(T const &amp; s, tvec3&lt;T, P&gt; const &amp; v);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tquat(T const &amp; w, T const &amp; x, T const &amp; y, T const &amp; z);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tquat(tquat&lt;U, Q&gt; const &amp; q);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"># if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat3x3&lt;T, P&gt;();</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat4x4&lt;T, P&gt;();</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; u, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator=(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator+=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator*=(tquat&lt;U, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator-(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator+(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; p);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator*(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; operator/(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>quatType&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a>(quatType&lt;T, P&gt; <span class="keyword">const</span> &amp; x, quatType&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y, T a);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y, T a);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y, T a);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q, T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a>(T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00177.html#gac187115710365e0b2902220b9611e7b6">equal</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; <a class="code" href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x, tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
-<div class="ttc" id="a00177_html_gaa8f42979c921e450ff2812fb43c25702"><div class="ttname"><a href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; rotate(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components axis and an angle. </div></div>
-<div class="ttc" id="a00177_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00177_html_ga0906a221a2037519fcf316ea5c1e3b3e"><div class="ttname"><a href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; greaterThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
-<div class="ttc" id="a00177_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00177.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; conjugate(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
-<div class="ttc" id="a00177_html_gac187115710365e0b2902220b9611e7b6"><div class="ttname"><a href="a00177.html#gac187115710365e0b2902220b9611e7b6">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; equal(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; mat4_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00177_html_ga3e4615e9884dd0f41f5617b9848a5d9c"><div class="ttname"><a href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; quat_cast(tmat4x4&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; lerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_ga7c81996ed2724f26fe76faf352c76294"><div class="ttname"><a href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; lessThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
-<div class="ttc" id="a00177_html_gac682181783027544c8d251b4d3a60cf8"><div class="ttname"><a href="a00177.html#gac682181783027544c8d251b4d3a60cf8">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the length of the quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga484c4633f7c05d8e29ee8b452350f539"><div class="ttname"><a href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; notEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
-<div class="ttc" id="a00177_html_ga09d21a588ae425ac7517ea65cc59a5ae"><div class="ttname"><a href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; greaterThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
-<div class="ttc" id="a00177_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; eulerAngles(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns euler angles, yitch as x, yaw as y, roll as z. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00177_html_ga35b6bcb22ac6d1e4a85440f5b69bdf86"><div class="ttname"><a href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; normalize(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
-<div class="ttc" id="a00177_html_gac54dfc83de465a2d03e90d342242ab3d"><div class="ttname"><a href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </div></div>
-<div class="ttc" id="a00177_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00177_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; slerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00177_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; mat3_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
-<div class="ttc" id="a00177_html_ga31cc82178742c36450f5662bd4fb30b0"><div class="ttname"><a href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; mix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00177_html_ga5f47300c024c2d809944e6ac661d6d14"><div class="ttname"><a href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; inverse(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q inverse. </div></div>
-<div class="ttc" id="a00177_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00177_html_ga37ae19405f1ccf766f27e4fcd035d859"><div class="ttname"><a href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">glm::angleAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; angleAxis(T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Build a quaternion from an angle and a normalized axis. </div></div>
-<div class="ttc" id="a00177_html_ga91a40d16a3b5bb47d71ac1a3fb688ffa"><div class="ttname"><a href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; bool, P &gt; lessThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/epsilon.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_rotate_normalized_axis is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_rotate_normalized_axis extension included&quot;)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;rotate_normalized_axis.inl&quot;</span></div>
+<div class="ttc" id="a00223_html_ga6c00234d844faef36a6a94669fbd1639"><div class="ttname"><a href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">glm::rotateNormalizedAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; rotateNormalizedAxis(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components normalized axis and an angle. </div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00095.html b/3rdparty/glm/doc/api/a00095.html
index 3eb71acd28d..f7063335b8b 100644
--- a/3rdparty/glm/doc/api/a00095.html
+++ b/3rdparty/glm/doc/api/a00095.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp File Reference</title>
+<title>0.9.9 API documenation: rotate_vector.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,92 +64,92 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtx/quaternion.hpp File Reference</div> </div>
+<div class="title">rotate_vector.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00095_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat&lt; T, P &gt; const &amp;prev, tquat&lt; T, P &gt; const &amp;curr, tquat&lt; T, P &gt; const &amp;next)</td></tr>
-<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat&lt; T, P &gt; const &amp;x, T const &amp;y)</td></tr>
-<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3&lt; T, P &gt; const &amp;orig, tvec3&lt; T, P &gt; const &amp;dest)</td></tr>
-<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat&lt; T, P &gt; const &amp;q1, tquat&lt; T, P &gt; const &amp;q2, tquat&lt; T, P &gt; const &amp;s1, tquat&lt; T, P &gt; const &amp;s2, T const &amp;h)</td></tr>
-<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</td></tr>
+<tr class="memdesc:ga49b4d082305cdfcfe0a5c184f684a902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a rotation matrix from a normal and a up vector. <a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">More...</a><br /></td></tr>
+<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:ga9bff444fb191e2e089a906b899cd033d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a two dimensional vector. <a href="a00224.html#ga9bff444fb191e2e089a906b899cd033d">More...</a><br /></td></tr>
+<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around an axis. <a href="a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6">More...</a><br /></td></tr>
+<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimensional vector around an axis. <a href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">More...</a><br /></td></tr>
+<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:ga0c2dc9f8507bffcbb957db9818b18508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around the X axis. <a href="a00224.html#ga0c2dc9f8507bffcbb957db9818b18508">More...</a><br /></td></tr>
+<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gadab312d430a564741ae02215255027a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimentionnals vector around the X axis. <a href="a00224.html#gadab312d430a564741ae02215255027a0">More...</a><br /></td></tr>
+<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around the Y axis. <a href="a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3">More...</a><br /></td></tr>
+<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gae2507577c4bffa3548b32852791dd90c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimensional vector around the X axis. <a href="a00224.html#gae2507577c4bffa3548b32852791dd90c">More...</a><br /></td></tr>
+<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gae30ac01b89d4f16a972fee696c964908"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around the Z axis. <a href="a00224.html#gae30ac01b89d4f16a972fee696c964908">More...</a><br /></td></tr>
+<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:ga034e5d197ab4bd8685624bc2cf16e586"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimensional vector around the X axis. <a href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">More...</a><br /></td></tr>
+<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns Spherical interpolation between two vectors. <a href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">More...</a><br /></td></tr>
+<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00224.html">GLM_GTX_quaternion</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00095_source.html">rotate_vector.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00095_source.html b/3rdparty/glm/doc/api/a00095_source.html
index 64260ce771f..21cd8f49a14 100644
--- a/3rdparty/glm/doc/api/a00095_source.html
+++ b/3rdparty/glm/doc/api/a00095_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp Source File</title>
+<title>0.9.9 API documenation: rotate_vector.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,145 +64,117 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtx/quaternion.hpp</div> </div>
+<div class="title">rotate_vector.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00095.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtc/constants.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtx/norm.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_quaternion extension included&quot;)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../gtx/transform.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_rotate_vector is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_rotate_vector extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; <a class="code" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q1,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q2,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; s1,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; s2,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; T <span class="keyword">const</span> &amp; h);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a>(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; prev,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; curr,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; next);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a>(</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a>(</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; T <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">//template&lt;typename T, precision P&gt;</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">//tquat&lt;T, P&gt; sqrt(</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// tquat&lt;T, P&gt; const &amp; q);</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a>(</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b"> 153</a></span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a>(</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(x);}</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad"> 160</a></span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a>(</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(x);}</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a00224.html#gac9e3109ca60b644ce508d6b71a1697bc"> 167</a></span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2"> 174</a></span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#ga3534443de2a1a806f386976546cddc81">shortMix</a>(</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a>(</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; orig, </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; dest);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">length2</a>(tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#include &quot;quaternion.inl&quot;</span></div>
-<div class="ttc" id="a00224_html_ga56abae85b3669c866e91f3c57b298b9c"><div class="ttname"><a href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">glm::intermediate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; intermediate(tquat&lt; T, P &gt; const &amp;prev, tquat&lt; T, P &gt; const &amp;curr, tquat&lt; T, P &gt; const &amp;next)</div><div class="ttdoc">Returns an intermediate control point for squad interpolation. </div></div>
-<div class="ttc" id="a00224_html_ga90de879d97487ec804522dd418e5d8a0"><div class="ttname"><a href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">glm::extractRealComponent</a></div><div class="ttdeci">GLM_FUNC_DECL T extractRealComponent(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Extract the real component of a quaternion. </div></div>
-<div class="ttc" id="a00224_html_ga01935b66ba245c2fd7dee5427d86ce9b"><div class="ttname"><a href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">glm::toMat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; toMat3(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00153">gtx/quaternion.hpp:153</a></div></div>
-<div class="ttc" id="a00224_html_ga17295173d4c2b5ae49b84e9993b63a62"><div class="ttname"><a href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; exp(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns a exp of a quaternion. </div></div>
-<div class="ttc" id="a00224_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00224.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; fastMix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
-<div class="ttc" id="a00224_html_gae75f537becdf2b1381b4482ec96e6c82"><div class="ttname"><a href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">glm::squad</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; squad(tquat&lt; T, P &gt; const &amp;q1, tquat&lt; T, P &gt; const &amp;q2, tquat&lt; T, P &gt; const &amp;s1, tquat&lt; T, P &gt; const &amp;s2, T const &amp;h)</div><div class="ttdoc">Compute a point on a path according squad equation. </div></div>
-<div class="ttc" id="a00224_html_gaedc9fba6485eade37cc26c16df9d7aad"><div class="ttname"><a href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">glm::toMat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; toMat4(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00160">gtx/quaternion.hpp:160</a></div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; mat4_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00224_html_ga3534443de2a1a806f386976546cddc81"><div class="ttname"><a href="a00224.html#ga3534443de2a1a806f386976546cddc81">glm::shortMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; shortMix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Quaternion interpolation using the rotation short path. </div></div>
-<div class="ttc" id="a00224_html_ga808dd0f83ee8150db7e652313bde8eb2"><div class="ttname"><a href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">glm::toQuat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; toQuat(tmat4x4&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00174">gtx/quaternion.hpp:174</a></div></div>
-<div class="ttc" id="a00224_html_ga4bfe3c7770fc43d14b8ef0058c4a86b5"><div class="ttname"><a href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; cross(tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Compute a cross product between a vector and a quaternion. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00224_html_ga96575f8868b3f2aa3e13cab9b94ccbd3"><div class="ttname"><a href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotate(tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Rotates a 4 components vector by a quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; quat_cast(tmat3x3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
-<div class="ttc" id="a00224_html_gac4856d356c5c97cec74e9b672ea89240"><div class="ttname"><a href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">glm::rotation</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; rotation(tvec3&lt; T, P &gt; const &amp;orig, tvec3&lt; T, P &gt; const &amp;dest)</div><div class="ttdoc">Compute the rotation between two vectors. </div></div>
-<div class="ttc" id="a00177_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; mat3_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
-<div class="ttc" id="a00224_html_ga791f42e134bfe97fc9c96f4668dd7489"><div class="ttname"><a href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; log(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns a log of a quaternion. </div></div>
-<div class="ttc" id="a00224_html_ga02b45352c7ac345cabc9e877314acda6"><div class="ttname"><a href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL T length2(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the squared length of x. </div></div>
-<div class="ttc" id="a00224_html_ga42a0cf206c59eaeff4c67dd62e09a580"><div class="ttname"><a href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; pow(tquat&lt; T, P &gt; const &amp;x, T const &amp;y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>(</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; Normal,</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; Up);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#include &quot;rotate_vector.inl&quot;</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientation(tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00224_html_gaf4d59dd2f668f9ffb38048055d1316bd"><div class="ttname"><a href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotate(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</div><div class="ttdoc">Rotate a four dimensional vector around an axis. </div></div>
+<div class="ttc" id="a00224_html_ga034e5d197ab4bd8685624bc2cf16e586"><div class="ttname"><a href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">glm::rotateZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotateZ(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
+<div class="ttc" id="a00224_html_gae2507577c4bffa3548b32852791dd90c"><div class="ttname"><a href="a00224.html#gae2507577c4bffa3548b32852791dd90c">glm::rotateY</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotateY(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
+<div class="ttc" id="a00224_html_gafc9ab3101c3f3799f3d5d6d9d3baac09"><div class="ttname"><a href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; slerp(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Returns Spherical interpolation between two vectors. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00224_html_gadab312d430a564741ae02215255027a0"><div class="ttname"><a href="a00224.html#gadab312d430a564741ae02215255027a0">glm::rotateX</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotateX(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</div><div class="ttdoc">Rotate a four dimentionnals vector around the X axis. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00096.html b/3rdparty/glm/doc/api/a00096.html
index f5d7fdd5d9c..83e02b1aea3 100644
--- a/3rdparty/glm/doc/api/a00096.html
+++ b/3rdparty/glm/doc/api/a00096.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: random.hpp File Reference</title>
+<title>0.9.9 API documenation: round.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,58 +64,116 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">random.hpp File Reference</div> </div>
+<div class="title">round.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00175.html">GLM_GTC_round</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00096_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
-<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
-<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
-<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
-<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template&lt;typename genTYpe &gt; </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
-<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
-<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="memdesc:gac84898c466e609cdd2e81d9ba907d9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Higher multiple number of Source. <a href="a00175.html#gac84898c466e609cdd2e81d9ba907d9e8">More...</a><br /></td></tr>
+<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:gafe632af669ac57d670ca18e3665a12ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Higher multiple number of Source. <a href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">More...</a><br /></td></tr>
+<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:gaa73c7690c787086fa3ac1c312264acab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value, round up to a power of two. <a href="a00175.html#gaa73c7690c787086fa3ac1c312264acab">More...</a><br /></td></tr>
+<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga76ec9b214ea1376fe09a903e34bab847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value, round up to a power of two. <a href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">More...</a><br /></td></tr>
+<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="memdesc:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">More...</a><br /></td></tr>
+<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:ga6912db42d43873fe1dedb3aed2b7a239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">More...</a><br /></td></tr>
+<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:gac80f6519c31baae10d8d7bea6735d1fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value, round down to a power of two. <a href="a00175.html#gac80f6519c31baae10d8d7bea6735d1fa">More...</a><br /></td></tr>
+<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value, round down to a power of two. <a href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">More...</a><br /></td></tr>
+<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
+<tr class="memdesc:gaf7444a7b2eb524f373463ceba76b9326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the 'Value' is a multiple of 'Multiple'. <a href="a00175.html#gaf7444a7b2eb524f373463ceba76b9326">More...</a><br /></td></tr>
+<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, T Multiple)</td></tr>
+<tr class="memdesc:ga50ea5d5dc33fffba39ad6002a3784123"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the 'Value' is a multiple of 'Multiple'. <a href="a00175.html#ga50ea5d5dc33fffba39ad6002a3784123">More...</a><br /></td></tr>
+<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the 'Value' is a multiple of 'Multiple'. <a href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">More...</a><br /></td></tr>
+<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the value is a power of two number. <a href="a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec">More...</a><br /></td></tr>
+<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gad454e4c8d8cd73ddc7de855f733a1465"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the value is a power of two number. <a href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">More...</a><br /></td></tr>
+<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="memdesc:ga6739d1de04b2cea7c78675b365644bce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga6739d1de04b2cea7c78675b365644bce">More...</a><br /></td></tr>
+<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">More...</a><br /></td></tr>
+<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0">More...</a><br /></td></tr>
+<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">More...</a><br /></td></tr>
+<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00178.html">GLM_GTC_random</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-09-18 / 2011-09-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00175.html">GLM_GTC_round</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-gtx_random (extended) </dd></dl>
+<a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00096_source.html">random.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00096_source.html">round.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00096_source.html b/3rdparty/glm/doc/api/a00096_source.html
index 4ccadda8238..5fb22121069 100644
--- a/3rdparty/glm/doc/api/a00096_source.html
+++ b/3rdparty/glm/doc/api/a00096_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: random.hpp Source File</title>
+<title>0.9.9 API documenation: round.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,71 +64,119 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">random.hpp</div> </div>
+<div class="title">round.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00096.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_random extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genTYpe&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL genTYpe <a class="code" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; genTYpe Min,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; genTYpe Max);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/_vectorize.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../vector_relational.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_integer extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Min,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Max);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; genType Mean,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; genType Deviation);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; <a class="code" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a>(</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; T Radius);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; <a class="code" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a>(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; T Radius);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; <a class="code" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a>(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; T Radius);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a>(</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; T Radius);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#include &quot;random.inl&quot;</span></div>
-<div class="ttc" id="a00178_html_ga5506dee301160e3a06aef9b9bc7a0a83"><div class="ttname"><a href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">glm::ballRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt; ballRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...</div></div>
-<div class="ttc" id="a00178_html_gae989c26a2899b2fb7444abe7c275c29c"><div class="ttname"><a href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">glm::circularRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt; circularRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...</div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00178_html_ga5193a83e49e4fdc5652c084711083574"><div class="ttname"><a href="a00178.html#ga5193a83e49e4fdc5652c084711083574">glm::gaussRand</a></div><div class="ttdeci">GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a gaussian distribution. </div></div>
-<div class="ttc" id="a00178_html_ga12aebc19b85a8c736f5801c2f7b9b716"><div class="ttname"><a href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">glm::linearRand</a></div><div class="ttdeci">GLM_FUNC_DECL genTYpe linearRand(genTYpe Min, genTYpe Max)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a linear distribution. </div></div>
-<div class="ttc" id="a00178_html_gaa9a6fc2d7a295b3857f7db23b1053d9d"><div class="ttname"><a href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">glm::sphericalRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt; sphericalRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...</div></div>
-<div class="ttc" id="a00178_html_gad3a3ee7d26502a31ba552cb627a68606"><div class="ttname"><a href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">glm::diskRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt; diskRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...</div></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(genIUType Value, genIUType Multiple);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, T Multiple);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(genType Source, genType Multiple);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Source, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; genType Source,</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; genType Multiple);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Source,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; genType Source,</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; genType Multiple);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Source,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor">#include &quot;round.inl&quot;</span></div>
+<div class="ttc" id="a00175_html_gad454e4c8d8cd73ddc7de855f733a1465"><div class="ttname"><a href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">glm::isPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return true if the value is a power of two number. </div></div>
+<div class="ttc" id="a00175_html_ga7ae705574ef3e3ebfb4f537d8d285c48"><div class="ttname"><a href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">glm::isMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isMultiple(vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Return true if the &#39;Value&#39; is a multiple of &#39;Multiple&#39;. </div></div>
+<div class="ttc" id="a00175_html_gafe632af669ac57d670ca18e3665a12ca"><div class="ttname"><a href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">glm::ceilMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceilMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Higher multiple number of Source. </div></div>
+<div class="ttc" id="a00175_html_gae95be3b384f3bbd00c6c1cf0a1f96485"><div class="ttname"><a href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">glm::roundPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; roundPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
+<div class="ttc" id="a00175_html_ga10a8ab7b254257b607b6a3fc68c3e661"><div class="ttname"><a href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">glm::roundMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; roundMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
+<div class="ttc" id="a00175_html_ga6a5a8f6dd1b2f755e4572bd039062c37"><div class="ttname"><a href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">glm::floorPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floorPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value, round down to a power of tw...</div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00175_html_ga76ec9b214ea1376fe09a903e34bab847"><div class="ttname"><a href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">glm::ceilPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceilPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value, round up to a power of two...</div></div>
+<div class="ttc" id="a00175_html_ga6912db42d43873fe1dedb3aed2b7a239"><div class="ttname"><a href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">glm::floorMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floorMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00097.html b/3rdparty/glm/doc/api/a00097.html
index f643bd3667a..aab283f184b 100644
--- a/3rdparty/glm/doc/api/a00097.html
+++ b/3rdparty/glm/doc/api/a00097.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: range.hpp File Reference</title>
+<title>0.9.9 API documenation: scalar_multiplication.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,42 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">range.hpp File Reference</div> </div>
+<div class="title">scalar_multiplication.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00154.html">GTX Extensions (Experimental)</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00097_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00225.html">GLM_GTX_range</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-09-19 / 2014-09-19 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Joshua Moerman </dd></dl>
+<div class="textblock"><p><a class="el" href="a00154.html">GTX Extensions (Experimental)</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Joshua Moerman</dd></dl>
+<p>Enables scalar multiplication for all types</p>
+<p>Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic) </p>
-<p>Definition in file <a class="el" href="a00097_source.html">range.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00097_source.html">scalar_multiplication.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00097_source.html b/3rdparty/glm/doc/api/a00097_source.html
index 5f7820c6818..c8c4d29b5fc 100644
--- a/3rdparty/glm/doc/api/a00097_source.html
+++ b/3rdparty/glm/doc/api/a00097_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: range.hpp Source File</title>
+<title>0.9.9 API documenation: scalar_multiplication.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,78 +64,105 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">range.hpp</div> </div>
+<div class="title">scalar_multiplication.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00097.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#if !GLM_HAS_RANGE_FOR</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_range requires C++11 suppport or &#39;range for&#39;&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_ptr.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">/* The glm types provide a .length() member, but for matrices</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> this only defines the number of columns, so we need to work around this */</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; detail::component_count_t number_of_elements_(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v){</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> detail::component_count(v);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_scalar_multiplication is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if !GLM_HAS_TEMPLATE_ALIASES &amp;&amp; !(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;type_traits&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Vec&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">using</span> return_type_scalar_multiplication = <span class="keyword">typename</span> std::enable_if&lt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; !std::is_same&lt;T, float&gt;::value <span class="comment">// T may not be a float</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; &amp;&amp; std::is_arithmetic&lt;T&gt;::value, Vec <span class="comment">// But it may be an int or double (no vec3 or mat3, ...)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; &gt;::type;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define GLM_IMPLEMENT_SCAL_MULT(Vec) \</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> return_type_scalar_multiplication&lt;T, Vec&gt; \</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> operator*(T const &amp; s, Vec rh){ \</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> return rh *= static_cast&lt;float&gt;(s); \</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> return_type_scalar_multiplication&lt;T, Vec&gt; \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> operator*(Vec lh, T const &amp; s){ \</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"> return lh *= static_cast&lt;float&gt;(s); \</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> return_type_scalar_multiplication&lt;T, Vec&gt; \</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> operator/(Vec lh, T const &amp; s){ \</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> return lh *= 1.0f / s; \</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>)</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>)</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>)</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; detail::component_count_t number_of_elements_(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v){</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> detail::component_count(v);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; detail::component_count_t number_of_elements_(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v){</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> detail::component_count(v);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>)</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#gafb063d734266e92915d87f8943560471">mat2x3</a>)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>)</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>)</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>)</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>)</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>)</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>)</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; detail::component_count_t number_of_elements_(genType <span class="keyword">const</span> &amp; m){</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> detail::component_count(m) * detail::component_count(m[0]);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}<span class="comment">//namespace</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type * begin(genType <span class="keyword">const</span> &amp; v){</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type * end(genType <span class="keyword">const</span> &amp; v){</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> begin(v) + detail::number_of_elements_(v);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">typename</span> genType::value_type * begin(genType&amp; v){</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">typename</span> genType::value_type * end(genType&amp; v){</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> begin(v) + detail::number_of_elements_(v);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00182_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &amp;vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#undef GLM_IMPLEMENT_SCAL_MULT</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;} <span class="comment">// namespace glm</span></div>
+<div class="ttc" id="a00156_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00156.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00411">type_mat.hpp:411</a></div></div>
+<div class="ttc" id="a00156_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00389">type_mat.hpp:389</a></div></div>
+<div class="ttc" id="a00156_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00369">type_mat.hpp:369</a></div></div>
+<div class="ttc" id="a00156_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00459">type_vec.hpp:459</a></div></div>
+<div class="ttc" id="a00156_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00156.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00364">type_mat.hpp:364</a></div></div>
+<div class="ttc" id="a00156_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00454">type_vec.hpp:454</a></div></div>
+<div class="ttc" id="a00156_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00394">type_mat.hpp:394</a></div></div>
+<div class="ttc" id="a00156_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00156.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00156_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00406">type_mat.hpp:406</a></div></div>
+<div class="ttc" id="a00156_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00464">type_vec.hpp:464</a></div></div>
+<div class="ttc" id="a00156_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00374">type_mat.hpp:374</a></div></div>
+<div class="ttc" id="a00156_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00384">type_mat.hpp:384</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00098.html b/3rdparty/glm/doc/api/a00098.html
index f12a57702bd..e47b32d9e36 100644
--- a/3rdparty/glm/doc/api/a00098.html
+++ b/3rdparty/glm/doc/api/a00098.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: raw_data.hpp File Reference</title>
+<title>0.9.9 API documenation: scalar_relational.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,44 +64,40 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">raw_data.hpp File Reference</div> </div>
+<div class="title">scalar_relational.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00098_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
-<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
-<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
-<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
-<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00226.html">GLM_GTX_raw_data</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-11-19 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00098_source.html">scalar_relational.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00098_source.html b/3rdparty/glm/doc/api/a00098_source.html
index 3872d21053e..1282134c45f 100644
--- a/3rdparty/glm/doc/api/a00098_source.html
+++ b/3rdparty/glm/doc/api/a00098_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: raw_data.hpp Source File</title>
+<title>0.9.9 API documenation: scalar_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,46 +64,53 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">raw_data.hpp</div> </div>
+<div class="title">scalar_relational.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00098.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/type_int.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_raw_data extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="a00226.html#ga3005cb0d839d546c616becfa6602c607"> 59</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00226.html#ga3005cb0d839d546c616becfa6602c607">byte</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5"> 63</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a"> 67</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714"> 71</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">qword</a>;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;raw_data.inl&quot;</span></div>
-<div class="ttc" id="a00226_html_ga16e9fea0ef1e6c4ef472d3d1731c49a5"><div class="ttname"><a href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">glm::word</a></div><div class="ttdeci">detail::uint16 word</div><div class="ttdoc">Type for word numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00063">raw_data.hpp:63</a></div></div>
-<div class="ttc" id="a00226_html_ga3005cb0d839d546c616becfa6602c607"><div class="ttname"><a href="a00226.html#ga3005cb0d839d546c616becfa6602c607">glm::byte</a></div><div class="ttdeci">detail::uint8 byte</div><div class="ttdoc">Type for byte numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00059">raw_data.hpp:59</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00226_html_ga86e46fff9f80ae33893d8d697f2ca98a"><div class="ttname"><a href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">glm::dword</a></div><div class="ttdeci">detail::uint32 dword</div><div class="ttdoc">Type for dword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00067">raw_data.hpp:67</a></div></div>
-<div class="ttc" id="a00226_html_ga4021754ffb8e5ef14c75802b15657714"><div class="ttname"><a href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">glm::qword</a></div><div class="ttdeci">detail::uint64 qword</div><div class="ttdoc">Type for qword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00071">raw_data.hpp:71</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_extend is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;scalar_relational.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00099.html b/3rdparty/glm/doc/api/a00099.html
index c8ad70663a7..40e1d0cd043 100644
--- a/3rdparty/glm/doc/api/a00099.html
+++ b/3rdparty/glm/doc/api/a00099.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: reciprocal.hpp File Reference</title>
+<title>0.9.9 API documenation: setup.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,72 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">reciprocal.hpp File Reference</div> </div>
+<div class="title">setup.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00099_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga97d029f989f849b62915b068c264246b">acot</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga97d029f989f849b62915b068c264246b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">acoth</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">acsc</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">acsch</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gac9761980e09149002a466ca131a4bcac">asec</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gac9761980e09149002a466ca131a4bcac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">asech</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga450f3bf1c04751198994d26d92ac2a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">cot</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">coth</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga5df75de99f63e854087a06f538907b2c">csc</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:ga5df75de99f63e854087a06f538907b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">csch</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:ga00404a9cdf62023792d1d0afedd7f896"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">sec</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:gabb6829a472da1cc94d88afa6396bed1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">sech</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00179.html">GLM_GTC_reciprocal</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-09 / 2012-01-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00099_source.html">reciprocal.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00099_source.html">setup.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00099_source.html b/3rdparty/glm/doc/api/a00099_source.html
index 9f3d6f42f88..9d079962d1e 100644
--- a/3rdparty/glm/doc/api/a00099_source.html
+++ b/3rdparty/glm/doc/api/a00099_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: reciprocal.hpp Source File</title>
+<title>0.9.9 API documenation: setup.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,82 +64,812 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">reciprocal.hpp</div> </div>
+<div class="title">setup.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00099.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_reciprocal extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">sec</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga5df75de99f63e854087a06f538907b2c">csc</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">cot</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gac9761980e09149002a466ca131a4bcac">asec</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">acsc</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga97d029f989f849b62915b068c264246b">acot</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">sech</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">csch</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">coth</a>(genType <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE) &amp;&amp; defined(GLM_FORCE_UNRESTRICTED_GENTYPE)</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor"># error &quot;Both GLM_FORCE_SWIZZLE and GLM_FORCE_UNRESTRICTED_GENTYPE can&#39;t be defined at the same time&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Messages</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define GLM_MESSAGES_ENABLED 1</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define GLM_MESSAGES_DISABLE 0</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_MESSAGES)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"># define GLM_MESSAGES GLM_MESSAGES_ENABLED</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># define GLM_MESSAGES GLM_MESSAGES_DISABLE</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../simd/platform.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Version</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define GLM_VERSION 99</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define GLM_VERSION_MAJOR 0</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define GLM_VERSION_MINOR 9</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define GLM_VERSION_PATCH 9</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define GLM_VERSION_REVISION 0</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_VERSION_DISPLAYED)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_VERSION_DISPLAYED</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># pragma message (&quot;GLM: version 0.9.9.0&quot;)</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// Report compiler detection</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_COMPILER_DISPLAYED)</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_COMPILER_DISPLAYED</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: CUDA compiler detected&quot;)</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Visual C++ compiler detected&quot;)</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Clang compiler detected&quot;)</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Intel Compiler detected&quot;)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GCC compiler detected&quot;)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Compiler not detected&quot;)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// Build model</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#elif defined(__i386__) || defined(__ppc__)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif//</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#if !defined(GLM_MODEL) &amp;&amp; GLM_COMPILER != 0</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># error &quot;GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message.&quot;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif//GLM_MODEL</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_MODEL_DISPLAYED)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_MODEL_DISPLAYED</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># if(GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: 64 bits model&quot;)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"># elif(GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: 32 bits model&quot;)</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"># endif//GLM_MODEL</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_ARCH_DISPLAYED)</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Platform independent code&quot;)</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_AVX2)</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: AVX2 instruction set&quot;)</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_AVX)</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: AVX instruction set&quot;)</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE42)</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSE4.2 instruction set&quot;)</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE41)</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSE4.1 instruction set&quot;)</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSSE3)</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSSE3 instruction set&quot;)</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE3)</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSE3 instruction set&quot;)</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE2)</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSE2 instruction set&quot;)</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_X86)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: x86 instruction set&quot;)</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_NEON)</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: NEON instruction set&quot;)</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_ARM)</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: ARM instruction set&quot;)</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_MIPS)</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: MIPS instruction set&quot;)</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_PPC)</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: PowerPC architechture&quot;)</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"># endif//GLM_ARCH</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">asech</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">acsch</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">acoth</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#include &quot;reciprocal.inl&quot;</span></div>
-<div class="ttc" id="a00179_html_ga450f3bf1c04751198994d26d92ac2a63"><div class="ttname"><a href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">glm::asech</a></div><div class="ttdeci">GLM_FUNC_DECL genType asech(genType const &amp;x)</div><div class="ttdoc">Inverse secant hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_ga2f49e28c2634ae1a212e2fc38c42ad42"><div class="ttname"><a href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">glm::cot</a></div><div class="ttdeci">GLM_FUNC_DECL genType cot(genType const &amp;angle)</div><div class="ttdoc">Cotangent function. </div></div>
-<div class="ttc" id="a00179_html_ga00404a9cdf62023792d1d0afedd7f896"><div class="ttname"><a href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">glm::csch</a></div><div class="ttdeci">GLM_FUNC_DECL genType csch(genType const &amp;angle)</div><div class="ttdoc">Cosecant hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_gac9761980e09149002a466ca131a4bcac"><div class="ttname"><a href="a00179.html#gac9761980e09149002a466ca131a4bcac">glm::asec</a></div><div class="ttdeci">GLM_FUNC_DECL genType asec(genType const &amp;x)</div><div class="ttdoc">Inverse secant function. </div></div>
-<div class="ttc" id="a00179_html_ga97d029f989f849b62915b068c264246b"><div class="ttname"><a href="a00179.html#ga97d029f989f849b62915b068c264246b">glm::acot</a></div><div class="ttdeci">GLM_FUNC_DECL genType acot(genType const &amp;x)</div><div class="ttdoc">Inverse cotangent function. </div></div>
-<div class="ttc" id="a00179_html_ga5df75de99f63e854087a06f538907b2c"><div class="ttname"><a href="a00179.html#ga5df75de99f63e854087a06f538907b2c">glm::csc</a></div><div class="ttdeci">GLM_FUNC_DECL genType csc(genType const &amp;angle)</div><div class="ttdoc">Cosecant function. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00179_html_gabb6829a472da1cc94d88afa6396bed1f"><div class="ttname"><a href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">glm::sec</a></div><div class="ttdeci">GLM_FUNC_DECL genType sec(genType const &amp;angle)</div><div class="ttdoc">Secant function. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00179_html_gad73911994e6bb6a06cc3ea1bd89201ab"><div class="ttname"><a href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">glm::acoth</a></div><div class="ttdeci">GLM_FUNC_DECL genType acoth(genType const &amp;x)</div><div class="ttdoc">Inverse cotangent hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_ga418b31539e1a69c262712f2c7a4f27eb"><div class="ttname"><a href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">glm::acsch</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsch(genType const &amp;x)</div><div class="ttdoc">Inverse cosecant hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_gae2f1e6f7c360dda452b88e0c492d6f4d"><div class="ttname"><a href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">glm::coth</a></div><div class="ttdeci">GLM_FUNC_DECL genType coth(genType const &amp;angle)</div><div class="ttdoc">Cotangent hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_ga135e8f6b36bb85b5f7d8067e6b890e4d"><div class="ttname"><a href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">glm::acsc</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsc(genType const &amp;x)</div><div class="ttdoc">Inverse cosecant function. </div></div>
-<div class="ttc" id="a00179_html_gaaa698b992c63f454a3a1a1baa2773a3c"><div class="ttname"><a href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">glm::sech</a></div><div class="ttdeci">GLM_FUNC_DECL genType sech(genType const &amp;angle)</div><div class="ttdoc">Secant hyperbolic function. </div></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// C++ Version</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98_FLAG (1 &lt;&lt; 1)</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03_FLAG (1 &lt;&lt; 2)</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X_FLAG (1 &lt;&lt; 3)</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11_FLAG (1 &lt;&lt; 4)</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Y_FLAG (1 &lt;&lt; 5)</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14_FLAG (1 &lt;&lt; 6)</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Z_FLAG (1 &lt;&lt; 7)</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS_FLAG (1 &lt;&lt; 8)</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU_FLAG (1 &lt;&lt; 9)</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14 (GLM_LANG_CXX1Y | GLM_LANG_CXX14_FLAG)</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Z (GLM_LANG_CXX14 | GLM_LANG_CXX1Z_FLAG)</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_CXX14)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_GCC50)) || ((GLM_COMPILER &amp; GLM_COMPILER_CLANG) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_CLANG34))</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using GLM_FORCE_CXX14 with a compiler that doesn&#39;t fully support C++14&quot;)</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using GLM_FORCE_CXX14 but there is no known version of Visual C++ compiler that fully supports C++14&quot;)</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using GLM_FORCE_CXX14 but there is no known version of ICC compiler that fully supports C++14&quot;)</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"># define GLM_LANG_STL11_FORCED</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX11)</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"># if((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_GCC48)) || ((GLM_COMPILER &amp; GLM_COMPILER_CLANG) &amp;&amp; (GLM_COMPILER &lt;= GLM_COMPILER_CLANG33))</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using GLM_FORCE_CXX11 with a compiler that doesn&#39;t fully support C++11&quot;)</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using GLM_FORCE_CXX11 but there is no known version of Visual C++ compiler that fully supports C++11&quot;)</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Using GLM_FORCE_CXX11 but there is no known version of ICC compiler that fully supports C++11&quot;)</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"># define GLM_LANG_STL11_FORCED</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX03)</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX03</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX98)</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L // GLM_COMPILER_CLANG34 + -std=c++14</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor"># elif __has_feature(cxx_decltype_auto) &amp;&amp; __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_CLANG33 + -std=c++1y</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX1Y</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L // GLM_COMPILER_CLANG33 + -std=c++11</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"># elif __has_feature(cxx_static_assert) // GLM_COMPILER_CLANG29 + -std=c++11</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"># elif defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">//# elif GLM_COMPILER &gt;= GLM_COMPILER_VC14</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">//# define GLM_LANG (GLM_LANG_CXX1Y | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_VC10</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_VC10</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"># define GLM_MSC_EXT GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"># define GLM_MSC_EXT 0</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"># elif __INTEL_CXX11_MODE__</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"># define GLM_MSC_EXT GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor"># define GLM_MSC_EXT 0</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_CUDA75</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"># else // Unknown compiler</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX // Good luck with that!</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"># ifndef GLM_FORCE_PURE</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"># define GLM_FORCE_PURE</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_LANG_DISPLAYED)</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_LANG_DISPLAYED</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"># if GLM_LANG &amp; GLM_LANG_CXX1Z_FLAG</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++1z&quot;)</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX14_FLAG</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++14&quot;)</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX1Y_FLAG</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++1y&quot;)</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++11&quot;)</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX0X_FLAG</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++0x&quot;)</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX03_FLAG</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++03&quot;)</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX98_FLAG</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++98&quot;)</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++ language undetected&quot;)</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># if GLM_LANG &amp; (GLM_LANG_CXXGNU_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Language extensions enabled&quot;)</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">// Has of C++ features</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">// http://clang.llvm.org/cxx_status.html</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// http://gcc.gnu.org/projects/cxx0x.html</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment">// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment">// Android has multiple STLs but C++11 STL detection doesn&#39;t always work #284 #564</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#if GLM_PLATFORM == GLM_PLATFORM_ANDROID &amp;&amp; !defined(GLM_LANG_STL11_FORCED)</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># if defined(_LIBCPP_VERSION) &amp;&amp; GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL 1</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC48)) || \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"> ((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15))))</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">// N1720</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"># define GLM_HAS_STATIC_ASSERT 1</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># define GLM_HAS_STATIC_ASSERT ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC)) || \</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC))))</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">// N1988</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE 1</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE (\</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC11)) || \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_GCC)) || \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_CLANG)))</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment">// N2235</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr)</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR 1</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15)) || \</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC48)))) // GCC 4.6 support constexpr but there is a compiler bug causing a crash</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL (GLM_HAS_CONSTEXPR || ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14)))</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment">// N2672</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS 1</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC)) || \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA75))))</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment">// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS 1</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG)) || \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA75)) || \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC46)))</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment">// N2346</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_UNRESTRICTED_GENTYPE)</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS 0</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS 1</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC)) || \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL12)) || \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> (GLM_COMPILER &amp; GLM_COMPILER_CUDA)))</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment">// N2118</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES 1</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC)) || \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC11)) || \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment">// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC45)) || \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL14)) || \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment">// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES 1</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL12_1)) || \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC47)) || \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"># define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"># define GLM_HAS_RANGE_FOR 1</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"># define GLM_HAS_RANGE_FOR ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC46)) || \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL13)) || \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC11)) || \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment">// N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor"># define GLM_HAS_ALIGNOF __has_feature(c_alignof)</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"># define GLM_HAS_ALIGNOF 1</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"># define GLM_HAS_ALIGNOF ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC48)) || \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15)) || \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14)) || \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA70))))</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"># define GLM_HAS_ASSIGNABLE 1</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor"># define GLM_HAS_ASSIGNABLE ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC15)) || \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC49))))</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor">#define GLM_HAS_TRIVIAL_QUERIES 0</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"># define GLM_HAS_MAKE_SIGNED 1</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"># define GLM_HAS_MAKE_SIGNED ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC12)) || \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_CUDA) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS 0</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS) &amp;&amp; (\</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL)) || \</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC14) &amp;&amp; (GLM_ARCH &amp; GLM_ARCH_X86_BIT))))</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="comment">// OpenMP</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_GCC61</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 45</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_GCC49</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 40</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_GCC47</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_GCC44</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 30</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_GCC42</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 25</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_CLANG38</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_VC10</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 20</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_INTEL16</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 40</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_INTEL12</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"># endif// GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="comment">// Static assert</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#elif defined(BOOST_STATIC_ASSERT)</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor">#endif//GLM_LANG</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="comment">// Qualifiers</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor"># define GLM_VAR_USED __attribute__ ((unused))</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"># define GLM_VAR_USED</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __declspec((noinline))</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"># define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline__</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __noinline__</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"># endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment">// Swizzle operators</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="comment">// User defines: GLM_FORCE_SWIZZLE</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_ENABLED 1</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor">#define GLM_SWIZZLE_DISABLE 0</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE)</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_DISABLE</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators enabled&quot;)</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators&quot;)</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="comment">// Allows using not basic types as genType</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="comment">// #define GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"># define GLM_UNRESTRICTED_GENTYPE 1</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor"># define GLM_UNRESTRICTED_GENTYPE 0</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED)</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Use unrestricted genType&quot;)</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment">// Clip control</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor">#define GLM_DEPTH_ZERO_TO_ONE 0x00000001</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor">#define GLM_DEPTH_NEGATIVE_ONE_TO_ONE 0x00000002</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_NEGATIVE_ONE_TO_ONE</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_DEPTH_DISPLAYED)</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_DEPTH_DISPLAYED</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="preprocessor"># if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Depth clip space: Zero to one&quot;)</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Depth clip space: negative one to one&quot;)</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="comment">// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="comment">// to use left handed coordinate system by default.</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="preprocessor">#define GLM_LEFT_HANDED 0x00000001 // For DirectX, Metal, Vulkan</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor">#define GLM_RIGHT_HANDED 0x00000002 // For OpenGL, default in GLM</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_LEFT_HANDED</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_LEFT_HANDED</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_RIGHT_HANDED</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_HANDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_HANDED_DISPLAYED</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor"># if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Coordinate system: left handed&quot;)</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Coordinate system: right handed&quot;)</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="comment">// Qualifiers</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __declspec(deprecated)</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __declspec(align(x))</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __declspec(restrict)</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_VC12</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_CLANG37</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __align__(x)</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __align__(x)</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"># define GLM_ALIGN</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_FUNC</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="preprocessor"># define GLM_RESTRICT</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"># define GLM_DEFAULT = default</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_NO_CTOR_INIT</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR = default</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"># define GLM_DEFAULT</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR constexpr</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor">#elif GLM_HAS_CONSTEXPR_PARTIAL</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR_CTOR</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR_SIMD</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT explicit</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor">#define GLM_HAS_ALIGNED_TYPE GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="comment">// Length type</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="comment">// User defines: GLM_FORCE_SIZE_T_LENGTH GLM_FORCE_SIZE_FUNC</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;{</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">using</span> std::size_t;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"># if defined(GLM_FORCE_SIZE_T_LENGTH)</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_FORCE_SIZE_T_LENGTH</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"># if defined GLM_FORCE_SIZE_T_LENGTH</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of std::size_t&quot;)</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification&quot;)</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="comment">// countof</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor">#ifndef __has_feature</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"># define __has_feature(x) 0 // Compatibility with non-clang compilers.</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR_PARTIAL</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; {</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N&gt;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; constexpr std::size_t countof(T <span class="keyword">const</span> (&amp;)[N])</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">return</span> N;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) _countof(arr)</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">// Uninitialize constructors</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;{</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keyword">enum</span> ctor{uninitialize};</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00100.html b/3rdparty/glm/doc/api/a00100.html
index e959201803c..9d7899bcfcd 100644
--- a/3rdparty/glm/doc/api/a00100.html
+++ b/3rdparty/glm/doc/api/a00100.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_normalized_axis.hpp File Reference</title>
+<title>0.9.9 API documenation: spline.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,46 +64,58 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">rotate_normalized_axis.hpp File Reference</div> </div>
+<div class="title">spline.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00226.html">GLM_GTX_spline</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00100_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00226.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
+<tr class="memdesc:ga8119c04f8210fd0d292757565cd6918d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a point from a catmull rom curve. <a href="a00226.html#ga8119c04f8210fd0d292757565cd6918d">More...</a><br /></td></tr>
+<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
+<tr class="memdesc:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a point from a cubic curve. <a href="a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">More...</a><br /></td></tr>
+<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00226.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
+<tr class="memdesc:gaa69e143f6374d32f934a8edeaa50bac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a point from a hermite curve. <a href="a00226.html#gaa69e143f6374d32f934a8edeaa50bac9">More...</a><br /></td></tr>
+<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00227.html">GLM_GTX_rotate_normalized_axis</a></p>
-<dl class="section date"><dt>Date</dt><dd>2012-12-13 / 2012-12-13 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00226.html">GLM_GTX_spline</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00100_source.html">rotate_normalized_axis.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00100_source.html">spline.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00100_source.html b/3rdparty/glm/doc/api/a00100_source.html
index d85c47ac1fe..0d6d6354d05 100644
--- a/3rdparty/glm/doc/api/a00100_source.html
+++ b/3rdparty/glm/doc/api/a00100_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_normalized_axis.hpp Source File</title>
+<title>0.9.9 API documenation: spline.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,50 +64,79 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">rotate_normalized_axis.hpp</div> </div>
+<div class="title">spline.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00100.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../gtc/epsilon.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_rotate_normalized_axis extension included&quot;)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL tquat&lt;T, P&gt; <a class="code" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; tquat&lt;T, P&gt; <span class="keyword">const</span> &amp; q,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#include &quot;rotate_normalized_axis.inl&quot;</span></div>
-<div class="ttc" id="a00227_html_ga6c00234d844faef36a6a94669fbd1639"><div class="ttname"><a href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">glm::rotateNormalizedAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; rotateNormalizedAxis(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components normalized axis and an angle. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtx/optimum_pow.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_spline is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_spline extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00226.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; genType <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; genType <span class="keyword">const</span> &amp; v3, </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; genType <span class="keyword">const</span> &amp; v4, </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00226.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; genType <span class="keyword">const</span> &amp; t1, </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; genType <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; genType <span class="keyword">const</span> &amp; t2, </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; genType <span class="keyword">const</span> &amp; v2, </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; genType <span class="keyword">const</span> &amp; v3, </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; genType <span class="keyword">const</span> &amp; v4, </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;spline.inl&quot;</span></div>
+<div class="ttc" id="a00226_html_ga8119c04f8210fd0d292757565cd6918d"><div class="ttname"><a href="a00226.html#ga8119c04f8210fd0d292757565cd6918d">glm::catmullRom</a></div><div class="ttdeci">GLM_FUNC_DECL genType catmullRom(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</div><div class="ttdoc">Return a point from a catmull rom curve. </div></div>
+<div class="ttc" id="a00226_html_ga6b867eb52e2fc933d2e0bf26aabc9a70"><div class="ttname"><a href="a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">glm::cubic</a></div><div class="ttdeci">GLM_FUNC_DECL genType cubic(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</div><div class="ttdoc">Return a point from a cubic curve. </div></div>
+<div class="ttc" id="a00226_html_gaa69e143f6374d32f934a8edeaa50bac9"><div class="ttname"><a href="a00226.html#gaa69e143f6374d32f934a8edeaa50bac9">glm::hermite</a></div><div class="ttdeci">GLM_FUNC_DECL genType hermite(genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</div><div class="ttdoc">Return a point from a hermite curve. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00101.html b/3rdparty/glm/doc/api/a00101.html
index 6d5b08a718f..515a3d4f24e 100644
--- a/3rdparty/glm/doc/api/a00101.html
+++ b/3rdparty/glm/doc/api/a00101.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_vector.hpp File Reference</title>
+<title>0.9.9 API documenation: std_based_type.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,71 +64,72 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">rotate_vector.hpp File Reference</div> </div>
+<div class="title">std_based_type.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00227.html">GLM_GTX_std_based_type</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00101_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</td></tr>
-<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
+<tr class="memdesc:ga47c940f279a6b97ffc301eb4526a445a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of one std::size_t component. <a href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a">More...</a><br /></td></tr>
+<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
+<tr class="memdesc:ga77d0b061efa41cb2ed2285d09294314e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of one std::size_t component. <a href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e">More...</a><br /></td></tr>
+<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
+<tr class="memdesc:gac0ef172641a1555684da0beb735c2a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of two std::size_t components. <a href="a00227.html#gac0ef172641a1555684da0beb735c2a79">More...</a><br /></td></tr>
+<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
+<tr class="memdesc:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of two std::size_t components. <a href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e">More...</a><br /></td></tr>
+<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
+<tr class="memdesc:ga51b5e9650c459973134ffb4236ae88b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of three std::size_t components. <a href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6">More...</a><br /></td></tr>
+<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
+<tr class="memdesc:gad364e6c302642e3bb89d756df5d0c8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of three std::size_t components. <a href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6">More...</a><br /></td></tr>
+<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
+<tr class="memdesc:gaf07a3f432e328c99d35637225c988121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of four std::size_t components. <a href="a00227.html#gaf07a3f432e328c99d35637225c988121">More...</a><br /></td></tr>
+<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
+<tr class="memdesc:ga06862b7d59094244025d34407b2cb796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of four std::size_t components. <a href="a00227.html#ga06862b7d59094244025d34407b2cb796">More...</a><br /></td></tr>
+<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00228.html">GLM_GTX_rotate_vector</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-11-02 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00227.html">GLM_GTX_std_based_type</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00101_source.html">rotate_vector.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00101_source.html b/3rdparty/glm/doc/api/a00101_source.html
index a333c389b5c..14d12d5b762 100644
--- a/3rdparty/glm/doc/api/a00101_source.html
+++ b/3rdparty/glm/doc/api/a00101_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_vector.hpp Source File</title>
+<title>0.9.9 API documenation: std_based_type.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,99 +64,76 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">rotate_vector.hpp</div> </div>
+<div class="title">std_based_type.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00101.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/transform.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_rotate_vector extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; T <span class="keyword">const</span> &amp; a);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; <a class="code" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; normal);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; <a class="code" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; <a class="code" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; T <span class="keyword">const</span> &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>(</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; Normal,</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; Up);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#include &quot;rotate_vector.inl&quot;</span></div>
-<div class="ttc" id="a00228_html_ga034e5d197ab4bd8685624bc2cf16e586"><div class="ttname"><a href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">glm::rotateZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotateZ(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
-<div class="ttc" id="a00228_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; orientation(tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
-<div class="ttc" id="a00228_html_gaf4d59dd2f668f9ffb38048055d1316bd"><div class="ttname"><a href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotate(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</div><div class="ttdoc">Rotate a four dimensional vector around an axis. </div></div>
-<div class="ttc" id="a00228_html_gadab312d430a564741ae02215255027a0"><div class="ttname"><a href="a00228.html#gadab312d430a564741ae02215255027a0">glm::rotateX</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotateX(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</div><div class="ttdoc">Rotate a four dimentionnals vector around the X axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00228_html_gafc9ab3101c3f3799f3d5d6d9d3baac09"><div class="ttname"><a href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; slerp(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Returns Spherical interpolation between two vectors. </div></div>
-<div class="ttc" id="a00228_html_gae2507577c4bffa3548b32852791dd90c"><div class="ttname"><a href="a00228.html#gae2507577c4bffa3548b32852791dd90c">glm::rotateY</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, P &gt; rotateY(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_std_based_type is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_std_based_type extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a"> 34</a></span>&#160; <span class="keyword">typedef</span> tvec1&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00227.html#gac0ef172641a1555684da0beb735c2a79"> 38</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#gac0ef172641a1555684da0beb735c2a79">size2</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6"> 42</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00227.html#gaf07a3f432e328c99d35637225c988121"> 46</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#gaf07a3f432e328c99d35637225c988121">size4</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e"> 50</a></span>&#160; <span class="keyword">typedef</span> tvec1&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e"> 54</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6"> 58</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="a00227.html#ga06862b7d59094244025d34407b2cb796"> 62</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;std::size_t, defaultp&gt; <a class="code" href="a00227.html#ga06862b7d59094244025d34407b2cb796">size4_t</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;std_based_type.inl&quot;</span></div>
+<div class="ttc" id="a00227_html_ga77d0b061efa41cb2ed2285d09294314e"><div class="ttname"><a href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e">glm::size1_t</a></div><div class="ttdeci">tvec1&lt; std::size_t, defaultp &gt; size1_t</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00050">std_based_type.hpp:50</a></div></div>
+<div class="ttc" id="a00227_html_gad364e6c302642e3bb89d756df5d0c8c6"><div class="ttname"><a href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6">glm::size3_t</a></div><div class="ttdeci">tvec3&lt; std::size_t, defaultp &gt; size3_t</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00058">std_based_type.hpp:58</a></div></div>
+<div class="ttc" id="a00227_html_ga06862b7d59094244025d34407b2cb796"><div class="ttname"><a href="a00227.html#ga06862b7d59094244025d34407b2cb796">glm::size4_t</a></div><div class="ttdeci">tvec4&lt; std::size_t, defaultp &gt; size4_t</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00062">std_based_type.hpp:62</a></div></div>
+<div class="ttc" id="a00227_html_gac0ef172641a1555684da0beb735c2a79"><div class="ttname"><a href="a00227.html#gac0ef172641a1555684da0beb735c2a79">glm::size2</a></div><div class="ttdeci">tvec2&lt; std::size_t, defaultp &gt; size2</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00038">std_based_type.hpp:38</a></div></div>
+<div class="ttc" id="a00227_html_gaf07a3f432e328c99d35637225c988121"><div class="ttname"><a href="a00227.html#gaf07a3f432e328c99d35637225c988121">glm::size4</a></div><div class="ttdeci">tvec4&lt; std::size_t, defaultp &gt; size4</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00046">std_based_type.hpp:46</a></div></div>
+<div class="ttc" id="a00227_html_ga51b5e9650c459973134ffb4236ae88b6"><div class="ttname"><a href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6">glm::size3</a></div><div class="ttdeci">tvec3&lt; std::size_t, defaultp &gt; size3</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00042">std_based_type.hpp:42</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00227_html_ga47c940f279a6b97ffc301eb4526a445a"><div class="ttname"><a href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a">glm::size1</a></div><div class="ttdeci">tvec1&lt; std::size_t, defaultp &gt; size1</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00034">std_based_type.hpp:34</a></div></div>
+<div class="ttc" id="a00227_html_gaa7d72bbe318d27da9d30f27095e4c75e"><div class="ttname"><a href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e">glm::size2_t</a></div><div class="ttdeci">tvec2&lt; std::size_t, defaultp &gt; size2_t</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00054">std_based_type.hpp:54</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00102.html b/3rdparty/glm/doc/api/a00102.html
index 1314d7de7f4..c11d778a9a2 100644
--- a/3rdparty/glm/doc/api/a00102.html
+++ b/3rdparty/glm/doc/api/a00102.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: round.hpp File Reference</title>
+<title>0.9.9 API documenation: string_cast.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,89 +64,54 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">round.hpp File Reference</div> </div>
+<div class="title">string_cast.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00228.html">GLM_GTX_string_cast</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00102_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
-<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, T Multiple)</td></tr>
-<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class matType, typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string from a GLM vector or matrix typed variable. <a href="a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6">More...</a><br /></td></tr>
+<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00180.html">GLM_GTC_round</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-11-03 / 2014-11-03 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00228.html">GLM_GTX_string_cast</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00199.html" title="Add support for integer for core functions. ">GLM_GTX_integer</a> (dependence) </dd>
<dd>
-<a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> (dependence) </dd></dl>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00102_source.html">round.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00102_source.html">string_cast.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00102_source.html b/3rdparty/glm/doc/api/a00102_source.html
index fc7fa8ab27a..5d2502ab92e 100644
--- a/3rdparty/glm/doc/api/a00102_source.html
+++ b/3rdparty/glm/doc/api/a00102_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: round.hpp Source File</title>
+<title>0.9.9 API documenation: string_cast.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,105 +64,63 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">round.hpp</div> </div>
+<div class="title">string_cast.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00102.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/_vectorize.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../vector_relational.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_integer extension included&quot;)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genIUType&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(genIUType Value, genIUType Multiple);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, T Multiple);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Value, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(genType Source, genType Multiple);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Source, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; genType Source,</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; genType Multiple);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Source,</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; genType Source,</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; genType Multiple);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL vecType&lt;T, P&gt; <a class="code" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Source,</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; Multiple);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#include &quot;round.inl&quot;</span></div>
-<div class="ttc" id="a00180_html_gad454e4c8d8cd73ddc7de855f733a1465"><div class="ttname"><a href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">glm::isPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return true if the value is a power of two number. </div></div>
-<div class="ttc" id="a00180_html_gae95be3b384f3bbd00c6c1cf0a1f96485"><div class="ttname"><a href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">glm::roundPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; roundPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
-<div class="ttc" id="a00180_html_ga6a5a8f6dd1b2f755e4572bd039062c37"><div class="ttname"><a href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">glm::floorPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floorPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value, round down to a power of tw...</div></div>
-<div class="ttc" id="a00180_html_ga76ec9b214ea1376fe09a903e34bab847"><div class="ttname"><a href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">glm::ceilPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceilPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value, round up to a power of two...</div></div>
-<div class="ttc" id="a00180_html_gafe632af669ac57d670ca18e3665a12ca"><div class="ttname"><a href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">glm::ceilMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceilMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Higher multiple number of Source. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00180_html_ga6912db42d43873fe1dedb3aed2b7a239"><div class="ttname"><a href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">glm::floorMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floorMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
-<div class="ttc" id="a00180_html_ga10a8ab7b254257b607b6a3fc68c3e661"><div class="ttname"><a href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">glm::roundMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; roundMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
-<div class="ttc" id="a00180_html_ga7ae705574ef3e3ebfb4f537d8d285c48"><div class="ttname"><a href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">glm::isMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isMultiple(vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)</div><div class="ttdoc">Return true if the &#39;Value&#39; is a multiple of &#39;Multiple&#39;. </div></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_precision.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../gtx/dual_quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_string_cast is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_CUDA)</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_string_cast is not supported on CUDA compiler&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_string_cast extension included&quot;)</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL std::string <a class="code" href="a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;string_cast.inl&quot;</span></div>
+<div class="ttc" id="a00228_html_ga7b4f9233593bbf1d53762f801ef56fe6"><div class="ttname"><a href="a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6">glm::to_string</a></div><div class="ttdeci">GLM_FUNC_DECL std::string to_string(matType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Create a string from a GLM vector or matrix typed variable. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00103.html b/3rdparty/glm/doc/api/a00103.html
index c50519f894c..0cf2987dff8 100644
--- a/3rdparty/glm/doc/api/a00103.html
+++ b/3rdparty/glm/doc/api/a00103.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_multiplication.hpp File Reference</title>
+<title>0.9.9 API documenation: transform.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,31 +64,64 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">scalar_multiplication.hpp File Reference</div> </div>
+<div class="title">transform.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00229.html">GLM_GTX_transform</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00103_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga2020c91bf61e050882b3a5c18eada700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. <a href="a00229.html#ga2020c91bf61e050882b3a5c18eada700">More...</a><br /></td></tr>
+<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1972d4a66a2e92637c8aaee598417a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. <a href="a00229.html#ga1972d4a66a2e92637c8aaee598417a71">More...</a><br /></td></tr>
+<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga838c4505ef7f254ed05117b1ac9691fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. <a href="a00229.html#ga838c4505ef7f254ed05117b1ac9691fb">More...</a><br /></td></tr>
+<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-09-22 / 2014-09-22 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Joshua Moerman</dd></dl>
-<p>Enables scalar multiplication for all types</p>
-<p>Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic) </p>
+<div class="textblock"><p><a class="el" href="a00229.html">GLM_GTX_transform</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
+<dd>
+<a class="el" href="a00230.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00103_source.html">scalar_multiplication.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00103_source.html">transform.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00103_source.html b/3rdparty/glm/doc/api/a00103_source.html
index 7fee84e85f6..fcaccd17815 100644
--- a/3rdparty/glm/doc/api/a00103_source.html
+++ b/3rdparty/glm/doc/api/a00103_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_multiplication.hpp Source File</title>
+<title>0.9.9 API documenation: transform.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,87 +64,69 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">scalar_multiplication.hpp</div> </div>
+<div class="title">transform.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00103.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#if !GLM_HAS_TEMPLATE_ALIASES &amp;&amp; !(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtc/matrix_transform.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_transform is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_transform extension included&quot;)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00229.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00229.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &lt;type_traits&gt;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Vec&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">using</span> return_type_scalar_multiplication = <span class="keyword">typename</span> std::enable_if&lt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; !std::is_same&lt;T, float&gt;::value <span class="comment">// T may not be a float</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; &amp;&amp; std::is_arithmetic&lt;T&gt;::value, Vec <span class="comment">// But it may be an int or double (no vec3 or mat3, ...)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; &gt;::type;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define GLM_IMPLEMENT_SCAL_MULT(Vec) \</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> return_type_scalar_multiplication&lt;T, Vec&gt; \</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> operator*(T const &amp; s, Vec rh){ \</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor"> return rh *= static_cast&lt;float&gt;(s); \</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> return_type_scalar_multiplication&lt;T, Vec&gt; \</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"> operator*(Vec lh, T const &amp; s){ \</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"> return lh *= static_cast&lt;float&gt;(s); \</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> return_type_scalar_multiplication&lt;T, Vec&gt; \</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> operator/(Vec lh, T const &amp; s){ \</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> return lh *= 1.0f / s; \</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>)</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>)</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>)</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>)</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>)</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>)</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>)</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>)</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>)</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>)</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>)</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>)</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#undef GLM_IMPLEMENT_SCAL_MULT</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;} <span class="comment">// namespace glm</span></div>
-<div class="ttc" id="a00163_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00410">type_mat.hpp:410</a></div></div>
-<div class="ttc" id="a00163_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00432">type_mat.hpp:432</a></div></div>
-<div class="ttc" id="a00163_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00395">type_mat.hpp:395</a></div></div>
-<div class="ttc" id="a00163_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00163.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00390">type_mat.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00400">type_mat.hpp:400</a></div></div>
-<div class="ttc" id="a00163_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00163.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00437">type_mat.hpp:437</a></div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00420">type_mat.hpp:420</a></div></div>
-<div class="ttc" id="a00163_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00415">type_mat.hpp:415</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00229.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;transform.inl&quot;</span></div>
+<div class="ttc" id="a00229_html_ga2020c91bf61e050882b3a5c18eada700"><div class="ttname"><a href="a00229.html#ga2020c91bf61e050882b3a5c18eada700">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; rotate(T angle, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians...</div></div>
+<div class="ttc" id="a00229_html_ga1972d4a66a2e92637c8aaee598417a71"><div class="ttname"><a href="a00229.html#ga1972d4a66a2e92637c8aaee598417a71">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </div></div>
+<div class="ttc" id="a00229_html_ga838c4505ef7f254ed05117b1ac9691fb"><div class="ttname"><a href="a00229.html#ga838c4505ef7f254ed05117b1ac9691fb">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; translate(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00104.html b/3rdparty/glm/doc/api/a00104.html
index 6898261e33c..6f93ab61bdd 100644
--- a/3rdparty/glm/doc/api/a00104.html
+++ b/3rdparty/glm/doc/api/a00104.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_relational.hpp File Reference</title>
+<title>0.9.9 API documenation: transform2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,30 +64,84 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">scalar_relational.hpp File Reference</div> </div>
+<div class="title">transform2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00230.html">GLM_GTX_transform2</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00104_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
+<tr class="memdesc:gacfce1085167a8bfb71a55ea14d22752f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build planar projection matrix along normal axis. <a href="a00230.html#gacfce1085167a8bfb71a55ea14d22752f">More...</a><br /></td></tr>
+<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
+<tr class="memdesc:gafab0418f2503ec2133cb2de828cc482a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build planar projection matrix along normal axis. <a href="a00230.html#gafab0418f2503ec2133cb2de828cc482a">More...</a><br /></td></tr>
+<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
+<tr class="memdesc:ga2874abd228989556d610a0bff993667a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a scale bias matrix. <a href="a00230.html#ga2874abd228989556d610a0bff993667a">More...</a><br /></td></tr>
+<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)</td></tr>
+<tr class="memdesc:gac1a1139e2980021422d1fc1c42dc74f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a scale bias matrix. <a href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">More...</a><br /></td></tr>
+<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
+<tr class="memdesc:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on X axis. <a href="a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">More...</a><br /></td></tr>
+<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T y, T z)</td></tr>
+<tr class="memdesc:gae06ce274e4754f925d5d68440e89452e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. <a href="a00230.html#gae06ce274e4754f925d5d68440e89452e">More...</a><br /></td></tr>
+<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
+<tr class="memdesc:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on Y axis. <a href="a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">More...</a><br /></td></tr>
+<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T z)</td></tr>
+<tr class="memdesc:ga31253ea18fdcdfde08c134c8b67688f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on Y axis. <a href="a00230.html#ga31253ea18fdcdfde08c134c8b67688f7">More...</a><br /></td></tr>
+<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T y)</td></tr>
+<tr class="memdesc:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on Z axis. <a href="a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51">More...</a><br /></td></tr>
+<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00229.html">GLM_GTX_scalar_relational</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-02-04 / 2013-02-04 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00230.html">GLM_GTX_transform2</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00104_source.html">scalar_relational.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00104_source.html">transform2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00104_source.html b/3rdparty/glm/doc/api/a00104_source.html
index 335096cc2a2..4ffb83ba42c 100644
--- a/3rdparty/glm/doc/api/a00104_source.html
+++ b/3rdparty/glm/doc/api/a00104_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_relational.hpp Source File</title>
+<title>0.9.9 API documenation: transform2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,118 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">scalar_relational.hpp</div> </div>
+<div class="title">transform2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00104.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../gtx/transform.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_transform2 is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_transform2 extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T y);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; T x);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_extend extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;scalar_relational.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00230.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; T y, </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; T z);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00230.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m, </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; T x, </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; T z);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a>(</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m, </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; T x, </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; T y);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">//template &lt;typename T&gt; GLM_FUNC_QUALIFIER tmat4x4&lt;T, P&gt; shear(const tmat4x4&lt;T, P&gt; &amp; m, shearPlane, planePoint, angle)</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// - dot(PointOnPlane, normal) * OnPlaneVector 1</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Reflect functions seem to don&#39;t work</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">//template &lt;typename T&gt; tmat3x3&lt;T, P&gt; reflect2D(const tmat3x3&lt;T, P&gt; &amp; m, const tvec3&lt;T, P&gt;&amp; normal){return reflect2DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">//template &lt;typename T&gt; tmat4x4&lt;T, P&gt; reflect3D(const tmat4x4&lt;T, P&gt; &amp; m, const tvec3&lt;T, P&gt;&amp; normal){return reflect3DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00230.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a>(</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">const</span> tmat3x3&lt;T, P&gt; &amp; m, </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; normal);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00230.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a>(</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m, </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; normal);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType, precision P&gt; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; <a class="code" href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; valType <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; valType bias);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType, precision P&gt; </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; <a class="code" href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; tmat4x4&lt;valType, P&gt; <span class="keyword">const</span> &amp; m, </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; valType <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; valType bias);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#include &quot;transform2.inl&quot;</span></div>
+<div class="ttc" id="a00230_html_gac1a1139e2980021422d1fc1c42dc74f2"><div class="ttname"><a href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">glm::scaleBias</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt; scaleBias(tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)</div><div class="ttdoc">Build a scale bias matrix. </div></div>
+<div class="ttc" id="a00230_html_gacfce1085167a8bfb71a55ea14d22752f"><div class="ttname"><a href="a00230.html#gacfce1085167a8bfb71a55ea14d22752f">glm::proj2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; proj2D(const tmat3x3&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
+<div class="ttc" id="a00230_html_ga21ade82859e09a5cdaf4a01fbf8dc61b"><div class="ttname"><a href="a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">glm::shearY2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; shearY2D(tmat3x3&lt; T, P &gt; const &amp;m, T x)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
+<div class="ttc" id="a00230_html_ga31253ea18fdcdfde08c134c8b67688f7"><div class="ttname"><a href="a00230.html#ga31253ea18fdcdfde08c134c8b67688f7">glm::shearY3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; shearY3D(const tmat4x4&lt; T, P &gt; &amp;m, T x, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
+<div class="ttc" id="a00230_html_gafab0418f2503ec2133cb2de828cc482a"><div class="ttname"><a href="a00230.html#gafab0418f2503ec2133cb2de828cc482a">glm::proj3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; proj3D(const tmat4x4&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
+<div class="ttc" id="a00230_html_gae06ce274e4754f925d5d68440e89452e"><div class="ttname"><a href="a00230.html#gae06ce274e4754f925d5d68440e89452e">glm::shearX3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; shearX3D(const tmat4x4&lt; T, P &gt; &amp;m, T y, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </div></div>
+<div class="ttc" id="a00230_html_ga10f6c62d8f827c4cacedb71fd05e4ba2"><div class="ttname"><a href="a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">glm::shearX2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; shearX2D(tmat3x3&lt; T, P &gt; const &amp;m, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis. </div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00230_html_ga5558ac64a7144685bf2eb4483a0e2f51"><div class="ttname"><a href="a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51">glm::shearZ3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; shearZ3D(const tmat4x4&lt; T, P &gt; &amp;m, T x, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on Z axis. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00105.html b/3rdparty/glm/doc/api/a00105.html
index 4de0bde6e32..912a6c0d803 100644
--- a/3rdparty/glm/doc/api/a00105.html
+++ b/3rdparty/glm/doc/api/a00105.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: setup.hpp File Reference</title>
+<title>0.9.9 API documenation: trigonometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">setup.hpp File Reference</div> </div>
+<div class="title">trigonometric.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00105_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-11-13 / 2014-10-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00105_source.html">setup.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00105_source.html">trigonometric.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00105_source.html b/3rdparty/glm/doc/api/a00105_source.html
index f08df23b458..500f2b361ce 100644
--- a/3rdparty/glm/doc/api/a00105_source.html
+++ b/3rdparty/glm/doc/api/a00105_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: setup.hpp Source File</title>
+<title>0.9.9 API documenation: trigonometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,1000 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">setup.hpp</div> </div>
+<div class="title">trigonometric.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00105.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Version</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define GLM_VERSION 97</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define GLM_VERSION_MAJOR 0</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define GLM_VERSION_MINOR 9</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define GLM_VERSION_PATCH 7</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define GLM_VERSION_REVISION 0</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_VERSION_DISPLAYED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_VERSION_DISPLAYED</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message (&quot;GLM: version 0.9.7&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// Platform</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_UNKNOWN 0x00000000</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_WINDOWS 0x00010000</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_LINUX 0x00020000</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_APPLE 0x00040000</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">//#define GLM_PLATFORM_IOS 0x00080000</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_ANDROID 0x00100000</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_CHROME_NACL 0x00200000</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_UNIX 0x00400000</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_QNXNTO 0x00800000</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define GLM_PLATFORM_WINCE 0x01000000</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#elif defined(__QNXNTO__)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_QNXNTO</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#elif defined(__APPLE__)</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_APPLE</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#elif defined(WINCE)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_WINCE</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#elif defined(_WIN32)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_WINDOWS</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#elif defined(__native_client__)</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#elif defined(__ANDROID__)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_ANDROID</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#elif defined(__linux)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_LINUX</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#elif defined(__unix)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_UNIX</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif//</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// Report platform detection</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_PLATFORM_DISPLAYED</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"># if(GLM_PLATFORM &amp; GLM_PLATFORM_QNXNTO)</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: QNX platform detected&quot;)</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">//# elif(GLM_PLATFORM &amp; GLM_PLATFORM_IOS)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">//# pragma message(&quot;GLM: iOS platform detected&quot;)</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_APPLE)</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Apple platform detected&quot;)</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_WINCE)</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: WinCE platform detected&quot;)</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS)</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Windows platform detected&quot;)</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_CHROME_NACL)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Native Client detected&quot;)</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_ANDROID)</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Android platform detected&quot;)</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_LINUX)</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Linux platform detected&quot;)</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_UNIX)</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: UNIX platform detected&quot;)</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"># elif(GLM_PLATFORM &amp; GLM_PLATFORM_UNKNOWN)</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: platform unknown&quot;)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: platform not detected&quot;)</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// Compiler</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// User defines: GLM_FORCE_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// TODO ? __llvm__</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#define GLM_COMPILER_UNKNOWN 0x00000000</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// Intel</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL 0x00100000</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL12 0x00100010</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL12_1 0x00100020</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL13 0x00100030</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL14 0x00100040</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL15 0x00100050</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#define GLM_COMPILER_INTEL16 0x00100060</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">// Visual C++ defines</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#define GLM_COMPILER_VC 0x01000000</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define GLM_COMPILER_VC2010 0x01000090</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#define GLM_COMPILER_VC2012 0x010000A0</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#define GLM_COMPILER_VC2013 0x010000B0</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#define GLM_COMPILER_VC2015 0x010000C0</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// GCC defines</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC 0x02000000</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC44 0x020000B0</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC45 0x020000C0</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC46 0x020000D0</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC47 0x020000E0</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC48 0x020000F0</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC49 0x02000100</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC50 0x02000200</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC51 0x02000300</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC52 0x02000400</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#define GLM_COMPILER_GCC53 0x02000500</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">// CUDA</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA 0x10000000</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA40 0x10000040</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA41 0x10000050</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA42 0x10000060</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA50 0x10000070</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA60 0x10000080</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA65 0x10000090</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA70 0x100000A0</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#define GLM_COMPILER_CUDA75 0x100000B0</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// LLVM</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM 0x20000000</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM32 0x20000030</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM33 0x20000040</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM34 0x20000050</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM35 0x20000060</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM36 0x20000070</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM37 0x20000080</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM38 0x20000090</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#define GLM_COMPILER_LLVM39 0x200000A0</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Apple Clang</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG 0x40000000</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG40 0x40000010</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG41 0x40000020</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG42 0x40000030</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG50 0x40000040</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG51 0x40000050</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG60 0x40000060</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG61 0x40000070</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// Build model</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#define GLM_MODEL_32 0x00000010</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#define GLM_MODEL_64 0x00000020</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// Force generic C++ compiler</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#elif defined(__INTEL_COMPILER)</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor"># if __INTEL_COMPILER == 1200</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL12</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor"># elif __INTEL_COMPILER == 1210</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL12_1</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"># elif __INTEL_COMPILER == 1300</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL13</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"># elif __INTEL_COMPILER == 1400</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL14</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"># elif __INTEL_COMPILER &gt;= 1500</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL15</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"># elif __INTEL_COMPILER &gt;= 1600</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL16</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// CUDA</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#elif defined(__CUDACC__)</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor"># if !defined(CUDA_VERSION) &amp;&amp; !defined(GLM_FORCE_CUDA)</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"># include &lt;cuda.h&gt;</span> <span class="comment">// make sure version is defined since nvcc does not define it itself!</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor"># if CUDA_VERSION &lt; 3000</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor"># error &quot;GLM requires CUDA 3.0 or higher&quot;</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">// Visual C++</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#elif defined(_MSC_VER)</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"># if _MSC_VER &lt; 1600</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"># error &quot;GLM requires Visual C++ 2010 or higher&quot;</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"># elif _MSC_VER == 1600</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"># elif _MSC_VER == 1700</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2012</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"># elif _MSC_VER == 1800</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2013</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor"># elif _MSC_VER &gt;= 1900</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2015</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor"># else//_MSC_VER</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor"># endif//_MSC_VER</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">// Clang</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#elif defined(__clang__)</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"># if GLM_PLATFORM &amp; GLM_PLATFORM_APPLE</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"># if __clang_major__ == 4 &amp;&amp; __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG40</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"># elif __clang_major__ == 4 &amp;&amp; __clang_minor__ == 1</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG41</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor"># elif __clang_major__ == 4 &amp;&amp; __clang_minor__ == 2</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG42</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"># elif __clang_major__ == 5 &amp;&amp; __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG50</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"># elif __clang_major__ == 5 &amp;&amp; __clang_minor__ == 1</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG51</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"># elif __clang_major__ == 6 &amp;&amp; __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG60</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"># elif __clang_major__ == 6 &amp;&amp; __clang_minor__ &gt;= 1</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG61</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"># elif __clang_major__ &gt;= 7</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG61</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># if __clang_major__ == 3 &amp;&amp; __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM30</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 1</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM31</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 2</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM32</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 3</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM33</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 4</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM34</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 5</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM35</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 6</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM36</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 7</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM37</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ == 8</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM38</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"># elif __clang_major__ == 3 &amp;&amp; __clang_minor__ &gt;= 9</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM39</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># elif __clang_major__ &gt;= 4</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM39</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// G++</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) || defined(__MINGW32__)</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor"># if (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 2)</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC42)</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 3)</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC43)</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 4)</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC44)</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 5)</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC45)</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 6)</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC46)</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 7)</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC47)</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ == 8)</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC48)</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 4) &amp;&amp; (__GNUC_MINOR__ &gt;= 9)</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC49)</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 5) &amp;&amp; (__GNUC_MINOR__ == 0)</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC50)</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 5) &amp;&amp; (__GNUC_MINOR__ == 1)</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC51)</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 5) &amp;&amp; (__GNUC_MINOR__ == 2)</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC52)</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"># elif (__GNUC__ == 5) &amp;&amp; (__GNUC_MINOR__ &gt;= 3)</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC53)</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC)</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#ifndef GLM_COMPILER</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor">#error &quot;GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message.&quot;</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">// Report compiler detection</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#if defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_COMPILER_DISPLAYED)</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_COMPILER_DISPLAYED</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: CUDA compiler detected&quot;)</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Visual C++ compiler detected&quot;)</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_APPLE_CLANG</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Clang compiler detected&quot;)</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_LLVM</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: LLVM compiler detected&quot;)</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Intel Compiler detected&quot;)</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GCC compiler detected&quot;)</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Compiler not detected&quot;)</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// Build model</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor">#elif defined(__i386__) || defined(__ppc__)</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor">#endif//</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor">#if !defined(GLM_MODEL) &amp;&amp; GLM_COMPILER != 0</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="preprocessor"># error &quot;GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message.&quot;</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor">#endif//GLM_MODEL</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor">#if defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_MODEL_DISPLAYED)</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_MODEL_DISPLAYED</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"># if(GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: 64 bits model&quot;)</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># elif(GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: 32 bits model&quot;)</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"># endif//GLM_MODEL</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment">// C++ Version</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98_FLAG (1 &lt;&lt; 1)</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03_FLAG (1 &lt;&lt; 2)</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X_FLAG (1 &lt;&lt; 3)</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11_FLAG (1 &lt;&lt; 4)</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Y_FLAG (1 &lt;&lt; 5)</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14_FLAG (1 &lt;&lt; 6)</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Z_FLAG (1 &lt;&lt; 7)</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS_FLAG (1 &lt;&lt; 8)</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU_FLAG (1 &lt;&lt; 9)</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX14 (GLM_LANG_CXX1Y | GLM_LANG_CXX14_FLAG)</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor">#define GLM_LANG_CXX1Z (GLM_LANG_CXX14 | GLM_LANG_CXX1Z_FLAG)</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor">#define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_CXX14)</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CXX11</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CXX03</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX11)</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CXX03</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX03)</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX03</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_CXX98)</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L // GLM_COMPILER_LLVM34 + -std=c++14</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor"># elif __has_feature(cxx_decltype_auto) &amp;&amp; __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_LLVM33 + -std=c++1y</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX1Y</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L // GLM_COMPILER_LLVM33 + -std=c++11</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor"># elif __has_feature(cxx_static_assert) // GLM_COMPILER_LLVM29 + -std=c++11</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor"># elif defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">//# elif GLM_COMPILER &gt;= GLM_COMPILER_VC2015</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="comment">//# define GLM_LANG (GLM_LANG_CXX1Y | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="comment">//# elif GLM_COMPILER &gt;= GLM_COMPILER_VC2015</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="comment">//# define GLM_LANG GLM_LANG_CXX1Y</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_INTEL13</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_INTEL13</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor"># else // Unknown compiler</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor"># if __cplusplus &gt;= 201402L</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 201103L</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor"># elif __cplusplus &gt;= 199711L</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor"># define GLM_LANG GLM_LANG_CXX // Good luck with that!</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor"># ifndef GLM_FORCE_PURE</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor"># define GLM_FORCE_PURE</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor">#if defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_LANG_DISPLAYED)</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_LANG_DISPLAYED</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor"># if GLM_LANG &amp; GLM_LANG_CXX1Z_FLAG</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++1z&quot;)</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX14_FLAG</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++14&quot;)</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX1Y_FLAG</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++1y&quot;)</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++11&quot;)</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX0X_FLAG</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++0x&quot;)</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX03_FLAG</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++03&quot;)</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor"># elif GLM_LANG &amp; GLM_LANG_CXX98_FLAG</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++98&quot;)</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: C++ language undetected&quot;)</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"># if GLM_LANG &amp; (GLM_LANG_CXXGNU_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Language extensions enabled&quot;)</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="comment">// Has of C++ features</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="comment">// http://clang.llvm.org/cxx_status.html</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="comment">// http://gcc.gnu.org/projects/cxx0x.html</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="comment">// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#if GLM_PLATFORM == GLM_PLATFORM_ANDROID</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor"># if __has_include(&lt;__config&gt;) // libc++</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor"># include &lt;__config&gt;</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="comment">//# else // libstdc++</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="comment">//# include &lt;bits/c++config.h&gt;</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor"># if defined(_LIBCPP_VERSION)// || defined(__GLIBCXX__)</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL 1</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor"># define GLM_HAS_CXX11_STL ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC48)) || \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2013)) || \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL15)))</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="comment">// N1720</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="preprocessor"># define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="preprocessor"># define GLM_HAS_STATIC_ASSERT 1</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"># define GLM_HAS_STATIC_ASSERT (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC43)) || \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2010)))</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment">// N1988</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE 1</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE (\</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2012)) || \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC43)) || \</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_LLVM) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_LLVM30)) || \</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor"> ((GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_APPLE_CLANG) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_APPLE_CLANG40)))</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment">// N2235</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr)</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR 1</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC46)))</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR || ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2015))</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment">// N2672</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS 1</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC44)) || \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment">// N2544 Unrestricted unions</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS 1</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC46)))</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="comment">// N2346</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS 1</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC44)) || \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2013)) || \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL12)))</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="comment">// N2118</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES 1</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC43)) || \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2012)))</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="comment">// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC45)) || \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL14)) || \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="comment">// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES 1</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL12_1)) || \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC47)) || \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="comment">// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="preprocessor"># define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="preprocessor">#elif GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="preprocessor"># define GLM_HAS_RANGE_FOR 1</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="preprocessor"># define GLM_HAS_RANGE_FOR (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC46)) || \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_INTEL13)) || \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2012)))</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor"># define GLM_HAS_ASSIGNABLE 1</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="preprocessor"># define GLM_HAS_ASSIGNABLE (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_GCC49)))</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor">#define GLM_HAS_TRIVIAL_QUERIES 0</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor">#if GLM_LANG &amp; GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="preprocessor"># define GLM_HAS_MAKE_SIGNED 1</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="preprocessor"># define GLM_HAS_MAKE_SIGNED (GLM_LANG &amp; GLM_LANG_CXX0X_FLAG) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="preprocessor"> ((GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; (GLM_COMPILER &gt;= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS 0</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS) &amp;&amp; (\</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="preprocessor"> (GLM_COMPILER &amp; (GLM_COMPILER_VC | GLM_COMPILER_LLVM | GLM_COMPILER_INTEL))</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="comment">// OpenMP</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_GCC47</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_GCC44</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 30</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &gt;= GLM_COMPILER_GCC42</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 25</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor"># endif// GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="preprocessor"># if GLM_COMPILER &gt;= GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor"># define GLM_HAS_OPENMP 20</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor"># endif// GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;<span class="comment">// Not standard</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="preprocessor">#define GLM_HAS_ANONYMOUS_UNION (GLM_LANG &amp; GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="comment">// Platform</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="comment">// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="preprocessor">#define GLM_ARCH_PURE 0x0000</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor">#define GLM_ARCH_ARM 0x0001</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="preprocessor">#define GLM_ARCH_X86 0x0002</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="preprocessor">#define GLM_ARCH_SSE2 0x0004</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="preprocessor">#define GLM_ARCH_SSE3 0x0008</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#define GLM_ARCH_SSE4 0x0010</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="preprocessor">#define GLM_ARCH_AVX 0x0020</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor">#define GLM_ARCH_AVX2 0x0040</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_PURE)</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_AVX2)</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_AVX)</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_SSE4)</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_SSE3)</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="preprocessor">#elif defined(GLM_FORCE_SSE2)</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_LINUX))</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor"># if(__AVX2__)</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor"># elif(__AVX__)</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor"># elif(__SSE3__)</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor"># elif(__SSE2__)</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="preprocessor"># if defined(_M_ARM_FP)</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_ARM)</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor"># elif defined(__AVX2__)</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor"># elif defined(__AVX__)</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor"># elif _M_IX86_FP == 2</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor">#elif (GLM_COMPILER &amp; GLM_COMPILER_GCC) &amp;&amp; (defined(__i386__) || defined(__x86_64__))</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="preprocessor"># if defined(__AVX2__)</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="preprocessor"># elif defined(__AVX__)</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="preprocessor"># elif defined(__SSE4_1__ )</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="preprocessor"># elif defined(__SSE3__)</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="preprocessor"># elif defined(__SSE2__)</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="preprocessor"># define GLM_ARCH (GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="comment">// With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="comment">// that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">// To fix, we just explicitly include intrin.h here.</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="preprocessor">#if defined(__MINGW64__) &amp;&amp; (GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="preprocessor"># include &lt;intrin.h&gt;</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="preprocessor">#if GLM_ARCH &amp; GLM_ARCH_AVX2</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="preprocessor"># include &lt;immintrin.h&gt;</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="preprocessor">#if GLM_ARCH &amp; GLM_ARCH_AVX</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="preprocessor"># include &lt;immintrin.h&gt;</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="preprocessor">#if GLM_ARCH &amp; GLM_ARCH_SSE4</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="preprocessor"># include &lt;smmintrin.h&gt;</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="preprocessor">#if GLM_ARCH &amp; GLM_ARCH_SSE3</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="preprocessor"># include &lt;pmmintrin.h&gt;</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor">#if GLM_ARCH &amp; GLM_ARCH_SSE2</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="preprocessor"># include &lt;emmintrin.h&gt;</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="preprocessor"># if(GLM_COMPILER == GLM_COMPILER_VC2005) // VC2005 is missing some intrinsics, workaround</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> _mm_cvtss_f32(__m128 A) { <span class="keywordflow">return</span> A.m128_f32[0]; }</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keyword">inline</span> __m128 _mm_castpd_ps(__m128d PD) { <span class="keyword">union </span>{ __m128 ps; __m128d pd; } c; c.pd = PD; <span class="keywordflow">return</span> c.ps; }</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keyword">inline</span> __m128d _mm_castps_pd(__m128 PS) { <span class="keyword">union </span>{ __m128 ps; __m128d pd; } c; c.ps = PS; <span class="keywordflow">return</span> c.pd; }</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keyword">inline</span> __m128i _mm_castps_si128(__m128 PS) { <span class="keyword">union </span>{ __m128 ps; __m128i <a class="code" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a>; } c; c.ps = PS; <span class="keywordflow">return</span> c.pi; }</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keyword">inline</span> __m128 _mm_castsi128_ps(__m128i PI) { <span class="keyword">union </span>{ __m128 ps; __m128i <a class="code" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a>; } c; c.pi = PI; <span class="keywordflow">return</span> c.ps; }</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="preprocessor">#if defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_ARCH_DISPLAYED)</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Platform independent code&quot;)</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_ARM)</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: ARM instruction set&quot;)</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_AVX2)</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: AVX2 instruction set&quot;)</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_AVX)</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: AVX instruction set&quot;)</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE3)</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSE3 instruction set&quot;)</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="preprocessor"># elif(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: SSE2 instruction set&quot;)</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="preprocessor"># endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;<span class="comment">// Static assert</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="preprocessor">#elif defined(BOOST_STATIC_ASSERT)</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="preprocessor">#endif//GLM_LANG</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment">// Qualifiers</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;<span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<span class="preprocessor"># define GLM_VAR_USED __attribute__ ((unused))</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;<span class="preprocessor"># define GLM_VAR_USED</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;<span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;<span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __declspec((noinline))</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;<span class="preprocessor"># define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<span class="preprocessor"># endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;<span class="preprocessor"># define GLM_INLINE inline</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;<span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;<span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;<span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<span class="comment">// Swizzle operators</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="comment">// User defines: GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;<span class="preprocessor">#if defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;<span class="preprocessor"># if defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators enabled&quot;)</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators&quot;)</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;<span class="comment">// Qualifiers</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC) || ((GLM_COMPILER &amp; GLM_COMPILER_INTEL) &amp;&amp; (GLM_PLATFORM &amp; GLM_PLATFORM_WINDOWS))</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __declspec(deprecated)</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __declspec(align(x))</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __declspec(restrict)</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_VAR __restrict</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL)</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;<span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;<span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_VAR __restrict__</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="preprocessor"># define GLM_DEPRECATED</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;<span class="preprocessor"># define GLM_ALIGN</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;<span class="preprocessor"># define GLM_RESTRICT</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;<span class="preprocessor"># define GLM_RESTRICT_VAR</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;<span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;<span class="preprocessor"># define GLM_DEFAULT = default</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_NO_CTOR_INIT</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR = default</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;<span class="preprocessor"># define GLM_DEFAULT</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;<span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR constexpr</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;<span class="preprocessor"># define GLM_CONSTEXPR</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;<span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT explicit</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;<span class="preprocessor"># define GLM_EXPLICIT</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;<span class="comment">// Length type</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;<span class="comment">// User defines: GLM_FORCE_SIZE_T_LENGTH GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;{</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keyword">using</span> std::size_t;</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;<span class="preprocessor"># if defined(GLM_FORCE_SIZE_T_LENGTH) || defined(GLM_FORCE_SIZE_FUNC)</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;{</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> component_count_t;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keyword">typedef</span> length_t component_count_t;</div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR component_count_t component_count(genType <span class="keyword">const</span> &amp; m)</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; {</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">return</span> m.size();</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">return</span> m.length();</div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; }</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="preprocessor">#if defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="preprocessor"># define GLM_MESSAGE_FORCE_SIZE_T_LENGTH</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="preprocessor"># if defined GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() is replaced by .size() and returns a std::size_t&quot;)</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<span class="preprocessor"># elif defined GLM_FORCE_SIZE_T_LENGTH</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of std::size_t&quot;)</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification&quot;)</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="comment">// countof</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor">#ifndef __has_feature</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor"># define __has_feature(x) 0 // Compatibility with non-clang compilers.</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">#if GLM_HAS_CONSTEXPR_PARTIAL</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; {</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N&gt;</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; constexpr std::size_t countof(T <span class="keyword">const</span> (&amp;)[N])</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; {</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">return</span> N;</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; }</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="preprocessor">#elif _MSC_VER</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) _countof(arr)</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor"># define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="comment">// Uninitialize constructors</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;{</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keyword">enum</span> ctor{uninitialize};</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00168_html_gae671930537266a9a650ccb4b88757692"><div class="ttname"><a href="a00168.html#gae671930537266a9a650ccb4b88757692">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00036.html">detail/func_trigonometric.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00036_html"><div class="ttname"><a href="a00036.html">func_trigonometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00106.html b/3rdparty/glm/doc/api/a00106.html
index 4ace205bb27..875f3fd35e0 100644
--- a/3rdparty/glm/doc/api/a00106.html
+++ b/3rdparty/glm/doc/api/a00106.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_mat4.hpp File Reference</title>
+<title>0.9.9 API documenation: type_aligned.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,30 +64,279 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">simd_mat4.hpp File Reference</div> </div>
+<div class="title">gtc/type_aligned.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00176.html">GLM_GTC_type_aligned</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00106_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga780a35f764020f553a9601a3fcdcd059"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga780a35f764020f553a9601a3fcdcd059"></a>
+typedef aligned_highp_bvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a></td></tr>
+<tr class="memdesc:ga780a35f764020f553a9601a3fcdcd059"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of boolean. <br /></td></tr>
+<tr class="separator:ga780a35f764020f553a9601a3fcdcd059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae766b317c5afec852bfb3d74a3c54bc8"></a>
+typedef aligned_highp_bvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a></td></tr>
+<tr class="memdesc:gae766b317c5afec852bfb3d74a3c54bc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of boolean. <br /></td></tr>
+<tr class="separator:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1964ba70d15915e5b710926decbb3cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae1964ba70d15915e5b710926decbb3cb"></a>
+typedef aligned_highp_bvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a></td></tr>
+<tr class="memdesc:gae1964ba70d15915e5b710926decbb3cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of boolean. <br /></td></tr>
+<tr class="separator:gae1964ba70d15915e5b710926decbb3cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae164a1f7879f828bc35e50b79d786b05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae164a1f7879f828bc35e50b79d786b05"></a>
+typedef aligned_highp_bvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a></td></tr>
+<tr class="memdesc:gae164a1f7879f828bc35e50b79d786b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of boolean. <br /></td></tr>
+<tr class="separator:gae164a1f7879f828bc35e50b79d786b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4974f46ae5a19415d91316960a53617a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4974f46ae5a19415d91316960a53617a"></a>
+typedef aligned_highp_dvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a></td></tr>
+<tr class="memdesc:ga4974f46ae5a19415d91316960a53617a"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga4974f46ae5a19415d91316960a53617a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18d859f87122b2b3b2992ffe86dbebc0"></a>
+typedef aligned_highp_dvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a></td></tr>
+<tr class="memdesc:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa37869eea77d28419b2fb0ff70b69bf0"></a>
+typedef aligned_highp_dvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a></td></tr>
+<tr class="memdesc:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a9f0a4795ccc442fa9901845026f9f5"></a>
+typedef aligned_highp_dvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a></td></tr>
+<tr class="memdesc:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac5ffd9396890b64e707ba47c76435dfe"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">aligned_highp_bvec2</a></td></tr>
+<tr class="memdesc:gac5ffd9396890b64e707ba47c76435dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision bool numbers. <a href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">More...</a><br /></td></tr>
+<tr class="separator:gac5ffd9396890b64e707ba47c76435dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3adba191018d2de1dc2834a2ff5597d7"></a>
+typedef tvec3&lt; bool, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">aligned_highp_bvec3</a></td></tr>
+<tr class="memdesc:ga3adba191018d2de1dc2834a2ff5597d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision bool numbers. <br /></td></tr>
+<tr class="separator:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga903a73cf8ae1f4bc24583b81adf024dc"></a>
+typedef tvec4&lt; bool, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">aligned_highp_bvec4</a></td></tr>
+<tr class="memdesc:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision bool numbers. <br /></td></tr>
+<tr class="separator:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga186b90f0ba86724e080d237f3f5f9417"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">aligned_highp_dvec2</a></td></tr>
+<tr class="memdesc:ga186b90f0ba86724e080d237f3f5f9417"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high double-precision floating-point numbers. <a href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">More...</a><br /></td></tr>
+<tr class="separator:ga186b90f0ba86724e080d237f3f5f9417"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga54f6765716867706643bde03211d600f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga54f6765716867706643bde03211d600f">aligned_highp_dvec3</a></td></tr>
+<tr class="memdesc:ga54f6765716867706643bde03211d600f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high double-precision floating-point numbers. <a href="a00176.html#ga54f6765716867706643bde03211d600f">More...</a><br /></td></tr>
+<tr class="separator:ga54f6765716867706643bde03211d600f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e5a90ed034e9e7414ff71e66a79139e"></a>
+typedef tvec4&lt; double, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">aligned_highp_dvec4</a></td></tr>
+<tr class="memdesc:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">aligned_highp_ivec2</a></td></tr>
+<tr class="memdesc:gab6ddd9d1421eb610ddeb32705fed7026"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision signed integer numbers. <a href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">More...</a><br /></td></tr>
+<tr class="separator:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">aligned_highp_ivec3</a></td></tr>
+<tr class="memdesc:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision signed integer numbers. <a href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">More...</a><br /></td></tr>
+<tr class="separator:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e3286a27b19f25801fb435b6d1225fb"></a>
+typedef tvec4&lt; int, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">aligned_highp_ivec4</a></td></tr>
+<tr class="memdesc:ga1e3286a27b19f25801fb435b6d1225fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision signed integer numbers. <br /></td></tr>
+<tr class="separator:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7366a38dc888164e623fc10663e97670"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7366a38dc888164e623fc10663e97670">aligned_highp_uvec2</a></td></tr>
+<tr class="memdesc:ga7366a38dc888164e623fc10663e97670"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision unsigned integer numbers. <a href="a00176.html#ga7366a38dc888164e623fc10663e97670">More...</a><br /></td></tr>
+<tr class="separator:ga7366a38dc888164e623fc10663e97670"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga967485a7e963365642ea17de62fe2a3f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">aligned_highp_uvec3</a></td></tr>
+<tr class="memdesc:ga967485a7e963365642ea17de62fe2a3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision unsigned integer numbers. <a href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">More...</a><br /></td></tr>
+<tr class="separator:ga967485a7e963365642ea17de62fe2a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac56a4ce85b6233998139a7c1ac337440"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac56a4ce85b6233998139a7c1ac337440"></a>
+typedef tvec4&lt; uint, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">aligned_highp_uvec4</a></td></tr>
+<tr class="memdesc:gac56a4ce85b6233998139a7c1ac337440"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision unsigned integer numbers. <br /></td></tr>
+<tr class="separator:gac56a4ce85b6233998139a7c1ac337440"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea854184b9d574fc5e75b5709a4974e8"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">aligned_highp_vec2</a></td></tr>
+<tr class="memdesc:gaea854184b9d574fc5e75b5709a4974e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high single-precision floating-point numbers. <a href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">More...</a><br /></td></tr>
+<tr class="separator:gaea854184b9d574fc5e75b5709a4974e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">aligned_highp_vec3</a></td></tr>
+<tr class="memdesc:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high single-precision floating-point numbers. <a href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">More...</a><br /></td></tr>
+<tr class="separator:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae2938d64c6a46f721681607c2ab3f884"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2938d64c6a46f721681607c2ab3f884"></a>
+typedef tvec4&lt; float, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">aligned_highp_vec4</a></td></tr>
+<tr class="memdesc:gae2938d64c6a46f721681607c2ab3f884"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gae2938d64c6a46f721681607c2ab3f884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76298aed82a439063c3d55980c84aa0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76298aed82a439063c3d55980c84aa0b"></a>
+typedef aligned_highp_ivec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a></td></tr>
+<tr class="memdesc:ga76298aed82a439063c3d55980c84aa0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:ga76298aed82a439063c3d55980c84aa0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4f38fd2c86cee6940986197777b3ca4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4f38fd2c86cee6940986197777b3ca4"></a>
+typedef aligned_highp_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a></td></tr>
+<tr class="memdesc:gae4f38fd2c86cee6940986197777b3ca4"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:gae4f38fd2c86cee6940986197777b3ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32794322d294e5ace7fed4a61896f270"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga32794322d294e5ace7fed4a61896f270"></a>
+typedef aligned_highp_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a></td></tr>
+<tr class="memdesc:ga32794322d294e5ace7fed4a61896f270"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:ga32794322d294e5ace7fed4a61896f270"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f79eae5927c9033d84617e49f6f34e4"></a>
+typedef aligned_highp_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a></td></tr>
+<tr class="memdesc:ga7f79eae5927c9033d84617e49f6f34e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga524c702b82ae7ccaca896d374808c6d7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">aligned_lowp_bvec2</a></td></tr>
+<tr class="memdesc:ga524c702b82ae7ccaca896d374808c6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision bool numbers. <a href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">More...</a><br /></td></tr>
+<tr class="separator:ga524c702b82ae7ccaca896d374808c6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21fb6238997b4a21848411b16bc34e93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga21fb6238997b4a21848411b16bc34e93"></a>
+typedef tvec3&lt; bool, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">aligned_lowp_bvec3</a></td></tr>
+<tr class="memdesc:ga21fb6238997b4a21848411b16bc34e93"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision bool numbers. <br /></td></tr>
+<tr class="separator:ga21fb6238997b4a21848411b16bc34e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0b5e3c64f8dbadfc42a2aca5f2da9692"></a>
+typedef tvec4&lt; bool, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">aligned_lowp_bvec4</a></td></tr>
+<tr class="memdesc:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision bool numbers. <br /></td></tr>
+<tr class="separator:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">aligned_lowp_dvec2</a></td></tr>
+<tr class="memdesc:gab70c189b4691715b3f7f0abb35c65b2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low double-precision floating-point numbers. <a href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">More...</a><br /></td></tr>
+<tr class="separator:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">aligned_lowp_dvec3</a></td></tr>
+<tr class="memdesc:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low double-precision floating-point numbers. <a href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">More...</a><br /></td></tr>
+<tr class="separator:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab365ee7cfd19bab449daa8f7eb0ca71"></a>
+typedef tvec4&lt; double, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">aligned_lowp_dvec4</a></td></tr>
+<tr class="memdesc:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad69bf7c406a3cec994307473cb3da032"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad69bf7c406a3cec994307473cb3da032">aligned_lowp_ivec2</a></td></tr>
+<tr class="memdesc:gad69bf7c406a3cec994307473cb3da032"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision signed integer numbers. <a href="a00176.html#gad69bf7c406a3cec994307473cb3da032">More...</a><br /></td></tr>
+<tr class="separator:gad69bf7c406a3cec994307473cb3da032"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">aligned_lowp_ivec3</a></td></tr>
+<tr class="memdesc:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision signed integer numbers. <a href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">More...</a><br /></td></tr>
+<tr class="separator:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad744848a2e4ddd2f041e6ec8d13600ae"></a>
+typedef tvec4&lt; int, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">aligned_lowp_ivec4</a></td></tr>
+<tr class="memdesc:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision signed integer numbers. <br /></td></tr>
+<tr class="separator:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">aligned_lowp_uvec2</a></td></tr>
+<tr class="memdesc:ga15355ffc7ec7931b81ba76736b65e51a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision unsigned integer numbers. <a href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">More...</a><br /></td></tr>
+<tr class="separator:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga48c85299d98e8248f547a2c07ea609cf"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">aligned_lowp_uvec3</a></td></tr>
+<tr class="memdesc:ga48c85299d98e8248f547a2c07ea609cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision unsigned integer numbers. <a href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">More...</a><br /></td></tr>
+<tr class="separator:ga48c85299d98e8248f547a2c07ea609cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga40b0e05306f666f835ac97c963302ecb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga40b0e05306f666f835ac97c963302ecb"></a>
+typedef tvec4&lt; uint, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">aligned_lowp_uvec4</a></td></tr>
+<tr class="memdesc:ga40b0e05306f666f835ac97c963302ecb"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga40b0e05306f666f835ac97c963302ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">aligned_lowp_vec2</a></td></tr>
+<tr class="memdesc:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low single-precision floating-point numbers. <a href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">More...</a><br /></td></tr>
+<tr class="separator:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae003f8f3071a8bc734a70c6d4978f968"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">aligned_lowp_vec3</a></td></tr>
+<tr class="memdesc:gae003f8f3071a8bc734a70c6d4978f968"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low single-precision floating-point numbers. <a href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">More...</a><br /></td></tr>
+<tr class="separator:gae003f8f3071a8bc734a70c6d4978f968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga689f103781a795e919fddfa47d89170d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga689f103781a795e919fddfa47d89170d"></a>
+typedef tvec4&lt; float, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga689f103781a795e919fddfa47d89170d">aligned_lowp_vec4</a></td></tr>
+<tr class="memdesc:ga689f103781a795e919fddfa47d89170d"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga689f103781a795e919fddfa47d89170d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">aligned_mediump_bvec2</a></td></tr>
+<tr class="memdesc:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision bool numbers. <a href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">More...</a><br /></td></tr>
+<tr class="separator:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f78cd6d9c5827771e35921b4a92855a"></a>
+typedef tvec3&lt; bool, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">aligned_mediump_bvec3</a></td></tr>
+<tr class="memdesc:ga4f78cd6d9c5827771e35921b4a92855a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision bool numbers. <br /></td></tr>
+<tr class="separator:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cb80e2d4d351abeadac7b1676a91fd9"></a>
+typedef tvec4&lt; bool, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">aligned_mediump_bvec4</a></td></tr>
+<tr class="memdesc:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision bool numbers. <br /></td></tr>
+<tr class="separator:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">aligned_mediump_dvec2</a></td></tr>
+<tr class="memdesc:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium double-precision floating-point numbers. <a href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">More...</a><br /></td></tr>
+<tr class="separator:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22efc7f84ab79eef640e00fc59d07478"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">aligned_mediump_dvec3</a></td></tr>
+<tr class="memdesc:ga22efc7f84ab79eef640e00fc59d07478"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium double-precision floating-point numbers. <a href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">More...</a><br /></td></tr>
+<tr class="separator:ga22efc7f84ab79eef640e00fc59d07478"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad6f422f8871685ee467a575238e4ece4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6f422f8871685ee467a575238e4ece4"></a>
+typedef tvec4&lt; double, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad6f422f8871685ee467a575238e4ece4">aligned_mediump_dvec4</a></td></tr>
+<tr class="memdesc:gad6f422f8871685ee467a575238e4ece4"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gad6f422f8871685ee467a575238e4ece4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga389d12dcc8d57a444944a72646d17efa"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">aligned_mediump_ivec2</a></td></tr>
+<tr class="memdesc:ga389d12dcc8d57a444944a72646d17efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision signed integer numbers. <a href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">More...</a><br /></td></tr>
+<tr class="separator:ga389d12dcc8d57a444944a72646d17efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">aligned_mediump_ivec3</a></td></tr>
+<tr class="memdesc:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision signed integer numbers. <a href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">More...</a><br /></td></tr>
+<tr class="separator:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae640082d0ffdb52fb2d658916c5815db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae640082d0ffdb52fb2d658916c5815db"></a>
+typedef tvec4&lt; int, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">aligned_mediump_ivec4</a></td></tr>
+<tr class="memdesc:gae640082d0ffdb52fb2d658916c5815db"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision signed integer numbers. <br /></td></tr>
+<tr class="separator:gae640082d0ffdb52fb2d658916c5815db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">aligned_mediump_uvec2</a></td></tr>
+<tr class="memdesc:ga88c56fde67f035d80b2d0d6d568af30b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision unsigned integer numbers. <a href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">More...</a><br /></td></tr>
+<tr class="separator:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">aligned_mediump_uvec3</a></td></tr>
+<tr class="memdesc:gaee29d3a28f634b03f0a20e79e600f5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision unsigned integer numbers. <a href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">More...</a><br /></td></tr>
+<tr class="separator:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga717763c480dcf3ecf66121426287d08a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga717763c480dcf3ecf66121426287d08a"></a>
+typedef tvec4&lt; uint, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga717763c480dcf3ecf66121426287d08a">aligned_mediump_uvec4</a></td></tr>
+<tr class="memdesc:ga717763c480dcf3ecf66121426287d08a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga717763c480dcf3ecf66121426287d08a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">aligned_mediump_vec2</a></td></tr>
+<tr class="memdesc:ga57549b1281d99ba1825b1ef0dae6227d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium single-precision floating-point numbers. <a href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">More...</a><br /></td></tr>
+<tr class="separator:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">aligned_mediump_vec3</a></td></tr>
+<tr class="memdesc:gaed5d4dd2755cc5141a9533488edd9e82"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium single-precision floating-point numbers. <a href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">More...</a><br /></td></tr>
+<tr class="separator:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4ab68a8c32574bff14e62f95185d295"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ab68a8c32574bff14e62f95185d295"></a>
+typedef tvec4&lt; float, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">aligned_mediump_vec4</a></td></tr>
+<tr class="memdesc:gae4ab68a8c32574bff14e62f95185d295"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gae4ab68a8c32574bff14e62f95185d295"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ff8ed402c93d280ff0597c1c5e7c548"></a>
+typedef aligned_highp_uvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a></td></tr>
+<tr class="memdesc:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga074137e3be58528d67041c223d49f398"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga074137e3be58528d67041c223d49f398"></a>
+typedef aligned_highp_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a></td></tr>
+<tr class="memdesc:ga074137e3be58528d67041c223d49f398"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga074137e3be58528d67041c223d49f398"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a8d9c3046f89d854eb758adfa0811c0"></a>
+typedef aligned_highp_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a></td></tr>
+<tr class="memdesc:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf842c45eea186170c267a328e3f3b7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf842c45eea186170c267a328e3f3b7d"></a>
+typedef aligned_highp_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a></td></tr>
+<tr class="memdesc:gabf842c45eea186170c267a328e3f3b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:gabf842c45eea186170c267a328e3f3b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga05e6d4c908965d04191c2070a8d0a65e"></a>
+typedef aligned_highp_vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a></td></tr>
+<tr class="memdesc:ga05e6d4c908965d04191c2070a8d0a65e"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0682462f8096a226773e20fac993cde5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0682462f8096a226773e20fac993cde5"></a>
+typedef aligned_highp_vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a></td></tr>
+<tr class="memdesc:ga0682462f8096a226773e20fac993cde5"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga0682462f8096a226773e20fac993cde5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf643b66664e0cd3c48759ae66c2bd0"></a>
+typedef aligned_highp_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a></td></tr>
+<tr class="memdesc:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga85d89e83cb8137e1be1446de8c3b643a"></a>
+typedef aligned_highp_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a></td></tr>
+<tr class="memdesc:ga85d89e83cb8137e1be1446de8c3b643a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00230.html">GLM_GTX_simd_mat4</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-07 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00176.html">GLM_GTC_type_aligned</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00106_source.html">simd_mat4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00106_source.html b/3rdparty/glm/doc/api/a00106_source.html
index 0b1b39f1707..aef4a6b1876 100644
--- a/3rdparty/glm/doc/api/a00106_source.html
+++ b/3rdparty/glm/doc/api/a00106_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_mat4.hpp Source File</title>
+<title>0.9.9 API documenation: type_aligned.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,181 +64,353 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_mat4.hpp</div> </div>
+<div class="title">gtc/type_aligned.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00106.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># include &quot;../detail/intrinsic_matrix.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># include &quot;../gtx/simd_vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simd_mat4 extension included&quot;)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_ALIGNED_STRUCT(16) fmat4x4SIMD</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typedef</span> fvec4SIMD col_type;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> fvec4SIMD row_type;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typedef</span> fmat4x4SIMD type;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> fmat4x4SIMD transpose_type;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, defaultp&gt; pure_type;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, defaultp&gt; pure_row_type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, defaultp&gt; pure_col_type;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, defaultp&gt; pure_transpose_type;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#if !GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor"># error &quot;GLM: Aligned types are not supported on this platform&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_aligned extension included&quot;)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec1;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec2;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec3;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// -- *vec1 --</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, aligned_highp&gt; aligned_highp_vec1;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, aligned_mediump&gt; aligned_mediump_vec1;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, aligned_lowp&gt; aligned_lowp_vec1;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, aligned_highp&gt; aligned_highp_dvec1;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, aligned_mediump&gt; aligned_mediump_dvec1;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, aligned_lowp&gt; aligned_lowp_dvec1;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, aligned_highp&gt; aligned_highp_ivec1;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, aligned_mediump&gt; aligned_mediump_ivec1;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, aligned_lowp&gt; aligned_lowp_ivec1;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, aligned_highp&gt; aligned_highp_uvec1;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, aligned_mediump&gt; aligned_mediump_uvec1;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, aligned_lowp&gt; aligned_lowp_uvec1;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, aligned_highp&gt; aligned_highp_bvec1;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, aligned_mediump&gt; aligned_mediump_bvec1;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, aligned_lowp&gt; aligned_lowp_bvec1;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, packed_highp&gt; packed_highp_vec1;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, packed_mediump&gt; packed_mediump_vec1;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, packed_lowp&gt; packed_lowp_vec1;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, packed_highp&gt; packed_highp_dvec1;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, packed_mediump&gt; packed_mediump_dvec1;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, packed_lowp&gt; packed_lowp_dvec1;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, packed_highp&gt; packed_highp_ivec1;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, packed_mediump&gt; packed_mediump_ivec1;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, packed_lowp&gt; packed_lowp_ivec1;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, packed_highp&gt; packed_highp_uvec1;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, packed_mediump&gt; packed_mediump_uvec1;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, packed_lowp&gt; packed_lowp_uvec1;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, packed_highp&gt; packed_highp_bvec1;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, packed_mediump&gt; packed_mediump_bvec1;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, packed_lowp&gt; packed_lowp_bvec1;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// -- *vec2 --</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8"> 73</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, aligned_highp&gt; <a class="code" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">aligned_highp_vec2</a>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d"> 77</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, aligned_mediump&gt; <a class="code" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">aligned_mediump_vec2</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = defaultp;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL length_t <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; fvec4SIMD Data[4];</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Constructors</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; fmat4x4SIMD() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; explicit fmat4x4SIMD(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">float</span> const &amp; x0, <span class="keywordtype">float</span> const &amp; y0, <span class="keywordtype">float</span> const &amp; z0, <span class="keywordtype">float</span> const &amp; w0,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">float</span> const &amp; x1, <span class="keywordtype">float</span> const &amp; y1, <span class="keywordtype">float</span> const &amp; z1, <span class="keywordtype">float</span> const &amp; w1,</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">float</span> const &amp; x2, <span class="keywordtype">float</span> const &amp; y2, <span class="keywordtype">float</span> const &amp; z2, <span class="keywordtype">float</span> const &amp; w2,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">float</span> const &amp; x3, <span class="keywordtype">float</span> const &amp; y3, <span class="keywordtype">float</span> const &amp; z3, <span class="keywordtype">float</span> const &amp; w3);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; fvec4SIMD const &amp; v0,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; fvec4SIMD const &amp; v1,</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; fvec4SIMD const &amp; v2,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; fvec4SIMD const &amp; v3);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a> const &amp; m);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; __m128 const in[4]);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Conversions</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">//template &lt;typename U&gt;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x4&lt;U&gt; const &amp; m);</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x2&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x3&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x3&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x2&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">//explicit tmat4x4(tmat2x4&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x2&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">//explicit tmat4x4(tmat3x4&lt;T&gt; const &amp; x);</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">//explicit tmat4x4(tmat4x3&lt;T&gt; const &amp; x);</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367"> 81</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, aligned_lowp&gt; <a class="code" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">aligned_lowp_vec2</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417"> 85</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, aligned_highp&gt; <a class="code" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">aligned_highp_dvec2</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd"> 89</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, aligned_mediump&gt; <a class="code" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">aligned_mediump_dvec2</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f"> 93</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, aligned_lowp&gt; <a class="code" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">aligned_lowp_dvec2</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026"> 97</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, aligned_highp&gt; <a class="code" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">aligned_highp_ivec2</a>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa"> 101</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, aligned_mediump&gt; <a class="code" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">aligned_mediump_ivec2</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00176.html#gad69bf7c406a3cec994307473cb3da032"> 105</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, aligned_lowp&gt; <a class="code" href="a00176.html#gad69bf7c406a3cec994307473cb3da032">aligned_lowp_ivec2</a>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00176.html#ga7366a38dc888164e623fc10663e97670"> 109</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, aligned_highp&gt; <a class="code" href="a00176.html#ga7366a38dc888164e623fc10663e97670">aligned_highp_uvec2</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b"> 113</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, aligned_mediump&gt; <a class="code" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">aligned_mediump_uvec2</a>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a"> 117</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, aligned_lowp&gt; <a class="code" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">aligned_lowp_uvec2</a>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe"> 121</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, aligned_highp&gt; <a class="code" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">aligned_highp_bvec2</a>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Accesses</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; fvec4SIMD &amp; operator[](length_t i);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; fvec4SIMD const &amp; operator[](length_t i) const;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e"> 125</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, aligned_mediump&gt; <a class="code" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">aligned_mediump_bvec2</a>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// Unary updatable operators</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; fmat4x4SIMD &amp; operator= (fmat4x4SIMD const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; fmat4x4SIMD &amp; operator+= (<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; fmat4x4SIMD &amp; operator+= (fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; fmat4x4SIMD &amp; operator-= (<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; fmat4x4SIMD &amp; operator-= (fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; fmat4x4SIMD &amp; operator*= (<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; fmat4x4SIMD &amp; operator*= (fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; fmat4x4SIMD &amp; operator/= (<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; fmat4x4SIMD &amp; operator/= (fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; fmat4x4SIMD &amp; operator++ ();</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; fmat4x4SIMD &amp; operator-- ();</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7"> 129</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, aligned_lowp&gt; <a class="code" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">aligned_lowp_bvec2</a>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// -- *vec3 --</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36"> 135</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, aligned_highp&gt; <a class="code" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">aligned_highp_vec3</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82"> 139</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, aligned_mediump&gt; <a class="code" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">aligned_mediump_vec3</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Binary operators</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; fmat4x4SIMD operator+ (fmat4x4SIMD const &amp; m, <span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; fmat4x4SIMD operator+ (<span class="keywordtype">float</span> const &amp; s, fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; fmat4x4SIMD operator+ (fmat4x4SIMD const &amp; m1, fmat4x4SIMD const &amp; m2);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; fmat4x4SIMD operator- (fmat4x4SIMD const &amp; m, <span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; fmat4x4SIMD operator- (<span class="keywordtype">float</span> const &amp; s, fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; fmat4x4SIMD operator- (fmat4x4SIMD const &amp; m1, fmat4x4SIMD const &amp; m2);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; fmat4x4SIMD operator* (fmat4x4SIMD const &amp; m, <span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; fmat4x4SIMD operator* (<span class="keywordtype">float</span> const &amp; s, fmat4x4SIMD const &amp; m);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968"> 143</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, aligned_lowp&gt; <a class="code" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">aligned_lowp_vec3</a>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00176.html#ga54f6765716867706643bde03211d600f"> 147</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, aligned_highp&gt; <a class="code" href="a00176.html#ga54f6765716867706643bde03211d600f">aligned_highp_dvec3</a>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478"> 151</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, aligned_mediump&gt; <a class="code" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">aligned_mediump_dvec3</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; fvec4SIMD operator* (fmat4x4SIMD const &amp; m, fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; fvec4SIMD operator* (fvec4SIMD const &amp; v, fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; fmat4x4SIMD operator* (fmat4x4SIMD const &amp; m1, fmat4x4SIMD const &amp; m2);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; fmat4x4SIMD operator/ (fmat4x4SIMD const &amp; m, <span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; fmat4x4SIMD operator/ (<span class="keywordtype">float</span> const &amp; s, fmat4x4SIMD const &amp; m);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee"> 155</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, aligned_lowp&gt; <a class="code" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">aligned_lowp_dvec3</a>;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e"> 159</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, aligned_highp&gt; <a class="code" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">aligned_highp_ivec3</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; fvec4SIMD operator/ (fmat4x4SIMD const &amp; m, fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; fvec4SIMD operator/ (fvec4SIMD const &amp; v, fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; fmat4x4SIMD operator/ (fmat4x4SIMD const &amp; m1, fmat4x4SIMD const &amp; m2);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// Unary constant operators</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; fmat4x4SIMD const operator- (fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; fmat4x4SIMD const operator-- (fmat4x4SIMD const &amp; m, <span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; fmat4x4SIMD const operator++ (fmat4x4SIMD const &amp; m, <span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; typedef detail::fmat4x4SIMD simdMat4;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26"> 163</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, aligned_mediump&gt; <a class="code" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">aligned_mediump_ivec3</a>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b"> 167</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, aligned_lowp&gt; <a class="code" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">aligned_lowp_ivec3</a>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f"> 171</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, aligned_highp&gt; <a class="code" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">aligned_highp_uvec3</a>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df"> 175</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, aligned_mediump&gt; <a class="code" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">aligned_mediump_uvec3</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; detail::fmat4x4SIMD const &amp; x);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; detail::fmat4x4SIMD const &amp; x,</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; detail::fmat4x4SIMD const &amp; y);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; detail::fvec4SIMD const &amp; c,</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; detail::fvec4SIMD const &amp; r);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; detail::fmat4x4SIMD transpose(</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; detail::fmat4x4SIMD const &amp; x);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; detail::fmat4x4SIMD const &amp; m);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf"> 179</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, aligned_lowp&gt; <a class="code" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">aligned_lowp_uvec3</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7"> 182</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, aligned_highp&gt; <a class="code" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">aligned_highp_bvec3</a>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a"> 185</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, aligned_mediump&gt; <a class="code" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">aligned_mediump_bvec3</a>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93"> 188</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, aligned_lowp&gt; <a class="code" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">aligned_lowp_bvec3</a>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// -- *vec4 --</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884"> 193</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, aligned_highp&gt; <a class="code" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">aligned_highp_vec4</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295"> 196</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, aligned_mediump&gt; <a class="code" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">aligned_mediump_vec4</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00176.html#ga689f103781a795e919fddfa47d89170d"> 199</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, aligned_lowp&gt; <a class="code" href="a00176.html#ga689f103781a795e919fddfa47d89170d">aligned_lowp_vec4</a>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e"> 202</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, aligned_highp&gt; <a class="code" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">aligned_highp_dvec4</a>;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00176.html#gad6f422f8871685ee467a575238e4ece4"> 205</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, aligned_mediump&gt; <a class="code" href="a00176.html#gad6f422f8871685ee467a575238e4ece4">aligned_mediump_dvec4</a>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; detail::fmat4x4SIMD <a class="code" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a>(</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; detail::fmat4x4SIMD const &amp; m);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#include &quot;simd_mat4.inl&quot;</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="ttc" id="a00155_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; mat4_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00163_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00425">type_mat.hpp:425</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00155_html_ga7635d3dbe5aa10ff73a0e6903bf6bea5"><div class="ttname"><a href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; inverse(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
-<div class="ttc" id="a00155_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type outerProduct(vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</div></div>
-<div class="ttc" id="a00155_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; matrixCompMult(matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71"> 208</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, aligned_lowp&gt; <a class="code" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">aligned_lowp_dvec4</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb"> 211</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, aligned_highp&gt; <a class="code" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">aligned_highp_ivec4</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db"> 214</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, aligned_mediump&gt; <a class="code" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">aligned_mediump_ivec4</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae"> 217</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, aligned_lowp&gt; <a class="code" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">aligned_lowp_ivec4</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440"> 220</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, aligned_highp&gt; <a class="code" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">aligned_highp_uvec4</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="a00176.html#ga717763c480dcf3ecf66121426287d08a"> 223</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, aligned_mediump&gt; <a class="code" href="a00176.html#ga717763c480dcf3ecf66121426287d08a">aligned_mediump_uvec4</a>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb"> 226</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, aligned_lowp&gt; <a class="code" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">aligned_lowp_uvec4</a>;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc"> 229</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, aligned_highp&gt; <a class="code" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">aligned_highp_bvec4</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9"> 232</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, aligned_mediump&gt; <a class="code" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">aligned_mediump_bvec4</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692"> 235</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, aligned_lowp&gt; <a class="code" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">aligned_lowp_bvec4</a>;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// -- default --</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">typedef</span> aligned_lowp_vec1 <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">typedef</span> aligned_lowp_vec2 <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">typedef</span> aligned_lowp_vec3 <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">typedef</span> aligned_lowp_vec4 <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">typedef</span> aligned_mediump_vec1 <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">typedef</span> aligned_mediump_vec2 <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">typedef</span> aligned_mediump_vec3 <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">typedef</span> aligned_mediump_vec4 <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">typedef</span> aligned_highp_vec1 <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="a00176.html#ga0682462f8096a226773e20fac993cde5"> 254</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_vec2 <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0"> 257</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_vec3 <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a"> 260</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_vec4 <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">typedef</span> aligned_lowp_dvec1 <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">typedef</span> aligned_lowp_dvec2 <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">typedef</span> aligned_lowp_dvec3 <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">typedef</span> aligned_lowp_dvec4 <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">typedef</span> aligned_mediump_dvec1 <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">typedef</span> aligned_mediump_dvec2 <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">typedef</span> aligned_mediump_dvec3 <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">typedef</span> aligned_mediump_dvec4 <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">typedef</span> aligned_highp_dvec1 <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0"> 278</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_dvec2 <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0"> 281</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_dvec3 <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5"> 284</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_dvec4 <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typedef</span> aligned_lowp_ivec1 <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">typedef</span> aligned_lowp_ivec2 <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">typedef</span> aligned_lowp_ivec3 <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">typedef</span> aligned_lowp_ivec4 <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">typedef</span> aligned_mediump_ivec1 <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">typedef</span> aligned_mediump_ivec2 <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">typedef</span> aligned_mediump_ivec3 <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">typedef</span> aligned_mediump_ivec4 <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_INT)</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">typedef</span> aligned_highp_ivec1 <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4"> 302</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_ivec2 <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00176.html#ga32794322d294e5ace7fed4a61896f270"> 305</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_ivec3 <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4"> 308</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_ivec4 <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// -- Unsigned integer definition --</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">typedef</span> aligned_lowp_uvec1 <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">typedef</span> aligned_lowp_uvec2 <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">typedef</span> aligned_lowp_uvec3 <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">typedef</span> aligned_lowp_uvec4 <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">typedef</span> aligned_mediump_uvec1 <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">typedef</span> aligned_mediump_uvec2 <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">typedef</span> aligned_mediump_uvec3 <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">typedef</span> aligned_mediump_uvec4 <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_UINT)</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">typedef</span> aligned_highp_uvec1 <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="a00176.html#ga074137e3be58528d67041c223d49f398"> 328</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_uvec2 <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0"> 331</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_uvec3 <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d"> 334</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_uvec4 <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">typedef</span> aligned_lowp_bvec1 <a class="code" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">typedef</span> aligned_lowp_bvec2 <a class="code" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">typedef</span> aligned_lowp_bvec3 <a class="code" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">typedef</span> aligned_lowp_bvec4 <a class="code" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">typedef</span> aligned_mediump_bvec1 <a class="code" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">typedef</span> aligned_mediump_bvec2 <a class="code" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a>;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">typedef</span> aligned_mediump_bvec3 <a class="code" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">typedef</span> aligned_mediump_bvec4 <a class="code" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">typedef</span> aligned_highp_bvec1 <a class="code" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8"> 352</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_bvec2 <a class="code" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb"> 355</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_bvec3 <a class="code" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05"> 358</a></span>&#160; <span class="keyword">typedef</span> aligned_highp_bvec4 <a class="code" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00176_html_gae766b317c5afec852bfb3d74a3c54bc8"><div class="ttname"><a href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">glm::aligned_bvec2</a></div><div class="ttdeci">aligned_highp_bvec2 aligned_bvec2</div><div class="ttdoc">2 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00352">gtc/type_aligned.hpp:352</a></div></div>
+<div class="ttc" id="a00176_html_gaba56f2b76d320379cdf7c37e0d4b03bd"><div class="ttname"><a href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">glm::aligned_mediump_dvec2</a></div><div class="ttdeci">tvec2&lt; double, aligned_mediump &gt; aligned_mediump_dvec2</div><div class="ttdoc">2 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00089">gtc/type_aligned.hpp:89</a></div></div>
+<div class="ttc" id="a00176_html_ga903a73cf8ae1f4bc24583b81adf024dc"><div class="ttname"><a href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">glm::aligned_highp_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, aligned_highp &gt; aligned_highp_bvec4</div><div class="ttdoc">4 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00229">gtc/type_aligned.hpp:229</a></div></div>
+<div class="ttc" id="a00176_html_ga967485a7e963365642ea17de62fe2a3f"><div class="ttname"><a href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">glm::aligned_highp_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, aligned_highp &gt; aligned_highp_uvec3</div><div class="ttdoc">3 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00171">gtc/type_aligned.hpp:171</a></div></div>
+<div class="ttc" id="a00176_html_ga8a9f0a4795ccc442fa9901845026f9f5"><div class="ttname"><a href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">glm::aligned_dvec4</a></div><div class="ttdeci">aligned_highp_dvec4 aligned_dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00284">gtc/type_aligned.hpp:284</a></div></div>
+<div class="ttc" id="a00176_html_ga4974f46ae5a19415d91316960a53617a"><div class="ttname"><a href="a00176.html#ga4974f46ae5a19415d91316960a53617a">glm::aligned_dvec1</a></div><div class="ttdeci">aligned_highp_dvec1 aligned_dvec1</div><div class="ttdoc">1 component vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00275">gtc/type_aligned.hpp:275</a></div></div>
+<div class="ttc" id="a00176_html_gaa8615b4ce4fdf176c631b34d2d31d81b"><div class="ttname"><a href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">glm::aligned_lowp_ivec3</a></div><div class="ttdeci">tvec3&lt; int, aligned_lowp &gt; aligned_lowp_ivec3</div><div class="ttdoc">3 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00167">gtc/type_aligned.hpp:167</a></div></div>
+<div class="ttc" id="a00176_html_ga22efc7f84ab79eef640e00fc59d07478"><div class="ttname"><a href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">glm::aligned_mediump_dvec3</a></div><div class="ttdeci">tvec3&lt; double, aligned_mediump &gt; aligned_mediump_dvec3</div><div class="ttdoc">3 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00151">gtc/type_aligned.hpp:151</a></div></div>
+<div class="ttc" id="a00176_html_gae003f8f3071a8bc734a70c6d4978f968"><div class="ttname"><a href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">glm::aligned_lowp_vec3</a></div><div class="ttdeci">tvec3&lt; float, aligned_lowp &gt; aligned_lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00143">gtc/type_aligned.hpp:143</a></div></div>
+<div class="ttc" id="a00176_html_ga524c702b82ae7ccaca896d374808c6d7"><div class="ttname"><a href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">glm::aligned_lowp_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, aligned_lowp &gt; aligned_lowp_bvec2</div><div class="ttdoc">2 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00129">gtc/type_aligned.hpp:129</a></div></div>
+<div class="ttc" id="a00176_html_gaee29d3a28f634b03f0a20e79e600f5df"><div class="ttname"><a href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">glm::aligned_mediump_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, aligned_mediump &gt; aligned_mediump_uvec3</div><div class="ttdoc">3 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00175">gtc/type_aligned.hpp:175</a></div></div>
+<div class="ttc" id="a00176_html_ga689f103781a795e919fddfa47d89170d"><div class="ttname"><a href="a00176.html#ga689f103781a795e919fddfa47d89170d">glm::aligned_lowp_vec4</a></div><div class="ttdeci">tvec4&lt; float, aligned_lowp &gt; aligned_lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00199">gtc/type_aligned.hpp:199</a></div></div>
+<div class="ttc" id="a00176_html_gad6f422f8871685ee467a575238e4ece4"><div class="ttname"><a href="a00176.html#gad6f422f8871685ee467a575238e4ece4">glm::aligned_mediump_dvec4</a></div><div class="ttdeci">tvec4&lt; double, aligned_mediump &gt; aligned_mediump_dvec4</div><div class="ttdoc">4 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00205">gtc/type_aligned.hpp:205</a></div></div>
+<div class="ttc" id="a00176_html_ga88c56fde67f035d80b2d0d6d568af30b"><div class="ttname"><a href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">glm::aligned_mediump_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, aligned_mediump &gt; aligned_mediump_uvec2</div><div class="ttdoc">2 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00113">gtc/type_aligned.hpp:113</a></div></div>
+<div class="ttc" id="a00176_html_ga389d12dcc8d57a444944a72646d17efa"><div class="ttname"><a href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">glm::aligned_mediump_ivec2</a></div><div class="ttdeci">tvec2&lt; int, aligned_mediump &gt; aligned_mediump_ivec2</div><div class="ttdoc">2 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00101">gtc/type_aligned.hpp:101</a></div></div>
+<div class="ttc" id="a00176_html_ga717763c480dcf3ecf66121426287d08a"><div class="ttname"><a href="a00176.html#ga717763c480dcf3ecf66121426287d08a">glm::aligned_mediump_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, aligned_mediump &gt; aligned_mediump_uvec4</div><div class="ttdoc">4 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00223">gtc/type_aligned.hpp:223</a></div></div>
+<div class="ttc" id="a00176_html_gae164a1f7879f828bc35e50b79d786b05"><div class="ttname"><a href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">glm::aligned_bvec4</a></div><div class="ttdeci">aligned_highp_bvec4 aligned_bvec4</div><div class="ttdoc">4 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00358">gtc/type_aligned.hpp:358</a></div></div>
+<div class="ttc" id="a00176_html_gac5ffd9396890b64e707ba47c76435dfe"><div class="ttname"><a href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">glm::aligned_highp_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, aligned_highp &gt; aligned_highp_bvec2</div><div class="ttdoc">2 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00121">gtc/type_aligned.hpp:121</a></div></div>
+<div class="ttc" id="a00176_html_ga76298aed82a439063c3d55980c84aa0b"><div class="ttname"><a href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">glm::aligned_ivec1</a></div><div class="ttdeci">aligned_highp_ivec1 aligned_ivec1</div><div class="ttdoc">1 component vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00299">gtc/type_aligned.hpp:299</a></div></div>
+<div class="ttc" id="a00176_html_ga48c85299d98e8248f547a2c07ea609cf"><div class="ttname"><a href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">glm::aligned_lowp_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, aligned_lowp &gt; aligned_lowp_uvec3</div><div class="ttdoc">3 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00179">gtc/type_aligned.hpp:179</a></div></div>
+<div class="ttc" id="a00176_html_ga0b5e3c64f8dbadfc42a2aca5f2da9692"><div class="ttname"><a href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">glm::aligned_lowp_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, aligned_lowp &gt; aligned_lowp_bvec4</div><div class="ttdoc">4 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00235">gtc/type_aligned.hpp:235</a></div></div>
+<div class="ttc" id="a00176_html_gaa37869eea77d28419b2fb0ff70b69bf0"><div class="ttname"><a href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">glm::aligned_dvec3</a></div><div class="ttdeci">aligned_highp_dvec3 aligned_dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00281">gtc/type_aligned.hpp:281</a></div></div>
+<div class="ttc" id="a00176_html_ga0682462f8096a226773e20fac993cde5"><div class="ttname"><a href="a00176.html#ga0682462f8096a226773e20fac993cde5">glm::aligned_vec2</a></div><div class="ttdeci">aligned_highp_vec2 aligned_vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00254">gtc/type_aligned.hpp:254</a></div></div>
+<div class="ttc" id="a00176_html_gae1964ba70d15915e5b710926decbb3cb"><div class="ttname"><a href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">glm::aligned_bvec3</a></div><div class="ttdeci">aligned_highp_bvec3 aligned_bvec3</div><div class="ttdoc">3 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00355">gtc/type_aligned.hpp:355</a></div></div>
+<div class="ttc" id="a00176_html_gab70c189b4691715b3f7f0abb35c65b2f"><div class="ttname"><a href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">glm::aligned_lowp_dvec2</a></div><div class="ttdeci">tvec2&lt; double, aligned_lowp &gt; aligned_lowp_dvec2</div><div class="ttdoc">2 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00093">gtc/type_aligned.hpp:93</a></div></div>
+<div class="ttc" id="a00176_html_ga54f6765716867706643bde03211d600f"><div class="ttname"><a href="a00176.html#ga54f6765716867706643bde03211d600f">glm::aligned_highp_dvec3</a></div><div class="ttdeci">tvec3&lt; double, aligned_highp &gt; aligned_highp_dvec3</div><div class="ttdoc">3 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00147">gtc/type_aligned.hpp:147</a></div></div>
+<div class="ttc" id="a00176_html_gabf842c45eea186170c267a328e3f3b7d"><div class="ttname"><a href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">glm::aligned_uvec4</a></div><div class="ttdeci">aligned_highp_uvec4 aligned_uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00334">gtc/type_aligned.hpp:334</a></div></div>
+<div class="ttc" id="a00176_html_gae234a3a1c6288fa5e2d4c78c5e39002e"><div class="ttname"><a href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">glm::aligned_highp_ivec3</a></div><div class="ttdeci">tvec3&lt; int, aligned_highp &gt; aligned_highp_ivec3</div><div class="ttdoc">3 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00159">gtc/type_aligned.hpp:159</a></div></div>
+<div class="ttc" id="a00176_html_gac56a4ce85b6233998139a7c1ac337440"><div class="ttname"><a href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">glm::aligned_highp_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, aligned_highp &gt; aligned_highp_uvec4</div><div class="ttdoc">4 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00220">gtc/type_aligned.hpp:220</a></div></div>
+<div class="ttc" id="a00176_html_ga15355ffc7ec7931b81ba76736b65e51a"><div class="ttname"><a href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">glm::aligned_lowp_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, aligned_lowp &gt; aligned_lowp_uvec2</div><div class="ttdoc">2 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00117">gtc/type_aligned.hpp:117</a></div></div>
+<div class="ttc" id="a00176_html_ga5b16f7e81555819bf0f80f4db4bc0b26"><div class="ttname"><a href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">glm::aligned_mediump_ivec3</a></div><div class="ttdeci">tvec3&lt; int, aligned_mediump &gt; aligned_mediump_ivec3</div><div class="ttdoc">3 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00163">gtc/type_aligned.hpp:163</a></div></div>
+<div class="ttc" id="a00176_html_ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><div class="ttname"><a href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">glm::aligned_lowp_vec2</a></div><div class="ttdeci">tvec2&lt; float, aligned_lowp &gt; aligned_lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00081">gtc/type_aligned.hpp:81</a></div></div>
+<div class="ttc" id="a00176_html_ga2a8d9c3046f89d854eb758adfa0811c0"><div class="ttname"><a href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">glm::aligned_uvec3</a></div><div class="ttdeci">aligned_highp_uvec3 aligned_uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00331">gtc/type_aligned.hpp:331</a></div></div>
+<div class="ttc" id="a00176_html_gae2938d64c6a46f721681607c2ab3f884"><div class="ttname"><a href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">glm::aligned_highp_vec4</a></div><div class="ttdeci">tvec4&lt; float, aligned_highp &gt; aligned_highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00193">gtc/type_aligned.hpp:193</a></div></div>
+<div class="ttc" id="a00176_html_gae4ab68a8c32574bff14e62f95185d295"><div class="ttname"><a href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">glm::aligned_mediump_vec4</a></div><div class="ttdeci">tvec4&lt; float, aligned_mediump &gt; aligned_mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00196">gtc/type_aligned.hpp:196</a></div></div>
+<div class="ttc" id="a00176_html_ga7366a38dc888164e623fc10663e97670"><div class="ttname"><a href="a00176.html#ga7366a38dc888164e623fc10663e97670">glm::aligned_highp_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, aligned_highp &gt; aligned_highp_uvec2</div><div class="ttdoc">2 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00109">gtc/type_aligned.hpp:109</a></div></div>
+<div class="ttc" id="a00176_html_ga21fb6238997b4a21848411b16bc34e93"><div class="ttname"><a href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">glm::aligned_lowp_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, aligned_lowp &gt; aligned_lowp_bvec3</div><div class="ttdoc">3 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00188">gtc/type_aligned.hpp:188</a></div></div>
+<div class="ttc" id="a00176_html_ga780a35f764020f553a9601a3fcdcd059"><div class="ttname"><a href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">glm::aligned_bvec1</a></div><div class="ttdeci">aligned_highp_bvec1 aligned_bvec1</div><div class="ttdoc">1 component vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00349">gtc/type_aligned.hpp:349</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00176_html_ga55fb20d4e73a65c834b5861fc6cf4c36"><div class="ttname"><a href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">glm::aligned_highp_vec3</a></div><div class="ttdeci">tvec3&lt; float, aligned_highp &gt; aligned_highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00135">gtc/type_aligned.hpp:135</a></div></div>
+<div class="ttc" id="a00176_html_ga8e5a90ed034e9e7414ff71e66a79139e"><div class="ttname"><a href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">glm::aligned_highp_dvec4</a></div><div class="ttdeci">tvec4&lt; double, aligned_highp &gt; aligned_highp_dvec4</div><div class="ttdoc">4 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00202">gtc/type_aligned.hpp:202</a></div></div>
+<div class="ttc" id="a00176_html_ga1ff8ed402c93d280ff0597c1c5e7c548"><div class="ttname"><a href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">glm::aligned_uvec1</a></div><div class="ttdeci">aligned_highp_uvec1 aligned_uvec1</div><div class="ttdoc">1 component vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00325">gtc/type_aligned.hpp:325</a></div></div>
+<div class="ttc" id="a00176_html_gaea854184b9d574fc5e75b5709a4974e8"><div class="ttname"><a href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">glm::aligned_highp_vec2</a></div><div class="ttdeci">tvec2&lt; float, aligned_highp &gt; aligned_highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00073">gtc/type_aligned.hpp:73</a></div></div>
+<div class="ttc" id="a00176_html_gaed5d4dd2755cc5141a9533488edd9e82"><div class="ttname"><a href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">glm::aligned_mediump_vec3</a></div><div class="ttdeci">tvec3&lt; float, aligned_mediump &gt; aligned_mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00139">gtc/type_aligned.hpp:139</a></div></div>
+<div class="ttc" id="a00176_html_ga85d89e83cb8137e1be1446de8c3b643a"><div class="ttname"><a href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">glm::aligned_vec4</a></div><div class="ttdeci">aligned_highp_vec4 aligned_vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00260">gtc/type_aligned.hpp:260</a></div></div>
+<div class="ttc" id="a00176_html_ga4f78cd6d9c5827771e35921b4a92855a"><div class="ttname"><a href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">glm::aligned_mediump_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, aligned_mediump &gt; aligned_mediump_bvec3</div><div class="ttdoc">3 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00185">gtc/type_aligned.hpp:185</a></div></div>
+<div class="ttc" id="a00176_html_ga2cb80e2d4d351abeadac7b1676a91fd9"><div class="ttname"><a href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">glm::aligned_mediump_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, aligned_mediump &gt; aligned_mediump_bvec4</div><div class="ttdoc">4 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00232">gtc/type_aligned.hpp:232</a></div></div>
+<div class="ttc" id="a00176_html_ga57549b1281d99ba1825b1ef0dae6227d"><div class="ttname"><a href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">glm::aligned_mediump_vec2</a></div><div class="ttdeci">tvec2&lt; float, aligned_mediump &gt; aligned_mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00077">gtc/type_aligned.hpp:77</a></div></div>
+<div class="ttc" id="a00176_html_ga7f79eae5927c9033d84617e49f6f34e4"><div class="ttname"><a href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">glm::aligned_ivec4</a></div><div class="ttdeci">aligned_highp_ivec4 aligned_ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00308">gtc/type_aligned.hpp:308</a></div></div>
+<div class="ttc" id="a00176_html_ga77d37d7c80c7faa2eecb3eba7677750e"><div class="ttname"><a href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">glm::aligned_mediump_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, aligned_mediump &gt; aligned_mediump_bvec2</div><div class="ttdoc">2 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00125">gtc/type_aligned.hpp:125</a></div></div>
+<div class="ttc" id="a00176_html_gabeec3d5ec99c196f4c0eb03b58d486ee"><div class="ttname"><a href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">glm::aligned_lowp_dvec3</a></div><div class="ttdeci">tvec3&lt; double, aligned_lowp &gt; aligned_lowp_dvec3</div><div class="ttdoc">3 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00155">gtc/type_aligned.hpp:155</a></div></div>
+<div class="ttc" id="a00176_html_ga40b0e05306f666f835ac97c963302ecb"><div class="ttname"><a href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">glm::aligned_lowp_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, aligned_lowp &gt; aligned_lowp_uvec4</div><div class="ttdoc">4 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00226">gtc/type_aligned.hpp:226</a></div></div>
+<div class="ttc" id="a00176_html_gab6ddd9d1421eb610ddeb32705fed7026"><div class="ttname"><a href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">glm::aligned_highp_ivec2</a></div><div class="ttdeci">tvec2&lt; int, aligned_highp &gt; aligned_highp_ivec2</div><div class="ttdoc">2 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00097">gtc/type_aligned.hpp:97</a></div></div>
+<div class="ttc" id="a00176_html_ga18d859f87122b2b3b2992ffe86dbebc0"><div class="ttname"><a href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">glm::aligned_dvec2</a></div><div class="ttdeci">aligned_highp_dvec2 aligned_dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00278">gtc/type_aligned.hpp:278</a></div></div>
+<div class="ttc" id="a00176_html_ga074137e3be58528d67041c223d49f398"><div class="ttname"><a href="a00176.html#ga074137e3be58528d67041c223d49f398">glm::aligned_uvec2</a></div><div class="ttdeci">aligned_highp_uvec2 aligned_uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00328">gtc/type_aligned.hpp:328</a></div></div>
+<div class="ttc" id="a00176_html_gad744848a2e4ddd2f041e6ec8d13600ae"><div class="ttname"><a href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">glm::aligned_lowp_ivec4</a></div><div class="ttdeci">tvec4&lt; int, aligned_lowp &gt; aligned_lowp_ivec4</div><div class="ttdoc">4 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00217">gtc/type_aligned.hpp:217</a></div></div>
+<div class="ttc" id="a00176_html_gad69bf7c406a3cec994307473cb3da032"><div class="ttname"><a href="a00176.html#gad69bf7c406a3cec994307473cb3da032">glm::aligned_lowp_ivec2</a></div><div class="ttdeci">tvec2&lt; int, aligned_lowp &gt; aligned_lowp_ivec2</div><div class="ttdoc">2 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00105">gtc/type_aligned.hpp:105</a></div></div>
+<div class="ttc" id="a00176_html_ga05e6d4c908965d04191c2070a8d0a65e"><div class="ttname"><a href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">glm::aligned_vec1</a></div><div class="ttdeci">aligned_highp_vec1 aligned_vec1</div><div class="ttdoc">1 component vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00251">gtc/type_aligned.hpp:251</a></div></div>
+<div class="ttc" id="a00176_html_gaab365ee7cfd19bab449daa8f7eb0ca71"><div class="ttname"><a href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">glm::aligned_lowp_dvec4</a></div><div class="ttdeci">tvec4&lt; double, aligned_lowp &gt; aligned_lowp_dvec4</div><div class="ttdoc">4 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00208">gtc/type_aligned.hpp:208</a></div></div>
+<div class="ttc" id="a00176_html_gae640082d0ffdb52fb2d658916c5815db"><div class="ttname"><a href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">glm::aligned_mediump_ivec4</a></div><div class="ttdeci">tvec4&lt; int, aligned_mediump &gt; aligned_mediump_ivec4</div><div class="ttdoc">4 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00214">gtc/type_aligned.hpp:214</a></div></div>
+<div class="ttc" id="a00176_html_ga3adba191018d2de1dc2834a2ff5597d7"><div class="ttname"><a href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">glm::aligned_highp_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, aligned_highp &gt; aligned_highp_bvec3</div><div class="ttdoc">3 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00182">gtc/type_aligned.hpp:182</a></div></div>
+<div class="ttc" id="a00176_html_gae4f38fd2c86cee6940986197777b3ca4"><div class="ttname"><a href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">glm::aligned_ivec2</a></div><div class="ttdeci">aligned_highp_ivec2 aligned_ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00302">gtc/type_aligned.hpp:302</a></div></div>
+<div class="ttc" id="a00176_html_ga1e3286a27b19f25801fb435b6d1225fb"><div class="ttname"><a href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">glm::aligned_highp_ivec4</a></div><div class="ttdeci">tvec4&lt; int, aligned_highp &gt; aligned_highp_ivec4</div><div class="ttdoc">4 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00211">gtc/type_aligned.hpp:211</a></div></div>
+<div class="ttc" id="a00176_html_ga32794322d294e5ace7fed4a61896f270"><div class="ttname"><a href="a00176.html#ga32794322d294e5ace7fed4a61896f270">glm::aligned_ivec3</a></div><div class="ttdeci">aligned_highp_ivec3 aligned_ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00305">gtc/type_aligned.hpp:305</a></div></div>
+<div class="ttc" id="a00176_html_ga186b90f0ba86724e080d237f3f5f9417"><div class="ttname"><a href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">glm::aligned_highp_dvec2</a></div><div class="ttdeci">tvec2&lt; double, aligned_highp &gt; aligned_highp_dvec2</div><div class="ttdoc">2 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00085">gtc/type_aligned.hpp:85</a></div></div>
+<div class="ttc" id="a00176_html_ga7cf643b66664e0cd3c48759ae66c2bd0"><div class="ttname"><a href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">glm::aligned_vec3</a></div><div class="ttdeci">aligned_highp_vec3 aligned_vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00257">gtc/type_aligned.hpp:257</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00107.html b/3rdparty/glm/doc/api/a00107.html
index 9ba880d6af6..1af5e386b1c 100644
--- a/3rdparty/glm/doc/api/a00107.html
+++ b/3rdparty/glm/doc/api/a00107.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_quat.hpp File Reference</title>
+<title>0.9.9 API documenation: type_aligned.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,30 +64,675 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">simd_quat.hpp File Reference</div> </div>
+<div class="title">gtx/type_aligned.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00231.html">GLM_GTX_type_aligned</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00107_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
+<tr class="memdesc:gab5cd5c5fad228b25c782084f1cc30114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gab5cd5c5fad228b25c782084f1cc30114">More...</a><br /></td></tr>
+<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
+<tr class="memdesc:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga5bb5dd895ef625c1b113f2cf400186b0">More...</a><br /></td></tr>
+<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
+<tr class="memdesc:gac6efa54cf7c6c86f7158922abdb1a430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gac6efa54cf7c6c86f7158922abdb1a430">More...</a><br /></td></tr>
+<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
+<tr class="memdesc:ga6612eb77c8607048e7552279a11eeb5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga6612eb77c8607048e7552279a11eeb5f">More...</a><br /></td></tr>
+<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
+<tr class="memdesc:ga7ddc1848ff2223026db8968ce0c97497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga7ddc1848ff2223026db8968ce0c97497">More...</a><br /></td></tr>
+<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
+<tr class="memdesc:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga22240dd9458b0f8c11fbcc4f48714f68">More...</a><br /></td></tr>
+<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
+<tr class="memdesc:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga8130ea381d76a2cc34a93ccbb6cf487d">More...</a><br /></td></tr>
+<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
+<tr class="memdesc:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga7ccb60f3215d293fd62b33b31ed0e7be">More...</a><br /></td></tr>
+<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
+<tr class="memdesc:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gac20d508d2ef5cc95ad3daf083c57ec2a">More...</a><br /></td></tr>
+<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
+<tr class="memdesc:ga50257b48069a31d0c8d9c1f644d267de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga50257b48069a31d0c8d9c1f644d267de">More...</a><br /></td></tr>
+<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
+<tr class="memdesc:gaa07e98e67b7a3435c0746018c7a2a839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gaa07e98e67b7a3435c0746018c7a2a839">More...</a><br /></td></tr>
+<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
+<tr class="memdesc:ga62601fc6f8ca298b77285bedf03faffd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga62601fc6f8ca298b77285bedf03faffd">More...</a><br /></td></tr>
+<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
+<tr class="memdesc:gac8cff825951aeb54dd846037113c72db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gac8cff825951aeb54dd846037113c72db">More...</a><br /></td></tr>
+<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
+<tr class="memdesc:ga78f443d88f438575a62b5df497cdf66b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga78f443d88f438575a62b5df497cdf66b">More...</a><br /></td></tr>
+<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
+<tr class="memdesc:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga0680cd3b5d4e8006985fb41a4f9b57af">More...</a><br /></td></tr>
+<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
+<tr class="memdesc:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer aligned scalar type. <a href="a00231.html#gad9e5babb1dd3e3531b42c37bf25dd951">More...</a><br /></td></tr>
+<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
+<tr class="memdesc:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">More...</a><br /></td></tr>
+<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
+<tr class="memdesc:ga2196442c0e5c5e8c77842de388c42521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga2196442c0e5c5e8c77842de388c42521">More...</a><br /></td></tr>
+<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
+<tr class="memdesc:ga1284488189daf897cf095c5eefad9744"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga1284488189daf897cf095c5eefad9744">More...</a><br /></td></tr>
+<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
+<tr class="memdesc:ga73fdc86a539808af58808b7c60a1c4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga73fdc86a539808af58808b7c60a1c4d8">More...</a><br /></td></tr>
+<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
+<tr class="memdesc:gafafeea923e1983262c972e2b83922d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gafafeea923e1983262c972e2b83922d3b">More...</a><br /></td></tr>
+<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
+<tr class="memdesc:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">More...</a><br /></td></tr>
+<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
+<tr class="memdesc:ga63b882e29170d428463d99c3d630acc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga63b882e29170d428463d99c3d630acc6">More...</a><br /></td></tr>
+<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
+<tr class="memdesc:ga8b20507bb048c1edea2d441cc953e6f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga8b20507bb048c1edea2d441cc953e6f0">More...</a><br /></td></tr>
+<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
+<tr class="memdesc:ga56c5ca60813027b603c7b61425a0479d"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga56c5ca60813027b603c7b61425a0479d">More...</a><br /></td></tr>
+<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
+<tr class="memdesc:ga7a751b3aff24c0259f4a7357c2969089"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga7a751b3aff24c0259f4a7357c2969089">More...</a><br /></td></tr>
+<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
+<tr class="memdesc:ga70cd2144351c556469ee6119e59971fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga70cd2144351c556469ee6119e59971fc">More...</a><br /></td></tr>
+<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
+<tr class="memdesc:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga46bbf08dc004d8c433041e0b5018a5d3">More...</a><br /></td></tr>
+<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
+<tr class="memdesc:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gab3e10c77a20d1abad2de1c561c7a5c18">More...</a><br /></td></tr>
+<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
+<tr class="memdesc:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga968f30319ebeaca9ebcd3a25a8e139fb">More...</a><br /></td></tr>
+<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
+<tr class="memdesc:gaae773c28e6390c6aa76f5b678b7098a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gaae773c28e6390c6aa76f5b678b7098a3">More...</a><br /></td></tr>
+<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
+<tr class="memdesc:ga790cfff1ca39d0ed696ffed980809311"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga790cfff1ca39d0ed696ffed980809311">More...</a><br /></td></tr>
+<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
+<tr class="memdesc:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga8265b91eb23c120a9b0c3e381bc37b96">More...</a><br /></td></tr>
+<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
+<tr class="memdesc:gae6d384de17588d8edb894fbe06e0d410"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gae6d384de17588d8edb894fbe06e0d410">More...</a><br /></td></tr>
+<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
+<tr class="memdesc:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga9c8172b745ee03fc5b2b91c350c2922f">More...</a><br /></td></tr>
+<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
+<tr class="memdesc:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">More...</a><br /></td></tr>
+<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
+<tr class="memdesc:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">More...</a><br /></td></tr>
+<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
+<tr class="memdesc:ga285649744560be21000cfd81bbb5d507"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga285649744560be21000cfd81bbb5d507">More...</a><br /></td></tr>
+<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
+<tr class="memdesc:ga07732da630b2deda428ce95c0ecaf3ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga07732da630b2deda428ce95c0ecaf3ff">More...</a><br /></td></tr>
+<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
+<tr class="memdesc:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">More...</a><br /></td></tr>
+<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
+<tr class="memdesc:ga848aedf13e2d9738acf0bb482c590174"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga848aedf13e2d9738acf0bb482c590174">More...</a><br /></td></tr>
+<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
+<tr class="memdesc:gafd2803d39049dd45a37a63931e25d943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gafd2803d39049dd45a37a63931e25d943">More...</a><br /></td></tr>
+<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
+<tr class="memdesc:gae553b33349d6da832cf0724f1e024094"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gae553b33349d6da832cf0724f1e024094">More...</a><br /></td></tr>
+<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
+<tr class="memdesc:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">More...</a><br /></td></tr>
+<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
+<tr class="memdesc:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga2de065d2ddfdb366bcd0febca79ae2ad">More...</a><br /></td></tr>
+<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
+<tr class="memdesc:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gabd786bdc20a11c8cb05c92c8212e28d3">More...</a><br /></td></tr>
+<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
+<tr class="memdesc:gad4aefe56691cdb640c72f0d46d3fb532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gad4aefe56691cdb640c72f0d46d3fb532">More...</a><br /></td></tr>
+<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
+<tr class="memdesc:ga8fe9745f7de24a8394518152ff9fccdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga8fe9745f7de24a8394518152ff9fccdc">More...</a><br /></td></tr>
+<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
+<tr class="memdesc:gaaad735483450099f7f882d4e3a3569bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gaaad735483450099f7f882d4e3a3569bd">More...</a><br /></td></tr>
+<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
+<tr class="memdesc:gac7b6f823802edbd6edbaf70ea25bf068"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 2 components type. <a href="a00231.html#gac7b6f823802edbd6edbaf70ea25bf068">More...</a><br /></td></tr>
+<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
+<tr class="memdesc:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 3 components type. <a href="a00231.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">More...</a><br /></td></tr>
+<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
+<tr class="memdesc:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga50d8a9523968c77f8325b4c9bfbff41e">More...</a><br /></td></tr>
+<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
+<tr class="memdesc:ga9ec20fdfb729c702032da9378c79679f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga9ec20fdfb729c702032da9378c79679f">More...</a><br /></td></tr>
+<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
+<tr class="memdesc:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned vector of 2 components type. <a href="a00231.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">More...</a><br /></td></tr>
+<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
+<tr class="memdesc:ga2958f907719d94d8109b562540c910e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned vector of 3 components type. <a href="a00231.html#ga2958f907719d94d8109b562540c910e2">More...</a><br /></td></tr>
+<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
+<tr class="memdesc:ga1fe6fc032a978f1c845fac9aa0668714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga1fe6fc032a978f1c845fac9aa0668714">More...</a><br /></td></tr>
+<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
+<tr class="memdesc:gaa4161e7a496dc96972254143fe873e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gaa4161e7a496dc96972254143fe873e55">More...</a><br /></td></tr>
+<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
+<tr class="memdesc:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned vector of 2 components type. <a href="a00231.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">More...</a><br /></td></tr>
+<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
+<tr class="memdesc:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned vector of 3 components type. <a href="a00231.html#gaaee91dd2ab34423bcc11072ef6bd0f02">More...</a><br /></td></tr>
+<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
+<tr class="memdesc:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga49f047ccaa8b31fad9f26c67bf9b3510">More...</a><br /></td></tr>
+<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
+<tr class="memdesc:ga904e9c2436bb099397c0823506a0771f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga904e9c2436bb099397c0823506a0771f">More...</a><br /></td></tr>
+<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
+<tr class="memdesc:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 2 components type. <a href="a00231.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">More...</a><br /></td></tr>
+<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
+<tr class="memdesc:ga7354a4ead8cb17868aec36b9c30d6010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 3 components type. <a href="a00231.html#ga7354a4ead8cb17868aec36b9c30d6010">More...</a><br /></td></tr>
+<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
+<tr class="memdesc:gad2ecbdea18732163e2636e27b37981ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 4 components type. <a href="a00231.html#gad2ecbdea18732163e2636e27b37981ee">More...</a><br /></td></tr>
+<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
+<tr class="memdesc:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">More...</a><br /></td></tr>
+<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
+<tr class="memdesc:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned vector of 2 components type. <a href="a00231.html#ga1f9e9c2ea2768675dff9bae5cde2d829">More...</a><br /></td></tr>
+<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
+<tr class="memdesc:gad77c317b7d942322cd5be4c8127b3187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned vector of 3 components type. <a href="a00231.html#gad77c317b7d942322cd5be4c8127b3187">More...</a><br /></td></tr>
+<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
+<tr class="memdesc:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga716f8ea809bdb11b5b542d8b71aeb04f">More...</a><br /></td></tr>
+<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
+<tr class="memdesc:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gad46f8e9082d5878b1bc04f9c1471cdaa">More...</a><br /></td></tr>
+<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
+<tr class="memdesc:ga1246094581af624aca6c7499aaabf801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga1246094581af624aca6c7499aaabf801">More...</a><br /></td></tr>
+<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
+<tr class="memdesc:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga7a5009a1d0196bbf21dd7518f61f0249">More...</a><br /></td></tr>
+<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
+<tr class="memdesc:ga45213fd18b3bb1df391671afefe4d1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga45213fd18b3bb1df391671afefe4d1e7">More...</a><br /></td></tr>
+<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
+<tr class="memdesc:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">More...</a><br /></td></tr>
+<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
+<tr class="memdesc:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">More...</a><br /></td></tr>
+<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
+<tr class="memdesc:gadc246401847dcba155f0699425e49dcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gadc246401847dcba155f0699425e49dcd">More...</a><br /></td></tr>
+<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
+<tr class="memdesc:gaace64bddf51a9def01498da9a94fb01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gaace64bddf51a9def01498da9a94fb01c">More...</a><br /></td></tr>
+<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
+<tr class="memdesc:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gad7bb97c29d664bd86ffb1bed4abc5534">More...</a><br /></td></tr>
+<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
+<tr class="memdesc:ga404bba7785130e0b1384d695a9450b28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga404bba7785130e0b1384d695a9450b28">More...</a><br /></td></tr>
+<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
+<tr class="memdesc:ga31ba41fd896257536958ec6080203d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga31ba41fd896257536958ec6080203d2a">More...</a><br /></td></tr>
+<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
+<tr class="memdesc:gacca5f13627f57b3505676e40a6e43e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gacca5f13627f57b3505676e40a6e43e5e">More...</a><br /></td></tr>
+<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
+<tr class="memdesc:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">More...</a><br /></td></tr>
+<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
+<tr class="memdesc:ga727e2bf2c433bb3b0182605860a48363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga727e2bf2c433bb3b0182605860a48363">More...</a><br /></td></tr>
+<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
+<tr class="memdesc:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga12566ca66d5962dadb4a5eb4c74e891e">More...</a><br /></td></tr>
+<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
+<tr class="memdesc:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga7b66a97a8acaa35c5a377b947318c6bc">More...</a><br /></td></tr>
+<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
+<tr class="memdesc:gaa9cde002439b74fa66120a16a9f55fcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gaa9cde002439b74fa66120a16a9f55fcc">More...</a><br /></td></tr>
+<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
+<tr class="memdesc:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">More...</a><br /></td></tr>
+<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
+<tr class="memdesc:ga1dc8bc6199d785f235576948d80a597c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga1dc8bc6199d785f235576948d80a597c">More...</a><br /></td></tr>
+<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
+<tr class="memdesc:gad14a0f2ec93519682b73d70b8e401d81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gad14a0f2ec93519682b73d70b8e401d81">More...</a><br /></td></tr>
+<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
+<tr class="memdesc:gada8b996eb6526dc1ead813bd49539d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gada8b996eb6526dc1ead813bd49539d1b">More...</a><br /></td></tr>
+<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
+<tr class="memdesc:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">More...</a><br /></td></tr>
+<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
+<tr class="memdesc:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">More...</a><br /></td></tr>
+<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
+<tr class="memdesc:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">More...</a><br /></td></tr>
+<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
+<tr class="memdesc:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga0ee829f7b754b262bbfe6317c0d678ac">More...</a><br /></td></tr>
+<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
+<tr class="memdesc:ga447848a817a626cae08cedc9778b331c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga447848a817a626cae08cedc9778b331c">More...</a><br /></td></tr>
+<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
+<tr class="memdesc:ga6027ae13b2734f542a6e7beee11b8820"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga6027ae13b2734f542a6e7beee11b8820">More...</a><br /></td></tr>
+<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
+<tr class="memdesc:ga2aca46c8608c95ef991ee4c332acde5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga2aca46c8608c95ef991ee4c332acde5f">More...</a><br /></td></tr>
+<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
+<tr class="memdesc:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gaff50b10dd1c48be324fdaffd18e2c7ea">More...</a><br /></td></tr>
+<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
+<tr class="memdesc:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga9fc4421dbb833d5461e6d4e59dcfde55">More...</a><br /></td></tr>
+<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
+<tr class="memdesc:ga329f1e2b94b33ba5e3918197030bcf03"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga329f1e2b94b33ba5e3918197030bcf03">More...</a><br /></td></tr>
+<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
+<tr class="memdesc:ga71e646f7e301aa422328194162c9c998"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga71e646f7e301aa422328194162c9c998">More...</a><br /></td></tr>
+<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
+<tr class="memdesc:ga8942e09f479489441a7a5004c6d8cb66"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga8942e09f479489441a7a5004c6d8cb66">More...</a><br /></td></tr>
+<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
+<tr class="memdesc:gaab32497d6e4db16ee439dbedd64c5865"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#gaab32497d6e4db16ee439dbedd64c5865">More...</a><br /></td></tr>
+<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
+<tr class="memdesc:gaaadbb34952eca8e3d7fe122c3e167742"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gaaadbb34952eca8e3d7fe122c3e167742">More...</a><br /></td></tr>
+<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
+<tr class="memdesc:ga92024d27c74a3650afb55ec8e024ed25"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga92024d27c74a3650afb55ec8e024ed25">More...</a><br /></td></tr>
+<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
+<tr class="memdesc:gabde1d0b4072df35453db76075ab896a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gabde1d0b4072df35453db76075ab896a6">More...</a><br /></td></tr>
+<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
+<tr class="memdesc:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga06c296c9e398b294c8c9dd2a7693dcbb">More...</a><br /></td></tr>
+<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
+<tr class="memdesc:gacf1744488c96ebd33c9f36ad33b2010a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gacf1744488c96ebd33c9f36ad33b2010a">More...</a><br /></td></tr>
+<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
+<tr class="memdesc:ga3328061a64c20ba59d5f9da24c2cd059"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga3328061a64c20ba59d5f9da24c2cd059">More...</a><br /></td></tr>
+<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
+<tr class="memdesc:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gaf6ced36f13bae57f377bafa6f5fcc299">More...</a><br /></td></tr>
+<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
+<tr class="memdesc:gafbc7fb7847bfc78a339d1d371c915c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#gafbc7fb7847bfc78a339d1d371c915c73">More...</a><br /></td></tr>
+<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
+<tr class="memdesc:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gaa86bc56a73fd8120b1121b5f5e6245ae">More...</a><br /></td></tr>
+<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
+<tr class="memdesc:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">More...</a><br /></td></tr>
+<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
+<tr class="memdesc:ga4f3bab577daf3343e99cc005134bce86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga4f3bab577daf3343e99cc005134bce86">More...</a><br /></td></tr>
+<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
+<tr class="memdesc:ga13a2391339d0790d43b76d00a7611c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga13a2391339d0790d43b76d00a7611c4f">More...</a><br /></td></tr>
+<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
+<tr class="memdesc:ga197570e03acbc3d18ab698e342971e8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga197570e03acbc3d18ab698e342971e8f">More...</a><br /></td></tr>
+<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
+<tr class="memdesc:ga0f033b21e145a1faa32c62ede5878993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga0f033b21e145a1faa32c62ede5878993">More...</a><br /></td></tr>
+<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
+<tr class="memdesc:ga509af83527f5cd512e9a7873590663aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga509af83527f5cd512e9a7873590663aa">More...</a><br /></td></tr>
+<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
+<tr class="memdesc:ga94e86186978c502c6dc0c0d9c4a30679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga94e86186978c502c6dc0c0d9c4a30679">More...</a><br /></td></tr>
+<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
+<tr class="memdesc:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">More...</a><br /></td></tr>
+<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
+<tr class="memdesc:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga47edfdcee9c89b1ebdaf20450323b1d4">More...</a><br /></td></tr>
+<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
+<tr class="memdesc:ga5611d6718e3a00096918a64192e73a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga5611d6718e3a00096918a64192e73a45">More...</a><br /></td></tr>
+<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
+<tr class="memdesc:ga19837e6f72b60d994a805ef564c6c326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga19837e6f72b60d994a805ef564c6c326">More...</a><br /></td></tr>
+<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
+<tr class="memdesc:ga9740cf8e34f068049b42a2753f9601c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga9740cf8e34f068049b42a2753f9601c2">More...</a><br /></td></tr>
+<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
+<tr class="memdesc:ga8b8588bb221448f5541a858903822a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga8b8588bb221448f5541a858903822a57">More...</a><br /></td></tr>
+<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
+<tr class="memdesc:ga991abe990c16de26b2129d6bc2f4c051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga991abe990c16de26b2129d6bc2f4c051">More...</a><br /></td></tr>
+<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
+<tr class="memdesc:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#gac01bb9fc32a1cd76c2b80d030f71df4c">More...</a><br /></td></tr>
+<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
+<tr class="memdesc:ga09540dbca093793a36a8997e0d4bee77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga09540dbca093793a36a8997e0d4bee77">More...</a><br /></td></tr>
+<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
+<tr class="memdesc:gaecafb5996f5a44f57e34d29c8670741e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#gaecafb5996f5a44f57e34d29c8670741e">More...</a><br /></td></tr>
+<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
+<tr class="memdesc:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gac6b161a04d2f8408fe1c9d857e8daac0">More...</a><br /></td></tr>
+<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
+<tr class="memdesc:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">More...</a><br /></td></tr>
+<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
+<tr class="memdesc:ga0019500abbfa9c66eff61ca75eaaed94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga0019500abbfa9c66eff61ca75eaaed94">More...</a><br /></td></tr>
+<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
+<tr class="memdesc:ga14fd29d01dae7b08a04e9facbcc18824"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga14fd29d01dae7b08a04e9facbcc18824">More...</a><br /></td></tr>
+<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
+<tr class="memdesc:gab253845f534a67136f9619843cade903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gab253845f534a67136f9619843cade903">More...</a><br /></td></tr>
+<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
+<tr class="memdesc:ga929427a7627940cdf3304f9c050b677d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga929427a7627940cdf3304f9c050b677d">More...</a><br /></td></tr>
+<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
+<tr class="memdesc:gae373b6c04fdf9879f33d63e6949c037e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#gae373b6c04fdf9879f33d63e6949c037e">More...</a><br /></td></tr>
+<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
+<tr class="memdesc:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga53a8a03dca2015baec4584f45b8e9cdc">More...</a><br /></td></tr>
+<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
+<tr class="memdesc:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit single-precision floating-point aligned scalar. <a href="a00231.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">More...</a><br /></td></tr>
+<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
+<tr class="memdesc:ga75930684ff2233171c573e603f216162"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit double-precision floating-point aligned scalar. <a href="a00231.html#ga75930684ff2233171c573e603f216162">More...</a><br /></td></tr>
+<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
+<tr class="memdesc:gada9b0bea273d3ae0286f891533b9568f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit single-precision floating-point aligned scalar. <a href="a00231.html#gada9b0bea273d3ae0286f891533b9568f">More...</a><br /></td></tr>
+<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
+<tr class="memdesc:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit double-precision floating-point aligned scalar. <a href="a00231.html#ga6e3a2d83b131336219a0f4c7cbba2a48">More...</a><br /></td></tr>
+<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
+<tr class="memdesc:gadbce23b9f23d77bb3884e289a574ebd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit single-precision floating-point aligned scalar. <a href="a00231.html#gadbce23b9f23d77bb3884e289a574ebd5">More...</a><br /></td></tr>
+<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
+<tr class="memdesc:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit double-precision floating-point aligned scalar. <a href="a00231.html#gaa4deaa0dea930c393d55e7a4352b0a20">More...</a><br /></td></tr>
+<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
+<tr class="memdesc:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">More...</a><br /></td></tr>
+<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
+<tr class="memdesc:gada3e8f783e9d4b90006695a16c39d4d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 2 components. <a href="a00231.html#gada3e8f783e9d4b90006695a16c39d4d4">More...</a><br /></td></tr>
+<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
+<tr class="memdesc:gab8d081fac3a38d6f55fa552f32168d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 3 components. <a href="a00231.html#gab8d081fac3a38d6f55fa552f32168d32">More...</a><br /></td></tr>
+<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
+<tr class="memdesc:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga12fe7b9769c964c5b48dcfd8b7f40198">More...</a><br /></td></tr>
+<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
+<tr class="memdesc:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 1 component. <a href="a00231.html#gaefab04611c7f8fe1fd9be3071efea6cc">More...</a><br /></td></tr>
+<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
+<tr class="memdesc:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga2543c05ba19b3bd19d45b1227390c5b4">More...</a><br /></td></tr>
+<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
+<tr class="memdesc:ga009afd727fd657ef33a18754d6d28f60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 3 components. <a href="a00231.html#ga009afd727fd657ef33a18754d6d28f60">More...</a><br /></td></tr>
+<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
+<tr class="memdesc:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">More...</a><br /></td></tr>
+<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
+<tr class="memdesc:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga309f495a1d6b75ddf195b674b65cb1e4">More...</a><br /></td></tr>
+<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
+<tr class="memdesc:ga5e185865a2217d0cd47187644683a8c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga5e185865a2217d0cd47187644683a8c3">More...</a><br /></td></tr>
+<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
+<tr class="memdesc:gade4458b27b039b9ca34f8ec049f3115a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 3 components. <a href="a00231.html#gade4458b27b039b9ca34f8ec049f3115a">More...</a><br /></td></tr>
+<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
+<tr class="memdesc:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">More...</a><br /></td></tr>
+<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
+<tr class="memdesc:ga3e0f35fa0c626285a8bad41707e7316c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga3e0f35fa0c626285a8bad41707e7316c">More...</a><br /></td></tr>
+<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
+<tr class="memdesc:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">More...</a><br /></td></tr>
+<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
+<tr class="memdesc:ga01fe6fee6db5df580b6724a7e681f069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 3 components. <a href="a00231.html#ga01fe6fee6db5df580b6724a7e681f069">More...</a><br /></td></tr>
+<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
+<tr class="memdesc:ga687d5b8f551d5af32425c0b2fba15e99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga687d5b8f551d5af32425c0b2fba15e99">More...</a><br /></td></tr>
+<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
+<tr class="memdesc:ga8e842371d46842ff8f1813419ba49d0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga8e842371d46842ff8f1813419ba49d0f">More...</a><br /></td></tr>
+<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
+<tr class="memdesc:ga32814aa0f19316b43134fc25f2aad2b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga32814aa0f19316b43134fc25f2aad2b9">More...</a><br /></td></tr>
+<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
+<tr class="memdesc:gaf3d3bbc1e93909b689123b085e177a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 3 components. <a href="a00231.html#gaf3d3bbc1e93909b689123b085e177a14">More...</a><br /></td></tr>
+<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
+<tr class="memdesc:ga804c654cead1139bd250f90f9bb01fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga804c654cead1139bd250f90f9bb01fad">More...</a><br /></td></tr>
+<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
+<tr class="memdesc:gafed7d010235a3aa7ea2f88646858f2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#gafed7d010235a3aa7ea2f88646858f2ae">More...</a><br /></td></tr>
+<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
+<tr class="memdesc:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">More...</a><br /></td></tr>
+<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
+<tr class="memdesc:ga31940e6012b72110e26fdb0f54805033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga31940e6012b72110e26fdb0f54805033">More...</a><br /></td></tr>
+<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
+<tr class="memdesc:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga01de96cd0b541c52d2b4a3faf65822e9">More...</a><br /></td></tr>
+<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
+<tr class="memdesc:gac88a191b004bd341e64fc53b5a4d00e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gac88a191b004bd341e64fc53b5a4d00e3">More...</a><br /></td></tr>
+<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
+<tr class="memdesc:gabe8c745fa2ced44a600a6e3f19991161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gabe8c745fa2ced44a600a6e3f19991161">More...</a><br /></td></tr>
+<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
+<tr class="memdesc:ga719da577361541a4c43a2dd1d0e361e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga719da577361541a4c43a2dd1d0e361e1">More...</a><br /></td></tr>
+<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
+<tr class="memdesc:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga6e7ee4f541e1d7db66cd1a224caacafb">More...</a><br /></td></tr>
+<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
+<tr class="memdesc:gae5d672d359f2a39f63f98c7975057486"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gae5d672d359f2a39f63f98c7975057486">More...</a><br /></td></tr>
+<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
+<tr class="memdesc:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">More...</a><br /></td></tr>
+<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
+<tr class="memdesc:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x3 matrix. <a href="a00231.html#ga0743b4f4f69a3227b82ff58f6abbad62">More...</a><br /></td></tr>
+<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
+<tr class="memdesc:ga1a76b325fdf70f961d835edd182c63dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x4 matrix. <a href="a00231.html#ga1a76b325fdf70f961d835edd182c63dd">More...</a><br /></td></tr>
+<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
+<tr class="memdesc:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x2 matrix. <a href="a00231.html#ga4b4e181cd041ba28c3163e7b8074aef0">More...</a><br /></td></tr>
+<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
+<tr class="memdesc:ga27b13f465abc8a40705698145e222c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga27b13f465abc8a40705698145e222c3f">More...</a><br /></td></tr>
+<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
+<tr class="memdesc:ga2608d19cc275830a6f8c0b6405625a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x4 matrix. <a href="a00231.html#ga2608d19cc275830a6f8c0b6405625a4f">More...</a><br /></td></tr>
+<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
+<tr class="memdesc:ga93f09768241358a287c4cca538f1f7e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x2 matrix. <a href="a00231.html#ga93f09768241358a287c4cca538f1f7e7">More...</a><br /></td></tr>
+<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
+<tr class="memdesc:ga7c117e3ecca089e10247b1d41d88aff9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x3 matrix. <a href="a00231.html#ga7c117e3ecca089e10247b1d41d88aff9">More...</a><br /></td></tr>
+<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
+<tr class="memdesc:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga07c75cd04ba42dc37fa3e105f89455c5">More...</a><br /></td></tr>
+<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
+<tr class="memdesc:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">More...</a><br /></td></tr>
+<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
+<tr class="memdesc:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gadd8ddbe2bf65ccede865ba2f510176dc">More...</a><br /></td></tr>
+<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
+<tr class="memdesc:gaf18dbff14bf13d3ff540c517659ec045"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gaf18dbff14bf13d3ff540c517659ec045">More...</a><br /></td></tr>
+<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
+<tr class="memdesc:ga66339f6139bf7ff19e245beb33f61cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga66339f6139bf7ff19e245beb33f61cc8">More...</a><br /></td></tr>
+<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
+<tr class="memdesc:ga1558a48b3934011b52612809f443e46d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x3 matrix. <a href="a00231.html#ga1558a48b3934011b52612809f443e46d">More...</a><br /></td></tr>
+<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
+<tr class="memdesc:gaa52e5732daa62851627021ad551c7680"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x4 matrix. <a href="a00231.html#gaa52e5732daa62851627021ad551c7680">More...</a><br /></td></tr>
+<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
+<tr class="memdesc:gac09663c42566bcb58d23c6781ac4e85a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x2 matrix. <a href="a00231.html#gac09663c42566bcb58d23c6781ac4e85a">More...</a><br /></td></tr>
+<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
+<tr class="memdesc:ga3f510999e59e1b309113e1d561162b29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga3f510999e59e1b309113e1d561162b29">More...</a><br /></td></tr>
+<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
+<tr class="memdesc:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x4 matrix. <a href="a00231.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">More...</a><br /></td></tr>
+<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
+<tr class="memdesc:ga99ce8274c750fbfdf0e70c95946a2875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x2 matrix. <a href="a00231.html#ga99ce8274c750fbfdf0e70c95946a2875">More...</a><br /></td></tr>
+<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
+<tr class="memdesc:ga9476ef66790239df53dbe66f3989c3b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x3 matrix. <a href="a00231.html#ga9476ef66790239df53dbe66f3989c3b5">More...</a><br /></td></tr>
+<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
+<tr class="memdesc:gacc429b3b0b49921e12713b6d31e14e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gacc429b3b0b49921e12713b6d31e14e1d">More...</a><br /></td></tr>
+<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
+<tr class="memdesc:ga88f6c6fa06e6e64479763e69444669cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga88f6c6fa06e6e64479763e69444669cf">More...</a><br /></td></tr>
+<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
+<tr class="memdesc:gaae8e4639c991e64754145ab8e4c32083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gaae8e4639c991e64754145ab8e4c32083">More...</a><br /></td></tr>
+<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
+<tr class="memdesc:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga6e9094f3feb3b5b49d0f83683a101fde">More...</a><br /></td></tr>
+<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
+<tr class="memdesc:gadbd2c639c03de1c3e9591b5a39f65559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 1x1 matrix. <a href="a00231.html#gadbd2c639c03de1c3e9591b5a39f65559">More...</a><br /></td></tr>
+<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
+<tr class="memdesc:gab059d7b9fe2094acc563b7223987499f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 2x3 matrix. <a href="a00231.html#gab059d7b9fe2094acc563b7223987499f">More...</a><br /></td></tr>
+<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
+<tr class="memdesc:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 2x4 matrix. <a href="a00231.html#gabbc811d1c52ed2b8cfcaff1378f75c69">More...</a><br /></td></tr>
+<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
+<tr class="memdesc:ga9ddf5212777734d2fd841a84439f3bdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x2 matrix. <a href="a00231.html#ga9ddf5212777734d2fd841a84439f3bdf">More...</a><br /></td></tr>
+<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
+<tr class="memdesc:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">More...</a><br /></td></tr>
+<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
+<tr class="memdesc:ga5875e0fa72f07e271e7931811cbbf31a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x4 matrix. <a href="a00231.html#ga5875e0fa72f07e271e7931811cbbf31a">More...</a><br /></td></tr>
+<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
+<tr class="memdesc:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x2 matrix. <a href="a00231.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">More...</a><br /></td></tr>
+<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
+<tr class="memdesc:ga0892638d6ba773043b3d63d1d092622e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x3 matrix. <a href="a00231.html#ga0892638d6ba773043b3d63d1d092622e">More...</a><br /></td></tr>
+<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
+<tr class="memdesc:ga912a16432608b822f1e13607529934c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga912a16432608b822f1e13607529934c1">More...</a><br /></td></tr>
+<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
+<tr class="memdesc:gafd945a8ea86b042aba410e0560df9a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned quaternion. <a href="a00231.html#gafd945a8ea86b042aba410e0560df9a3d">More...</a><br /></td></tr>
+<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
+<tr class="memdesc:gad8c4bfacff70e57dc8303634c8bfce35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned quaternion. <a href="a00231.html#gad8c4bfacff70e57dc8303634c8bfce35">More...</a><br /></td></tr>
+<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
+<tr class="memdesc:gaabc28c84a3288b697605d4688686f9a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned quaternion. <a href="a00231.html#gaabc28c84a3288b697605d4688686f9a9">More...</a><br /></td></tr>
+<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
+<tr class="memdesc:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned quaternion. <a href="a00231.html#ga1ed8aeb5ca67fade269a46105f1bf273">More...</a><br /></td></tr>
+<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
+<tr class="memdesc:ga95cc03b8b475993fa50e05e38e203303"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned quaternion. <a href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">More...</a><br /></td></tr>
+<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00231.html">GLM_GTX_simd_quat</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-04-22 / 2014-11-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00231.html">GLM_GTX_type_aligned</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00107_source.html">simd_quat.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00107_source.html">gtx/type_aligned.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00107_source.html b/3rdparty/glm/doc/api/a00107_source.html
index d3d7ff9faef..be87e5a5e4a 100644
--- a/3rdparty/glm/doc/api/a00107_source.html
+++ b/3rdparty/glm/doc/api/a00107_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_quat.hpp Source File</title>
+<title>0.9.9 API documenation: type_aligned.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,242 +64,743 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_quat.hpp</div> </div>
+<div class="title">gtx/type_aligned.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00107.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/fast_trigonometry.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_precision.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_type_aligned is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_type_aligned extension included&quot;)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// Signed int vector types </span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>, aligned_lowp_int8, 1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>, aligned_lowp_int16, 2);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>, aligned_lowp_int32, 4);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># include &quot;../gtx/simd_mat4.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simd_quat extension included&quot;)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// Warning silencer for nameless struct/union.</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># pragma warning(push)</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_ALIGNED_STRUCT(16) fquatSIMD</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>, aligned_lowp_int64, 8);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>, aligned_lowp_int8_t, 1);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>, aligned_lowp_int16_t, 2);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>, aligned_lowp_int32_t, 4);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>, aligned_lowp_int64_t, 8);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>, aligned_lowp_i8, 1);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> fquatSIMD type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">typedef</span> tquat&lt;bool, defaultp&gt; bool_type;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> tquat&lt;float, defaultp&gt; pure_type;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>, aligned_lowp_i16, 2);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = defaultp;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">union</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; __m128 Data;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; __m128 Data;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Implicit basic constructors</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; fquatSIMD() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; fquatSIMD(fquatSIMD const &amp; q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; fquatSIMD(__m128 const &amp; Data);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// Explicit basic constructors</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>, aligned_lowp_i32, 4);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>, aligned_lowp_i64, 8);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>, aligned_mediump_int8, 1);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>, aligned_mediump_int16, 2);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>, aligned_mediump_int32, 4);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>, aligned_mediump_int64, 8);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; explicit fquatSIMD(</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; ctor);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; explicit fquatSIMD(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">float</span> const &amp; w,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">float</span> const &amp; x,</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">float</span> const &amp; y,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">float</span> const &amp; z);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; explicit fquatSIMD(</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; quat const &amp; v);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; explicit fquatSIMD(</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp; <a class="code" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>, aligned_mediump_int8_t, 1);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>, aligned_mediump_int16_t, 2);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>, aligned_mediump_int32_t, 4);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// Unary arithmetic operators</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; fquatSIMD&amp; operator= (fquatSIMD const &amp; q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; fquatSIMD&amp; operator*=(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; fquatSIMD&amp; operator/=(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; };</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>, aligned_mediump_int64_t, 8);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>, aligned_mediump_i8, 1);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// Arithmetic operators</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; detail::fquatSIMD operator- (</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; detail::fquatSIMD const &amp; q);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; detail::fquatSIMD operator+ (</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; detail::fquatSIMD const &amp; q,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; detail::fquatSIMD const &amp; p);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; detail::fquatSIMD operator* (</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; detail::fquatSIMD const &amp; q,</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; detail::fquatSIMD const &amp; p);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; detail::fvec4SIMD operator* (</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; detail::fquatSIMD const &amp; q,</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; detail::fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; detail::fvec4SIMD operator* (</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; detail::fvec4SIMD const &amp; v,</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; detail::fquatSIMD const &amp; q);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; detail::fquatSIMD operator* (</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; detail::fquatSIMD const &amp; q,</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">float</span> s);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; detail::fquatSIMD operator* (</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">float</span> s,</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; detail::fquatSIMD const &amp; q);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>, aligned_mediump_i16, 2);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>, aligned_mediump_i32, 4);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>, aligned_mediump_i64, 8);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>, aligned_highp_int8, 1);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>, aligned_highp_int16, 2);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>, aligned_highp_int32, 4);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>, aligned_highp_int64, 8);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; detail::fquatSIMD operator/ (</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; detail::fquatSIMD const &amp; q,</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>, aligned_highp_int8_t, 1);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; typedef <a class="code" href="a00146.html">glm</a>::detail::fquatSIMD simdQuat;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; quat <a class="code" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; detail::fquatSIMD const &amp; x);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>, aligned_highp_int16_t, 2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>, aligned_highp_int32_t, 4);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>, aligned_highp_int64_t, 8);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; detail::fquatSIMD quatSIMD_cast(</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; detail::fmat4x4SIMD const &amp; m);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>, aligned_highp_i8, 1);</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; detail::fquatSIMD quatSIMD_cast(</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; tmat4x4&lt;T, P&gt; const &amp; m);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; template &lt;typename T, precision P&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; detail::fquatSIMD quatSIMD_cast(</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; tmat3x3&lt;T, P&gt; const &amp; m);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>, aligned_highp_i16, 2);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>, aligned_highp_i32, 4);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>, aligned_highp_i64, 8);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; detail::fmat4x4SIMD mat4SIMD_cast(</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; detail::fquatSIMD const &amp; q);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int8, aligned_int8, 1);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; detail::fquatSIMD const &amp; q);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; detail::fquatSIMD const &amp; x);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int16, aligned_int16, 2);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int32, aligned_int32, 4);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int64, aligned_int64, 8);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; detail::fquatSIMD <a class="code" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; detail::fquatSIMD const &amp; x);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; detail::fquatSIMD const &amp; q1,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; detail::fquatSIMD const &amp; q2);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>, aligned_int8_t, 1);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>, aligned_int16_t, 2);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>, aligned_int32_t, 4);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; detail::fquatSIMD <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; detail::fquatSIMD const &amp; x,</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; detail::fquatSIMD const &amp; y,</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">float</span> const &amp; a);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; detail::fquatSIMD <a class="code" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; detail::fquatSIMD const &amp; x,</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; detail::fquatSIMD const &amp; y,</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">float</span> const &amp; a);</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; detail::fquatSIMD <a class="code" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; detail::fquatSIMD const &amp; x,</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; detail::fquatSIMD const &amp; y,</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">float</span> const &amp; a);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; detail::fquatSIMD <a class="code" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; detail::fquatSIMD const &amp; x,</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; detail::fquatSIMD const &amp; y,</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">float</span> const &amp; a);</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; detail::fquatSIMD fastSlerp(</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; detail::fquatSIMD const &amp; x,</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; detail::fquatSIMD const &amp; y,</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">float</span> const &amp; a);</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; detail::fquatSIMD <a class="code" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; detail::fquatSIMD const &amp; q);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; detail::fquatSIMD <a class="code" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a>(</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; detail::fquatSIMD const &amp; q);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; detail::fquatSIMD angleAxisSIMD(</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordtype">float</span> const &amp; <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp; <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; detail::fquatSIMD angleAxisSIMD(</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordtype">float</span> const &amp; angle,</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">float</span> const &amp; x,</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordtype">float</span> const &amp; y,</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordtype">float</span> const &amp; z);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>, aligned_int64_t, 8);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>, aligned_i8, 1);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>, aligned_i16, 2);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>, aligned_i32, 4);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>, aligned_i64, 8);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(ivec1, <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>, 4);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>, <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>, 8);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>, <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>, 16);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>, <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>, 16);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>, aligned_i8vec1, 1);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>, aligned_i8vec2, 2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>, aligned_i8vec3, 4);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>, aligned_i8vec4, 4);</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>, aligned_i16vec1, 2);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>, aligned_i16vec2, 4);</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>, aligned_i16vec3, 8);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>, aligned_i16vec4, 8);</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>, aligned_i32vec1, 4);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>, aligned_i32vec2, 8);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>, aligned_i32vec3, 16);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>, aligned_i32vec4, 16);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>, aligned_i64vec1, 8);</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>, aligned_i64vec2, 16);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>, aligned_i64vec3, 32);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>, aligned_i64vec4, 32);</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp().</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"></span> __m128 <a class="code" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(__m128 x);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// Unsigned int vector types</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor">#include &quot;simd_quat.inl&quot;</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># pragma warning(pop)</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="ttc" id="a00224_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00224.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; fastMix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00177_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00177.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; conjugate(tquat&lt; T, P &gt; const &amp;q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; mat4_cast(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00177_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; lerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00153_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00153.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; normalize(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; axis(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; eulerAngles(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns euler angles, yitch as x, yaw as y, roll as z. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00155_html_ga7635d3dbe5aa10ff73a0e6903bf6bea5"><div class="ttname"><a href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; inverse(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
-<div class="ttc" id="a00199_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
-<div class="ttc" id="a00177_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; quat_cast(tmat3x3&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, P &gt; slerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00153_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>, aligned_lowp_uint8, 1);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>, aligned_lowp_uint16, 2);</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>, aligned_lowp_uint32, 4);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>, aligned_lowp_uint64, 8);</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>, aligned_lowp_uint8_t, 1);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>, aligned_lowp_uint16_t, 2);</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>, aligned_lowp_uint32_t, 4);</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>, aligned_lowp_uint64_t, 8);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>, aligned_lowp_u8, 1);</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>, aligned_lowp_u16, 2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>, aligned_lowp_u32, 4);</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>, aligned_lowp_u64, 8);</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>, aligned_mediump_uint8, 1);</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>, aligned_mediump_uint16, 2);</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>, aligned_mediump_uint32, 4);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>, aligned_mediump_uint64, 8);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>, aligned_mediump_uint8_t, 1);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>, aligned_mediump_uint16_t, 2);</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>, aligned_mediump_uint32_t, 4);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>, aligned_mediump_uint64_t, 8);</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>, aligned_mediump_u8, 1);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>, aligned_mediump_u16, 2);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>, aligned_mediump_u32, 4);</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>, aligned_mediump_u64, 8);</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>, aligned_highp_uint8, 1);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>, aligned_highp_uint16, 2);</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>, aligned_highp_uint32, 4);</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>, aligned_highp_uint64, 8);</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>, aligned_highp_uint8_t, 1);</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>, aligned_highp_uint16_t, 2);</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>, aligned_highp_uint32_t, 4);</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>, aligned_highp_uint64_t, 8);</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>, aligned_highp_u8, 1);</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>, aligned_highp_u16, 2);</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>, aligned_highp_u32, 4);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>, aligned_highp_u64, 8);</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint8, aligned_uint8, 1);</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint16, aligned_uint16, 2);</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint32, aligned_uint32, 4);</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint64, aligned_uint64, 8);</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>, aligned_uint8_t, 1);</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>, aligned_uint16_t, 2);</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>, aligned_uint32_t, 4);</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>, aligned_uint64_t, 8);</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>, aligned_u8, 1);</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>, aligned_u16, 2);</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>, aligned_u32, 4);</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>, aligned_u64, 8);</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uvec1, <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>, 4);</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; </div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>, <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>, 8);</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>, <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>, 16);</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>, <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>, 16);</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>, aligned_u8vec1, 1);</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>, aligned_u8vec2, 2);</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>, aligned_u8vec3, 4);</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>, aligned_u8vec4, 4);</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>, aligned_u16vec1, 2);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; </div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>, aligned_u16vec2, 4);</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>, aligned_u16vec3, 8);</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>, aligned_u16vec4, 8);</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>, aligned_u32vec1, 4);</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; </div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>, aligned_u32vec2, 8);</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>, aligned_u32vec3, 16);</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>, aligned_u32vec4, 16);</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>, aligned_u64vec1, 8);</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; </div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>, aligned_u64vec2, 16);</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>, aligned_u64vec3, 32);</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>, aligned_u64vec4, 32);</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_float32, 4);</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_float64, 8);</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>, aligned_float32_t, 4);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>, aligned_float64_t, 8);</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_f32, 4);</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_f64, 8);</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(vec1, <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>, 4);</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>, <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>, 8);</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>, <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>, 16);</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>, <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>, 16);</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>, aligned_fvec1, 4);</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>, aligned_fvec2, 8);</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>, aligned_fvec3, 16);</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>, aligned_fvec4, 16);</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; </div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>, aligned_f32vec1, 4);</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>, aligned_f32vec2, 8);</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>, aligned_f32vec3, 16);</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>, aligned_f32vec4, 16);</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dvec1, <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>, 8);</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>, <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>, 16);</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>, <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>, 32);</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>, <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>, 32);</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>, aligned_f64vec1, 8);</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>, aligned_f64vec2, 16);</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>, aligned_f64vec3, 32);</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>, aligned_f64vec4, 32);</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="comment">// Float matrix types </span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="comment">//typedef detail::tmat1&lt;f32&gt; mat1;</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>, aligned_mat2, 16);</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>, aligned_mat3, 16);</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>, aligned_mat4, 16);</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32&gt; mat1;</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>, aligned_mat2x2, 16);</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>, aligned_mat3x3, 16);</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>, aligned_mat4x4, 16);</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32&gt; fmat1;</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2, 16);</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3, 16);</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4, 16);</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="comment">//typedef f32 fmat1x1;</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2x2, 16);</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>, aligned_fmat2x3, 16);</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>, aligned_fmat2x4, 16);</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>, aligned_fmat3x2, 16);</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3x3, 16);</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>, aligned_fmat3x4, 16);</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>, aligned_fmat4x2, 16);</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>, aligned_fmat4x3, 16);</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4x4, 16);</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, defaultp&gt; f32mat1;</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2, 16);</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3, 16);</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4, 16);</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="comment">//typedef f32 f32mat1x1;</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2x2, 16);</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>, aligned_f32mat2x3, 16);</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>, aligned_f32mat2x4, 16);</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>, aligned_f32mat3x2, 16);</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3x3, 16);</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>, aligned_f32mat3x4, 16);</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>, aligned_f32mat4x2, 16);</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>, aligned_f32mat4x3, 16);</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4x4, 16);</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f64, defaultp&gt; f64mat1;</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2, 32);</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3, 32);</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4, 32);</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="comment">//typedef f64 f64mat1x1;</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2x2, 32);</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>, aligned_f64mat2x3, 32);</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>, aligned_f64mat2x4, 32);</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>, aligned_f64mat3x2, 32);</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3x3, 32);</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>, aligned_f64mat3x4, 32);</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>, aligned_f64mat4x2, 32);</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>, aligned_f64mat4x3, 32);</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4x4, 32);</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(quat, aligned_quat, 16);</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(fquat, aligned_fquat, 16);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dquat, aligned_dquat, 32);</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>, aligned_f32quat, 16);</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <a class="code" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>, aligned_f64quat, 32);</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor">#include &quot;type_aligned.inl&quot;</span></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00231_html_ga95cc03b8b475993fa50e05e38e203303"><div class="ttname"><a href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">glm::GLM_ALIGNED_TYPEDEF</a></div><div class="ttdeci">GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)</div><div class="ttdoc">Double-precision floating-point aligned quaternion. </div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00156_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00156.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00411">type_mat.hpp:411</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00156_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00491">type_vec.hpp:491</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00156_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00399">type_mat.hpp:399</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00156_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00481">type_vec.hpp:481</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00176_html_ga8a9f0a4795ccc442fa9901845026f9f5"><div class="ttname"><a href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">glm::aligned_dvec4</a></div><div class="ttdeci">aligned_highp_dvec4 aligned_dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00284">gtc/type_aligned.hpp:284</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00176_html_ga4974f46ae5a19415d91316960a53617a"><div class="ttname"><a href="a00176.html#ga4974f46ae5a19415d91316960a53617a">glm::aligned_dvec1</a></div><div class="ttdeci">aligned_highp_dvec1 aligned_dvec1</div><div class="ttdoc">1 component vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00275">gtc/type_aligned.hpp:275</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00156_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00540">type_vec.hpp:540</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00156_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00518">type_vec.hpp:518</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00156_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00379">type_mat.hpp:379</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00156_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00156.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00513">type_vec.hpp:513</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00156_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00359">type_mat.hpp:359</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00156_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00486">type_vec.hpp:486</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00156_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00535">type_vec.hpp:535</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00176_html_ga76298aed82a439063c3d55980c84aa0b"><div class="ttname"><a href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">glm::aligned_ivec1</a></div><div class="ttdeci">aligned_highp_ivec1 aligned_ivec1</div><div class="ttdoc">1 component vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00299">gtc/type_aligned.hpp:299</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00176_html_gaa37869eea77d28419b2fb0ff70b69bf0"><div class="ttname"><a href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">glm::aligned_dvec3</a></div><div class="ttdeci">aligned_highp_dvec3 aligned_dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00281">gtc/type_aligned.hpp:281</a></div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00176_html_ga0682462f8096a226773e20fac993cde5"><div class="ttname"><a href="a00176.html#ga0682462f8096a226773e20fac993cde5">glm::aligned_vec2</a></div><div class="ttdeci">aligned_highp_vec2 aligned_vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00254">gtc/type_aligned.hpp:254</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00156_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00459">type_vec.hpp:459</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00176_html_gabf842c45eea186170c267a328e3f3b7d"><div class="ttname"><a href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">glm::aligned_uvec4</a></div><div class="ttdeci">aligned_highp_uvec4 aligned_uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00334">gtc/type_aligned.hpp:334</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00156_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00454">type_vec.hpp:454</a></div></div>
+<div class="ttc" id="a00156_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00156.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00176_html_ga2a8d9c3046f89d854eb758adfa0811c0"><div class="ttname"><a href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">glm::aligned_uvec3</a></div><div class="ttdeci">aligned_highp_uvec3 aligned_uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00331">gtc/type_aligned.hpp:331</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00176_html_ga1ff8ed402c93d280ff0597c1c5e7c548"><div class="ttname"><a href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">glm::aligned_uvec1</a></div><div class="ttdeci">aligned_highp_uvec1 aligned_uvec1</div><div class="ttdoc">1 component vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00325">gtc/type_aligned.hpp:325</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00176_html_ga85d89e83cb8137e1be1446de8c3b643a"><div class="ttname"><a href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">glm::aligned_vec4</a></div><div class="ttdeci">aligned_highp_vec4 aligned_vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00260">gtc/type_aligned.hpp:260</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00176_html_ga7f79eae5927c9033d84617e49f6f34e4"><div class="ttname"><a href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">glm::aligned_ivec4</a></div><div class="ttdeci">aligned_highp_ivec4 aligned_ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00308">gtc/type_aligned.hpp:308</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00156_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00406">type_mat.hpp:406</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00156_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00464">type_vec.hpp:464</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00176_html_ga18d859f87122b2b3b2992ffe86dbebc0"><div class="ttname"><a href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">glm::aligned_dvec2</a></div><div class="ttdeci">aligned_highp_dvec2 aligned_dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00278">gtc/type_aligned.hpp:278</a></div></div>
+<div class="ttc" id="a00176_html_ga074137e3be58528d67041c223d49f398"><div class="ttname"><a href="a00176.html#ga074137e3be58528d67041c223d49f398">glm::aligned_uvec2</a></div><div class="ttdeci">aligned_highp_uvec2 aligned_uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00328">gtc/type_aligned.hpp:328</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00156_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00508">type_vec.hpp:508</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00176_html_ga05e6d4c908965d04191c2070a8d0a65e"><div class="ttname"><a href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">glm::aligned_vec1</a></div><div class="ttdeci">aligned_highp_vec1 aligned_vec1</div><div class="ttdoc">1 component vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00251">gtc/type_aligned.hpp:251</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00176_html_gae4f38fd2c86cee6940986197777b3ca4"><div class="ttname"><a href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">glm::aligned_ivec2</a></div><div class="ttdeci">aligned_highp_ivec2 aligned_ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00302">gtc/type_aligned.hpp:302</a></div></div>
+<div class="ttc" id="a00176_html_ga32794322d294e5ace7fed4a61896f270"><div class="ttname"><a href="a00176.html#ga32794322d294e5ace7fed4a61896f270">glm::aligned_ivec3</a></div><div class="ttdeci">aligned_highp_ivec3 aligned_ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00305">gtc/type_aligned.hpp:305</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00156_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00545">type_vec.hpp:545</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00176_html_ga7cf643b66664e0cd3c48759ae66c2bd0"><div class="ttname"><a href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">glm::aligned_vec3</a></div><div class="ttdeci">aligned_highp_vec3 aligned_vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00106_source.html#l00257">gtc/type_aligned.hpp:257</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00212">fwd.hpp:212</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00108.html b/3rdparty/glm/doc/api/a00108.html
index d2c80ba6bc3..02c3a231c58 100644
--- a/3rdparty/glm/doc/api/a00108.html
+++ b/3rdparty/glm/doc/api/a00108.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_vec4.hpp File Reference</title>
+<title>0.9.9 API documenation: type_float.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,30 +64,60 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">simd_vec4.hpp File Reference</div> </div>
+<div class="title">type_float.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00108_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
+<tr class="memdesc:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 32 bit single-precision floating-point scalar. <a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">More...</a><br /></td></tr>
+<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
+<tr class="memdesc:gab5596d48586414c91ccb270962dc14d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 64 bit double-precision floating-point scalar. <a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">More...</a><br /></td></tr>
+<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
+<tr class="memdesc:ga6e95694987ba35af6f736638be39626a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision floating-point numbers. <a href="a00157.html#ga6e95694987ba35af6f736638be39626a">More...</a><br /></td></tr>
+<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
+<tr class="memdesc:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision floating-point numbers. <a href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">More...</a><br /></td></tr>
+<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
+<tr class="memdesc:ga280c68f537f4b1e03a00b23e62573b98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision floating-point numbers. <a href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98">More...</a><br /></td></tr>
+<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00232.html">GLM_GTX_simd_vec4</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-07 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00108_source.html">simd_vec4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00108_source.html">type_float.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00108_source.html b/3rdparty/glm/doc/api/a00108_source.html
index fc7a0af75fc..53a5ed25f10 100644
--- a/3rdparty/glm/doc/api/a00108_source.html
+++ b/3rdparty/glm/doc/api/a00108_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_vec4.hpp Source File</title>
+<title>0.9.9 API documenation: type_float.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,362 +64,83 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_vec4.hpp</div> </div>
+<div class="title">type_float.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00108.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(GLM_ARCH &amp; GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># include &quot;../detail/intrinsic_common.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># include &quot;../detail/intrinsic_geometric.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># include &quot;../detail/intrinsic_integer.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_simd_vec4 extension included&quot;)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">// Warning silencer for nameless struct/union.</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># pragma warning(push)</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">enum</span> comp</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; X = 0,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; R = 0,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; S = 0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; Y = 1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; G = 1,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; T = 1,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; Z = 2,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; B = 2,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; P = 2,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; W = 3,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; A = 3,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; Q = 3</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_ALIGNED_STRUCT(16) fvec4SIMD</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typedef</span> std::size_t size_type;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">typedef</span> fvec4SIMD type;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, defaultp&gt; pure_type;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, highp&gt; bool_type;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = defaultp;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">union</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; __m128 Data;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; __m128 Data;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// Implicit basic constructors</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; fvec4SIMD() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; fvec4SIMD(fvec4SIMD const &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; fvec4SIMD(__m128 const &amp; Data);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Explicit basic constructors</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; explicit fvec4SIMD(</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; ctor);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; explicit fvec4SIMD(</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; explicit fvec4SIMD(</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">float</span> const &amp; x,</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">float</span> const &amp; y,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">float</span> const &amp; z,</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">float</span> const &amp; w);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; explicit fvec4SIMD(</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp; v);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; fvec4SIMD(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp; v, <span class="keywordtype">float</span> const &amp; s1, <span class="keywordtype">float</span> const &amp; s2);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> const &amp; s1, <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp; v, <span class="keywordtype">float</span> const &amp; s2);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> const &amp; s1, <span class="keywordtype">float</span> const &amp; s2, <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp; v);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; fvec4SIMD(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp; v, <span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; fvec4SIMD(<span class="keywordtype">float</span> const &amp; s, <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp; v);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; fvec4SIMD(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp; v1, <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp; v2);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">//fvec4SIMD(ivec4SIMD const &amp; v);</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Unary arithmetic operators</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; fvec4SIMD&amp; operator= (fvec4SIMD const &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; fvec4SIMD&amp; operator+=(fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; fvec4SIMD&amp; operator-=(fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; fvec4SIMD&amp; operator*=(fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; fvec4SIMD&amp; operator/=(fvec4SIMD const &amp; v);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; fvec4SIMD&amp; operator+=(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; fvec4SIMD&amp; operator-=(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; fvec4SIMD&amp; operator*=(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; fvec4SIMD&amp; operator/=(<span class="keywordtype">float</span> const &amp; s);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; fvec4SIMD&amp; operator++();</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; fvec4SIMD&amp; operator--();</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// Swizzle operators</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; template &lt;comp X, comp Y, comp Z, comp W&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; fvec4SIMD&amp; swizzle();</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; template &lt;comp X, comp Y, comp Z, comp W&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; template &lt;comp X, comp Y, comp Z&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; template &lt;comp X, comp Y&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; template &lt;comp X&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; };</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; typedef <a class="code" href="a00146.html">glm</a>::detail::fvec4SIMD simdVec4;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> vec4_cast(</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const &amp; x);</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a>(</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; detail::fvec4SIMD const &amp; y);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a>(</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">float</span> const &amp; y);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">//detail::fvec4SIMD modf(</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// detail::fvec4SIMD const &amp; x,</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// detail::fvec4SIMD &amp; i);</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; detail::fvec4SIMD const &amp; y);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">float</span> const &amp; y);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; detail::fvec4SIMD const &amp; y);</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordtype">float</span> const &amp; y);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; detail::fvec4SIMD const &amp; minVal,</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; detail::fvec4SIMD const &amp; maxVal);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">float</span> const &amp; minVal,</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">float</span> const &amp; maxVal);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; detail::fvec4SIMD const &amp; y,</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; detail::fvec4SIMD const &amp; a);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a>(</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; detail::fvec4SIMD const &amp; edge,</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a>(</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">float</span> const &amp; edge,</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; detail::fvec4SIMD const &amp; edge0,</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; detail::fvec4SIMD const &amp; edge1,</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">float</span> const &amp; edge0,</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordtype">float</span> const &amp; edge1,</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">//bvec4 isnan(detail::fvec4SIMD const &amp; x);</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">//bvec4 isinf(detail::fvec4SIMD const &amp; x);</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const &amp; value);</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const &amp; value);</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; detail::fvec4SIMD <a class="code" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; detail::fvec4SIMD const &amp; a,</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; detail::fvec4SIMD const &amp; b,</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; detail::fvec4SIMD const &amp; c);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD &amp; exp);</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const &amp; x, detail::ivec4SIMD const &amp; exp);</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00198.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a>(</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordtype">float</span> niceLength(</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; detail::fvec4SIMD length4(</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; detail::fvec4SIMD fastLength4(</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; detail::fvec4SIMD niceLength4(</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; detail::fvec4SIMD const &amp; p0,</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; detail::fvec4SIMD const &amp; p1);</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; detail::fvec4SIMD distance4(</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; detail::fvec4SIMD const &amp; p0,</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; detail::fvec4SIMD const &amp; p1);</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">float</span> simdDot(</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; detail::fvec4SIMD const &amp; y);</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; detail::fvec4SIMD dot4(</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; detail::fvec4SIMD const &amp; y);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; detail::fvec4SIMD <a class="code" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; detail::fvec4SIMD const &amp; x,</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; detail::fvec4SIMD const &amp; y);</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; detail::fvec4SIMD <a class="code" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; detail::fvec4SIMD <a class="code" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; detail::fvec4SIMD simdFaceforward(</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; detail::fvec4SIMD const &amp; N,</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; detail::fvec4SIMD const &amp; I,</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; detail::fvec4SIMD const &amp; Nref);</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; detail::fvec4SIMD <a class="code" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; detail::fvec4SIMD const &amp; I,</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; detail::fvec4SIMD const &amp; N);</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; detail::fvec4SIMD <a class="code" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; detail::fvec4SIMD const &amp; I,</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; detail::fvec4SIMD const &amp; N,</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordtype">float</span> const &amp; eta);</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; detail::fvec4SIMD <a class="code" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; detail::fvec4SIMD niceSqrt(</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; detail::fvec4SIMD <a class="code" href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a>(</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; detail::fvec4SIMD <a class="code" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; detail::fvec4SIMD fastInversesqrt(</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; detail::fvec4SIMD const &amp; x);</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#include &quot;simd_vec4.inl&quot;</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="preprocessor">#if (GLM_COMPILER &amp; GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="preprocessor"># pragma warning(pop)</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="ttc" id="a00153_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
-<div class="ttc" id="a00151_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="a00151_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
-<div class="ttc" id="a00151_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; floor(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00198_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &amp;x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00151_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; ceil(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
-<div class="ttc" id="a00151_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; trunc(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
-<div class="ttc" id="a00153_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; refract(vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
-<div class="ttc" id="a00198_html_gafe697d6287719538346bbdf8b1367c59"><div class="ttname"><a href="a00198.html#gafe697d6287719538346bbdf8b1367c59">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastLength(genType x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
-<div class="ttc" id="a00151_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00151.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; round(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
-<div class="ttc" id="a00153_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00153.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; normalize(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00151_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sign(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
-<div class="ttc" id="a00153_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &amp;I, genType const &amp;N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
-<div class="ttc" id="a00198_html_ga6c460e9414a50b2fc455c8f64c86cdc9"><div class="ttname"><a href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastSqrt(genType x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00151_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00151_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00151.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
-<div class="ttc" id="a00151_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00152_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; inversesqrt(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00151_html_ga015a1261ff23e12650211aa872863cce"><div class="ttname"><a href="a00151.html#ga015a1261ff23e12650211aa872863cce">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL genType step(genType edge, genType x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. </div></div>
-<div class="ttc" id="a00151_html_ga12201563ef902e3b07e0d1d7656efdb1"><div class="ttname"><a href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genType mod(genType x, genType y)</div><div class="ttdoc">Modulus. </div></div>
-<div class="ttc" id="a00152_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; T, P &gt; sqrt(vecType&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
-<div class="ttc" id="a00153_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, P &gt; cross(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> lowp_float_t;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> mediump_float_t;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> highp_float_t;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1"> 27</a></span>&#160; <span class="keyword">typedef</span> lowp_float_t <a class="code" href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98"> 34</a></span>&#160; <span class="keyword">typedef</span> mediump_float_t <a class="code" href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00157.html#ga6e95694987ba35af6f736638be39626a"> 41</a></span>&#160; <span class="keyword">typedef</span> highp_float_t <a class="code" href="a00157.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> mediump_float float_t;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> highp_float float_t;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> mediump_float float_t;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> lowp_float float_t;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for floating-point types&quot;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1"> 55</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00177.html#gab5596d48586414c91ccb270962dc14d3"> 56</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// check type sizes</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a>) == 4, <span class="stringliteral">&quot;float32 size isn&#39;t 4 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a>) == 8, <span class="stringliteral">&quot;float64 size isn&#39;t 8 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00177_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00055">type_float.hpp:55</a></div></div>
+<div class="ttc" id="a00157_html_ga280c68f537f4b1e03a00b23e62573b98"><div class="ttname"><a href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98">glm::mediump_float</a></div><div class="ttdeci">mediump_float_t mediump_float</div><div class="ttdoc">Medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00034">type_float.hpp:34</a></div></div>
+<div class="ttc" id="a00177_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00056">type_float.hpp:56</a></div></div>
+<div class="ttc" id="a00157_html_ga358d69e11b1c0f6c7c469e0d39ab7fd1"><div class="ttname"><a href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::lowp_float</a></div><div class="ttdeci">lowp_float_t lowp_float</div><div class="ttdoc">Low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00027">type_float.hpp:27</a></div></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_ga6e95694987ba35af6f736638be39626a"><div class="ttname"><a href="a00157.html#ga6e95694987ba35af6f736638be39626a">glm::highp_float</a></div><div class="ttdeci">highp_float_t highp_float</div><div class="ttdoc">High precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00041">type_float.hpp:41</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00109.html b/3rdparty/glm/doc/api/a00109.html
index c8c9a6647a1..91b7502032d 100644
--- a/3rdparty/glm/doc/api/a00109.html
+++ b/3rdparty/glm/doc/api/a00109.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: spline.hpp File Reference</title>
+<title>0.9.9 API documenation: type_gentype.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">spline.hpp File Reference</div> </div>
+<div class="title">type_gentype.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00109_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
-<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
-<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
-<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00233.html">GLM_GTX_spline</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-01-25 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00109_source.html">spline.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00109_source.html">type_gentype.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00109_source.html b/3rdparty/glm/doc/api/a00109_source.html
index f5019e6bd73..f0a21a00ab8 100644
--- a/3rdparty/glm/doc/api/a00109_source.html
+++ b/3rdparty/glm/doc/api/a00109_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: spline.hpp Source File</title>
+<title>0.9.9 API documenation: type_gentype.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,61 +64,218 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">spline.hpp</div> </div>
+<div class="title">type_gentype.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00109.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../gtx/optimum_pow.hpp&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">enum</span> profile</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; {</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; nice,</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; fast,</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; simd</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; };</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> std::size_t sizeType;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">template</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; &lt;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typename</span> VALTYPE, </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>TYPE</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; &gt;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">struct </span>genType</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">enum</span> ctor{null};</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">typedef</span> VALTYPE value_type;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">typedef</span> VALTYPE &amp; value_reference;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">typedef</span> VALTYPE * value_pointer;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">typedef</span> VALTYPE <span class="keyword">const</span> * value_const_pointer;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">typedef</span> TYPE&lt;bool&gt; bool_type;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">typedef</span> sizeType size_type;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> is_vector();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> is_matrix();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; type;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; * pointer;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> * const_pointer;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> * <span class="keyword">const</span> const_pointer_const;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; * <span class="keyword">const</span> pointer_const;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; &amp; reference;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> &amp; const_reference;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> &amp; param_type;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_spline extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; genType <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; genType <span class="keyword">const</span> &amp; v3, </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; genType <span class="keyword">const</span> &amp; v4, </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; genType <span class="keyword">const</span> &amp; t1, </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; genType <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; genType <span class="keyword">const</span> &amp; t2, </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a>(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; genType <span class="keyword">const</span> &amp; v1, </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; genType <span class="keyword">const</span> &amp; v2, </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; genType <span class="keyword">const</span> &amp; v3, </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; genType <span class="keyword">const</span> &amp; v4, </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#include &quot;spline.inl&quot;</span></div>
-<div class="ttc" id="a00233_html_ga6b867eb52e2fc933d2e0bf26aabc9a70"><div class="ttname"><a href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">glm::cubic</a></div><div class="ttdeci">GLM_FUNC_DECL genType cubic(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</div><div class="ttdoc">Return a point from a cubic curve. </div></div>
-<div class="ttc" id="a00233_html_ga8119c04f8210fd0d292757565cd6918d"><div class="ttname"><a href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">glm::catmullRom</a></div><div class="ttdeci">GLM_FUNC_DECL genType catmullRom(genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</div><div class="ttdoc">Return a point from a catmull rom curve. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00233_html_gaa69e143f6374d32f934a8edeaa50bac9"><div class="ttname"><a href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">glm::hermite</a></div><div class="ttdeci">GLM_FUNC_DECL genType hermite(genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</div><div class="ttdoc">Return a point from a hermite curve. </div></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Address (Implementation details)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; value_const_pointer value_address()<span class="keyword"> const</span>{<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; value_pointer value_address(){<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">//protected:</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// enum kind</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// {</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// GEN_TYPE,</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// VEC_TYPE,</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// MAT_TYPE</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// };</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// typedef typename TYPE::kind kind;</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; &lt;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typename</span> VALTYPE, </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>TYPE</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; &gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">bool</span> genType&lt;VALTYPE, TYPE&gt;::is_vector()</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> template &lt;typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice&gt;</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> class base</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> public:</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> // Traits</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> typedef sizeType size_type;</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> typedef valTypeT value_type;</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> typedef base&lt;value_type, colT, rowT&gt; class_type;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> typedef base&lt;bool, colT, rowT&gt; bool_type;</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> typedef base&lt;value_type, rowT, 1&gt; col_type;</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> typedef base&lt;value_type, colT, 1&gt; row_type;</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> typedef base&lt;value_type, rowT, colT&gt; transpose_type;</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> static size_type col_size();</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> static size_type row_size();</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> static size_type value_size();</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> static bool is_scalar();</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> static bool is_vector();</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> static bool is_matrix();</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> private:</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> // Data </span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> col_type value[colT]; </span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> public:</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> // Constructors</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> base();</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> base(class_type const &amp; m);</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> explicit base(T const &amp; x);</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> explicit base(value_type const * const x);</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> explicit base(col_type const * const x);</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> // Conversions</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> template &lt;typename vU, uint cU, uint rU, profile pU&gt;</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> explicit base(base&lt;vU, cU, rU, pU&gt; const &amp; m);</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> // Accesses</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> col_type&amp; operator[](size_type i);</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> col_type const &amp; operator[](size_type i) const;</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> // Unary updatable operators</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> class_type&amp; operator= (class_type const &amp; x);</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> class_type&amp; operator+= (T const &amp; x);</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> class_type&amp; operator+= (class_type const &amp; x);</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> class_type&amp; operator-= (T const &amp; x);</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> class_type&amp; operator-= (class_type const &amp; x);</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> class_type&amp; operator*= (T const &amp; x);</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> class_type&amp; operator*= (class_type const &amp; x);</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> class_type&amp; operator/= (T const &amp; x);</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> class_type&amp; operator/= (class_type const &amp; x);</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> class_type&amp; operator++ ();</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> class_type&amp; operator-- ();</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> };</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">//template &lt;typename T&gt;</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">//struct traits</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">//{</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// static const bool is_signed = false;</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// static const bool is_float = false;</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// static const bool is_vector = false;</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// static const bool is_matrix = false;</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// static const bool is_genType = false;</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// static const bool is_genIType = false;</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// static const bool is_genUType = false;</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">//};</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">//template &lt;&gt;</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">//struct traits&lt;half&gt;</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">//{</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// static const bool is_float = true;</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// static const bool is_genType = true;</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">//};</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">//template &lt;&gt;</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">//struct traits&lt;float&gt;</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">//{</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// static const bool is_float = true;</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// static const bool is_genType = true;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">//};</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">//template &lt;&gt;</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">//struct traits&lt;double&gt;</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">//{</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// static const bool is_float = true;</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// static const bool is_genType = true;</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">//};</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">//template &lt;typename genType&gt;</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">//struct desc</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">//{</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// typedef genType type;</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// typedef genType * pointer;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// typedef genType const* const_pointer;</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// typedef genType const *const const_pointer_const;</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// typedef genType *const pointer_const;</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// typedef genType &amp; reference;</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// typedef genType const&amp; const_reference;</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// typedef genType const&amp; param_type;</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// typedef typename genType::value_type value_type;</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// typedef typename genType::size_type size_type;</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// static const typename size_type value_size;</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">//};</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">//template &lt;typename genType&gt;</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">//const typename desc&lt;genType&gt;::size_type desc&lt;genType&gt;::value_size = genType::value_size();</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">//#include &quot;type_gentype.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00110.html b/3rdparty/glm/doc/api/a00110.html
index 1feb61828db..e899cc83134 100644
--- a/3rdparty/glm/doc/api/a00110.html
+++ b/3rdparty/glm/doc/api/a00110.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: std_based_type.hpp File Reference</title>
+<title>0.9.9 API documenation: type_half.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,54 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">std_based_type.hpp File Reference</div> </div>
+<div class="title">type_half.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00110_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
-<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
-<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
-<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
-<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
-<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
-<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
-<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
-<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00234.html">GLM_GTX_std_based_type</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-06-08 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00110_source.html">type_half.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00110_source.html b/3rdparty/glm/doc/api/a00110_source.html
index cfa3a573932..d37768bae1b 100644
--- a/3rdparty/glm/doc/api/a00110_source.html
+++ b/3rdparty/glm/doc/api/a00110_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: std_based_type.hpp Source File</title>
+<title>0.9.9 API documenation: type_half.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,58 +64,49 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">std_based_type.hpp</div> </div>
+<div class="title">type_half.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00110.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_std_based_type extension included&quot;)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a"> 59</a></span>&#160; <span class="keyword">typedef</span> tvec1&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00234.html#gac0ef172641a1555684da0beb735c2a79"> 63</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#gac0ef172641a1555684da0beb735c2a79">size2</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6"> 67</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00234.html#gaf07a3f432e328c99d35637225c988121"> 71</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#gaf07a3f432e328c99d35637225c988121">size4</a>;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e"> 75</a></span>&#160; <span class="keyword">typedef</span> tvec1&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e"> 79</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6"> 83</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00234.html#ga06862b7d59094244025d34407b2cb796"> 87</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;std::size_t, defaultp&gt; <a class="code" href="a00234.html#ga06862b7d59094244025d34407b2cb796">size4_t</a>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &quot;std_based_type.inl&quot;</span></div>
-<div class="ttc" id="a00234_html_gaf07a3f432e328c99d35637225c988121"><div class="ttname"><a href="a00234.html#gaf07a3f432e328c99d35637225c988121">glm::size4</a></div><div class="ttdeci">tvec4&lt; std::size_t, defaultp &gt; size4</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00071">std_based_type.hpp:71</a></div></div>
-<div class="ttc" id="a00234_html_ga47c940f279a6b97ffc301eb4526a445a"><div class="ttname"><a href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">glm::size1</a></div><div class="ttdeci">tvec1&lt; std::size_t, defaultp &gt; size1</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00059">std_based_type.hpp:59</a></div></div>
-<div class="ttc" id="a00234_html_gaa7d72bbe318d27da9d30f27095e4c75e"><div class="ttname"><a href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">glm::size2_t</a></div><div class="ttdeci">tvec2&lt; std::size_t, defaultp &gt; size2_t</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00079">std_based_type.hpp:79</a></div></div>
-<div class="ttc" id="a00234_html_ga51b5e9650c459973134ffb4236ae88b6"><div class="ttname"><a href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">glm::size3</a></div><div class="ttdeci">tvec3&lt; std::size_t, defaultp &gt; size3</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00067">std_based_type.hpp:67</a></div></div>
-<div class="ttc" id="a00234_html_ga77d0b061efa41cb2ed2285d09294314e"><div class="ttname"><a href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">glm::size1_t</a></div><div class="ttdeci">tvec1&lt; std::size_t, defaultp &gt; size1_t</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00075">std_based_type.hpp:75</a></div></div>
-<div class="ttc" id="a00234_html_gad364e6c302642e3bb89d756df5d0c8c6"><div class="ttname"><a href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">glm::size3_t</a></div><div class="ttdeci">tvec3&lt; std::size_t, defaultp &gt; size3_t</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00083">std_based_type.hpp:83</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00234_html_ga06862b7d59094244025d34407b2cb796"><div class="ttname"><a href="a00234.html#ga06862b7d59094244025d34407b2cb796">glm::size4_t</a></div><div class="ttdeci">tvec4&lt; std::size_t, defaultp &gt; size4_t</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00087">std_based_type.hpp:87</a></div></div>
-<div class="ttc" id="a00234_html_gac0ef172641a1555684da0beb735c2a79"><div class="ttname"><a href="a00234.html#gac0ef172641a1555684da0beb735c2a79">glm::size2</a></div><div class="ttdeci">tvec2&lt; std::size_t, defaultp &gt; size2</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00063">std_based_type.hpp:63</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; value);</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00111.html b/3rdparty/glm/doc/api/a00111.html
index 5ab613a96b8..74865e65972 100644
--- a/3rdparty/glm/doc/api/a00111.html
+++ b/3rdparty/glm/doc/api/a00111.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: string_cast.hpp File Reference</title>
+<title>0.9.9 API documenation: type_int.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,90 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">string_cast.hpp File Reference</div> </div>
+<div class="title">type_int.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00111_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class matType, typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
+<tr class="memdesc:gaaabe7eb044941ebf308b53a447d692dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision signed integer. <a href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc">More...</a><br /></td></tr>
+<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
+<tr class="memdesc:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision unsigned integer. <a href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf">More...</a><br /></td></tr>
+<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
+<tr class="memdesc:ga302041c186d0d028bea31b711fe16759"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit signed integer type. <a href="a00177.html#ga302041c186d0d028bea31b711fe16759">More...</a><br /></td></tr>
+<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
+<tr class="memdesc:ga8df669f4e7698dfe0c0354d92578d74f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">More...</a><br /></td></tr>
+<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
+<tr class="memdesc:gaff5189f97f9e842d9636a0f240001b2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit signed integer type. <a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">More...</a><br /></td></tr>
+<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
+<tr class="memdesc:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit signed integer type. <a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">More...</a><br /></td></tr>
+<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
+<tr class="memdesc:gad0fa1e32e8b3552ed63556eca51c620e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision signed integer. <a href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e">More...</a><br /></td></tr>
+<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
+<tr class="memdesc:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision unsigned integer. <a href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97">More...</a><br /></td></tr>
+<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
+<tr class="memdesc:ga212ef8f883878cb7430228a279a7d866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision signed integer. <a href="a00157.html#ga212ef8f883878cb7430228a279a7d866">More...</a><br /></td></tr>
+<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
+<tr class="memdesc:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision unsigned integer. <a href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">More...</a><br /></td></tr>
+<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
+<tr class="memdesc:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">More...</a><br /></td></tr>
+<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
+<tr class="memdesc:ga13471cbbe74e4303a57f3743d007b74d"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit unsigned integer type. <a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">More...</a><br /></td></tr>
+<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
+<tr class="memdesc:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit unsigned integer type. <a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">More...</a><br /></td></tr>
+<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
+<tr class="memdesc:gab630f76c26b50298187f7889104d4b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit unsigned integer type. <a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">More...</a><br /></td></tr>
+<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
+<tr class="memdesc:ga36475e31b1992cfde54c1a6f5a148865"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit unsigned integer type. <a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">More...</a><br /></td></tr>
+<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00235.html">GLM_GTX_string_cast</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-04-26 / 2014-05-10 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00203.html" title="Add support for integer for core functions. ">GLM_GTX_integer</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00111_source.html">string_cast.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00111_source.html b/3rdparty/glm/doc/api/a00111_source.html
index fa8dab0a464..4f853470e57 100644
--- a/3rdparty/glm/doc/api/a00111_source.html
+++ b/3rdparty/glm/doc/api/a00111_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: string_cast.hpp Source File</title>
+<title>0.9.9 API documenation: type_int.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,43 +64,322 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">string_cast.hpp</div> </div>
+<div class="title">type_int.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00111.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_precision.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_CUDA)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"># error &quot;GLM_GTX_string_cast is not supported on CUDA compiler&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_string_cast extension included&quot;)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType, <span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL std::string <a class="code" href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00099.html">setup.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#if GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor"># include &lt;type_traits&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># include &lt;cstdint&gt;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"># if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a> <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a> <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a> <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a> <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a> <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a> <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a> <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a> sint64;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64 sint64;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wlong-long&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># elif (GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wc++11-long-long&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># else//unknown compiler</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">typedef</span> sint64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typedef</span> uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif//</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> lowp_int_t;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> mediump_int_t;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> highp_int_t;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lowp_uint_t;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mediump_uint_t;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> highp_uint_t;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;string_cast.inl&quot;</span></div>
-<div class="ttc" id="a00235_html_ga7b4f9233593bbf1d53762f801ef56fe6"><div class="ttname"><a href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">glm::to_string</a></div><div class="ttdeci">GLM_FUNC_DECL std::string to_string(matType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Create a string from a GLM vector or matrix typed variable. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"># if GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">using</span> std::make_signed;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">using</span> std::make_unsigned;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># else//GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">struct </span>make_signed</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {};</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">struct </span>make_signed&lt;char&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; };</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">struct </span>make_signed&lt;short&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">struct </span>make_signed&lt;int&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; };</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">struct </span>make_signed&lt;long&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned char&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; };</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned short&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned int&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned long&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; };</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">struct </span>make_unsigned</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {};</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;char&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; };</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;short&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;int&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;long&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; };</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned char&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; };</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned short&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; };</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned int&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; };</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned long&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; };</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">struct </span>make_signed&lt;long long&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; };</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned long long&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; };</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;long long&gt;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; };</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned long long&gt;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; };</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># endif//GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0"> 206</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="a00177.html#ga302041c186d0d028bea31b711fe16759"> 207</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f"> 208</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e"> 209</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865"> 211</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d"> 212</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d"> 213</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00177.html#gab630f76c26b50298187f7889104d4b9c"> 214</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e"> 224</a></span>&#160; <span class="keyword">typedef</span> detail::lowp_int_t <a class="code" href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00157.html#ga212ef8f883878cb7430228a279a7d866"> 231</a></span>&#160; <span class="keyword">typedef</span> detail::mediump_int_t <a class="code" href="a00157.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc"> 238</a></span>&#160; <span class="keyword">typedef</span> detail::highp_int_t <a class="code" href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97"> 245</a></span>&#160; <span class="keyword">typedef</span> detail::lowp_uint_t <a class="code" href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e"> 252</a></span>&#160; <span class="keyword">typedef</span> detail::mediump_uint_t <a class="code" href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf"> 259</a></span>&#160; <span class="keyword">typedef</span> detail::highp_uint_t <a class="code" href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">typedef</span> mediump_int int_t;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">typedef</span> highp_int int_t;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">typedef</span> mediump_int int_t;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">typedef</span> lowp_int int_t;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for signed integer types&quot;</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">typedef</span> mediump_uint uint_t;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">typedef</span> highp_uint uint_t;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">typedef</span> mediump_uint uint_t;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">typedef</span> lowp_uint uint_t;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for unsigned integer types&quot;</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14"> 288</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment">// check type sizes</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a>) == 1, <span class="stringliteral">&quot;int8 size isn&#39;t 1 byte on this platform&quot;</span>);</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a>) == 2, <span class="stringliteral">&quot;int16 size isn&#39;t 2 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a>) == 4, <span class="stringliteral">&quot;int32 size isn&#39;t 4 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a>) == 8, <span class="stringliteral">&quot;int64 size isn&#39;t 8 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a>) == 1, <span class="stringliteral">&quot;uint8 size isn&#39;t 1 byte on this platform&quot;</span>);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a>) == 2, <span class="stringliteral">&quot;uint16 size isn&#39;t 2 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a>) == 4, <span class="stringliteral">&quot;uint32 size isn&#39;t 4 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a>) == 8, <span class="stringliteral">&quot;uint64 size isn&#39;t 8 bytes on this platform&quot;</span>);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_ga73e8a694d7fc69143cf25161d18d1dcf"><div class="ttname"><a href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::highp_uint</a></div><div class="ttdeci">detail::highp_uint_t highp_uint</div><div class="ttdoc">High precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00259">type_int.hpp:259</a></div></div>
+<div class="ttc" id="a00157_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00157_html_ga25ebc60727fc8b4a1167665f9ecdca97"><div class="ttname"><a href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::lowp_uint</a></div><div class="ttdeci">detail::lowp_uint_t lowp_uint</div><div class="ttdoc">Low precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00245">type_int.hpp:245</a></div></div>
+<div class="ttc" id="a00157_html_ga212ef8f883878cb7430228a279a7d866"><div class="ttname"><a href="a00157.html#ga212ef8f883878cb7430228a279a7d866">glm::mediump_int</a></div><div class="ttdeci">detail::mediump_int_t mediump_int</div><div class="ttdoc">Medium precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00231">type_int.hpp:231</a></div></div>
+<div class="ttc" id="a00177_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00206">type_int.hpp:206</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00209">type_int.hpp:209</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00157_html_ga0b7e01c52b9e5bf3369761b79b5f4f8e"><div class="ttname"><a href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::mediump_uint</a></div><div class="ttdeci">detail::mediump_uint_t mediump_uint</div><div class="ttdoc">Medium precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00252">type_int.hpp:252</a></div></div>
+<div class="ttc" id="a00177_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00212">type_int.hpp:212</a></div></div>
+<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00207">type_int.hpp:207</a></div></div>
+<div class="ttc" id="a00177_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00211">type_int.hpp:211</a></div></div>
+<div class="ttc" id="a00177_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00213">type_int.hpp:213</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00157_html_gaaabe7eb044941ebf308b53a447d692dc"><div class="ttname"><a href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc">glm::highp_int</a></div><div class="ttdeci">detail::highp_int_t highp_int</div><div class="ttdoc">High precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00238">type_int.hpp:238</a></div></div>
+<div class="ttc" id="a00177_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00214">type_int.hpp:214</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00208">type_int.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00157_html_gad0fa1e32e8b3552ed63556eca51c620e"><div class="ttname"><a href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::lowp_int</a></div><div class="ttdeci">detail::lowp_int_t lowp_int</div><div class="ttdoc">Low precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00224">type_int.hpp:224</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00112.html b/3rdparty/glm/doc/api/a00112.html
index 2be19c13252..afb3e3529ef 100644
--- a/3rdparty/glm/doc/api/a00112.html
+++ b/3rdparty/glm/doc/api/a00112.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,51 +64,341 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">transform.hpp File Reference</div> </div>
+<div class="title">type_mat.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00112_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
+<tr class="memdesc:gac7f51e23c8802d867f564dfd146bdb44"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44">More...</a><br /></td></tr>
+<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
+<tr class="memdesc:gacc27b39853a2ecb538c8b3afc20c359e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">More...</a><br /></td></tr>
+<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
+<tr class="memdesc:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">More...</a><br /></td></tr>
+<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
+<tr class="memdesc:gaddd230c88fbd6ec33242329be3a1b738"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">More...</a><br /></td></tr>
+<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
+<tr class="memdesc:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff">More...</a><br /></td></tr>
+<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
+<tr class="memdesc:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">More...</a><br /></td></tr>
+<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
+<tr class="memdesc:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">More...</a><br /></td></tr>
+<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
+<tr class="memdesc:ga38d9bfca882ec542b1928cf77b5c2091"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">More...</a><br /></td></tr>
+<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
+<tr class="memdesc:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">More...</a><br /></td></tr>
+<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
+<tr class="memdesc:ga6ddab280c735a2139133b4164b99a68a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">More...</a><br /></td></tr>
+<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
+<tr class="memdesc:gab6c8974496fc7c72dad09219118ba89e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">More...</a><br /></td></tr>
+<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
+<tr class="memdesc:ga41c2da87ca627c1b2da5e895435a508e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">More...</a><br /></td></tr>
+<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
+<tr class="memdesc:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8">More...</a><br /></td></tr>
+<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
+<tr class="memdesc:ga518f28c64881fafaaf14ec0d867a9bba"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba">More...</a><br /></td></tr>
+<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
+<tr class="memdesc:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">More...</a><br /></td></tr>
+<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
+<tr class="memdesc:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">More...</a><br /></td></tr>
+<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
+<tr class="memdesc:ga605c7863807ac2e9c2db4cf13405f34d"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d">More...</a><br /></td></tr>
+<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
+<tr class="memdesc:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21">More...</a><br /></td></tr>
+<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
+<tr class="memdesc:ga2d7911a43241a5ce2472421255e5930f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga2d7911a43241a5ce2472421255e5930f">More...</a><br /></td></tr>
+<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
+<tr class="memdesc:ga51bfd2f3f5a12464d5934323db9116e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7">More...</a><br /></td></tr>
+<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
+<tr class="memdesc:ga4607e33c40a3c03256e0bf9c586b456a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a">More...</a><br /></td></tr>
+<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
+<tr class="memdesc:ga5ee028f50629bf451973b3a910973357"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga5ee028f50629bf451973b3a910973357">More...</a><br /></td></tr>
+<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
+<tr class="memdesc:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a">More...</a><br /></td></tr>
+<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
+<tr class="memdesc:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432">More...</a><br /></td></tr>
+<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
+<tr class="memdesc:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">More...</a><br /></td></tr>
+<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
+<tr class="memdesc:gae6a747cfc33928652abcb1347712b231"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#gae6a747cfc33928652abcb1347712b231">More...</a><br /></td></tr>
+<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
+<tr class="memdesc:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">More...</a><br /></td></tr>
+<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
+<tr class="memdesc:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">More...</a><br /></td></tr>
+<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
+<tr class="memdesc:gaac1bde847d053902c27bad811b76e9fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">More...</a><br /></td></tr>
+<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
+<tr class="memdesc:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">More...</a><br /></td></tr>
+<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
+<tr class="memdesc:ga223de5d0549b215566dfb977d4bb45bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">More...</a><br /></td></tr>
+<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
+<tr class="memdesc:ga117d8a040e738396a3d60368605623d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga117d8a040e738396a3d60368605623d2">More...</a><br /></td></tr>
+<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
+<tr class="memdesc:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">More...</a><br /></td></tr>
+<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
+<tr class="memdesc:gaeea75c96b308be4114e0badf49f58075"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#gaeea75c96b308be4114e0badf49f58075">More...</a><br /></td></tr>
+<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
+<tr class="memdesc:ga046e59c57aaa185a8b0b012164ce707f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">More...</a><br /></td></tr>
+<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
+<tr class="memdesc:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">More...</a><br /></td></tr>
+<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
+<tr class="memdesc:gae0a526a0143fc69d7b317c078d591654"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gae0a526a0143fc69d7b317c078d591654">More...</a><br /></td></tr>
+<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
+<tr class="memdesc:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd">More...</a><br /></td></tr>
+<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
+<tr class="memdesc:gaaf2d7cf98b74a43fc432725887685dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0">More...</a><br /></td></tr>
+<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
+<tr class="memdesc:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3">More...</a><br /></td></tr>
+<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
+<tr class="memdesc:ga19b0c9580b447443cf3fe589bd661e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03">More...</a><br /></td></tr>
+<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
+<tr class="memdesc:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab">More...</a><br /></td></tr>
+<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
+<tr class="memdesc:gae37a4275ffa68d0c3527a345e76598c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0">More...</a><br /></td></tr>
+<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
+<tr class="memdesc:ga813bff547772bcefebc026e5deba0fe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#ga813bff547772bcefebc026e5deba0fe3">More...</a><br /></td></tr>
+<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
+<tr class="memdesc:gaac3aee10bee5fa5206de8bf024a8b301"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301">More...</a><br /></td></tr>
+<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
+<tr class="memdesc:ga05c2d27aeca091e369fca027e72177e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga05c2d27aeca091e369fca027e72177e8">More...</a><br /></td></tr>
+<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
+<tr class="memdesc:ga2b5b1b810f3b9988f49f985387e35e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03">More...</a><br /></td></tr>
+<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
+<tr class="memdesc:gaea9e20c3668305cf0de5334d217408d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gaea9e20c3668305cf0de5334d217408d9">More...</a><br /></td></tr>
+<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
+<tr class="memdesc:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">More...</a><br /></td></tr>
+<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
+<tr class="memdesc:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">More...</a><br /></td></tr>
+<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
+<tr class="memdesc:gae8fe30d421bc141fa84ad414b803947d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">More...</a><br /></td></tr>
+<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
+<tr class="memdesc:gad64a0179b75508142a72917854034b9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gad64a0179b75508142a72917854034b9b">More...</a><br /></td></tr>
+<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
+<tr class="memdesc:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">More...</a><br /></td></tr>
+<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
+<tr class="memdesc:gaa2542e884ac7d05ada8ebb078b721924"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">More...</a><br /></td></tr>
+<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
+<tr class="memdesc:gab7ca36023fa56d8006341a192ee09260"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gab7ca36023fa56d8006341a192ee09260">More...</a><br /></td></tr>
+<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
+<tr class="memdesc:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">More...</a><br /></td></tr>
+<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
+<tr class="memdesc:gabb754302a1ff8736ec7814d860c9a3c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">More...</a><br /></td></tr>
+<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
+<tr class="memdesc:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">More...</a><br /></td></tr>
+<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
+<tr class="memdesc:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">More...</a><br /></td></tr>
+<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
+<tr class="memdesc:gafff11cbd0abc762e8a340870a31d5bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">More...</a><br /></td></tr>
+<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
+<tr class="memdesc:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">More...</a><br /></td></tr>
+<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
+<tr class="memdesc:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">More...</a><br /></td></tr>
+<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
+<tr class="memdesc:gafb063d734266e92915d87f8943560471"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#gafb063d734266e92915d87f8943560471">More...</a><br /></td></tr>
+<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
+<tr class="memdesc:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">More...</a><br /></td></tr>
+<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
+<tr class="memdesc:ga6dd3ec98a548755676267e59142911f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#ga6dd3ec98a548755676267e59142911f8">More...</a><br /></td></tr>
+<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
+<tr class="memdesc:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">More...</a><br /></td></tr>
+<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
+<tr class="memdesc:ga378921b6a07bcdad946858b340f69ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">More...</a><br /></td></tr>
+<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
+<tr class="memdesc:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">More...</a><br /></td></tr>
+<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
+<tr class="memdesc:gade0eb47c01f79384a6f38017ede17446"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#gade0eb47c01f79384a6f38017ede17446">More...</a><br /></td></tr>
+<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
+<tr class="memdesc:ga1b3f6a5cbc17362141f9781262ed838f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">More...</a><br /></td></tr>
+<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
+<tr class="memdesc:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">More...</a><br /></td></tr>
+<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
+<tr class="memdesc:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">More...</a><br /></td></tr>
+<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
+<tr class="memdesc:ga330077a4cb3707329120b5bddcd7db2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d">More...</a><br /></td></tr>
+<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
+<tr class="memdesc:ga78987759d40d7cb03ebe948fb1dcd879"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879">More...</a><br /></td></tr>
+<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
+<tr class="memdesc:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246">More...</a><br /></td></tr>
+<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
+<tr class="memdesc:gaccf963b117beeadf8c5c057000762dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#gaccf963b117beeadf8c5c057000762dd3">More...</a><br /></td></tr>
+<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
+<tr class="memdesc:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5">More...</a><br /></td></tr>
+<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
+<tr class="memdesc:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b">More...</a><br /></td></tr>
+<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
+<tr class="memdesc:ga5e5de055b7af150796e1c017de84cdb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1">More...</a><br /></td></tr>
+<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
+<tr class="memdesc:ga187d10ddab0492545b78ea1dd108f28d"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d">More...</a><br /></td></tr>
+<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
+<tr class="memdesc:ga27be34d618d20fbd70d4c62c21256b0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c">More...</a><br /></td></tr>
+<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
+<tr class="memdesc:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9">More...</a><br /></td></tr>
+<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
+<tr class="memdesc:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc">More...</a><br /></td></tr>
+<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
+<tr class="memdesc:ga857947b2eef2c9144c34b8e3031f2f12"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12">More...</a><br /></td></tr>
+<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
+<tr class="memdesc:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">More...</a><br /></td></tr>
+<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
+<tr class="memdesc:ga1b77963ca2812ac2653624fa0f81ba74"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">More...</a><br /></td></tr>
+<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
+<tr class="memdesc:ga8c17198123baf6bfb59582ec42a3ca09"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">More...</a><br /></td></tr>
+<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
+<tr class="memdesc:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">More...</a><br /></td></tr>
+<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
+<tr class="memdesc:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">More...</a><br /></td></tr>
+<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
+<tr class="memdesc:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">More...</a><br /></td></tr>
+<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
+<tr class="memdesc:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">More...</a><br /></td></tr>
+<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
+<tr class="memdesc:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">More...</a><br /></td></tr>
+<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
+<tr class="memdesc:ga6259813853e4253f80c2a08672e9fb6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">More...</a><br /></td></tr>
+<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
+<tr class="memdesc:ga22194c68bc3d798bb68a22f635558c8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">More...</a><br /></td></tr>
+<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
+<tr class="memdesc:ga38a01cba69e3db9b1a1056b362519acb"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">More...</a><br /></td></tr>
+<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
+<tr class="memdesc:ga535614d97234065ab44b2513667c8563"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga535614d97234065ab44b2513667c8563">More...</a><br /></td></tr>
+<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:gaa7e1d5586cd499126cec76e0f11871e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the inverse of a squared matrix. <a href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">More...</a><br /></td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00236.html">GLM_GTX_transform</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
-<dd>
-<a class="el" href="a00237.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00112_source.html">transform.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00112_source.html b/3rdparty/glm/doc/api/a00112_source.html
index 3ce13fd4c94..d38d7d0a4c1 100644
--- a/3rdparty/glm/doc/api/a00112_source.html
+++ b/3rdparty/glm/doc/api/a00112_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,51 +64,439 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">transform.hpp</div> </div>
+<div class="title">type_mat.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00112.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtc/matrix_transform.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_transform extension included&quot;)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a>(</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;transform.inl&quot;</span></div>
-<div class="ttc" id="a00236_html_ga2020c91bf61e050882b3a5c18eada700"><div class="ttname"><a href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; rotate(T angle, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...</div></div>
-<div class="ttc" id="a00236_html_ga838c4505ef7f254ed05117b1ac9691fb"><div class="ttname"><a href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; translate(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00236_html_ga1972d4a66a2e92637c8aaee598417a71"><div class="ttname"><a href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">class</span>, precision&gt; <span class="keyword">class </span>colType, <span class="keyword">template</span> &lt;<span class="keyword">class</span>, precision&gt; <span class="keyword">class </span>rowType&gt;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">struct </span>outerProduct_trait{};</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec2;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec3;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat2x2;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat2x3;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat2x4;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat3x2;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat3x3;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat3x4;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat4x2;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat4x3;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat4x4;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>matType&gt;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL matType&lt;T, P&gt; <a class="code" href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(matType&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85"> 39</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47"> 46</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0"> 53</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981"> 60</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74"> 67</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00157.html#gae6a747cfc33928652abcb1347712b231"> 74</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00157.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00157.html#gae8fe30d421bc141fa84ad414b803947d"> 86</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, lowp&gt; <a class="code" href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09"> 93</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b"> 100</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, highp&gt; <a class="code" href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00157.html#gad64a0179b75508142a72917854034b9b"> 112</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, lowp&gt; <a class="code" href="a00157.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe"> 119</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, mediump&gt; <a class="code" href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493"> 126</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, highp&gt; <a class="code" href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924"> 138</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, lowp&gt; <a class="code" href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9"> 145</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a"> 152</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, highp&gt; <a class="code" href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783"> 164</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b"> 171</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="a00157.html#gaac1bde847d053902c27bad811b76e9fd"> 178</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00157.html#gab7ca36023fa56d8006341a192ee09260"> 185</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00157.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec"> 192</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd"> 199</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e"> 211</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, lowp&gt; <a class="code" href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24"> 218</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, mediump&gt; <a class="code" href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00157.html#ga117d8a040e738396a3d60368605623d2"> 225</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, highp&gt; <a class="code" href="a00157.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93"> 237</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, lowp&gt; <a class="code" href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
+<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d"> 244</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, mediump&gt; <a class="code" href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00157.html#gaeea75c96b308be4114e0badf49f58075"> 251</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, highp&gt; <a class="code" href="a00157.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f"> 263</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, lowp&gt; <a class="code" href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
+<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb"> 270</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f"> 277</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, highp&gt; <a class="code" href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0"> 290</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a"> 297</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0"> 304</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa"> 311</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
+<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a00157.html#ga535614d97234065ab44b2513667c8563"> 318</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00157.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead"> 325</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// Float definition</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">typedef</span> lowp_mat2x2 <a class="code" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">typedef</span> lowp_mat2x3 <a class="code" href="a00156.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">typedef</span> lowp_mat2x4 <a class="code" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">typedef</span> lowp_mat3x2 <a class="code" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">typedef</span> lowp_mat3x3 <a class="code" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">typedef</span> lowp_mat3x4 <a class="code" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">typedef</span> lowp_mat4x2 <a class="code" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">typedef</span> lowp_mat4x3 <a class="code" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">typedef</span> lowp_mat4x4 <a class="code" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">typedef</span> mediump_mat2x2 <a class="code" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">typedef</span> mediump_mat2x3 <a class="code" href="a00156.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">typedef</span> mediump_mat2x4 <a class="code" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">typedef</span> mediump_mat3x2 <a class="code" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">typedef</span> mediump_mat3x3 <a class="code" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">typedef</span> mediump_mat3x4 <a class="code" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">typedef</span> mediump_mat4x2 <a class="code" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">typedef</span> mediump_mat4x3 <a class="code" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">typedef</span> mediump_mat4x4 <a class="code" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor">#else </span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">typedef</span> highp_mat2x2 <a class="code" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
+<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="a00156.html#gafb063d734266e92915d87f8943560471"> 364</a></span>&#160; <span class="keyword">typedef</span> highp_mat2x3 <a class="code" href="a00156.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac"> 369</a></span>&#160; <span class="keyword">typedef</span> highp_mat2x4 <a class="code" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div>
+<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4"> 374</a></span>&#160; <span class="keyword">typedef</span> highp_mat3x2 <a class="code" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1"> 379</a></span>&#160; <span class="keyword">typedef</span> highp_mat3x3 <a class="code" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf"> 384</a></span>&#160; <span class="keyword">typedef</span> highp_mat3x4 <a class="code" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f"> 389</a></span>&#160; <span class="keyword">typedef</span> highp_mat4x2 <a class="code" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
+<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd"> 394</a></span>&#160; <span class="keyword">typedef</span> highp_mat4x3 <a class="code" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81"> 399</a></span>&#160; <span class="keyword">typedef</span> highp_mat4x4 <a class="code" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
+<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450"> 406</a></span>&#160; <span class="keyword">typedef</span> mat2x2 <a class="code" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
+<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="a00156.html#ga6dd3ec98a548755676267e59142911f8"> 411</a></span>&#160; <span class="keyword">typedef</span> mat3x3 <a class="code" href="a00156.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="a00156.html#gade0eb47c01f79384a6f38017ede17446"> 416</a></span>&#160; <span class="keyword">typedef</span> mat4x4 <a class="code" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// Double definition</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
+<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="a00157.html#gae0a526a0143fc69d7b317c078d591654"> 428</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, lowp&gt; <a class="code" href="a00157.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a>;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; </div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d"> 434</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, mediump&gt; <a class="code" href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a>;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
+<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8"> 440</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, highp&gt; <a class="code" href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; </div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd"> 446</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, lowp&gt; <a class="code" href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879"> 452</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, mediump&gt; <a class="code" href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a>;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; </div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba"> 458</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, highp&gt; <a class="code" href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; </div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
+<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0"> 469</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, lowp&gt; <a class="code" href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a>;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246"> 475</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, mediump&gt; <a class="code" href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a>;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
+<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6"> 481</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, highp&gt; <a class="code" href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a>;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; </div>
+<div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3"> 492</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, lowp&gt; <a class="code" href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; </div>
+<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="a00157.html#gaccf963b117beeadf8c5c057000762dd3"> 498</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, mediump&gt; <a class="code" href="a00157.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; </div>
+<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30"> 504</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, highp&gt; <a class="code" href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a>;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; </div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab"> 515</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, lowp&gt; <a class="code" href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; </div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b"> 521</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, mediump&gt; <a class="code" href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a>;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21"> 527</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, highp&gt; <a class="code" href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; </div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; </div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03"> 538</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a>;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; </div>
+<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5"> 544</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, mediump&gt; <a class="code" href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; </div>
+<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d"> 550</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, highp&gt; <a class="code" href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; </div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0"> 556</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, lowp&gt; <a class="code" href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a>;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; </div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1"> 562</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, mediump&gt; <a class="code" href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a>;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
+<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="a00157.html#ga2d7911a43241a5ce2472421255e5930f"> 568</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, highp&gt; <a class="code" href="a00157.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; </div>
+<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="a00157.html#ga813bff547772bcefebc026e5deba0fe3"> 579</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, lowp&gt; <a class="code" href="a00157.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; </div>
+<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d"> 585</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, mediump&gt; <a class="code" href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a>;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; </div>
+<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7"> 591</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, highp&gt; <a class="code" href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; </div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; </div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; </div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="a00157.html#ga05c2d27aeca091e369fca027e72177e8"> 602</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, lowp&gt; <a class="code" href="a00157.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; </div>
+<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9"> 608</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, mediump&gt; <a class="code" href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a>;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; </div>
+<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="a00157.html#ga5ee028f50629bf451973b3a910973357"> 614</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, highp&gt; <a class="code" href="a00157.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a>;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; </div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; </div>
+<div class="line"><a name="l00625"></a><span class="lineno"><a class="line" href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03"> 625</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, lowp&gt; <a class="code" href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a>;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; </div>
+<div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc"> 631</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, mediump&gt; <a class="code" href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a>;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; </div>
+<div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a"> 637</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, highp&gt; <a class="code" href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a>;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; </div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; </div>
+<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301"> 648</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, lowp&gt; <a class="code" href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a>;</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; </div>
+<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c"> 654</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, mediump&gt; <a class="code" href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a>;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
+<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a"> 660</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, highp&gt; <a class="code" href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; </div>
+<div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="a00157.html#gaea9e20c3668305cf0de5334d217408d9"> 666</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, lowp&gt; <a class="code" href="a00157.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a>;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; </div>
+<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12"> 672</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, mediump&gt; <a class="code" href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; </div>
+<div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432"> 678</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, highp&gt; <a class="code" href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a>;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; </div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; </div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keyword">typedef</span> lowp_dmat2x2 <a class="code" href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">typedef</span> lowp_dmat2x3 <a class="code" href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keyword">typedef</span> lowp_dmat2x4 <a class="code" href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">typedef</span> lowp_dmat3x2 <a class="code" href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keyword">typedef</span> lowp_dmat3x3 <a class="code" href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keyword">typedef</span> lowp_dmat3x4 <a class="code" href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keyword">typedef</span> lowp_dmat4x2 <a class="code" href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keyword">typedef</span> lowp_dmat4x3 <a class="code" href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keyword">typedef</span> lowp_dmat4x4 <a class="code" href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">typedef</span> mediump_dmat2x2 <a class="code" href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keyword">typedef</span> mediump_dmat2x3 <a class="code" href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">typedef</span> mediump_dmat2x4 <a class="code" href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keyword">typedef</span> mediump_dmat3x2 <a class="code" href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keyword">typedef</span> mediump_dmat3x3 <a class="code" href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keyword">typedef</span> mediump_dmat3x4 <a class="code" href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keyword">typedef</span> mediump_dmat4x2 <a class="code" href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keyword">typedef</span> mediump_dmat4x3 <a class="code" href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keyword">typedef</span> mediump_dmat4x4 <a class="code" href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; </div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44"> 707</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; </div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff"> 712</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; </div>
+<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27"> 717</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a>;</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; </div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e"> 722</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; </div>
+<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7"> 727</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x3 <a class="code" href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; </div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738"> 732</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x4 <a class="code" href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; </div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8"> 737</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x2 <a class="code" href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; </div>
+<div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8"> 742</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; </div>
+<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091"> 747</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x4 <a class="code" href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; </div>
+<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="a00156.html#ga6ddab280c735a2139133b4164b99a68a"> 752</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x2 <a class="code" href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; </div>
+<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="a00156.html#gab6c8974496fc7c72dad09219118ba89e"> 757</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x3 <a class="code" href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; </div>
+<div class="line"><a name="l00762"></a><span class="lineno"><a class="line" href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e"> 762</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; </div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00156_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00156.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00411">type_mat.hpp:411</a></div></div>
+<div class="ttc" id="a00157_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, lowp &gt; lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00211">type_mat.hpp:211</a></div></div>
+<div class="ttc" id="a00157_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00157.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, lowp &gt; lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00112">type_mat.hpp:112</a></div></div>
+<div class="ttc" id="a00157_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00304">type_mat.hpp:304</a></div></div>
+<div class="ttc" id="a00157_html_ga65ae7d3b23155712ed8cbd3300be4ec8"><div class="ttname"><a href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8">glm::highp_dmat2</a></div><div class="ttdeci">tmat2x2&lt; double, highp &gt; highp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00440">type_mat.hpp:440</a></div></div>
+<div class="ttc" id="a00157_html_ga6b81830ed1ce3862bcbbf41eccc3890b"><div class="ttname"><a href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b">glm::mediump_dmat3x2</a></div><div class="ttdeci">tmat3x2&lt; double, mediump &gt; mediump_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00521">type_mat.hpp:521</a></div></div>
+<div class="ttc" id="a00157_html_ga4607e33c40a3c03256e0bf9c586b456a"><div class="ttname"><a href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a">glm::highp_dmat4</a></div><div class="ttdeci">tmat4x4&lt; double, highp &gt; highp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00660">type_mat.hpp:660</a></div></div>
+<div class="ttc" id="a00157_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00199">type_mat.hpp:199</a></div></div>
+<div class="ttc" id="a00157_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, mediump &gt; mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00145">type_mat.hpp:145</a></div></div>
+<div class="ttc" id="a00156_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00399">type_mat.hpp:399</a></div></div>
+<div class="ttc" id="a00156_html_ga38d9bfca882ec542b1928cf77b5c2091"><div class="ttname"><a href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">glm::dmat3x4</a></div><div class="ttdeci">highp_dmat3x4 dmat3x4</div><div class="ttdoc">3 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00747">type_mat.hpp:747</a></div></div>
+<div class="ttc" id="a00157_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, mediump &gt; mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00270">type_mat.hpp:270</a></div></div>
+<div class="ttc" id="a00157_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, lowp &gt; lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00086">type_mat.hpp:86</a></div></div>
+<div class="ttc" id="a00157_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00325">type_mat.hpp:325</a></div></div>
+<div class="ttc" id="a00157_html_ga19b0c9580b447443cf3fe589bd661e03"><div class="ttname"><a href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03">glm::lowp_dmat3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00538">type_mat.hpp:538</a></div></div>
+<div class="ttc" id="a00157_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, mediump &gt; mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00218">type_mat.hpp:218</a></div></div>
+<div class="ttc" id="a00157_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00157.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00074">type_mat.hpp:74</a></div></div>
+<div class="ttc" id="a00157_html_gaf98afd25f7e3e8f1d73bca020d0d8ea6"><div class="ttname"><a href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">glm::highp_dmat2x3</a></div><div class="ttdeci">tmat2x3&lt; double, highp &gt; highp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00481">type_mat.hpp:481</a></div></div>
+<div class="ttc" id="a00157_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, highp &gt; highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00152">type_mat.hpp:152</a></div></div>
+<div class="ttc" id="a00157_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00164">type_mat.hpp:164</a></div></div>
+<div class="ttc" id="a00149_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType&lt; T, P &gt; inverse(matType&lt; T, P &gt; const &amp;m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00157_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00053">type_mat.hpp:53</a></div></div>
+<div class="ttc" id="a00157_html_gac1c87c16d6dcb7449bc3c779ccdc5c30"><div class="ttname"><a href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">glm::highp_dmat2x4</a></div><div class="ttdeci">tmat2x4&lt; double, highp &gt; highp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00504">type_mat.hpp:504</a></div></div>
+<div class="ttc" id="a00157_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, lowp &gt; lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00138">type_mat.hpp:138</a></div></div>
+<div class="ttc" id="a00157_html_gaaf2d7cf98b74a43fc432725887685dc0"><div class="ttname"><a href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0">glm::lowp_dmat2x3</a></div><div class="ttdeci">tmat2x3&lt; double, lowp &gt; lowp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00469">type_mat.hpp:469</a></div></div>
+<div class="ttc" id="a00156_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00389">type_mat.hpp:389</a></div></div>
+<div class="ttc" id="a00157_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, highp &gt; highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="ttc" id="a00157_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00039">type_mat.hpp:39</a></div></div>
+<div class="ttc" id="a00156_html_ga97b38ea24e9ebf58eac04a8d99dc3e27"><div class="ttname"><a href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">glm::dmat4</a></div><div class="ttdeci">highp_dmat4x4 dmat4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00717">type_mat.hpp:717</a></div></div>
+<div class="ttc" id="a00157_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00157.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, highp &gt; highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="ttc" id="a00156_html_ga41c2da87ca627c1b2da5e895435a508e"><div class="ttname"><a href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">glm::dmat4x4</a></div><div class="ttdeci">highp_dmat4x4 dmat4x4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00762">type_mat.hpp:762</a></div></div>
+<div class="ttc" id="a00157_html_gab2d4fd5cd286baff8364a7a3f60c8a21"><div class="ttname"><a href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21">glm::highp_dmat3x2</a></div><div class="ttdeci">tmat3x2&lt; double, highp &gt; highp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00527">type_mat.hpp:527</a></div></div>
+<div class="ttc" id="a00157_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00311">type_mat.hpp:311</a></div></div>
+<div class="ttc" id="a00157_html_gaac3aee10bee5fa5206de8bf024a8b301"><div class="ttname"><a href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301">glm::lowp_dmat4</a></div><div class="ttdeci">tmat4x4&lt; double, lowp &gt; lowp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00648">type_mat.hpp:648</a></div></div>
+<div class="ttc" id="a00157_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00046">type_mat.hpp:46</a></div></div>
+<div class="ttc" id="a00156_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00379">type_mat.hpp:379</a></div></div>
+<div class="ttc" id="a00156_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00369">type_mat.hpp:369</a></div></div>
+<div class="ttc" id="a00157_html_ga2d7911a43241a5ce2472421255e5930f"><div class="ttname"><a href="a00157.html#ga2d7911a43241a5ce2472421255e5930f">glm::highp_dmat3x3</a></div><div class="ttdeci">tmat3x3&lt; double, highp &gt; highp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00568">type_mat.hpp:568</a></div></div>
+<div class="ttc" id="a00156_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00359">type_mat.hpp:359</a></div></div>
+<div class="ttc" id="a00157_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00297">type_mat.hpp:297</a></div></div>
+<div class="ttc" id="a00157_html_ga05c2d27aeca091e369fca027e72177e8"><div class="ttname"><a href="a00157.html#ga05c2d27aeca091e369fca027e72177e8">glm::lowp_dmat4x2</a></div><div class="ttdeci">tmat4x2&lt; double, lowp &gt; lowp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00602">type_mat.hpp:602</a></div></div>
+<div class="ttc" id="a00157_html_gaccf963b117beeadf8c5c057000762dd3"><div class="ttname"><a href="a00157.html#gaccf963b117beeadf8c5c057000762dd3">glm::mediump_dmat2x4</a></div><div class="ttdeci">tmat2x4&lt; double, mediump &gt; mediump_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00498">type_mat.hpp:498</a></div></div>
+<div class="ttc" id="a00157_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00157.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00185">type_mat.hpp:185</a></div></div>
+<div class="ttc" id="a00156_html_ga6ddab280c735a2139133b4164b99a68a"><div class="ttname"><a href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">glm::dmat4x2</a></div><div class="ttdeci">highp_dmat4x2 dmat4x2</div><div class="ttdoc">4 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00752">type_mat.hpp:752</a></div></div>
+<div class="ttc" id="a00157_html_ga605c7863807ac2e9c2db4cf13405f34d"><div class="ttname"><a href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d">glm::highp_dmat3</a></div><div class="ttdeci">tmat3x3&lt; double, highp &gt; highp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00550">type_mat.hpp:550</a></div></div>
+<div class="ttc" id="a00156_html_gac7f51e23c8802d867f564dfd146bdb44"><div class="ttname"><a href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44">glm::dmat2</a></div><div class="ttdeci">highp_dmat2x2 dmat2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00707">type_mat.hpp:707</a></div></div>
+<div class="ttc" id="a00157_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00157.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00318">type_mat.hpp:318</a></div></div>
+<div class="ttc" id="a00157_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, lowp &gt; lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00237">type_mat.hpp:237</a></div></div>
+<div class="ttc" id="a00157_html_gad4a5b294c54702b7c8e9ee32a451dea9"><div class="ttname"><a href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9">glm::mediump_dmat4x2</a></div><div class="ttdeci">tmat4x2&lt; double, mediump &gt; mediump_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00608">type_mat.hpp:608</a></div></div>
+<div class="ttc" id="a00156_html_gacc27b39853a2ecb538c8b3afc20c359e"><div class="ttname"><a href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">glm::dmat2x2</a></div><div class="ttdeci">highp_dmat2x2 dmat2x2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00722">type_mat.hpp:722</a></div></div>
+<div class="ttc" id="a00157_html_ga78987759d40d7cb03ebe948fb1dcd879"><div class="ttname"><a href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879">glm::mediump_dmat2x2</a></div><div class="ttdeci">tmat2x2&lt; double, mediump &gt; mediump_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00452">type_mat.hpp:452</a></div></div>
+<div class="ttc" id="a00156_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00156.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00364">type_mat.hpp:364</a></div></div>
+<div class="ttc" id="a00157_html_gae37a4275ffa68d0c3527a345e76598c0"><div class="ttname"><a href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0">glm::lowp_dmat3x3</a></div><div class="ttdeci">tmat3x3&lt; double, lowp &gt; lowp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00556">type_mat.hpp:556</a></div></div>
+<div class="ttc" id="a00156_html_gaddd230c88fbd6ec33242329be3a1b738"><div class="ttname"><a href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">glm::dmat2x4</a></div><div class="ttdeci">highp_dmat2x4 dmat2x4</div><div class="ttdoc">2 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00732">type_mat.hpp:732</a></div></div>
+<div class="ttc" id="a00157_html_ga000c064e4eba15bf83f8e1e393a8e7fd"><div class="ttname"><a href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd">glm::lowp_dmat2x2</a></div><div class="ttdeci">tmat2x2&lt; double, lowp &gt; lowp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00446">type_mat.hpp:446</a></div></div>
+<div class="ttc" id="a00157_html_gaea9e20c3668305cf0de5334d217408d9"><div class="ttname"><a href="a00157.html#gaea9e20c3668305cf0de5334d217408d9">glm::lowp_dmat4x4</a></div><div class="ttdeci">tmat4x4&lt; double, lowp &gt; lowp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00666">type_mat.hpp:666</a></div></div>
+<div class="ttc" id="a00157_html_ga330077a4cb3707329120b5bddcd7db2d"><div class="ttname"><a href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d">glm::mediump_dmat2</a></div><div class="ttdeci">tmat2x2&lt; double, mediump &gt; mediump_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00434">type_mat.hpp:434</a></div></div>
+<div class="ttc" id="a00156_html_gac44263f56ff3cbf0a9cc4e2405d5ecb8"><div class="ttname"><a href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">glm::dmat3x3</a></div><div class="ttdeci">highp_dmat3x3 dmat3x3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00742">type_mat.hpp:742</a></div></div>
+<div class="ttc" id="a00157_html_ga27b55deeb16fda7262d64dc1fd1a56bc"><div class="ttname"><a href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc">glm::mediump_dmat4x3</a></div><div class="ttdeci">tmat4x3&lt; double, mediump &gt; mediump_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00631">type_mat.hpp:631</a></div></div>
+<div class="ttc" id="a00157_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00178">type_mat.hpp:178</a></div></div>
+<div class="ttc" id="a00157_html_ga51bfd2f3f5a12464d5934323db9116e7"><div class="ttname"><a href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7">glm::highp_dmat3x4</a></div><div class="ttdeci">tmat3x4&lt; double, highp &gt; highp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00591">type_mat.hpp:591</a></div></div>
+<div class="ttc" id="a00156_html_gae174ff65e148bb7dec4bf10a63cb46ff"><div class="ttname"><a href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff">glm::dmat3</a></div><div class="ttdeci">highp_dmat3x3 dmat3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00712">type_mat.hpp:712</a></div></div>
+<div class="ttc" id="a00157_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00290">type_mat.hpp:290</a></div></div>
+<div class="ttc" id="a00156_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00394">type_mat.hpp:394</a></div></div>
+<div class="ttc" id="a00156_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00156.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00157_html_ga187d10ddab0492545b78ea1dd108f28d"><div class="ttname"><a href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d">glm::mediump_dmat3x4</a></div><div class="ttdeci">tmat3x4&lt; double, mediump &gt; mediump_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00585">type_mat.hpp:585</a></div></div>
+<div class="ttc" id="a00157_html_ga518f28c64881fafaaf14ec0d867a9bba"><div class="ttname"><a href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba">glm::highp_dmat2x2</a></div><div class="ttdeci">tmat2x2&lt; double, highp &gt; highp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00458">type_mat.hpp:458</a></div></div>
+<div class="ttc" id="a00157_html_ga2b5b1b810f3b9988f49f985387e35e03"><div class="ttname"><a href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03">glm::lowp_dmat4x3</a></div><div class="ttdeci">tmat4x3&lt; double, lowp &gt; lowp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00625">type_mat.hpp:625</a></div></div>
+<div class="ttc" id="a00157_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00157.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, highp &gt; highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00225">type_mat.hpp:225</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00060">type_mat.hpp:60</a></div></div>
+<div class="ttc" id="a00157_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, lowp &gt; lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00263">type_mat.hpp:263</a></div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00156_html_ga1cb3c561a32f0864733dfaf97c71f0c7"><div class="ttname"><a href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">glm::dmat2x3</a></div><div class="ttdeci">highp_dmat2x3 dmat2x3</div><div class="ttdoc">2 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00727">type_mat.hpp:727</a></div></div>
+<div class="ttc" id="a00156_html_gaec22f44dddbdadfe5dfca68eb3457ea8"><div class="ttname"><a href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">glm::dmat3x2</a></div><div class="ttdeci">highp_dmat3x2 dmat3x2</div><div class="ttdoc">3 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00737">type_mat.hpp:737</a></div></div>
+<div class="ttc" id="a00157_html_ga8091edef9fdf54b1996ae5bd00f847e5"><div class="ttname"><a href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5">glm::mediump_dmat3</a></div><div class="ttdeci">tmat3x3&lt; double, mediump &gt; mediump_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00544">type_mat.hpp:544</a></div></div>
+<div class="ttc" id="a00157_html_ga83ab0b8b8b50cbf945237dc8f5322432"><div class="ttname"><a href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432">glm::highp_dmat4x4</a></div><div class="ttdeci">tmat4x4&lt; double, highp &gt; highp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00678">type_mat.hpp:678</a></div></div>
+<div class="ttc" id="a00157_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, highp &gt; highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00100">type_mat.hpp:100</a></div></div>
+<div class="ttc" id="a00157_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, mediump &gt; mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00119">type_mat.hpp:119</a></div></div>
+<div class="ttc" id="a00157_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00067">type_mat.hpp:67</a></div></div>
+<div class="ttc" id="a00157_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, mediump &gt; mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00093">type_mat.hpp:93</a></div></div>
+<div class="ttc" id="a00157_html_ga27be34d618d20fbd70d4c62c21256b0c"><div class="ttname"><a href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c">glm::mediump_dmat4</a></div><div class="ttdeci">tmat4x4&lt; double, mediump &gt; mediump_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00654">type_mat.hpp:654</a></div></div>
+<div class="ttc" id="a00157_html_gae0a526a0143fc69d7b317c078d591654"><div class="ttname"><a href="a00157.html#gae0a526a0143fc69d7b317c078d591654">glm::lowp_dmat2</a></div><div class="ttdeci">tmat2x2&lt; double, lowp &gt; lowp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00428">type_mat.hpp:428</a></div></div>
+<div class="ttc" id="a00156_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00406">type_mat.hpp:406</a></div></div>
+<div class="ttc" id="a00157_html_ga5ee028f50629bf451973b3a910973357"><div class="ttname"><a href="a00157.html#ga5ee028f50629bf451973b3a910973357">glm::highp_dmat4x2</a></div><div class="ttdeci">tmat4x2&lt; double, highp &gt; highp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00614">type_mat.hpp:614</a></div></div>
+<div class="ttc" id="a00157_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, mediump &gt; mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00244">type_mat.hpp:244</a></div></div>
+<div class="ttc" id="a00157_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, highp &gt; highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00126">type_mat.hpp:126</a></div></div>
+<div class="ttc" id="a00157_html_ga857947b2eef2c9144c34b8e3031f2f12"><div class="ttname"><a href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12">glm::mediump_dmat4x4</a></div><div class="ttdeci">tmat4x4&lt; double, mediump &gt; mediump_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00672">type_mat.hpp:672</a></div></div>
+<div class="ttc" id="a00157_html_ga2569a68be3f1cf56e7e5e0920fe5a246"><div class="ttname"><a href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246">glm::mediump_dmat2x3</a></div><div class="ttdeci">tmat2x3&lt; double, mediump &gt; mediump_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00475">type_mat.hpp:475</a></div></div>
+<div class="ttc" id="a00157_html_ga813bff547772bcefebc026e5deba0fe3"><div class="ttname"><a href="a00157.html#ga813bff547772bcefebc026e5deba0fe3">glm::lowp_dmat3x4</a></div><div class="ttdeci">tmat3x4&lt; double, lowp &gt; lowp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00579">type_mat.hpp:579</a></div></div>
+<div class="ttc" id="a00157_html_gafe7eea5b2a20477b5634e340ea5ec28a"><div class="ttname"><a href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a">glm::highp_dmat4x3</a></div><div class="ttdeci">tmat4x3&lt; double, highp &gt; highp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00637">type_mat.hpp:637</a></div></div>
+<div class="ttc" id="a00157_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00192">type_mat.hpp:192</a></div></div>
+<div class="ttc" id="a00156_html_gab6c8974496fc7c72dad09219118ba89e"><div class="ttname"><a href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">glm::dmat4x3</a></div><div class="ttdeci">highp_dmat4x3 dmat4x3</div><div class="ttdoc">4 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00757">type_mat.hpp:757</a></div></div>
+<div class="ttc" id="a00157_html_ga5e5de055b7af150796e1c017de84cdb1"><div class="ttname"><a href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1">glm::mediump_dmat3x3</a></div><div class="ttdeci">tmat3x3&lt; double, mediump &gt; mediump_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00562">type_mat.hpp:562</a></div></div>
+<div class="ttc" id="a00156_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00374">type_mat.hpp:374</a></div></div>
+<div class="ttc" id="a00156_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00384">type_mat.hpp:384</a></div></div>
+<div class="ttc" id="a00157_html_ga27ccd1bcb24920508a7b6a24bd9265ab"><div class="ttname"><a href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab">glm::lowp_dmat3x2</a></div><div class="ttdeci">tmat3x2&lt; double, lowp &gt; lowp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00515">type_mat.hpp:515</a></div></div>
+<div class="ttc" id="a00157_html_ga8ac69e9ed1addf122f51396f73cdbbf3"><div class="ttname"><a href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3">glm::lowp_dmat2x4</a></div><div class="ttdeci">tmat2x4&lt; double, lowp &gt; lowp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00492">type_mat.hpp:492</a></div></div>
+<div class="ttc" id="a00157_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00112_source.html#l00171">type_mat.hpp:171</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00113.html b/3rdparty/glm/doc/api/a00113.html
index 59082bcd884..985b0e8f2b4 100644
--- a/3rdparty/glm/doc/api/a00113.html
+++ b/3rdparty/glm/doc/api/a00113.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform2.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat2x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,65 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">transform2.hpp File Reference</div> </div>
+<div class="title">type_mat2x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00113_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
-<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
-<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
-<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)</td></tr>
-<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
-<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T y, T z)</td></tr>
-<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
-<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T z)</td></tr>
-<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T y)</td></tr>
-<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00237.html">GLM_GTX_transform2</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00113_source.html">transform2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00113_source.html">type_mat2x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00113_source.html b/3rdparty/glm/doc/api/a00113_source.html
index 075cb049bfe..a1933d6cf78 100644
--- a/3rdparty/glm/doc/api/a00113_source.html
+++ b/3rdparty/glm/doc/api/a00113_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform2.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat2x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,100 +64,215 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">transform2.hpp</div> </div>
+<div class="title">type_mat2x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00113.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">struct </span>tmat2x2</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; col_type value[2];</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL tmat2x2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat2x2(tmat2x2&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL tmat2x2(tmat2x2&lt;T, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x2(ctor);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL explicit tmat2x2(T scalar);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T const &amp; x1, T const &amp; y1,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T const &amp; x2, T const &amp; y2);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; col_type const &amp; v2);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../gtx/transform.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_transform2 extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a>(</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; T y);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a>(</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; T x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00237.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a>(</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; T y, </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T z);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m, </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; T x, </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; T z);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a>(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m, </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; T x, </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; T y);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">//template &lt;typename T&gt; GLM_FUNC_QUALIFIER tmat4x4&lt;T, P&gt; shear(const tmat4x4&lt;T, P&gt; &amp; m, shearPlane, planePoint, angle)</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// - dot(PointOnPlane, normal) * OnPlaneVector 1</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; template &lt;typename U, typename V, typename M, typename N&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; U const &amp; x1, V const &amp; y1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; M const &amp; x2, N const &amp; y2);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; template &lt;typename U, typename V&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; tvec2&lt;U, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; tvec2&lt;V, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x2&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 2;}</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator=(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator+=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator-=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator*=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator/=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// Reflect functions seem to don&#39;t work</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">//template &lt;typename T&gt; tmat3x3&lt;T, P&gt; reflect2D(const tmat3x3&lt;T, P&gt; &amp; m, const tvec3&lt;T, P&gt;&amp; normal){return reflect2DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">//template &lt;typename T&gt; tmat4x4&lt;T, P&gt; reflect3D(const tmat4x4&lt;T, P&gt; &amp; m, const tvec3&lt;T, P&gt;&amp; normal){return reflect3DGTX(m, normal);} //!&lt; \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <a class="code" href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a>(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> tmat3x3&lt;T, P&gt; &amp; m, </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; normal);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <a class="code" href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a>(</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">const</span> tmat4x4&lt;T, P&gt; &amp; m, </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">const</span> tvec3&lt;T, P&gt;&amp; normal);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; };</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType, precision P&gt; </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; <a class="code" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; valType <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; valType bias);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> valType, precision P&gt; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; <a class="code" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; tmat4x4&lt;valType, P&gt; <span class="keyword">const</span> &amp; m, </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; valType <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; valType bias);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(T scalar, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(T scalar, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#include &quot;transform2.inl&quot;</span></div>
-<div class="ttc" id="a00237_html_gac1a1139e2980021422d1fc1c42dc74f2"><div class="ttname"><a href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">glm::scaleBias</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt; scaleBias(tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)</div><div class="ttdoc">Build a scale bias matrix. </div></div>
-<div class="ttc" id="a00237_html_ga5558ac64a7144685bf2eb4483a0e2f51"><div class="ttname"><a href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">glm::shearZ3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; shearZ3D(const tmat4x4&lt; T, P &gt; &amp;m, T x, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on Z axis. </div></div>
-<div class="ttc" id="a00237_html_ga21ade82859e09a5cdaf4a01fbf8dc61b"><div class="ttname"><a href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">glm::shearY2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; shearY2D(tmat3x3&lt; T, P &gt; const &amp;m, T x)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
-<div class="ttc" id="a00237_html_ga31253ea18fdcdfde08c134c8b67688f7"><div class="ttname"><a href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">glm::shearY3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; shearY3D(const tmat4x4&lt; T, P &gt; &amp;m, T x, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
-<div class="ttc" id="a00237_html_ga10f6c62d8f827c4cacedb71fd05e4ba2"><div class="ttname"><a href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">glm::shearX2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; shearX2D(tmat3x3&lt; T, P &gt; const &amp;m, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis. </div></div>
-<div class="ttc" id="a00237_html_gacfce1085167a8bfb71a55ea14d22752f"><div class="ttname"><a href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">glm::proj2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, P &gt; proj2D(const tmat3x3&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
-<div class="ttc" id="a00237_html_gae06ce274e4754f925d5d68440e89452e"><div class="ttname"><a href="a00237.html#gae06ce274e4754f925d5d68440e89452e">glm::shearX3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; shearX3D(const tmat4x4&lt; T, P &gt; &amp;m, T y, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </div></div>
-<div class="ttc" id="a00237_html_gafab0418f2503ec2133cb2de828cc482a"><div class="ttname"><a href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">glm::proj3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; proj3D(const tmat4x4&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00174_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, P &gt; scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(T scalar, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator/(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator/(T scalar, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type operator/(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type operator/(<span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator/(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;} <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00114.html b/3rdparty/glm/doc/api/a00114.html
index e5ed30a317d..ae6419522e5 100644
--- a/3rdparty/glm/doc/api/a00114.html
+++ b/3rdparty/glm/doc/api/a00114.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: trigonometric.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat2x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">trigonometric.hpp File Reference</div> </div>
+<div class="title">type_mat2x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00114_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00114_source.html">trigonometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00114_source.html">type_mat2x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00114_source.html b/3rdparty/glm/doc/api/a00114_source.html
index 93d6ac3811f..f1b29be1ccf 100644
--- a/3rdparty/glm/doc/api/a00114_source.html
+++ b/3rdparty/glm/doc/api/a00114_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: trigonometric.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat2x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,198 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">trigonometric.hpp</div> </div>
+<div class="title">type_mat2x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00114.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>tmat2x3</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; col_type value[2];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat2x3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL tmat2x3(tmat2x3&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tmat2x3(tmat2x3&lt;T, Q&gt; const &amp; m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00036.html">detail/func_trigonometric.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00036_html"><div class="ttname"><a href="a00036.html">func_trigonometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x3(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL explicit tmat2x3(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T x0, T y0, T z0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T x1, T y1, T z1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; col_type const &amp; v1);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; template &lt;typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; X1 x1, Y1 y1, Z1 z1,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; X2 x2, Y2 y2, Z2 z2);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; template &lt;typename U, typename V&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; tvec3&lt;U, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; tvec3&lt;V, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x3&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 2;}</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator=(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator=(tmat2x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator+=(tmat2x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator-=(tmat2x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; };</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator+(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator-(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator+(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator+(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator-(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator-(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(T scalar, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::col_type operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator/(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator/(T scalar, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00115.html b/3rdparty/glm/doc/api/a00115.html
index bc126d28c2b..d0e56a190dd 100644
--- a/3rdparty/glm/doc/api/a00115.html
+++ b/3rdparty/glm/doc/api/a00115.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_aligned.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat2x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,456 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_aligned.hpp File Reference</div> </div>
+<div class="title">type_mat2x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00115_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
-<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
-<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
-<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
-<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
-<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
-<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
-<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
-<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
-<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
-<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
-<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
-<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
-<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
-<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
-<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
-<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
-<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
-<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
-<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
-<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
-<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
-<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
-<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
-<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
-<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
-<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
-<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
-<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
-<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
-<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
-<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
-<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
-<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
-<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
-<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
-<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
-<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
-<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
-<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
-<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
-<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
-<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
-<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
-<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
-<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
-<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
-<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
-<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
-<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
-<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
-<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
-<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
-<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
-<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
-<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
-<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
-<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
-<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
-<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
-<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
-<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
-<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
-<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
-<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
-<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
-<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
-<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
-<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
-<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
-<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
-<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
-<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
-<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
-<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
-<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
-<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
-<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
-<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
-<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
-<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
-<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
-<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
-<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
-<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
-<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
-<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
-<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
-<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
-<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
-<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
-<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
-<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
-<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
-<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
-<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
-<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
-<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
-<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
-<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
-<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
-<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
-<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
-<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
-<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
-<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
-<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
-<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
-<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
-<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
-<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
-<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
-<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
-<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
-<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
-<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
-<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
-<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
-<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
-<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
-<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
-<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
-<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
-<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
-<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
-<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
-<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
-<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
-<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
-<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
-<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
-<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
-<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
-<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
-<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
-<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
-<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
-<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
-<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
-<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
-<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
-<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
-<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
-<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
-<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
-<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
-<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
-<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
-<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
-<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
-<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
-<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
-<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
-<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
-<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
-<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
-<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
-<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
-<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
-<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
-<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
-<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
-<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
-<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
-<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
-<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
-<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
-<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
-<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
-<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
-<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
-<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
-<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
-<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
-<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
-<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
-<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
-<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
-<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
-<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
-<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
-<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
-<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
-<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
-<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
-<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
-<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
-<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
-<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
-<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
-<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
-<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
-<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
-<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
-<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
-<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
-<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
-<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
-<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
-<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
-<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
-<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
-<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
-<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
-<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
-<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
-<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
-<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
-<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
-<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00238.html">GLM_GTX_type_aligned</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-11-23 / 2014-12-23 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00115_source.html">type_aligned.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00115_source.html">type_mat2x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00115_source.html b/3rdparty/glm/doc/api/a00115_source.html
index 358ff3621a3..2ba2cf31f87 100644
--- a/3rdparty/glm/doc/api/a00115_source.html
+++ b/3rdparty/glm/doc/api/a00115_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_aligned.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat2x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,709 +64,200 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_aligned.hpp</div> </div>
+<div class="title">type_mat2x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00115.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../gtc/type_precision.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_type_aligned extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Signed int vector types </span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>, aligned_lowp_int8, 1);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>, aligned_lowp_int16, 2);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>, aligned_lowp_int32, 4);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>tmat2x4</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; col_type value[2];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat2x4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL tmat2x4(tmat2x4&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tmat2x4(tmat2x4&lt;T, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x4(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL explicit tmat2x4(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T x0, T y0, T z0, T w0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T x1, T y1, T z1, T w1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; col_type const &amp; v1);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; template &lt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; typename X2, typename Y2, typename Z2, typename W2&gt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; X2 x2, Y2 y2, Z2 z2, W2 w2);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; template &lt;typename U, typename V&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; tvec4&lt;U, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; tvec4&lt;V, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x4&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>, aligned_lowp_int64, 8);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>, aligned_lowp_int8_t, 1);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>, aligned_lowp_int16_t, 2);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>, aligned_lowp_int32_t, 4);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>, aligned_lowp_int64_t, 8);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>, aligned_lowp_i8, 1);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>, aligned_lowp_i16, 2);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>, aligned_lowp_i32, 4);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>, aligned_lowp_i64, 8);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 2;}</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator=(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator=(tmat2x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator+=(tmat2x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator-=(tmat2x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator+(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>, aligned_mediump_int8, 1);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator-(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>, aligned_mediump_int16, 2);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>, aligned_mediump_int32, 4);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>, aligned_mediump_int64, 8);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator+(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator+(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator-(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator-(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>, aligned_mediump_int8_t, 1);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>, aligned_mediump_int16_t, 2);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(T scalar, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::col_type operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>, aligned_mediump_int32_t, 4);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>, aligned_mediump_int64_t, 8);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>, aligned_mediump_i8, 1);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>, aligned_mediump_i16, 2);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>, aligned_mediump_i32, 4);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>, aligned_mediump_i64, 8);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>, aligned_highp_int8, 1);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>, aligned_highp_int16, 2);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>, aligned_highp_int32, 4);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>, aligned_highp_int64, 8);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>, aligned_highp_int8_t, 1);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>, aligned_highp_int16_t, 2);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>, aligned_highp_int32_t, 4);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>, aligned_highp_int64_t, 8);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>, aligned_highp_i8, 1);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>, aligned_highp_i16, 2);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>, aligned_highp_i32, 4);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>, aligned_highp_i64, 8);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int8, aligned_int8, 1);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int16, aligned_int16, 2);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int32, aligned_int32, 4);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int64, aligned_int64, 8);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>, aligned_int8_t, 1);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>, aligned_int16_t, 2);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>, aligned_int32_t, 4);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>, aligned_int64_t, 8);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>, aligned_i8, 1);</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>, aligned_i16, 2);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>, aligned_i32, 4);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>, aligned_i64, 8);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(ivec1, aligned_ivec1, 4);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>, aligned_ivec2, 8);</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>, aligned_ivec3, 16);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>, aligned_ivec4, 16);</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>, aligned_i8vec1, 1);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>, aligned_i8vec2, 2);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>, aligned_i8vec3, 4);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>, aligned_i8vec4, 4);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>, aligned_i16vec1, 2);</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>, aligned_i16vec2, 4);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>, aligned_i16vec3, 8);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>, aligned_i16vec4, 8);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>, aligned_i32vec1, 4);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>, aligned_i32vec2, 8);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>, aligned_i32vec3, 16);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>, aligned_i32vec4, 16);</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>, aligned_i64vec1, 8);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>, aligned_i64vec2, 16);</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>, aligned_i64vec3, 32);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>, aligned_i64vec4, 32);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">// Unsigned int vector types</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>, aligned_lowp_uint8, 1);</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>, aligned_lowp_uint16, 2);</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>, aligned_lowp_uint32, 4);</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>, aligned_lowp_uint64, 8);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>, aligned_lowp_uint8_t, 1);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>, aligned_lowp_uint16_t, 2);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>, aligned_lowp_uint32_t, 4);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>, aligned_lowp_uint64_t, 8);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>, aligned_lowp_u8, 1);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>, aligned_lowp_u16, 2);</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>, aligned_lowp_u32, 4);</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>, aligned_lowp_u64, 8);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>, aligned_mediump_uint8, 1);</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>, aligned_mediump_uint16, 2);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>, aligned_mediump_uint32, 4);</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>, aligned_mediump_uint64, 8);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>, aligned_mediump_uint8_t, 1);</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>, aligned_mediump_uint16_t, 2);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>, aligned_mediump_uint32_t, 4);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>, aligned_mediump_uint64_t, 8);</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>, aligned_mediump_u8, 1);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>, aligned_mediump_u16, 2);</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>, aligned_mediump_u32, 4);</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>, aligned_mediump_u64, 8);</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>, aligned_highp_uint8, 1);</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>, aligned_highp_uint16, 2);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>, aligned_highp_uint32, 4);</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>, aligned_highp_uint64, 8);</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>, aligned_highp_uint8_t, 1);</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>, aligned_highp_uint16_t, 2);</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>, aligned_highp_uint32_t, 4);</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>, aligned_highp_uint64_t, 8);</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>, aligned_highp_u8, 1);</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>, aligned_highp_u16, 2);</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>, aligned_highp_u32, 4);</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>, aligned_highp_u64, 8);</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint8, aligned_uint8, 1);</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint16, aligned_uint16, 2);</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint32, aligned_uint32, 4);</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint64, aligned_uint64, 8);</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>, aligned_uint8_t, 1);</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>, aligned_uint16_t, 2);</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>, aligned_uint32_t, 4);</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>, aligned_uint64_t, 8);</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>, aligned_u8, 1);</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>, aligned_u16, 2);</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>, aligned_u32, 4);</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>, aligned_u64, 8);</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uvec1, aligned_uvec1, 4);</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; </div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>, aligned_uvec2, 8);</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>, aligned_uvec3, 16);</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>, aligned_uvec4, 16);</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>, aligned_u8vec1, 1);</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>, aligned_u8vec2, 2);</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>, aligned_u8vec3, 4);</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>, aligned_u8vec4, 4);</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>, aligned_u16vec1, 2);</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; </div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>, aligned_u16vec2, 4);</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>, aligned_u16vec3, 8);</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>, aligned_u16vec4, 8);</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>, aligned_u32vec1, 4);</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; </div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>, aligned_u32vec2, 8);</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>, aligned_u32vec3, 16);</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>, aligned_u32vec4, 16);</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>, aligned_u64vec1, 8);</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; </div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>, aligned_u64vec2, 16);</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>, aligned_u64vec3, 32);</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>, aligned_u64vec4, 32);</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// Float vector types</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_float32, 4);</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_float64, 8);</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>, aligned_float32_t, 4);</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>, aligned_float64_t, 8);</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_f32, 4);</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_f64, 8);</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(vec1, aligned_vec1, 4);</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>, aligned_vec2, 8);</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>, aligned_vec3, 16);</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>, aligned_vec4, 16);</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>, aligned_fvec1, 4);</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>, aligned_fvec2, 8);</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>, aligned_fvec3, 16);</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>, aligned_fvec4, 16);</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; </div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>, aligned_f32vec1, 4);</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>, aligned_f32vec2, 8);</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>, aligned_f32vec3, 16);</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>, aligned_f32vec4, 16);</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dvec1, aligned_dvec1, 8);</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>, aligned_dvec2, 16);</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>, aligned_dvec3, 32);</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>, aligned_dvec4, 32);</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>, aligned_f64vec1, 8);</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>, aligned_f64vec2, 16);</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>, aligned_f64vec3, 32);</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>, aligned_f64vec4, 32);</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="comment">// Float matrix types </span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">//typedef detail::tmat1&lt;f32&gt; mat1;</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>, aligned_mat2, 16);</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>, aligned_mat3, 16);</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>, aligned_mat4, 16);</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32&gt; mat1;</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>, aligned_mat2x2, 16);</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>, aligned_mat3x3, 16);</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>, aligned_mat4x4, 16);</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32&gt; fmat1;</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2, 16);</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3, 16);</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4, 16);</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="comment">//typedef f32 fmat1x1;</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2x2, 16);</div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>, aligned_fmat2x3, 16);</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>, aligned_fmat2x4, 16);</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>, aligned_fmat3x2, 16);</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3x3, 16);</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>, aligned_fmat3x4, 16);</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>, aligned_fmat4x2, 16);</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>, aligned_fmat4x3, 16);</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4x4, 16);</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, defaultp&gt; f32mat1;</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2, 16);</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3, 16);</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4, 16);</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="comment">//typedef f32 f32mat1x1;</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2x2, 16);</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>, aligned_f32mat2x3, 16);</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>, aligned_f32mat2x4, 16);</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>, aligned_f32mat3x2, 16);</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3x3, 16);</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>, aligned_f32mat3x4, 16);</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>, aligned_f32mat4x2, 16);</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>, aligned_f32mat4x3, 16);</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4x4, 16);</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f64, defaultp&gt; f64mat1;</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2, 32);</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3, 32);</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4, 32);</div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;</div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="comment">//typedef f64 f64mat1x1;</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;</div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2x2, 32);</div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>, aligned_f64mat2x3, 32);</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>, aligned_f64mat2x4, 32);</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>, aligned_f64mat3x2, 32);</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3x3, 32);</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>, aligned_f64mat3x4, 32);</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>, aligned_f64mat4x2, 32);</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>, aligned_f64mat4x3, 32);</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4x4, 32);</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="comment">// Quaternion types</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(quat, aligned_quat, 16);</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(fquat, aligned_fquat, 16);</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;</div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dquat, aligned_dquat, 32);</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;</div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>, aligned_f32quat, 16);</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>, aligned_f64quat, 32);</div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="preprocessor">#include &quot;type_aligned.inl&quot;</span></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00740">fwd.hpp:740</a></div></div>
-<div class="ttc" id="a00181_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00157">fwd.hpp:157</a></div></div>
-<div class="ttc" id="a00181_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00181.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00133">fwd.hpp:133</a></div></div>
-<div class="ttc" id="a00181_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01082">fwd.hpp:1082</a></div></div>
-<div class="ttc" id="a00163_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00163.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00449">type_vec.hpp:449</a></div></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00163_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00417">type_vec.hpp:417</a></div></div>
-<div class="ttc" id="a00181_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00736">fwd.hpp:736</a></div></div>
-<div class="ttc" id="a00181_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02364">fwd.hpp:2364</a></div></div>
-<div class="ttc" id="a00181_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02388">fwd.hpp:2388</a></div></div>
-<div class="ttc" id="a00181_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00723">fwd.hpp:723</a></div></div>
-<div class="ttc" id="a00238_html_ga95cc03b8b475993fa50e05e38e203303"><div class="ttname"><a href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">glm::GLM_ALIGNED_TYPEDEF</a></div><div class="ttdeci">GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)</div><div class="ttdoc">Double-precision floating-point aligned quaternion. </div></div>
-<div class="ttc" id="a00181_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00816">fwd.hpp:816</a></div></div>
-<div class="ttc" id="a00181_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00269">fwd.hpp:269</a></div></div>
-<div class="ttc" id="a00181_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01165">fwd.hpp:1165</a></div></div>
-<div class="ttc" id="a00181_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00181.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01014">fwd.hpp:1014</a></div></div>
-<div class="ttc" id="a00163_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00476">type_vec.hpp:476</a></div></div>
-<div class="ttc" id="a00181_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00253">fwd.hpp:253</a></div></div>
-<div class="ttc" id="a00181_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00181.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00485">fwd.hpp:485</a></div></div>
-<div class="ttc" id="a00181_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00217">fwd.hpp:217</a></div></div>
-<div class="ttc" id="a00163_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00432">type_mat.hpp:432</a></div></div>
-<div class="ttc" id="a00181_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00129">fwd.hpp:129</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00181_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00766">fwd.hpp:766</a></div></div>
-<div class="ttc" id="a00181_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00314">fwd.hpp:314</a></div></div>
-<div class="ttc" id="a00181_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00784">fwd.hpp:784</a></div></div>
-<div class="ttc" id="a00181_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00757">fwd.hpp:757</a></div></div>
-<div class="ttc" id="a00181_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00221">fwd.hpp:221</a></div></div>
-<div class="ttc" id="a00181_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00719">fwd.hpp:719</a></div></div>
-<div class="ttc" id="a00181_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00265">fwd.hpp:265</a></div></div>
-<div class="ttc" id="a00181_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00774">fwd.hpp:774</a></div></div>
-<div class="ttc" id="a00181_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00261">fwd.hpp:261</a></div></div>
-<div class="ttc" id="a00181_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00257">fwd.hpp:257</a></div></div>
-<div class="ttc" id="a00181_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01169">fwd.hpp:1169</a></div></div>
-<div class="ttc" id="a00181_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00824">fwd.hpp:824</a></div></div>
-<div class="ttc" id="a00181_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02360">fwd.hpp:2360</a></div></div>
-<div class="ttc" id="a00181_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00177">fwd.hpp:177</a></div></div>
-<div class="ttc" id="a00181_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00874">fwd.hpp:874</a></div></div>
-<div class="ttc" id="a00163_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00481">type_vec.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00812">fwd.hpp:812</a></div></div>
-<div class="ttc" id="a00181_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00552">fwd.hpp:552</a></div></div>
-<div class="ttc" id="a00181_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00866">fwd.hpp:866</a></div></div>
-<div class="ttc" id="a00181_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01090">fwd.hpp:1090</a></div></div>
-<div class="ttc" id="a00163_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00427">type_vec.hpp:427</a></div></div>
-<div class="ttc" id="a00163_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00163.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00437">type_mat.hpp:437</a></div></div>
-<div class="ttc" id="a00163_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00385">type_mat.hpp:385</a></div></div>
-<div class="ttc" id="a00181_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00477">fwd.hpp:477</a></div></div>
-<div class="ttc" id="a00181_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00181.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00564">fwd.hpp:564</a></div></div>
-<div class="ttc" id="a00181_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00141">fwd.hpp:141</a></div></div>
-<div class="ttc" id="a00181_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00181.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02450">fwd.hpp:2450</a></div></div>
-<div class="ttc" id="a00181_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02454">fwd.hpp:2454</a></div></div>
-<div class="ttc" id="a00181_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00181.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02544">fwd.hpp:2544</a></div></div>
-<div class="ttc" id="a00181_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00169">fwd.hpp:169</a></div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00181_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00181.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00796">fwd.hpp:796</a></div></div>
-<div class="ttc" id="a00181_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02430">fwd.hpp:2430</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00163_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00471">type_vec.hpp:471</a></div></div>
-<div class="ttc" id="a00181_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02532">fwd.hpp:2532</a></div></div>
-<div class="ttc" id="a00181_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02368">fwd.hpp:2368</a></div></div>
-<div class="ttc" id="a00181_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00209">fwd.hpp:209</a></div></div>
-<div class="ttc" id="a00181_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02474">fwd.hpp:2474</a></div></div>
-<div class="ttc" id="a00181_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02548">fwd.hpp:2548</a></div></div>
-<div class="ttc" id="a00181_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01530">fwd.hpp:1530</a></div></div>
-<div class="ttc" id="a00181_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01002">fwd.hpp:1002</a></div></div>
-<div class="ttc" id="a00181_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02396">fwd.hpp:2396</a></div></div>
-<div class="ttc" id="a00181_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01006">fwd.hpp:1006</a></div></div>
-<div class="ttc" id="a00181_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00181.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01320">fwd.hpp:1320</a></div></div>
-<div class="ttc" id="a00181_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00834">fwd.hpp:834</a></div></div>
-<div class="ttc" id="a00181_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00820">fwd.hpp:820</a></div></div>
-<div class="ttc" id="a00181_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02564">fwd.hpp:2564</a></div></div>
-<div class="ttc" id="a00181_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00792">fwd.hpp:792</a></div></div>
-<div class="ttc" id="a00181_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02466">fwd.hpp:2466</a></div></div>
-<div class="ttc" id="a00181_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00229">fwd.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00233">fwd.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00193">fwd.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02490">fwd.hpp:2490</a></div></div>
-<div class="ttc" id="a00163_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00425">type_mat.hpp:425</a></div></div>
-<div class="ttc" id="a00181_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00405">fwd.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00225">fwd.hpp:225</a></div></div>
-<div class="ttc" id="a00181_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02556">fwd.hpp:2556</a></div></div>
-<div class="ttc" id="a00181_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01094">fwd.hpp:1094</a></div></div>
-<div class="ttc" id="a00181_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01324">fwd.hpp:1324</a></div></div>
-<div class="ttc" id="a00181_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00862">fwd.hpp:862</a></div></div>
-<div class="ttc" id="a00181_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00161">fwd.hpp:161</a></div></div>
-<div class="ttc" id="a00181_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02426">fwd.hpp:2426</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00181_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00770">fwd.hpp:770</a></div></div>
-<div class="ttc" id="a00181_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02380">fwd.hpp:2380</a></div></div>
-<div class="ttc" id="a00181_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02356">fwd.hpp:2356</a></div></div>
-<div class="ttc" id="a00163_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00405">type_mat.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00165">fwd.hpp:165</a></div></div>
-<div class="ttc" id="a00181_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00181.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
-<div class="ttc" id="a00181_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00556">fwd.hpp:556</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00181_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00788">fwd.hpp:788</a></div></div>
-<div class="ttc" id="a00163_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00454">type_vec.hpp:454</a></div></div>
-<div class="ttc" id="a00181_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02596">fwd.hpp:2596</a></div></div>
-<div class="ttc" id="a00181_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00241">fwd.hpp:241</a></div></div>
-<div class="ttc" id="a00181_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00850">fwd.hpp:850</a></div></div>
-<div class="ttc" id="a00181_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00393">fwd.hpp:393</a></div></div>
-<div class="ttc" id="a00181_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00473">fwd.hpp:473</a></div></div>
-<div class="ttc" id="a00181_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00205">fwd.hpp:205</a></div></div>
-<div class="ttc" id="a00181_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02372">fwd.hpp:2372</a></div></div>
-<div class="ttc" id="a00181_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="a00181_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00181.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00838">fwd.hpp:838</a></div></div>
-<div class="ttc" id="a00181_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00181.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00744">fwd.hpp:744</a></div></div>
-<div class="ttc" id="a00181_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02376">fwd.hpp:2376</a></div></div>
-<div class="ttc" id="a00181_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01526">fwd.hpp:1526</a></div></div>
-<div class="ttc" id="a00181_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00401">fwd.hpp:401</a></div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00181_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02384">fwd.hpp:2384</a></div></div>
-<div class="ttc" id="a00181_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00213">fwd.hpp:213</a></div></div>
-<div class="ttc" id="a00181_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00804">fwd.hpp:804</a></div></div>
-<div class="ttc" id="a00181_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01173">fwd.hpp:1173</a></div></div>
-<div class="ttc" id="a00181_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02568">fwd.hpp:2568</a></div></div>
-<div class="ttc" id="a00181_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00753">fwd.hpp:753</a></div></div>
-<div class="ttc" id="a00181_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00181">fwd.hpp:181</a></div></div>
-<div class="ttc" id="a00181_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02392">fwd.hpp:2392</a></div></div>
-<div class="ttc" id="a00181_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02400">fwd.hpp:2400</a></div></div>
-<div class="ttc" id="a00181_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01010">fwd.hpp:1010</a></div></div>
-<div class="ttc" id="a00181_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00181.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02540">fwd.hpp:2540</a></div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00181_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00181.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01332">fwd.hpp:1332</a></div></div>
-<div class="ttc" id="a00181_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00197">fwd.hpp:197</a></div></div>
-<div class="ttc" id="a00181_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00149">fwd.hpp:149</a></div></div>
-<div class="ttc" id="a00163_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00422">type_vec.hpp:422</a></div></div>
-<div class="ttc" id="a00181_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00181.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02576">fwd.hpp:2576</a></div></div>
-<div class="ttc" id="a00181_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00808">fwd.hpp:808</a></div></div>
-<div class="ttc" id="a00181_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00201">fwd.hpp:201</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02560">fwd.hpp:2560</a></div></div>
-<div class="ttc" id="a00181_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02442">fwd.hpp:2442</a></div></div>
-<div class="ttc" id="a00181_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02458">fwd.hpp:2458</a></div></div>
-<div class="ttc" id="a00181_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00854">fwd.hpp:854</a></div></div>
-<div class="ttc" id="a00181_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00397">fwd.hpp:397</a></div></div>
-<div class="ttc" id="a00181_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00245">fwd.hpp:245</a></div></div>
-<div class="ttc" id="a00181_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00137">fwd.hpp:137</a></div></div>
-<div class="ttc" id="a00181_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00181.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00878">fwd.hpp:878</a></div></div>
-<div class="ttc" id="a00181_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00181.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02572">fwd.hpp:2572</a></div></div>
-<div class="ttc" id="a00181_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00185">fwd.hpp:185</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00163_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00444">type_vec.hpp:444</a></div></div>
-<div class="ttc" id="a00181_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00778">fwd.hpp:778</a></div></div>
-<div class="ttc" id="a00181_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00828">fwd.hpp:828</a></div></div>
-<div class="ttc" id="a00181_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00761">fwd.hpp:761</a></div></div>
-<div class="ttc" id="a00181_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00858">fwd.hpp:858</a></div></div>
-<div class="ttc" id="a00181_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00181.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00481">fwd.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02404">fwd.hpp:2404</a></div></div>
-<div class="ttc" id="a00181_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00249">fwd.hpp:249</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02434">fwd.hpp:2434</a></div></div>
-<div class="ttc" id="a00181_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00181.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02552">fwd.hpp:2552</a></div></div>
-<div class="ttc" id="a00181_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02580">fwd.hpp:2580</a></div></div>
-<div class="ttc" id="a00181_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00842">fwd.hpp:842</a></div></div>
-<div class="ttc" id="a00181_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00870">fwd.hpp:870</a></div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
-<div class="ttc" id="a00181_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02446">fwd.hpp:2446</a></div></div>
-<div class="ttc" id="a00181_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00181.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00800">fwd.hpp:800</a></div></div>
-<div class="ttc" id="a00181_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00322">fwd.hpp:322</a></div></div>
-<div class="ttc" id="a00181_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02438">fwd.hpp:2438</a></div></div>
-<div class="ttc" id="a00181_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00181.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00560">fwd.hpp:560</a></div></div>
-<div class="ttc" id="a00181_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00181.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01086">fwd.hpp:1086</a></div></div>
-<div class="ttc" id="a00181_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00181.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
-<div class="ttc" id="a00181_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
-<div class="ttc" id="a00181_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00318">fwd.hpp:318</a></div></div>
-<div class="ttc" id="a00181_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00181.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02462">fwd.hpp:2462</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00181_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00237">fwd.hpp:237</a></div></div>
-<div class="ttc" id="a00181_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01161">fwd.hpp:1161</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-<div class="ttc" id="a00181_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00181.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02470">fwd.hpp:2470</a></div></div>
-<div class="ttc" id="a00181_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00189">fwd.hpp:189</a></div></div>
-<div class="ttc" id="a00181_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00153">fwd.hpp:153</a></div></div>
-<div class="ttc" id="a00181_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02536">fwd.hpp:2536</a></div></div>
-<div class="ttc" id="a00181_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00846">fwd.hpp:846</a></div></div>
-<div class="ttc" id="a00181_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00181.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00326">fwd.hpp:326</a></div></div>
-<div class="ttc" id="a00181_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01328">fwd.hpp:1328</a></div></div>
-<div class="ttc" id="a00181_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00173">fwd.hpp:173</a></div></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator/(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator/(T scalar, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00116.html b/3rdparty/glm/doc/api/a00116.html
index a2b0345899e..b6d41bc2cf2 100644
--- a/3rdparty/glm/doc/api/a00116.html
+++ b/3rdparty/glm/doc/api/a00116.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_float.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat3x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,45 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_float.hpp File Reference</div> </div>
+<div class="title">type_mat3x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00116_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
-<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
-<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
-<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
-<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
-<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00116_source.html">type_mat3x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00116_source.html b/3rdparty/glm/doc/api/a00116_source.html
index 1391f9f4b85..452857a842c 100644
--- a/3rdparty/glm/doc/api/a00116_source.html
+++ b/3rdparty/glm/doc/api/a00116_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_float.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat3x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,69 +64,206 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_float.hpp</div> </div>
+<div class="title">type_mat3x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00116.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>tmat3x2</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; col_type value[3];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat3x2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL tmat3x2(tmat3x2&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tmat3x2(tmat3x2&lt;T, Q&gt; const &amp; m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> lowp_float_t;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> mediump_float_t;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> highp_float_t;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x2(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL explicit tmat3x2(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T x0, T y0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T x1, T y1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; T x2, T y2);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; col_type const &amp; v2);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1"> 56</a></span>&#160; <span class="keyword">typedef</span> lowp_float_t <a class="code" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98"> 63</a></span>&#160; <span class="keyword">typedef</span> mediump_float_t <a class="code" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; template&lt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; typename X1, typename Y1,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; typename X2, typename Y2,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; typename X3, typename Y3&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; X1 x1, Y1 y1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; X2 x2, Y2 y2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; X3 x3, Y3 y3);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; template &lt;typename V1, typename V2, typename V3&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec2&lt;V1, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec2&lt;V2, P&gt; const &amp; v2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec2&lt;V3, P&gt; const &amp; v3);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="a00164.html#ga6e95694987ba35af6f736638be39626a"> 70</a></span>&#160; <span class="keyword">typedef</span> highp_float_t <a class="code" href="a00164.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> mediump_float float_t;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> highp_float float_t;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> mediump_float float_t;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_FLOAT) &amp;&amp; defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> lowp_float float_t;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for floating-point types&quot;</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1"> 84</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00181.html#gab5596d48586414c91ccb270962dc14d3"> 85</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x2&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 3;}</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// check type sizes</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a>) == 4, <span class="stringliteral">&quot;float32 size isn&#39;t 4 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a>) == 8, <span class="stringliteral">&quot;float64 size isn&#39;t 8 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga358d69e11b1c0f6c7c469e0d39ab7fd1"><div class="ttname"><a href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::lowp_float</a></div><div class="ttdeci">lowp_float_t lowp_float</div><div class="ttdoc">Low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00056">type_float.hpp:56</a></div></div>
-<div class="ttc" id="a00181_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00084">type_float.hpp:84</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga280c68f537f4b1e03a00b23e62573b98"><div class="ttname"><a href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">glm::mediump_float</a></div><div class="ttdeci">mediump_float_t mediump_float</div><div class="ttdoc">Medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00063">type_float.hpp:63</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00181.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00085">type_float.hpp:85</a></div></div>
-<div class="ttc" id="a00164_html_ga6e95694987ba35af6f736638be39626a"><div class="ttname"><a href="a00164.html#ga6e95694987ba35af6f736638be39626a">glm::highp_float</a></div><div class="ttdeci">highp_float_t highp_float</div><div class="ttdoc">High precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00070">type_float.hpp:70</a></div></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator=(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator=(tmat3x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator+=(tmat3x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator-=(tmat3x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator+(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator-(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator+(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator+(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator-(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator-(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(T scalar, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::col_type operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator/(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator/(T scalar, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00117.html b/3rdparty/glm/doc/api/a00117.html
index 71e0850e490..a6e43b7bfde 100644
--- a/3rdparty/glm/doc/api/a00117.html
+++ b/3rdparty/glm/doc/api/a00117.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_gentype.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat3x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_gentype.hpp File Reference</div> </div>
+<div class="title">type_mat3x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00117_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00117_source.html">type_gentype.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00117_source.html">type_mat3x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00117_source.html b/3rdparty/glm/doc/api/a00117_source.html
index ce00b87a80b..abcb2e7fa18 100644
--- a/3rdparty/glm/doc/api/a00117_source.html
+++ b/3rdparty/glm/doc/api/a00117_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_gentype.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat3x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,204 +64,222 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_gentype.hpp</div> </div>
+<div class="title">type_mat3x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00117.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">enum</span> profile</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; nice,</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; fast,</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; simd</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; };</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typedef</span> std::size_t sizeType;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; &lt;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typename</span> VALTYPE, </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>TYPE</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; &gt;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">struct </span>genType</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">enum</span> ctor{null};</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> VALTYPE value_type;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> VALTYPE &amp; value_reference;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typedef</span> VALTYPE * value_pointer;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> VALTYPE <span class="keyword">const</span> * value_const_pointer;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typedef</span> TYPE&lt;bool&gt; bool_type;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">struct </span>tmat3x3</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; col_type value[3];</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL tmat3x3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat3x3(tmat3x3&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL tmat3x3(tmat3x3&lt;T, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x3(ctor);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL explicit tmat3x3(T scalar);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T x0, T y0, T z0,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T x1, T y1, T z1,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T x2, T y2, T z2);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; col_type const &amp; v2);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; template&lt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; typename X1, typename Y1, typename Z1,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; typename X2, typename Y2, typename Z2,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; typename X3, typename Y3, typename Z3&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; X1 x1, Y1 y1, Z1 z1,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; X2 x2, Y2 y2, Z2 z2,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; X3 x3, Y3 y3, Z3 z3);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; template &lt;typename V1, typename V2, typename V3&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; tvec3&lt;V1, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec3&lt;V2, P&gt; const &amp; v2,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec3&lt;V3, P&gt; const &amp; v3);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">typedef</span> sizeType size_type;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> is_vector();</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> is_matrix();</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; type;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; * pointer;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> * const_pointer;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> * <span class="keyword">const</span> const_pointer_const;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; * <span class="keyword">const</span> pointer_const;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; &amp; reference;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> &amp; const_reference;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> TYPE&lt;VALTYPE&gt; <span class="keyword">const</span> &amp; param_type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Address (Implementation details)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; value_const_pointer value_address()<span class="keyword"> const</span>{<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; value_pointer value_address(){<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">//protected:</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// enum kind</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// {</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// GEN_TYPE,</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// VEC_TYPE,</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// MAT_TYPE</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// };</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// typedef typename TYPE::kind kind;</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; };</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; &lt;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typename</span> VALTYPE, </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>TYPE</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; &gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">bool</span> genType&lt;VALTYPE, TYPE&gt;::is_vector()</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> template &lt;typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice&gt;</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> class base</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> {</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> public:</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> // Traits</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> typedef sizeType size_type;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> typedef valTypeT value_type;</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> typedef base&lt;value_type, colT, rowT&gt; class_type;</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> typedef base&lt;bool, colT, rowT&gt; bool_type;</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> typedef base&lt;value_type, rowT, 1&gt; col_type;</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> typedef base&lt;value_type, colT, 1&gt; row_type;</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> typedef base&lt;value_type, rowT, colT&gt; transpose_type;</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> static size_type col_size();</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> static size_type row_size();</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> static size_type value_size();</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> static bool is_scalar();</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> static bool is_vector();</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> static bool is_matrix();</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> private:</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> // Data </span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> col_type value[colT]; </span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> public:</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> // Constructors</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> base();</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> base(class_type const &amp; m);</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> explicit base(T const &amp; x);</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> explicit base(value_type const * const x);</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> explicit base(col_type const * const x);</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> // Conversions</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> template &lt;typename vU, uint cU, uint rU, profile pU&gt;</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> explicit base(base&lt;vU, cU, rU, pU&gt; const &amp; m);</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> // Accesses</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> col_type&amp; operator[](size_type i);</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> col_type const &amp; operator[](size_type i) const;</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> // Unary updatable operators</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> class_type&amp; operator= (class_type const &amp; x);</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> class_type&amp; operator+= (T const &amp; x);</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> class_type&amp; operator+= (class_type const &amp; x);</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> class_type&amp; operator-= (T const &amp; x);</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> class_type&amp; operator-= (class_type const &amp; x);</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> class_type&amp; operator*= (T const &amp; x);</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> class_type&amp; operator*= (class_type const &amp; x);</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> class_type&amp; operator/= (T const &amp; x);</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> class_type&amp; operator/= (class_type const &amp; x);</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> class_type&amp; operator++ ();</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> class_type&amp; operator-- ();</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> };</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">//template &lt;typename T&gt;</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">//struct traits</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">//{</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// static const bool is_signed = false;</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// static const bool is_float = false;</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// static const bool is_vector = false;</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// static const bool is_matrix = false;</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// static const bool is_genType = false;</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// static const bool is_genIType = false;</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// static const bool is_genUType = false;</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//};</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">//template &lt;&gt;</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">//struct traits&lt;half&gt;</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">//{</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// static const bool is_float = true;</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// static const bool is_genType = true;</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">//};</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">//template &lt;&gt;</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">//struct traits&lt;float&gt;</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">//{</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// static const bool is_float = true;</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// static const bool is_genType = true;</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">//};</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">//template &lt;&gt;</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">//struct traits&lt;double&gt;</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">//{</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// static const bool is_float = true;</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// static const bool is_genType = true;</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">//};</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">//template &lt;typename genType&gt;</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">//struct desc</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">//{</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// typedef genType type;</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// typedef genType * pointer;</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// typedef genType const* const_pointer;</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// typedef genType const *const const_pointer_const;</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// typedef genType *const pointer_const;</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// typedef genType &amp; reference;</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// typedef genType const&amp; const_reference;</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// typedef genType const&amp; param_type;</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// typedef typename genType::value_type value_type;</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// typedef typename genType::size_type size_type;</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// static const typename size_type value_size;</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">//};</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">//template &lt;typename genType&gt;</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">//const typename desc&lt;genType&gt;::size_type desc&lt;genType&gt;::value_size = genType::value_size();</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">//#include &quot;type_gentype.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x3&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 3;}</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator=(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator+=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator-=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator*=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator/=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; };</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(T scalar, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(T scalar, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(T scalar, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator/(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator/(T scalar, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type operator/(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type operator/(<span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator/(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00118.html b/3rdparty/glm/doc/api/a00118.html
index b8d588593d5..18e3c4d1e4f 100644
--- a/3rdparty/glm/doc/api/a00118.html
+++ b/3rdparty/glm/doc/api/a00118.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_half.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat3x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_half.hpp File Reference</div> </div>
+<div class="title">type_mat3x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00118_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-17 / 2011-09-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00118_source.html">type_half.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00118_source.html">type_mat3x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00118_source.html b/3rdparty/glm/doc/api/a00118_source.html
index 6d9f673a231..63a3e36c939 100644
--- a/3rdparty/glm/doc/api/a00118_source.html
+++ b/3rdparty/glm/doc/api/a00118_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_half.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat3x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,35 +64,205 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_half.hpp</div> </div>
+<div class="title">type_mat3x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00118.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>tmat3x4</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; col_type value[3];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat3x4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL tmat3x4(tmat3x4&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tmat3x4(tmat3x4&lt;T, Q&gt; const &amp; m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span> &amp; value);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x4(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL explicit tmat3x4(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T x0, T y0, T z0, T w0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T x1, T y1, T z1, T w1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; T x2, T y2, T z2, T w2);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; col_type const &amp; v2);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;type_half.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; template&lt;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; typename X2, typename Y2, typename Z2, typename W2,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; typename X3, typename Y3, typename Z3, typename W3&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; X2 x2, Y2 y2, Z2 z2, W2 w2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; X3 x3, Y3 y3, Z3 z3, W3 w3);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; template &lt;typename V1, typename V2, typename V3&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec4&lt;V1, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; tvec4&lt;V2, P&gt; const &amp; v2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; tvec4&lt;V3, P&gt; const &amp; v3);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x4&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 3;}</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator=(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator=(tmat3x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator+=(tmat3x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator-=(tmat3x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator+(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator-(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator+(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator+(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator-(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator-(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(T scalar, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::col_type operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator/(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator/(T scalar, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00119.html b/3rdparty/glm/doc/api/a00119.html
index 16c37c7d559..9762221c58d 100644
--- a/3rdparty/glm/doc/api/a00119.html
+++ b/3rdparty/glm/doc/api/a00119.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_int.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat4x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,65 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_int.hpp File Reference</div> </div>
+<div class="title">type_mat4x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00119_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
-<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
-<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
-<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
-<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
-<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
-<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
-<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
-<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
-<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
-<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
-<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
-<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
-<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
-<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
-<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2013-03-30 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00119_source.html">type_mat4x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00119_source.html b/3rdparty/glm/doc/api/a00119_source.html
index 559bc9f4c61..aa329f9216f 100644
--- a/3rdparty/glm/doc/api/a00119_source.html
+++ b/3rdparty/glm/doc/api/a00119_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_int.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat4x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,299 +64,210 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_int.hpp</div> </div>
+<div class="title">type_mat4x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00119.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">type_vec2.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>tmat4x2</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; col_type value[4];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat4x2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL tmat4x2(tmat4x2&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tmat4x2(tmat4x2&lt;T, Q&gt; const &amp; m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># include &lt;type_traits&gt;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># include &lt;cstdint&gt;</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"># if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a> <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a> <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a> <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a> <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a> <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a> <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a> <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># if(defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) // C99 detected, 64 bit types available</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a> sint64;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64 sint64;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># else//unknown compiler</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> sint64 <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">typedef</span> uint64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif//</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> lowp_int_t;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> mediump_int_t;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> highp_int_t;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lowp_uint_t;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mediump_uint_t;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> highp_uint_t;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"># if GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">using</span> std::make_signed;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">using</span> std::make_unsigned;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor"># else//GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>make_signed</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {};</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">struct </span>make_signed&lt;char&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">struct </span>make_signed&lt;short&gt;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">struct </span>make_signed&lt;int&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; };</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">struct </span>make_signed&lt;long&gt;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">struct </span>make_signed&lt;long long&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; };</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x2(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL explicit tmat4x2(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T x0, T y0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T x1, T y1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; T x2, T y2,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; T x3, T y3);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const &amp; v2,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const &amp; v3);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; template &lt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; typename X1, typename Y1,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; typename X2, typename Y2,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; typename X3, typename Y3,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; typename X4, typename Y4&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; X1 x1, Y1 y1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; X2 x2, Y2 y2,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; X3 x3, Y3 y3,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; X4 x4, Y4 y4);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; template &lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec2&lt;V1, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tvec2&lt;V2, P&gt; const &amp; v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec2&lt;V3, P&gt; const &amp; v3,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec2&lt;V4, P&gt; const &amp; v4);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x2&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator=(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator=(tmat4x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator+=(tmat4x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator-=(tmat4x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator++ ();</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator-- ();</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; };</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator+(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator-(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator+(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned char&gt;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator+(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator-(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned short&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; };</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator-(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned int&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; };</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(T scalar, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::col_type operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned long&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; };</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">struct </span>make_signed&lt;unsigned long long&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; };</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">struct </span>make_unsigned</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {};</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;char&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; };</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;short&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;int&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; };</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;long&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; };</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;long long&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; };</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned char&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; };</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned short&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; };</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned int&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; };</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned long&gt;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; };</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">struct </span>make_unsigned&lt;unsigned long long&gt;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; };</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"># endif//GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0"> 226</a></span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="a00181.html#ga302041c186d0d028bea31b711fe16759"> 227</a></span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f"> 228</a></span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e"> 229</a></span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865"> 231</a></span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d"> 232</a></span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d"> 233</a></span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00181.html#gab630f76c26b50298187f7889104d4b9c"> 234</a></span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e"> 244</a></span>&#160; <span class="keyword">typedef</span> detail::lowp_int_t <a class="code" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a>;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00164.html#ga212ef8f883878cb7430228a279a7d866"> 251</a></span>&#160; <span class="keyword">typedef</span> detail::mediump_int_t <a class="code" href="a00164.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a>;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc"> 258</a></span>&#160; <span class="keyword">typedef</span> detail::highp_int_t <a class="code" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a>;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97"> 265</a></span>&#160; <span class="keyword">typedef</span> detail::lowp_uint_t <a class="code" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a>;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e"> 272</a></span>&#160; <span class="keyword">typedef</span> detail::mediump_uint_t <a class="code" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a>;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf"> 279</a></span>&#160; <span class="keyword">typedef</span> detail::highp_uint_t <a class="code" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a>;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">typedef</span> mediump_int int_t;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">typedef</span> highp_int int_t;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; !defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">typedef</span> mediump_int int_t;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_INT) &amp;&amp; defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typedef</span> lowp_int int_t;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for signed integer types&quot;</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">typedef</span> mediump_uint uint_t;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">typedef</span> highp_uint uint_t;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; !defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">typedef</span> mediump_uint uint_t;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) &amp;&amp; !defined(GLM_PRECISION_MEDIUMP_UINT) &amp;&amp; defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">typedef</span> lowp_uint uint_t;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># error &quot;GLM error: multiple default precision requested for unsigned integer types&quot;</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14"> 308</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// check type sizes</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a>) == 1, <span class="stringliteral">&quot;int8 size isn&#39;t 1 byte on this platform&quot;</span>);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a>) == 2, <span class="stringliteral">&quot;int16 size isn&#39;t 2 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a>) == 4, <span class="stringliteral">&quot;int32 size isn&#39;t 4 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a>) == 8, <span class="stringliteral">&quot;int64 size isn&#39;t 8 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a>) == 1, <span class="stringliteral">&quot;uint8 size isn&#39;t 1 byte on this platform&quot;</span>);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a>) == 2, <span class="stringliteral">&quot;uint16 size isn&#39;t 2 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a>) == 4, <span class="stringliteral">&quot;uint32 size isn&#39;t 4 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a>) == 8, <span class="stringliteral">&quot;uint64 size isn&#39;t 8 bytes on this platform&quot;</span>);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00228">type_int.hpp:228</a></div></div>
-<div class="ttc" id="a00181_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00231">type_int.hpp:231</a></div></div>
-<div class="ttc" id="a00181_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00226">type_int.hpp:226</a></div></div>
-<div class="ttc" id="a00181_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00181.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00227">type_int.hpp:227</a></div></div>
-<div class="ttc" id="a00181_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00232">type_int.hpp:232</a></div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00164_html_ga73e8a694d7fc69143cf25161d18d1dcf"><div class="ttname"><a href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::highp_uint</a></div><div class="ttdeci">detail::highp_uint_t highp_uint</div><div class="ttdoc">High precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00279">type_int.hpp:279</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00164_html_gaaabe7eb044941ebf308b53a447d692dc"><div class="ttname"><a href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">glm::highp_int</a></div><div class="ttdeci">detail::highp_int_t highp_int</div><div class="ttdoc">High precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00258">type_int.hpp:258</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga212ef8f883878cb7430228a279a7d866"><div class="ttname"><a href="a00164.html#ga212ef8f883878cb7430228a279a7d866">glm::mediump_int</a></div><div class="ttdeci">detail::mediump_int_t mediump_int</div><div class="ttdoc">Medium precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00251">type_int.hpp:251</a></div></div>
-<div class="ttc" id="a00164_html_ga25ebc60727fc8b4a1167665f9ecdca97"><div class="ttname"><a href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::lowp_uint</a></div><div class="ttdeci">detail::lowp_uint_t lowp_uint</div><div class="ttdoc">Low precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00265">type_int.hpp:265</a></div></div>
-<div class="ttc" id="a00164_html_gad0fa1e32e8b3552ed63556eca51c620e"><div class="ttname"><a href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::lowp_int</a></div><div class="ttdeci">detail::lowp_int_t lowp_int</div><div class="ttdoc">Low precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00244">type_int.hpp:244</a></div></div>
-<div class="ttc" id="a00164_html_ga0b7e01c52b9e5bf3369761b79b5f4f8e"><div class="ttname"><a href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::mediump_uint</a></div><div class="ttdeci">detail::mediump_uint_t mediump_uint</div><div class="ttdoc">Medium precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00272">type_int.hpp:272</a></div></div>
-<div class="ttc" id="a00181_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00233">type_int.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00181_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00181.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00234">type_int.hpp:234</a></div></div>
-<div class="ttc" id="a00181_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00229">type_int.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator/(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T scalar);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator/(T scalar, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00120.html b/3rdparty/glm/doc/api/a00120.html
index 667f81eb8c3..8369e904cd2 100644
--- a/3rdparty/glm/doc/api/a00120.html
+++ b/3rdparty/glm/doc/api/a00120.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat4x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,227 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_mat.hpp File Reference</div> </div>
+<div class="title">type_mat4x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00120_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
-<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
-<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
-<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
-<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
-<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
-<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
-<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
-<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
-<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
-<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
-<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
-<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
-<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
-<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
-<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
-<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
-<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
-<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
-<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
-<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
-<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
-<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
-<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
-<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
-<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
-<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
-<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
-<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
-<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
-<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
-<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
-<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
-<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
-<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
-<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
-<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
-<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
-<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
-<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
-<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
-<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
-<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
-<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
-<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
-<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
-<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
-<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
-<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
-<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
-<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
-<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
-<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
-<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
-<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
-<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
-<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
-<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
-<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
-<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
-<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
-<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
-<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
-<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
-<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
-<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
-<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
-<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
-<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
-<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
-<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
-<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
-<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
-<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
-<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
-<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
-<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
-<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
-<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
-<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
-<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
-<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
-<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
-<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
-<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
-<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
-<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
-<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
-<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
-<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
-<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
-<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
-<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
-<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
-<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
-<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
-<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-01-26 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00120_source.html">type_mat4x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00120_source.html b/3rdparty/glm/doc/api/a00120_source.html
index 995f26796f5..3542057f224 100644
--- a/3rdparty/glm/doc/api/a00120_source.html
+++ b/3rdparty/glm/doc/api/a00120_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat4x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,421 +64,210 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat.hpp</div> </div>
+<div class="title">type_mat4x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00120.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">type_vec3.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>tmat4x3</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; col_type value[4];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat4x3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_FUNC_DECL tmat4x3(tmat4x3&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL tmat4x3(tmat4x3&lt;T, Q&gt; const &amp; m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">class</span>, precision&gt; <span class="keyword">class </span>colType, <span class="keyword">template</span> &lt;<span class="keyword">class</span>, precision&gt; <span class="keyword">class </span>rowType&gt;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">struct </span>outerProduct_trait{};</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec2;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec3;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec4;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat2x2;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat2x3;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat2x4;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat3x2;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat3x3;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat3x4;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat4x2;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat4x3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tmat4x4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85"> 65</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47"> 72</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0"> 79</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981"> 86</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, lowp&gt; <a class="code" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74"> 93</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00164.html#gae6a747cfc33928652abcb1347712b231"> 100</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;float, highp&gt; <a class="code" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d"> 112</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, lowp&gt; <a class="code" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09"> 119</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b"> 126</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;float, highp&gt; <a class="code" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00164.html#gad64a0179b75508142a72917854034b9b"> 138</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, lowp&gt; <a class="code" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe"> 145</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, mediump&gt; <a class="code" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493"> 152</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;float, highp&gt; <a class="code" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924"> 164</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, lowp&gt; <a class="code" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9"> 171</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
-<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a"> 178</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;float, highp&gt; <a class="code" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
-<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783"> 190</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b"> 197</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
-<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd"> 204</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
-<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00164.html#gab7ca36023fa56d8006341a192ee09260"> 211</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec"> 218</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd"> 225</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, highp&gt; <a class="code" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e"> 237</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, lowp&gt; <a class="code" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24"> 244</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, mediump&gt; <a class="code" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
-<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00164.html#ga117d8a040e738396a3d60368605623d2"> 251</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;float, highp&gt; <a class="code" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
-<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93"> 263</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, lowp&gt; <a class="code" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
-<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d"> 270</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, mediump&gt; <a class="code" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
-<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a00164.html#gaeea75c96b308be4114e0badf49f58075"> 277</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;float, highp&gt; <a class="code" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f"> 289</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, lowp&gt; <a class="code" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
-<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb"> 296</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
-<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f"> 303</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;float, highp&gt; <a class="code" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
-<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0"> 316</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
-<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a"> 323</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
-<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0"> 330</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
-<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa"> 337</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, lowp&gt; <a class="code" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
-<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="a00164.html#ga535614d97234065ab44b2513667c8563"> 344</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, mediump&gt; <a class="code" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
-<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead"> 351</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;float, highp&gt; <a class="code" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; </div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// Float definition</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">typedef</span> lowp_mat2x2 <a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">typedef</span> lowp_mat2x3 <a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">typedef</span> lowp_mat2x4 <a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">typedef</span> lowp_mat3x2 <a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">typedef</span> lowp_mat3x3 <a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">typedef</span> lowp_mat3x4 <a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">typedef</span> lowp_mat4x2 <a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">typedef</span> lowp_mat4x3 <a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">typedef</span> lowp_mat4x4 <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">typedef</span> mediump_mat2x2 <a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">typedef</span> mediump_mat2x3 <a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">typedef</span> mediump_mat2x4 <a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">typedef</span> mediump_mat3x2 <a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">typedef</span> mediump_mat3x3 <a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">typedef</span> mediump_mat3x4 <a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">typedef</span> mediump_mat4x2 <a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">typedef</span> mediump_mat4x3 <a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">typedef</span> mediump_mat4x4 <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor">#else </span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">typedef</span> highp_mat2x2 <a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="a00163.html#gafb063d734266e92915d87f8943560471"> 390</a></span>&#160; <span class="keyword">typedef</span> highp_mat2x3 <a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac"> 395</a></span>&#160; <span class="keyword">typedef</span> highp_mat2x4 <a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4"> 400</a></span>&#160; <span class="keyword">typedef</span> highp_mat3x2 <a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; </div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1"> 405</a></span>&#160; <span class="keyword">typedef</span> highp_mat3x3 <a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div>
-<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf"> 410</a></span>&#160; <span class="keyword">typedef</span> highp_mat3x4 <a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div>
-<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f"> 415</a></span>&#160; <span class="keyword">typedef</span> highp_mat4x2 <a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
-<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd"> 420</a></span>&#160; <span class="keyword">typedef</span> highp_mat4x3 <a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81"> 425</a></span>&#160; <span class="keyword">typedef</span> highp_mat4x4 <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
-<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450"> 432</a></span>&#160; <span class="keyword">typedef</span> mat2x2 <a class="code" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
-<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="a00163.html#ga6dd3ec98a548755676267e59142911f8"> 437</a></span>&#160; <span class="keyword">typedef</span> mat3x3 <a class="code" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; </div>
-<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="a00163.html#gade0eb47c01f79384a6f38017ede17446"> 442</a></span>&#160; <span class="keyword">typedef</span> mat4x4 <a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; </div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="comment">// Double definition</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
-<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00164.html#gae0a526a0143fc69d7b317c078d591654"> 454</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, lowp&gt; <a class="code" href="a00164.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a>;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; </div>
-<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d"> 460</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, mediump&gt; <a class="code" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; </div>
-<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8"> 466</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, highp&gt; <a class="code" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; </div>
-<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd"> 472</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, lowp&gt; <a class="code" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a>;</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; </div>
-<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879"> 478</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, mediump&gt; <a class="code" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a>;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; </div>
-<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba"> 484</a></span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;double, highp&gt; <a class="code" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a>;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; </div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; </div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; </div>
-<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0"> 495</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, lowp&gt; <a class="code" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a>;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div>
-<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246"> 501</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, mediump&gt; <a class="code" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a>;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div>
-<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6"> 507</a></span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;double, highp&gt; <a class="code" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a>;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; </div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; </div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div>
-<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3"> 518</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, lowp&gt; <a class="code" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a>;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; </div>
-<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3"> 524</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, mediump&gt; <a class="code" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a>;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; </div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30"> 530</a></span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;double, highp&gt; <a class="code" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a>;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; </div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; </div>
-<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab"> 541</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, lowp&gt; <a class="code" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a>;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
-<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b"> 547</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, mediump&gt; <a class="code" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a>;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; </div>
-<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21"> 553</a></span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;double, highp&gt; <a class="code" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a>;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; </div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; </div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03"> 564</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;float, lowp&gt; <a class="code" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; </div>
-<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5"> 570</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, mediump&gt; <a class="code" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a>;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
-<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d"> 576</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, highp&gt; <a class="code" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a>;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; </div>
-<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0"> 582</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, lowp&gt; <a class="code" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a>;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; </div>
-<div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1"> 588</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, mediump&gt; <a class="code" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a>;</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; </div>
-<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f"> 594</a></span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;double, highp&gt; <a class="code" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a>;</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; </div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; </div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
-<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3"> 605</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, lowp&gt; <a class="code" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a>;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; </div>
-<div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d"> 611</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, mediump&gt; <a class="code" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a>;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; </div>
-<div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7"> 617</a></span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;double, highp&gt; <a class="code" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a>;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; </div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; </div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; </div>
-<div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8"> 628</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, lowp&gt; <a class="code" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a>;</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; </div>
-<div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9"> 634</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, mediump&gt; <a class="code" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a>;</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; </div>
-<div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="a00164.html#ga5ee028f50629bf451973b3a910973357"> 640</a></span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;double, highp&gt; <a class="code" href="a00164.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a>;</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; </div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; </div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; </div>
-<div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03"> 651</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, lowp&gt; <a class="code" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a>;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; </div>
-<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc"> 657</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, mediump&gt; <a class="code" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a>;</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; </div>
-<div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a"> 663</a></span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;double, highp&gt; <a class="code" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a>;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; </div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; </div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; </div>
-<div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301"> 674</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, lowp&gt; <a class="code" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a>;</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; </div>
-<div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c"> 680</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, mediump&gt; <a class="code" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a>;</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; </div>
-<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a"> 686</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, highp&gt; <a class="code" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a>;</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; </div>
-<div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9"> 692</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, lowp&gt; <a class="code" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a>;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
-<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12"> 698</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, mediump&gt; <a class="code" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a>;</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; </div>
-<div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432"> 704</a></span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;double, highp&gt; <a class="code" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a>;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; </div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; </div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keyword">typedef</span> lowp_dmat2x2 <a class="code" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keyword">typedef</span> lowp_dmat2x3 <a class="code" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keyword">typedef</span> lowp_dmat2x4 <a class="code" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">typedef</span> lowp_dmat3x2 <a class="code" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keyword">typedef</span> lowp_dmat3x3 <a class="code" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">typedef</span> lowp_dmat3x4 <a class="code" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keyword">typedef</span> lowp_dmat4x2 <a class="code" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keyword">typedef</span> lowp_dmat4x3 <a class="code" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keyword">typedef</span> lowp_dmat4x4 <a class="code" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keyword">typedef</span> mediump_dmat2x2 <a class="code" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keyword">typedef</span> mediump_dmat2x3 <a class="code" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keyword">typedef</span> mediump_dmat2x4 <a class="code" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keyword">typedef</span> mediump_dmat3x2 <a class="code" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">typedef</span> mediump_dmat3x3 <a class="code" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keyword">typedef</span> mediump_dmat3x4 <a class="code" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">typedef</span> mediump_dmat4x2 <a class="code" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">typedef</span> mediump_dmat4x3 <a class="code" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keyword">typedef</span> mediump_dmat4x4 <a class="code" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; </div>
-<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44"> 733</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a>;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; </div>
-<div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff"> 738</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a>;</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; </div>
-<div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27"> 743</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a>;</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; </div>
-<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e"> 748</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; </div>
-<div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7"> 753</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x3 <a class="code" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; </div>
-<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738"> 758</a></span>&#160; <span class="keyword">typedef</span> highp_dmat2x4 <a class="code" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; </div>
-<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8"> 763</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x2 <a class="code" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; </div>
-<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8"> 768</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; </div>
-<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091"> 773</a></span>&#160; <span class="keyword">typedef</span> highp_dmat3x4 <a class="code" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; </div>
-<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a"> 778</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x2 <a class="code" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; </div>
-<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e"> 783</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x3 <a class="code" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e"> 788</a></span>&#160; <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; </div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, highp &gt; highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00303">type_mat.hpp:303</a></div></div>
-<div class="ttc" id="a00164_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, highp &gt; highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00178">type_mat.hpp:178</a></div></div>
-<div class="ttc" id="a00164_html_gaea9e20c3668305cf0de5334d217408d9"><div class="ttname"><a href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">glm::lowp_dmat4x4</a></div><div class="ttdeci">tmat4x4&lt; double, lowp &gt; lowp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00692">type_mat.hpp:692</a></div></div>
-<div class="ttc" id="a00163_html_ga38d9bfca882ec542b1928cf77b5c2091"><div class="ttname"><a href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">glm::dmat3x4</a></div><div class="ttdeci">highp_dmat3x4 dmat3x4</div><div class="ttdoc">3 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00773">type_mat.hpp:773</a></div></div>
-<div class="ttc" id="a00164_html_ga78987759d40d7cb03ebe948fb1dcd879"><div class="ttname"><a href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">glm::mediump_dmat2x2</a></div><div class="ttdeci">tmat2x2&lt; double, mediump &gt; mediump_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00478">type_mat.hpp:478</a></div></div>
-<div class="ttc" id="a00164_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00072">type_mat.hpp:72</a></div></div>
-<div class="ttc" id="a00164_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, lowp &gt; lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00164">type_mat.hpp:164</a></div></div>
-<div class="ttc" id="a00163_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00410">type_mat.hpp:410</a></div></div>
-<div class="ttc" id="a00164_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, mediump &gt; mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00145">type_mat.hpp:145</a></div></div>
-<div class="ttc" id="a00163_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00432">type_mat.hpp:432</a></div></div>
-<div class="ttc" id="a00164_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, lowp &gt; lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00112">type_mat.hpp:112</a></div></div>
-<div class="ttc" id="a00163_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00395">type_mat.hpp:395</a></div></div>
-<div class="ttc" id="a00164_html_ga8091edef9fdf54b1996ae5bd00f847e5"><div class="ttname"><a href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">glm::mediump_dmat3</a></div><div class="ttdeci">tmat3x3&lt; double, mediump &gt; mediump_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00570">type_mat.hpp:570</a></div></div>
-<div class="ttc" id="a00164_html_ga5ee028f50629bf451973b3a910973357"><div class="ttname"><a href="a00164.html#ga5ee028f50629bf451973b3a910973357">glm::highp_dmat4x2</a></div><div class="ttdeci">tmat4x2&lt; double, highp &gt; highp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00640">type_mat.hpp:640</a></div></div>
-<div class="ttc" id="a00164_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, lowp &gt; lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00263">type_mat.hpp:263</a></div></div>
-<div class="ttc" id="a00164_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00337">type_mat.hpp:337</a></div></div>
-<div class="ttc" id="a00164_html_ga27b55deeb16fda7262d64dc1fd1a56bc"><div class="ttname"><a href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">glm::mediump_dmat4x3</a></div><div class="ttdeci">tmat4x3&lt; double, mediump &gt; mediump_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00657">type_mat.hpp:657</a></div></div>
-<div class="ttc" id="a00163_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00163.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00390">type_mat.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00400">type_mat.hpp:400</a></div></div>
-<div class="ttc" id="a00164_html_ga65ae7d3b23155712ed8cbd3300be4ec8"><div class="ttname"><a href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">glm::highp_dmat2</a></div><div class="ttdeci">tmat2x2&lt; double, highp &gt; highp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00466">type_mat.hpp:466</a></div></div>
-<div class="ttc" id="a00164_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, lowp &gt; lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00289">type_mat.hpp:289</a></div></div>
-<div class="ttc" id="a00164_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00197">type_mat.hpp:197</a></div></div>
-<div class="ttc" id="a00164_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00225">type_mat.hpp:225</a></div></div>
-<div class="ttc" id="a00164_html_ga51bfd2f3f5a12464d5934323db9116e7"><div class="ttname"><a href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">glm::highp_dmat3x4</a></div><div class="ttdeci">tmat3x4&lt; double, highp &gt; highp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00617">type_mat.hpp:617</a></div></div>
-<div class="ttc" id="a00163_html_gac7f51e23c8802d867f564dfd146bdb44"><div class="ttname"><a href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">glm::dmat2</a></div><div class="ttdeci">highp_dmat2x2 dmat2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00733">type_mat.hpp:733</a></div></div>
-<div class="ttc" id="a00163_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00163.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00437">type_mat.hpp:437</a></div></div>
-<div class="ttc" id="a00163_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00385">type_mat.hpp:385</a></div></div>
-<div class="ttc" id="a00164_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00164.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, lowp &gt; lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00138">type_mat.hpp:138</a></div></div>
-<div class="ttc" id="a00164_html_gae37a4275ffa68d0c3527a345e76598c0"><div class="ttname"><a href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">glm::lowp_dmat3x3</a></div><div class="ttdeci">tmat3x3&lt; double, lowp &gt; lowp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00582">type_mat.hpp:582</a></div></div>
-<div class="ttc" id="a00164_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, mediump &gt; mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00119">type_mat.hpp:119</a></div></div>
-<div class="ttc" id="a00164_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3&lt; float, highp &gt; highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00126">type_mat.hpp:126</a></div></div>
-<div class="ttc" id="a00164_html_ga187d10ddab0492545b78ea1dd108f28d"><div class="ttname"><a href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">glm::mediump_dmat3x4</a></div><div class="ttdeci">tmat3x4&lt; double, mediump &gt; mediump_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00611">type_mat.hpp:611</a></div></div>
-<div class="ttc" id="a00164_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00190">type_mat.hpp:190</a></div></div>
-<div class="ttc" id="a00164_html_ga2b5b1b810f3b9988f49f985387e35e03"><div class="ttname"><a href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">glm::lowp_dmat4x3</a></div><div class="ttdeci">tmat4x3&lt; double, lowp &gt; lowp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00651">type_mat.hpp:651</a></div></div>
-<div class="ttc" id="a00164_html_ga27ccd1bcb24920508a7b6a24bd9265ab"><div class="ttname"><a href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">glm::lowp_dmat3x2</a></div><div class="ttdeci">tmat3x2&lt; double, lowp &gt; lowp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00541">type_mat.hpp:541</a></div></div>
-<div class="ttc" id="a00164_html_ga27be34d618d20fbd70d4c62c21256b0c"><div class="ttname"><a href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">glm::mediump_dmat4</a></div><div class="ttdeci">tmat4x4&lt; double, mediump &gt; mediump_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00680">type_mat.hpp:680</a></div></div>
-<div class="ttc" id="a00164_html_ga19b0c9580b447443cf3fe589bd661e03"><div class="ttname"><a href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">glm::lowp_dmat3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00564">type_mat.hpp:564</a></div></div>
-<div class="ttc" id="a00164_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, mediump &gt; mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00244">type_mat.hpp:244</a></div></div>
-<div class="ttc" id="a00164_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, mediump &gt; mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00093">type_mat.hpp:93</a></div></div>
-<div class="ttc" id="a00164_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00330">type_mat.hpp:330</a></div></div>
-<div class="ttc" id="a00164_html_ga8ac69e9ed1addf122f51396f73cdbbf3"><div class="ttname"><a href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">glm::lowp_dmat2x4</a></div><div class="ttdeci">tmat2x4&lt; double, lowp &gt; lowp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00518">type_mat.hpp:518</a></div></div>
-<div class="ttc" id="a00163_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00420">type_mat.hpp:420</a></div></div>
-<div class="ttc" id="a00163_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00425">type_mat.hpp:425</a></div></div>
-<div class="ttc" id="a00163_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00415">type_mat.hpp:415</a></div></div>
-<div class="ttc" id="a00164_html_gab2d4fd5cd286baff8364a7a3f60c8a21"><div class="ttname"><a href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">glm::highp_dmat3x2</a></div><div class="ttdeci">tmat3x2&lt; double, highp &gt; highp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00553">type_mat.hpp:553</a></div></div>
-<div class="ttc" id="a00164_html_ga813bff547772bcefebc026e5deba0fe3"><div class="ttname"><a href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">glm::lowp_dmat3x4</a></div><div class="ttdeci">tmat3x4&lt; double, lowp &gt; lowp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00605">type_mat.hpp:605</a></div></div>
-<div class="ttc" id="a00164_html_ga857947b2eef2c9144c34b8e3031f2f12"><div class="ttname"><a href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">glm::mediump_dmat4x4</a></div><div class="ttdeci">tmat4x4&lt; double, mediump &gt; mediump_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00698">type_mat.hpp:698</a></div></div>
-<div class="ttc" id="a00164_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4&lt; float, highp &gt; highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00152">type_mat.hpp:152</a></div></div>
-<div class="ttc" id="a00164_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, mediump &gt; mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00218">type_mat.hpp:218</a></div></div>
-<div class="ttc" id="a00163_html_gaec22f44dddbdadfe5dfca68eb3457ea8"><div class="ttname"><a href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">glm::dmat3x2</a></div><div class="ttdeci">highp_dmat3x2 dmat3x2</div><div class="ttdoc">3 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00763">type_mat.hpp:763</a></div></div>
-<div class="ttc" id="a00164_html_ga518f28c64881fafaaf14ec0d867a9bba"><div class="ttname"><a href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">glm::highp_dmat2x2</a></div><div class="ttdeci">tmat2x2&lt; double, highp &gt; highp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00484">type_mat.hpp:484</a></div></div>
-<div class="ttc" id="a00163_html_ga97b38ea24e9ebf58eac04a8d99dc3e27"><div class="ttname"><a href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">glm::dmat4</a></div><div class="ttdeci">highp_dmat4x4 dmat4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00743">type_mat.hpp:743</a></div></div>
-<div class="ttc" id="a00163_html_ga41c2da87ca627c1b2da5e895435a508e"><div class="ttname"><a href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">glm::dmat4x4</a></div><div class="ttdeci">highp_dmat4x4 dmat4x4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00788">type_mat.hpp:788</a></div></div>
-<div class="ttc" id="a00163_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00405">type_mat.hpp:405</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00163_html_ga1cb3c561a32f0864733dfaf97c71f0c7"><div class="ttname"><a href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">glm::dmat2x3</a></div><div class="ttdeci">highp_dmat2x3 dmat2x3</div><div class="ttdoc">2 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00753">type_mat.hpp:753</a></div></div>
-<div class="ttc" id="a00164_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00164.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3&lt; float, lowp &gt; lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00211">type_mat.hpp:211</a></div></div>
-<div class="ttc" id="a00164_html_gaccf963b117beeadf8c5c057000762dd3"><div class="ttname"><a href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">glm::mediump_dmat2x4</a></div><div class="ttdeci">tmat2x4&lt; double, mediump &gt; mediump_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00524">type_mat.hpp:524</a></div></div>
-<div class="ttc" id="a00164_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, mediump &gt; mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00270">type_mat.hpp:270</a></div></div>
-<div class="ttc" id="a00164_html_gaaf2d7cf98b74a43fc432725887685dc0"><div class="ttname"><a href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">glm::lowp_dmat2x3</a></div><div class="ttdeci">tmat2x3&lt; double, lowp &gt; lowp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00495">type_mat.hpp:495</a></div></div>
-<div class="ttc" id="a00164_html_ga5e5de055b7af150796e1c017de84cdb1"><div class="ttname"><a href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">glm::mediump_dmat3x3</a></div><div class="ttdeci">tmat3x3&lt; double, mediump &gt; mediump_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00588">type_mat.hpp:588</a></div></div>
-<div class="ttc" id="a00164_html_ga83ab0b8b8b50cbf945237dc8f5322432"><div class="ttname"><a href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">glm::highp_dmat4x4</a></div><div class="ttdeci">tmat4x4&lt; double, highp &gt; highp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00704">type_mat.hpp:704</a></div></div>
-<div class="ttc" id="a00164_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, lowp &gt; lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00316">type_mat.hpp:316</a></div></div>
-<div class="ttc" id="a00163_html_ga6ddab280c735a2139133b4164b99a68a"><div class="ttname"><a href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">glm::dmat4x2</a></div><div class="ttdeci">highp_dmat4x2 dmat4x2</div><div class="ttdoc">4 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00778">type_mat.hpp:778</a></div></div>
-<div class="ttc" id="a00164_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, lowp &gt; lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00237">type_mat.hpp:237</a></div></div>
-<div class="ttc" id="a00164_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00086">type_mat.hpp:86</a></div></div>
-<div class="ttc" id="a00164_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, highp &gt; highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00351">type_mat.hpp:351</a></div></div>
-<div class="ttc" id="a00164_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00079">type_mat.hpp:79</a></div></div>
-<div class="ttc" id="a00164_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00164.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2&lt; float, highp &gt; highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00100">type_mat.hpp:100</a></div></div>
-<div class="ttc" id="a00163_html_gaddd230c88fbd6ec33242329be3a1b738"><div class="ttname"><a href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">glm::dmat2x4</a></div><div class="ttdeci">highp_dmat2x4 dmat2x4</div><div class="ttdoc">2 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00758">type_mat.hpp:758</a></div></div>
-<div class="ttc" id="a00164_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00323">type_mat.hpp:323</a></div></div>
-<div class="ttc" id="a00164_html_ga05c2d27aeca091e369fca027e72177e8"><div class="ttname"><a href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">glm::lowp_dmat4x2</a></div><div class="ttdeci">tmat4x2&lt; double, lowp &gt; lowp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00628">type_mat.hpp:628</a></div></div>
-<div class="ttc" id="a00164_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3&lt; float, highp &gt; highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00204">type_mat.hpp:204</a></div></div>
-<div class="ttc" id="a00164_html_gad4a5b294c54702b7c8e9ee32a451dea9"><div class="ttname"><a href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">glm::mediump_dmat4x2</a></div><div class="ttdeci">tmat4x2&lt; double, mediump &gt; mediump_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00634">type_mat.hpp:634</a></div></div>
-<div class="ttc" id="a00164_html_ga2569a68be3f1cf56e7e5e0920fe5a246"><div class="ttname"><a href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">glm::mediump_dmat2x3</a></div><div class="ttdeci">tmat2x3&lt; double, mediump &gt; mediump_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00501">type_mat.hpp:501</a></div></div>
-<div class="ttc" id="a00164_html_gaf98afd25f7e3e8f1d73bca020d0d8ea6"><div class="ttname"><a href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">glm::highp_dmat2x3</a></div><div class="ttdeci">tmat2x3&lt; double, highp &gt; highp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00507">type_mat.hpp:507</a></div></div>
-<div class="ttc" id="a00164_html_gac1c87c16d6dcb7449bc3c779ccdc5c30"><div class="ttname"><a href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">glm::highp_dmat2x4</a></div><div class="ttdeci">tmat2x4&lt; double, highp &gt; highp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00530">type_mat.hpp:530</a></div></div>
-<div class="ttc" id="a00163_html_gab6c8974496fc7c72dad09219118ba89e"><div class="ttname"><a href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">glm::dmat4x3</a></div><div class="ttdeci">highp_dmat4x3 dmat4x3</div><div class="ttdoc">4 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00783">type_mat.hpp:783</a></div></div>
-<div class="ttc" id="a00164_html_ga4607e33c40a3c03256e0bf9c586b456a"><div class="ttname"><a href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">glm::highp_dmat4</a></div><div class="ttdeci">tmat4x4&lt; double, highp &gt; highp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00686">type_mat.hpp:686</a></div></div>
-<div class="ttc" id="a00164_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3&lt; float, mediump &gt; mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00296">type_mat.hpp:296</a></div></div>
-<div class="ttc" id="a00164_html_gafe7eea5b2a20477b5634e340ea5ec28a"><div class="ttname"><a href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">glm::highp_dmat4x3</a></div><div class="ttdeci">tmat4x3&lt; double, highp &gt; highp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00663">type_mat.hpp:663</a></div></div>
-<div class="ttc" id="a00164_html_gae0a526a0143fc69d7b317c078d591654"><div class="ttname"><a href="a00164.html#gae0a526a0143fc69d7b317c078d591654">glm::lowp_dmat2</a></div><div class="ttdeci">tmat2x2&lt; double, lowp &gt; lowp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00454">type_mat.hpp:454</a></div></div>
-<div class="ttc" id="a00163_html_gac44263f56ff3cbf0a9cc4e2405d5ecb8"><div class="ttname"><a href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">glm::dmat3x3</a></div><div class="ttdeci">highp_dmat3x3 dmat3x3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00768">type_mat.hpp:768</a></div></div>
-<div class="ttc" id="a00164_html_ga6b81830ed1ce3862bcbbf41eccc3890b"><div class="ttname"><a href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">glm::mediump_dmat3x2</a></div><div class="ttdeci">tmat3x2&lt; double, mediump &gt; mediump_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00547">type_mat.hpp:547</a></div></div>
-<div class="ttc" id="a00164_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00164.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4&lt; float, highp &gt; highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00251">type_mat.hpp:251</a></div></div>
-<div class="ttc" id="a00164_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2&lt; float, lowp &gt; lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00065">type_mat.hpp:65</a></div></div>
-<div class="ttc" id="a00164_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2&lt; float, mediump &gt; mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00171">type_mat.hpp:171</a></div></div>
-<div class="ttc" id="a00163_html_gacc27b39853a2ecb538c8b3afc20c359e"><div class="ttname"><a href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">glm::dmat2x2</a></div><div class="ttdeci">highp_dmat2x2 dmat2x2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00748">type_mat.hpp:748</a></div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga000c064e4eba15bf83f8e1e393a8e7fd"><div class="ttname"><a href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">glm::lowp_dmat2x2</a></div><div class="ttdeci">tmat2x2&lt; double, lowp &gt; lowp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00472">type_mat.hpp:472</a></div></div>
-<div class="ttc" id="a00164_html_ga605c7863807ac2e9c2db4cf13405f34d"><div class="ttname"><a href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">glm::highp_dmat3</a></div><div class="ttdeci">tmat3x3&lt; double, highp &gt; highp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00576">type_mat.hpp:576</a></div></div>
-<div class="ttc" id="a00164_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00164.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2&lt; float, highp &gt; highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00277">type_mat.hpp:277</a></div></div>
-<div class="ttc" id="a00164_html_ga2d7911a43241a5ce2472421255e5930f"><div class="ttname"><a href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">glm::highp_dmat3x3</a></div><div class="ttdeci">tmat3x3&lt; double, highp &gt; highp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00594">type_mat.hpp:594</a></div></div>
-<div class="ttc" id="a00164_html_gaac3aee10bee5fa5206de8bf024a8b301"><div class="ttname"><a href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">glm::lowp_dmat4</a></div><div class="ttdeci">tmat4x4&lt; double, lowp &gt; lowp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00674">type_mat.hpp:674</a></div></div>
-<div class="ttc" id="a00164_html_ga330077a4cb3707329120b5bddcd7db2d"><div class="ttname"><a href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">glm::mediump_dmat2</a></div><div class="ttdeci">tmat2x2&lt; double, mediump &gt; mediump_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00460">type_mat.hpp:460</a></div></div>
-<div class="ttc" id="a00163_html_gae174ff65e148bb7dec4bf10a63cb46ff"><div class="ttname"><a href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">glm::dmat3</a></div><div class="ttdeci">highp_dmat3x3 dmat3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00738">type_mat.hpp:738</a></div></div>
-<div class="ttc" id="a00164_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00164.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4&lt; float, mediump &gt; mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00344">type_mat.hpp:344</a></div></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x3(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL explicit tmat4x3(T const &amp; x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; T const &amp; x2, T const &amp; y2, T const &amp; z2,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; T const &amp; x3, T const &amp; y3, T const &amp; z3);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const &amp; v2,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; col_type const &amp; v3);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; template &lt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; typename X1, typename Y1, typename Z1,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; typename X2, typename Y2, typename Z2,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; typename X3, typename Y3, typename Z3,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; typename X4, typename Y4, typename Z4&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; X3 const &amp; x3, Y3 const &amp; y3, Z3 const &amp; z3,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; X4 const &amp; x4, Y4 const &amp; y4, Z4 const &amp; z4);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; template &lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec3&lt;V1, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tvec3&lt;V2, P&gt; const &amp; v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec3&lt;V3, P&gt; const &amp; v3,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; tvec3&lt;V4, P&gt; const &amp; v4);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x3&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator=(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator=(tmat4x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator+=(tmat4x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator-=(tmat4x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; };</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator+(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator-(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator+(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator+(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator-(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator-(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::col_type operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator/(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00121.html b/3rdparty/glm/doc/api/a00121.html
index 88faf020e71..942ac1c07e7 100644
--- a/3rdparty/glm/doc/api/a00121.html
+++ b/3rdparty/glm/doc/api/a00121.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x2.hpp File Reference</title>
+<title>0.9.9 API documenation: type_mat4x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x2.hpp File Reference</div> </div>
+<div class="title">type_mat4x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00121_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-27 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00121_source.html">type_mat2x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00121_source.html">type_mat4x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00121_source.html b/3rdparty/glm/doc/api/a00121_source.html
index 54de1c99940..1902a23c4a9 100644
--- a/3rdparty/glm/doc/api/a00121_source.html
+++ b/3rdparty/glm/doc/api/a00121_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x2.hpp Source File</title>
+<title>0.9.9 API documenation: type_mat4x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,218 +64,227 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x2.hpp</div> </div>
+<div class="title">type_mat4x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00121.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>tmat2x2</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, precision Q&gt;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">friend</span> tvec2&lt;U, Q&gt; operator/(tmat2x2&lt;U, Q&gt; <span class="keyword">const</span> &amp; m, tvec2&lt;U, Q&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, precision Q&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">friend</span> tvec2&lt;U, Q&gt; operator/(tvec2&lt;U, Q&gt; <span class="keyword">const</span> &amp; v, tmat2x2&lt;U, Q&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 2;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 2;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; col_type value[2];</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">type_vec4.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00112.html">type_mat.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">struct </span>tmat4x4</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; col_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; row_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;T, P&gt; transpose_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; col_type value[4];</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_FUNC_DECL tmat4x4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_DECL tmat4x4(tmat4x4&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL tmat4x4(tmat4x4&lt;T, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL explicit tmat4x4(ctor);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL explicit tmat4x4(T const &amp; x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0, T const &amp; w0,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1, T const &amp; w1,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T const &amp; x2, T const &amp; y2, T const &amp; z2, T const &amp; w2,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; T const &amp; x3, T const &amp; y3, T const &amp; z3, T const &amp; w3);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; col_type const &amp; v0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; col_type const &amp; v1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; col_type const &amp; v2,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; col_type const &amp; v3);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; template &lt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; typename X2, typename Y2, typename Z2, typename W2,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; typename X3, typename Y3, typename Z3, typename W3,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; typename X4, typename Y4, typename Z4, typename W4&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1, W1 const &amp; w1,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2, W2 const &amp; w2,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; X3 const &amp; x3, Y3 const &amp; y3, Z3 const &amp; z3, W3 const &amp; w3,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; X4 const &amp; x4, Y4 const &amp; y4, Z4 const &amp; z4, W4 const &amp; w4);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; template &lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; tvec4&lt;V1, P&gt; const &amp; v1,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; tvec4&lt;V2, P&gt; const &amp; v2,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; tvec4&lt;V3, P&gt; const &amp; v3,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; tvec4&lt;V4, P&gt; const &amp; v4);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL tmat2x2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat2x2(tmat2x2&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat2x2(tmat2x2&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL explicit tmat2x2(ctor);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL explicit tmat2x2(T const &amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T const &amp; x1, T const &amp; y1,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; T const &amp; x2, T const &amp; y2);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; col_type const &amp; v2);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x4&lt;U, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x2&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x3&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; typedef length_t length_type;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL static length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 4;}</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; template &lt;typename U, typename V, typename M, typename N&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; U const &amp; x1, V const &amp; y1,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; M const &amp; x2, N const &amp; y2);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; template &lt;typename U, typename V&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; tvec2&lt;U, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tvec2&lt;V, P&gt; const &amp; v2);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x2&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL explicit tmat2x2(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator=(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator+=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator+=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator-=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator-=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator*=(U s);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator*=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator/=(U s);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator/=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator=(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator+=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator-=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator*=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator/=(tmat2x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; };</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator+(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator-(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator/(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type operator/(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::row_type operator/(<span class="keyword">typename</span> tmat2x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator/(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;} <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#include &quot;type_mat2x2.inl&quot;</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator/(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type operator/(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type operator/(<span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator/(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00122.html b/3rdparty/glm/doc/api/a00122.html
index 766a08df1b6..cf5d5887954 100644
--- a/3rdparty/glm/doc/api/a00122.html
+++ b/3rdparty/glm/doc/api/a00122.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x3.hpp File Reference</title>
+<title>0.9.9 API documenation: type_precision.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,42 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x3.hpp File Reference</div> </div>
+<div class="title">type_precision.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00177.html">GLM_GTC_type_precision</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00122_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-10-01 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00177.html">GLM_GTC_type_precision</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00122_source.html">type_mat2x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00122_source.html">type_precision.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00122_source.html b/3rdparty/glm/doc/api/a00122_source.html
index 1d31b1facb3..ac32cf907e8 100644
--- a/3rdparty/glm/doc/api/a00122_source.html
+++ b/3rdparty/glm/doc/api/a00122_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x3.hpp Source File</title>
+<title>0.9.9 API documenation: type_precision.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,196 +64,662 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x3.hpp</div> </div>
+<div class="title">type_precision.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00122.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>tmat2x3</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 2;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 3;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; col_type value[2];</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_precision extension included&quot;)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Signed int vector types </span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat2x3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat2x3(tmat2x3&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tmat2x3(tmat2x3&lt;T, Q&gt; const &amp; m);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL explicit tmat2x3(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL explicit tmat2x3(T const &amp; s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; col_type const &amp; v1);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; template &lt;typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2&gt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template &lt;typename U, typename V&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; tvec3&lt;U, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; tvec3&lt;V, P&gt; const &amp; v2);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x3&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL explicit tmat2x3(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator=(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator=(tmat2x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator+=(tmat2x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator-=(tmat2x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; };</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator+(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator+(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator-(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator-(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::col_type operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat2x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator/(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">typedef</span> detail::int8 int8;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">typedef</span> detail::int16 int16;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">typedef</span> detail::int32 int32;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#include &quot;type_mat2x3.inl&quot;</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">typedef</span> detail::int64 int64;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, defaultp&gt; <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, defaultp&gt; <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, defaultp&gt; <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, defaultp&gt; <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, defaultp&gt; <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, defaultp&gt; <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, defaultp&gt; <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, defaultp&gt; <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, defaultp&gt; <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, defaultp&gt; <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, defaultp&gt; <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, defaultp&gt; <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, defaultp&gt; <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, defaultp&gt; <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, defaultp&gt; <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, defaultp&gt; <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; </div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; </div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; </div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">typedef</span> detail::uint8 uint8;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">typedef</span> detail::uint16 uint16;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">typedef</span> detail::uint32 uint32;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">typedef</span> detail::uint64 uint64;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">using</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, defaultp&gt; <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; </div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, defaultp&gt; <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, defaultp&gt; <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, defaultp&gt; <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, defaultp&gt; <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; </div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, defaultp&gt; <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, defaultp&gt; <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, defaultp&gt; <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, defaultp&gt; <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; </div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, defaultp&gt; <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, defaultp&gt; <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, defaultp&gt; <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, defaultp&gt; <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; </div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, defaultp&gt; <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, defaultp&gt; <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, defaultp&gt; <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keyword">typedef</span> detail::float32 float32;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keyword">typedef</span> detail::float64 float64;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keyword">typedef</span> detail::float32 <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">typedef</span> detail::float64 <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keyword">typedef</span> float32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keyword">typedef</span> float64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, defaultp&gt; <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, defaultp&gt; <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, defaultp&gt; <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, defaultp&gt; <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; </div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="comment">// Float matrix types </span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32&gt; fmat1;</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="comment">//typedef f32 fmat1x1;</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, defaultp&gt; f32mat1;</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="comment">//typedef f32 f32mat1x1;</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f64, defaultp&gt; f64mat1;</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="comment">//typedef f64 f64mat1x1;</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, defaultp&gt; <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, defaultp&gt; <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, defaultp&gt; <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;<span class="preprocessor">#include &quot;type_precision.inl&quot;</span></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00177.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02457">fwd.hpp:2457</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02383">fwd.hpp:2383</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00177_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02449">fwd.hpp:2449</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00177_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02563">fwd.hpp:2563</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00177_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02387">fwd.hpp:2387</a></div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02555">fwd.hpp:2555</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02379">fwd.hpp:2379</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02559">fwd.hpp:2559</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l01505">fwd.hpp:1505</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l00212">fwd.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00039_source.html#l02453">fwd.hpp:2453</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00123.html b/3rdparty/glm/doc/api/a00123.html
index f7ca1da6e6d..0854f75428d 100644
--- a/3rdparty/glm/doc/api/a00123.html
+++ b/3rdparty/glm/doc/api/a00123.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x4.hpp File Reference</title>
+<title>0.9.9 API documenation: type_ptr.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,116 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_mat2x4.hpp File Reference</div> </div>
+<div class="title">type_ptr.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00178.html">GLM_GTC_type_ptr</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00123_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga52a16e333fef7e33ca740779482a8693"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga52a16e333fef7e33ca740779482a8693">More...</a><br /></td></tr>
+<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gadb29e510762e1042069cb28bf24ae990"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gadb29e510762e1042069cb28bf24ae990">More...</a><br /></td></tr>
+<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga37988c6dd941f617cdfab86d54375fc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">More...</a><br /></td></tr>
+<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">More...</a><br /></td></tr>
+<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gac2bc10c519ffc8db9e24f325f23787ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">More...</a><br /></td></tr>
+<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gabe1e5066608a66da7a94f802b57b4eed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">More...</a><br /></td></tr>
+<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga3cbe7adf857c867cee77eae4617abadd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">More...</a><br /></td></tr>
+<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gac083edd180ab4d4b817acc60c516209b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gac083edd180ab4d4b817acc60c516209b">More...</a><br /></td></tr>
+<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">More...</a><br /></td></tr>
+<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">More...</a><br /></td></tr>
+<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga4d42daced532b33cc672280e48670a51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga4d42daced532b33cc672280e48670a51">More...</a><br /></td></tr>
+<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gaf605a5f5e2ff594e8d404b2855b09541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">More...</a><br /></td></tr>
+<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gaadafb6600af2633e4c98cc64c72f5269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a quaternion from a pointer. <a href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">More...</a><br /></td></tr>
+<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga5f7393c30970c5949be13ceb525093a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a vector from a pointer. <a href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">More...</a><br /></td></tr>
+<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga86f4bc63570db86346db2e567fb760f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a vector from a pointer. <a href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">More...</a><br /></td></tr>
+<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga152345176b8951c15711f6ed4f6fc237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a vector from a pointer. <a href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">More...</a><br /></td></tr>
+<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &amp;vec)</td></tr>
+<tr class="memdesc:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the constant address to the data of the input parameter. <a href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">More...</a><br /></td></tr>
+<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00178.html">GLM_GTC_type_ptr</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00123_source.html">type_mat2x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00123_source.html">type_ptr.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00123_source.html b/3rdparty/glm/doc/api/a00123_source.html
index bf38f368368..4f6001a7584 100644
--- a/3rdparty/glm/doc/api/a00123_source.html
+++ b/3rdparty/glm/doc/api/a00123_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x4.hpp Source File</title>
+<title>0.9.9 API documenation: type_ptr.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,198 +64,128 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x4.hpp</div> </div>
+<div class="title">type_ptr.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00123.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>tmat2x4</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 2;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_ptr extension included&quot;)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; col_type value[2];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat2x4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat2x4(tmat2x4&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tmat2x4(tmat2x4&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL explicit tmat2x4(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL explicit tmat2x4(T const &amp; s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0, T const &amp; w0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1, T const &amp; w1);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; col_type const &amp; v1);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(genType <span class="keyword">const</span> &amp; vec);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL tvec4&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; template &lt;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; typename X2, typename Y2, typename Z2, typename W2&gt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1, W1 const &amp; w1,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2, W2 const &amp; w2);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; template &lt;typename U, typename V&gt;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; tvec4&lt;U, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; tvec4&lt;V, P&gt; const &amp; v2);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x4&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL explicit tmat2x4(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; <a class="code" href="a00178.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, defaultp&gt; <a class="code" href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, defaultp&gt; <a class="code" href="a00178.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator=(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator=(tmat2x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator+=(tmat2x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator-=(tmat2x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; <a class="code" href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tquat&lt;T, defaultp&gt; <a class="code" href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator+(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator+(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator-(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator-(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::col_type operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat2x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator/(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T s);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator/(T s, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#include &quot;type_mat2x4.inl&quot;</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#include &quot;type_ptr.inl&quot;</span></div>
+<div class="ttc" id="a00178_html_gaf605a5f5e2ff594e8d404b2855b09541"><div class="ttname"><a href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">glm::make_mat4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; make_mat4x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga86f4bc63570db86346db2e567fb760f6"><div class="ttname"><a href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">glm::make_vec3</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt; make_vec3(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gac083edd180ab4d4b817acc60c516209b"><div class="ttname"><a href="a00178.html#gac083edd180ab4d4b817acc60c516209b">glm::make_mat3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4&lt; T, defaultp &gt; make_mat3x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga967a5b934e67ff9a6d1d0d27a377a264"><div class="ttname"><a href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">glm::make_mat4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2&lt; T, defaultp &gt; make_mat4x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gaadafb6600af2633e4c98cc64c72f5269"><div class="ttname"><a href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">glm::make_quat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, defaultp &gt; make_quat(T const *const ptr)</div><div class="ttdoc">Build a quaternion from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga152345176b8951c15711f6ed4f6fc237"><div class="ttname"><a href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">glm::make_vec4</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, defaultp &gt; make_vec4(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga6dfb2ac10859b0cc8e3893ea84fa95b5"><div class="ttname"><a href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">glm::make_mat2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4&lt; T, defaultp &gt; make_mat2x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gac2bc10c519ffc8db9e24f325f23787ea"><div class="ttname"><a href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">glm::make_mat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt; make_mat3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga52a16e333fef7e33ca740779482a8693"><div class="ttname"><a href="a00178.html#ga52a16e333fef7e33ca740779482a8693">glm::make_mat2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt; make_mat2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga37988c6dd941f617cdfab86d54375fc1"><div class="ttname"><a href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">glm::make_mat2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3&lt; T, defaultp &gt; make_mat2x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gadb29e510762e1042069cb28bf24ae990"><div class="ttname"><a href="a00178.html#gadb29e510762e1042069cb28bf24ae990">glm::make_mat2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt; make_mat2x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga3cbe7adf857c867cee77eae4617abadd"><div class="ttname"><a href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">glm::make_mat3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt; make_mat3x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga5f7393c30970c5949be13ceb525093a6"><div class="ttname"><a href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">glm::make_vec2</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt; make_vec2(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gabe1e5066608a66da7a94f802b57b4eed"><div class="ttname"><a href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">glm::make_mat3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2&lt; T, defaultp &gt; make_mat3x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00178_html_ga4d42daced532b33cc672280e48670a51"><div class="ttname"><a href="a00178.html#ga4d42daced532b33cc672280e48670a51">glm::make_mat4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3&lt; T, defaultp &gt; make_mat4x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga2c6e6d457cb932e1ce683e4f690a6f60"><div class="ttname"><a href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">glm::make_mat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; make_mat4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &amp;vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00124.html b/3rdparty/glm/doc/api/a00124.html
index e92ab2864da..bdcd99d7902 100644
--- a/3rdparty/glm/doc/api/a00124.html
+++ b/3rdparty/glm/doc/api/a00124.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x2.hpp File Reference</title>
+<title>0.9.9 API documenation: type_trait.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,40 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x2.hpp File Reference</div> </div>
+<div class="title">type_trait.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00232.html">GLM_GTX_type_trait</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00124_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00232.html">GLM_GTX_type_trait</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00124_source.html">type_mat3x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00124_source.html">type_trait.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00124_source.html b/3rdparty/glm/doc/api/a00124_source.html
index 82d37c4bc8a..e7b792bc972 100644
--- a/3rdparty/glm/doc/api/a00124_source.html
+++ b/3rdparty/glm/doc/api/a00124_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x2.hpp Source File</title>
+<title>0.9.9 API documenation: type_trait.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,203 +64,273 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x2.hpp</div> </div>
+<div class="title">type_trait.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00124.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_type_trait is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec2.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec3.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec4.hpp&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x2.hpp&quot;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x3.hpp&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat2x4.hpp&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x2.hpp&quot;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x3.hpp&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat3x4.hpp&quot;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x2.hpp&quot;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x3.hpp&quot;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;../detail/type_mat4x4.hpp&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;../gtx/dual_quaternion.hpp&quot;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>tmat3x2</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_type_trait extension included&quot;)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>genType, <span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>type</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 3;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 2;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; col_type value[3];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat3x2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat3x2(tmat3x2&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tmat3x2(tmat3x2&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL explicit tmat3x2(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL explicit tmat3x2(T const &amp; s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T const &amp; x0, T const &amp; y0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T const &amp; x1, T const &amp; y1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T const &amp; x2, T const &amp; y2);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; col_type const &amp; v2);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; template&lt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; typename X1, typename Y1,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; typename X2, typename Y2,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; typename X3, typename Y3&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; X1 const &amp; x1, Y1 const &amp; y1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; X2 const &amp; x2, Y2 const &amp; y2,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; X3 const &amp; x3, Y3 const &amp; y3);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template &lt;typename V1, typename V2, typename V3&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; tvec2&lt;V1, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; tvec2&lt;V2, P&gt; const &amp; v2,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; tvec2&lt;V3, P&gt; const &amp; v3);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x2&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL explicit tmat3x2(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> length_t <span class="keyword">const</span> components = 0;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">static</span> length_t <span class="keyword">const</span> cols = 0;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> length_t <span class="keyword">const</span> rows = 0;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">struct </span>type&lt;tvec1, T, P&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; components = 1</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; };</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">struct </span>type&lt;tvec2, T, P&gt;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; components = 2</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; };</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; };</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">struct </span>type&lt;tvec3, T, P&gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; components = 3</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; };</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">struct </span>type&lt;tvec4, T, P&gt;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; components = 4</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; };</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; };</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">struct </span>type&lt;tmat2x2, T, P&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; components = 2,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; cols = 2,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; rows = 2</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; };</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; };</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">struct </span>type&lt;tmat2x3, T, P&gt;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; components = 2,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; cols = 2,</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; rows = 3</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; };</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; };</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator=(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator=(tmat3x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator+=(tmat3x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator-=(tmat3x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; };</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator+(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator+(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator-(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator-(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::col_type operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat3x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">struct </span>type&lt;tmat2x4, T, P&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; components = 2,</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; cols = 2,</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; rows = 4</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; };</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">struct </span>type&lt;tmat3x2, T, P&gt;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; components = 3,</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; cols = 3,</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; rows = 2</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; };</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; };</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">struct </span>type&lt;tmat3x3, T, P&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; components = 3,</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; cols = 3,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; rows = 3</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; };</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; };</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">struct </span>type&lt;tmat3x4, T, P&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; components = 3,</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; cols = 3,</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; rows = 4</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; };</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; };</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator/(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#include &quot;type_mat3x2.inl&quot;</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">struct </span>type&lt;tmat4x2, T, P&gt;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; components = 4,</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; cols = 4,</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rows = 2</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; };</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; };</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">struct </span>type&lt;tmat4x3, T, P&gt;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; components = 4,</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; cols = 4,</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; rows = 3</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; };</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; };</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">struct </span>type&lt;tmat4x4, T, P&gt;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; components = 4,</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; cols = 4,</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; rows = 4</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; };</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; };</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">struct </span>type&lt;tquat, T, P&gt;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; components = 4</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; };</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; };</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">struct </span>type&lt;tdualquat, T, P&gt;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">enum</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; components = 8</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; };</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; };</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#include &quot;type_trait.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00125.html b/3rdparty/glm/doc/api/a00125.html
index 5583ae7e262..4333fb619f9 100644
--- a/3rdparty/glm/doc/api/a00125.html
+++ b/3rdparty/glm/doc/api/a00125.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x3.hpp File Reference</title>
+<title>0.9.9 API documenation: type_vec.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,225 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_mat3x3.hpp File Reference</div> </div>
+<div class="title">type_vec.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00125_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
+<tr class="memdesc:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of boolean. <a href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">More...</a><br /></td></tr>
+<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
+<tr class="memdesc:ga150731e2a148eff8752114a0e450505e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of boolean. <a href="a00156.html#ga150731e2a148eff8752114a0e450505e">More...</a><br /></td></tr>
+<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
+<tr class="memdesc:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of boolean. <a href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">More...</a><br /></td></tr>
+<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
+<tr class="memdesc:ga15ade901680b29b78c1f9d1796db6e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of double-precision floating-point numbers. <a href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">More...</a><br /></td></tr>
+<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
+<tr class="memdesc:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of double-precision floating-point numbers. <a href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">More...</a><br /></td></tr>
+<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
+<tr class="memdesc:ga9503f809789bda7e8852a6abde3ae5c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of double-precision floating-point numbers. <a href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">More...</a><br /></td></tr>
+<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
+<tr class="memdesc:ga829f39950549881a08c534946c0487e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision bool numbers. <a href="a00157.html#ga829f39950549881a08c534946c0487e1">More...</a><br /></td></tr>
+<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
+<tr class="memdesc:gaca7c2a58eb926799c30ad547a290fccf"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision bool numbers. <a href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf">More...</a><br /></td></tr>
+<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
+<tr class="memdesc:gae5f9c57d04b338c9a51a9af39e50795b"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision bool numbers. <a href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b">More...</a><br /></td></tr>
+<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
+<tr class="memdesc:ga435eb408e8dfa4f7185368109d432c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high double-precision floating-point numbers. <a href="a00157.html#ga435eb408e8dfa4f7185368109d432c14">More...</a><br /></td></tr>
+<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
+<tr class="memdesc:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high double-precision floating-point numbers. <a href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa">More...</a><br /></td></tr>
+<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
+<tr class="memdesc:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high double-precision floating-point numbers. <a href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">More...</a><br /></td></tr>
+<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
+<tr class="memdesc:gaa015a3707413de20c03948308dba2f2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision signed integer numbers. <a href="a00157.html#gaa015a3707413de20c03948308dba2f2e">More...</a><br /></td></tr>
+<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
+<tr class="memdesc:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision signed integer numbers. <a href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">More...</a><br /></td></tr>
+<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
+<tr class="memdesc:ga0424a75bb400571489b8528897f35258"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision signed integer numbers. <a href="a00157.html#ga0424a75bb400571489b8528897f35258">More...</a><br /></td></tr>
+<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
+<tr class="memdesc:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision unsigned integer numbers. <a href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad">More...</a><br /></td></tr>
+<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
+<tr class="memdesc:gaf564d5be1e65bd2204754043b218c9a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision unsigned integer numbers. <a href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4">More...</a><br /></td></tr>
+<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
+<tr class="memdesc:ga61359f5531550e45871a97589d8dcce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision unsigned integer numbers. <a href="a00157.html#ga61359f5531550e45871a97589d8dcce1">More...</a><br /></td></tr>
+<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
+<tr class="memdesc:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high single-precision floating-point numbers. <a href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">More...</a><br /></td></tr>
+<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
+<tr class="memdesc:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high single-precision floating-point numbers. <a href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">More...</a><br /></td></tr>
+<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
+<tr class="memdesc:gade7cb496ed3d78b2a11f1651cce77239"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high single-precision floating-point numbers. <a href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">More...</a><br /></td></tr>
+<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
+<tr class="memdesc:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of signed integer numbers. <a href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">More...</a><br /></td></tr>
+<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
+<tr class="memdesc:ga34aee73784bcc247d426250540c1911c"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of signed integer numbers. <a href="a00156.html#ga34aee73784bcc247d426250540c1911c">More...</a><br /></td></tr>
+<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
+<tr class="memdesc:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of signed integer numbers. <a href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">More...</a><br /></td></tr>
+<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
+<tr class="memdesc:ga28dcda102dd8c94ec500ee786af7a30a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision bool numbers. <a href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a">More...</a><br /></td></tr>
+<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
+<tr class="memdesc:ga76c0948546deeeb18bfda36f18b3e673"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision bool numbers. <a href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673">More...</a><br /></td></tr>
+<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
+<tr class="memdesc:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision bool numbers. <a href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">More...</a><br /></td></tr>
+<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
+<tr class="memdesc:ga96eb13864627c7c832b5af36aa73bda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low double-precision floating-point numbers. <a href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6">More...</a><br /></td></tr>
+<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
+<tr class="memdesc:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low double-precision floating-point numbers. <a href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">More...</a><br /></td></tr>
+<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
+<tr class="memdesc:gab5d6a45e1bbb13314b47793865a4c072"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low double-precision floating-point numbers. <a href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072">More...</a><br /></td></tr>
+<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
+<tr class="memdesc:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision signed integer numbers. <a href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">More...</a><br /></td></tr>
+<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
+<tr class="memdesc:gaa040f25233c314adc9560dcdb9dadac2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision signed integer numbers. <a href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2">More...</a><br /></td></tr>
+<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
+<tr class="memdesc:ga8b7483dc67dc332f9d874c6cf7172203"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision signed integer numbers. <a href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203">More...</a><br /></td></tr>
+<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
+<tr class="memdesc:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision unsigned integer numbers. <a href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309">More...</a><br /></td></tr>
+<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
+<tr class="memdesc:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision unsigned integer numbers. <a href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820">More...</a><br /></td></tr>
+<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
+<tr class="memdesc:ga6efcd4574e112cfcda320db58e649ee3"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision unsigned integer numbers. <a href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3">More...</a><br /></td></tr>
+<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
+<tr class="memdesc:ga51e835b2aa735782f0174328acffa521"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low single-precision floating-point numbers. <a href="a00157.html#ga51e835b2aa735782f0174328acffa521">More...</a><br /></td></tr>
+<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
+<tr class="memdesc:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low single-precision floating-point numbers. <a href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">More...</a><br /></td></tr>
+<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
+<tr class="memdesc:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low single-precision floating-point numbers. <a href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">More...</a><br /></td></tr>
+<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
+<tr class="memdesc:gae1f4f68346474246eb4a9952af49e72b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision bool numbers. <a href="a00157.html#gae1f4f68346474246eb4a9952af49e72b">More...</a><br /></td></tr>
+<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
+<tr class="memdesc:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision bool numbers. <a href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0">More...</a><br /></td></tr>
+<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
+<tr class="memdesc:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision bool numbers. <a href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57">More...</a><br /></td></tr>
+<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
+<tr class="memdesc:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium double-precision floating-point numbers. <a href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">More...</a><br /></td></tr>
+<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
+<tr class="memdesc:ga0b4741d444b131ef1fc54b19c37f72be"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium double-precision floating-point numbers. <a href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be">More...</a><br /></td></tr>
+<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
+<tr class="memdesc:ga3e804226444dfe246133fc6ec4a3912f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium double-precision floating-point numbers. <a href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f">More...</a><br /></td></tr>
+<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
+<tr class="memdesc:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision signed integer numbers. <a href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">More...</a><br /></td></tr>
+<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
+<tr class="memdesc:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision signed integer numbers. <a href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">More...</a><br /></td></tr>
+<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
+<tr class="memdesc:ga14614613c8e79772c8a6d25dd1c45995"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision signed integer numbers. <a href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995">More...</a><br /></td></tr>
+<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
+<tr class="memdesc:ga392c0761c8bef616801e0d81a6867ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision unsigned integer numbers. <a href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7">More...</a><br /></td></tr>
+<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
+<tr class="memdesc:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision unsigned integer numbers. <a href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e">More...</a><br /></td></tr>
+<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
+<tr class="memdesc:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision unsigned integer numbers. <a href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">More...</a><br /></td></tr>
+<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
+<tr class="memdesc:gac37a3fd0ecdcab044853c039409c9af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium single-precision floating-point numbers. <a href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">More...</a><br /></td></tr>
+<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
+<tr class="memdesc:ga591478a77e4324e0836abc17cbb13e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium single-precision floating-point numbers. <a href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">More...</a><br /></td></tr>
+<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
+<tr class="memdesc:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium single-precision floating-point numbers. <a href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">More...</a><br /></td></tr>
+<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
+<tr class="memdesc:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of unsigned integer numbers. <a href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">More...</a><br /></td></tr>
+<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
+<tr class="memdesc:gae85537b672ffe0b3218cbdf1823e1c72"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of unsigned integer numbers. <a href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">More...</a><br /></td></tr>
+<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
+<tr class="memdesc:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of unsigned integer numbers. <a href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">More...</a><br /></td></tr>
+<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
+<tr class="memdesc:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of floating-point numbers. <a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">More...</a><br /></td></tr>
+<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
+<tr class="memdesc:gaa8ea2429bb3cb41a715258a447f39897"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of floating-point numbers. <a href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">More...</a><br /></td></tr>
+<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
+<tr class="memdesc:gafbab23070ca47932487d25332adc7d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of floating-point numbers. <a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">More...</a><br /></td></tr>
+<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-27 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00125_source.html">type_mat3x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00125_source.html b/3rdparty/glm/doc/api/a00125_source.html
index a07108ab496..617dbdddc97 100644
--- a/3rdparty/glm/doc/api/a00125_source.html
+++ b/3rdparty/glm/doc/api/a00125_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x3.hpp Source File</title>
+<title>0.9.9 API documenation: type_vec.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,225 +64,403 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x3.hpp</div> </div>
+<div class="title">type_vec.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00125.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>tmat3x3</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 3;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, precision Q&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">friend</span> tvec3&lt;U, Q&gt; operator/(tmat3x3&lt;U, Q&gt; <span class="keyword">const</span> &amp; m, tvec3&lt;U, Q&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, precision Q&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">friend</span> tvec3&lt;U, Q&gt; operator/(tvec3&lt;U, Q&gt; <span class="keyword">const</span> &amp; v, tmat3x3&lt;U, Q&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; col_type value[3];</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL tmat3x3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat3x3(tmat3x3&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat3x3(tmat3x3&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL explicit tmat3x3(ctor);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL explicit tmat3x3(T const &amp; s);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; T const &amp; x2, T const &amp; y2, T const &amp; z2);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; col_type const &amp; v2);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template&lt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; typename X1, typename Y1, typename Z1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; typename X2, typename Y2, typename Z2,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; typename X3, typename Y3, typename Z3&gt;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; X3 const &amp; x3, Y3 const &amp; y3, Z3 const &amp; z3);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; template &lt;typename V1, typename V2, typename V3&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; tvec3&lt;V1, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; tvec3&lt;V2, P&gt; const &amp; v2,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; tvec3&lt;V3, P&gt; const &amp; v3);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x3&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL explicit tmat3x3(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00086.html">precision.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00111.html">type_int.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a>{</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> size, <span class="keywordtype">bool</span> aligned&gt;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">struct </span>storage</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span>type {</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; uint8 data[size];</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; } type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; };</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> #define GLM_ALIGNED_STORAGE_TYPE_STRUCT(x) \</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"> template &lt;typename T&gt; \</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"> struct storage&lt;T, x, true&gt; { \</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"> GLM_ALIGNED_STRUCT(x) type { \</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"> uint8 data[x]; \</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"> }; \</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"> };</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(1)</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(2)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(4)</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(8)</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(16)</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(32)</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_ALIGNED_STORAGE_TYPE_STRUCT(64)</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># if GLM_ARCH &amp; GLM_ARCH_SSE2_BIT</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">struct </span>storage&lt;float, 16, true&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typedef</span> glm_vec4 type;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; };</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>storage&lt;int, 16, true&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> glm_ivec4 type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">struct </span>storage&lt;unsigned int, 16, true&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> glm_uvec4 type;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"># else</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> typedef union __declspec(align(16)) glm_128</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> unsigned __int8 data[16];</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> } glm_128;</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> template &lt;&gt;</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> struct storage&lt;float, 16, true&gt;</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> typedef glm_128 type;</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> };</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> template &lt;&gt;</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> struct storage&lt;int, 16, true&gt;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> typedef glm_128 type;</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> };</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> template &lt;&gt;</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> struct storage&lt;unsigned int, 16, true&gt;</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> typedef glm_128 type;</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> };</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_AVX_BIT)</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">struct </span>storage&lt;double, 32, true&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">typedef</span> glm_dvec4 type;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; };</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_AVX2_BIT)</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">struct </span>storage&lt;int64, 32, true&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">typedef</span> glm_i64vec4 type;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>storage&lt;uint64, 32, true&gt;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">typedef</span> glm_u64vec4 type;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; };</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec1;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec2;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec3;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, highp&gt; highp_vec1_t;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, mediump&gt; mediump_vec1_t;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, lowp&gt; lowp_vec1_t;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, highp&gt; highp_dvec1_t;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, mediump&gt; mediump_dvec1_t;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, lowp&gt; lowp_dvec1_t;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, highp&gt; highp_ivec1_t;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, mediump&gt; mediump_ivec1_t;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, lowp&gt; lowp_ivec1_t;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, highp&gt; highp_uvec1_t;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, mediump&gt; mediump_uvec1_t;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, lowp&gt; lowp_uvec1_t;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, highp&gt; highp_bvec1_t;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, mediump&gt; mediump_bvec1_t;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, lowp&gt; lowp_bvec1_t;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997"> 133</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; <a class="code" href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator=(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator+=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator-=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator*=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator/=(tmat3x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7"> 140</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, mediump&gt; <a class="code" href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00157.html#ga51e835b2aa735782f0174328acffa521"> 147</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, lowp&gt; <a class="code" href="a00157.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="a00157.html#ga435eb408e8dfa4f7185368109d432c14"> 154</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, highp&gt; <a class="code" href="a00157.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; };</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9"> 161</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, mediump&gt; <a class="code" href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6"> 168</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, lowp&gt; <a class="code" href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="a00157.html#gaa015a3707413de20c03948308dba2f2e"> 175</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, highp&gt; <a class="code" href="a00157.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator+(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator-(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef"> 182</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, mediump&gt; <a class="code" href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"> 189</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, lowp&gt; <a class="code" href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad"> 196</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, highp&gt; <a class="code" href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator/(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type operator/(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7"> 203</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, mediump&gt; <a class="code" href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309"> 210</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, lowp&gt; <a class="code" href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00157.html#ga829f39950549881a08c534946c0487e1"> 217</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, highp&gt; <a class="code" href="a00157.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::row_type operator/(<span class="keyword">typename</span> tmat3x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator/(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#include &quot;type_mat3x3.inl&quot;</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00157.html#gae1f4f68346474246eb4a9952af49e72b"> 224</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, mediump&gt; <a class="code" href="a00157.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a"> 231</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, lowp&gt; <a class="code" href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a"> 243</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; <a class="code" href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="a00157.html#ga591478a77e4324e0836abc17cbb13e83"> 250</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, mediump&gt; <a class="code" href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e"> 257</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, lowp&gt; <a class="code" href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa"> 264</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, highp&gt; <a class="code" href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be"> 271</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, mediump&gt; <a class="code" href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9"> 278</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, lowp&gt; <a class="code" href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f"> 285</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, highp&gt; <a class="code" href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a>;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0"> 292</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, mediump&gt; <a class="code" href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2"> 299</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, lowp&gt; <a class="code" href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4"> 306</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, highp&gt; <a class="code" href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a>;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e"> 313</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, mediump&gt; <a class="code" href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820"> 320</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, lowp&gt; <a class="code" href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a>;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf"> 326</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, highp&gt; <a class="code" href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a>;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0"> 332</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, mediump&gt; <a class="code" href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a>;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673"> 338</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, lowp&gt; <a class="code" href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239"> 349</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; <a class="code" href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae"> 355</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, mediump&gt; <a class="code" href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395"> 361</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, lowp&gt; <a class="code" href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39"> 367</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, highp&gt; <a class="code" href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a>;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f"> 373</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, mediump&gt; <a class="code" href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072"> 379</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, lowp&gt; <a class="code" href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a>;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="a00157.html#ga0424a75bb400571489b8528897f35258"> 385</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, highp&gt; <a class="code" href="a00157.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995"> 391</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, mediump&gt; <a class="code" href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a>;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203"> 397</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, lowp&gt; <a class="code" href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="a00157.html#ga61359f5531550e45871a97589d8dcce1"> 403</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, highp&gt; <a class="code" href="a00157.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a>;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7"> 409</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, mediump&gt; <a class="code" href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3"> 415</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, lowp&gt; <a class="code" href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a>;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b"> 421</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, highp&gt; <a class="code" href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57"> 427</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, mediump&gt; <a class="code" href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a>;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85"> 433</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, lowp&gt; <a class="code" href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// -- Default float definition --</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">typedef</span> lowp_vec2 <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">typedef</span> lowp_vec3 <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">typedef</span> lowp_vec4 <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">typedef</span> mediump_vec2 <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">typedef</span> mediump_vec3 <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">typedef</span> mediump_vec4 <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">typedef</span> highp_vec2 <a class="code" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897"> 459</a></span>&#160; <span class="keyword">typedef</span> highp_vec3 <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="a00156.html#gafbab23070ca47932487d25332adc7d7c"> 464</a></span>&#160; <span class="keyword">typedef</span> highp_vec4 <a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="comment">// -- Default double definition --</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">typedef</span> lowp_dvec2 <a class="code" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">typedef</span> lowp_dvec3 <a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">typedef</span> lowp_dvec4 <a class="code" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">typedef</span> mediump_dvec2 <a class="code" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">typedef</span> mediump_dvec3 <a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">typedef</span> mediump_dvec4 <a class="code" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">typedef</span> highp_dvec2 <a class="code" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4"> 486</a></span>&#160; <span class="keyword">typedef</span> highp_dvec3 <a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1"> 491</a></span>&#160; <span class="keyword">typedef</span> highp_dvec4 <a class="code" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// -- Signed integer definition --</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">typedef</span> lowp_ivec2 <a class="code" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keyword">typedef</span> lowp_ivec3 <a class="code" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">typedef</span> lowp_ivec4 <a class="code" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">typedef</span> mediump_ivec2 <a class="code" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">typedef</span> mediump_ivec3 <a class="code" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">typedef</span> mediump_ivec4 <a class="code" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_INT)</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keyword">typedef</span> highp_ivec2 <a class="code" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="a00156.html#ga34aee73784bcc247d426250540c1911c"> 513</a></span>&#160; <span class="keyword">typedef</span> highp_ivec3 <a class="code" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224"> 518</a></span>&#160; <span class="keyword">typedef</span> highp_ivec4 <a class="code" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// -- Unsigned integer definition --</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keyword">typedef</span> lowp_uvec2 <a class="code" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">typedef</span> lowp_uvec3 <a class="code" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">typedef</span> lowp_uvec4 <a class="code" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">typedef</span> mediump_uvec2 <a class="code" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">typedef</span> mediump_uvec3 <a class="code" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">typedef</span> mediump_uvec4 <a class="code" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_UINT)</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">typedef</span> highp_uvec2 <a class="code" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72"> 540</a></span>&#160; <span class="keyword">typedef</span> highp_uvec3 <a class="code" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e"> 545</a></span>&#160; <span class="keyword">typedef</span> highp_uvec4 <a class="code" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="comment">// -- Boolean definition --</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">typedef</span> lowp_bvec2 <a class="code" href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">typedef</span> lowp_bvec3 <a class="code" href="a00156.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">typedef</span> lowp_bvec4 <a class="code" href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keyword">typedef</span> mediump_bvec2 <a class="code" href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">typedef</span> mediump_bvec3 <a class="code" href="a00156.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">typedef</span> mediump_bvec4 <a class="code" href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">typedef</span> highp_bvec2 <a class="code" href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="a00156.html#ga150731e2a148eff8752114a0e450505e"> 567</a></span>&#160; <span class="keyword">typedef</span> highp_bvec3 <a class="code" href="a00156.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6"> 572</a></span>&#160; <span class="keyword">typedef</span> highp_bvec4 <a class="code" href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_gae1f4f68346474246eb4a9952af49e72b"><div class="ttname"><a href="a00157.html#gae1f4f68346474246eb4a9952af49e72b">glm::mediump_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, mediump &gt; mediump_bvec2</div><div class="ttdoc">2 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00224">type_vec.hpp:224</a></div></div>
+<div class="ttc" id="a00157_html_ga631f5767b9d45c5cd3d0bcd67565b3f7"><div class="ttname"><a href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">glm::mediump_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, mediump &gt; mediump_uvec4</div><div class="ttdoc">4 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00409">type_vec.hpp:409</a></div></div>
+<div class="ttc" id="a00157_html_ga0d1778766f17c4329a8c3f2b37f5fab0"><div class="ttname"><a href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0">glm::mediump_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, mediump &gt; mediump_bvec3</div><div class="ttdoc">3 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00332">type_vec.hpp:332</a></div></div>
+<div class="ttc" id="a00157_html_ga392c0761c8bef616801e0d81a6867ed7"><div class="ttname"><a href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7">glm::mediump_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, mediump &gt; mediump_uvec2</div><div class="ttdoc">2 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00203">type_vec.hpp:203</a></div></div>
+<div class="ttc" id="a00157_html_ga14614613c8e79772c8a6d25dd1c45995"><div class="ttname"><a href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995">glm::mediump_ivec4</a></div><div class="ttdeci">tvec4&lt; int, mediump &gt; mediump_ivec4</div><div class="ttdoc">4 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00391">type_vec.hpp:391</a></div></div>
+<div class="ttc" id="a00156_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00491">type_vec.hpp:491</a></div></div>
+<div class="ttc" id="a00157_html_ga199cc7c4cfa7c7cadad0c74d2f059aef"><div class="ttname"><a href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">glm::mediump_ivec2</a></div><div class="ttdeci">tvec2&lt; int, mediump &gt; mediump_ivec2</div><div class="ttdoc">2 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00182">type_vec.hpp:182</a></div></div>
+<div class="ttc" id="a00157_html_ga388fd99d9ffc7190a4732c35b0c7bfc9"><div class="ttname"><a href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">glm::mediump_dvec2</a></div><div class="ttdeci">tvec2&lt; double, mediump &gt; mediump_dvec2</div><div class="ttdoc">2 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00161">type_vec.hpp:161</a></div></div>
+<div class="ttc" id="a00157_html_ga54ae0b7b207b8e7e88841d146d2de12e"><div class="ttname"><a href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e">glm::mediump_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, mediump &gt; mediump_uvec3</div><div class="ttdoc">3 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00313">type_vec.hpp:313</a></div></div>
+<div class="ttc" id="a00157_html_gaa040f25233c314adc9560dcdb9dadac2"><div class="ttname"><a href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2">glm::lowp_ivec3</a></div><div class="ttdeci">tvec3&lt; int, lowp &gt; lowp_ivec3</div><div class="ttdoc">3 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00299">type_vec.hpp:299</a></div></div>
+<div class="ttc" id="a00157_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3&lt; float, lowp &gt; lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00257">type_vec.hpp:257</a></div></div>
+<div class="ttc" id="a00157_html_gaf564d5be1e65bd2204754043b218c9a4"><div class="ttname"><a href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4">glm::highp_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, highp &gt; highp_uvec3</div><div class="ttdoc">3 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00306">type_vec.hpp:306</a></div></div>
+<div class="ttc" id="a00156_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00481">type_vec.hpp:481</a></div></div>
+<div class="ttc" id="a00157_html_gaf0049c860a612da9bd3ba9ac9e49e820"><div class="ttname"><a href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820">glm::lowp_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, lowp &gt; lowp_uvec3</div><div class="ttdoc">3 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00320">type_vec.hpp:320</a></div></div>
+<div class="ttc" id="a00157_html_ga829f39950549881a08c534946c0487e1"><div class="ttname"><a href="a00157.html#ga829f39950549881a08c534946c0487e1">glm::highp_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, highp &gt; highp_bvec2</div><div class="ttdoc">2 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00217">type_vec.hpp:217</a></div></div>
+<div class="ttc" id="a00157_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2&lt; float, highp &gt; highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00133">type_vec.hpp:133</a></div></div>
+<div class="ttc" id="a00157_html_ga76c0948546deeeb18bfda36f18b3e673"><div class="ttname"><a href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673">glm::lowp_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, lowp &gt; lowp_bvec3</div><div class="ttdoc">3 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00338">type_vec.hpp:338</a></div></div>
+<div class="ttc" id="a00157_html_ga9b7843453f7ad6ebfa26e50408b8dcf0"><div class="ttname"><a href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">glm::mediump_ivec3</a></div><div class="ttdeci">tvec3&lt; int, mediump &gt; mediump_ivec3</div><div class="ttdoc">3 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00292">type_vec.hpp:292</a></div></div>
+<div class="ttc" id="a00157_html_ga8b7483dc67dc332f9d874c6cf7172203"><div class="ttname"><a href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203">glm::lowp_ivec4</a></div><div class="ttdeci">tvec4&lt; int, lowp &gt; lowp_ivec4</div><div class="ttdoc">4 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00397">type_vec.hpp:397</a></div></div>
+<div class="ttc" id="a00157_html_ga0b4741d444b131ef1fc54b19c37f72be"><div class="ttname"><a href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be">glm::mediump_dvec3</a></div><div class="ttdeci">tvec3&lt; double, mediump &gt; mediump_dvec3</div><div class="ttdoc">3 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00271">type_vec.hpp:271</a></div></div>
+<div class="ttc" id="a00156_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00540">type_vec.hpp:540</a></div></div>
+<div class="ttc" id="a00157_html_ga6bfb90b936bbbc67e438bb9ac6910309"><div class="ttname"><a href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309">glm::lowp_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, lowp &gt; lowp_uvec2</div><div class="ttdoc">2 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00210">type_vec.hpp:210</a></div></div>
+<div class="ttc" id="a00157_html_gaa015a3707413de20c03948308dba2f2e"><div class="ttname"><a href="a00157.html#gaa015a3707413de20c03948308dba2f2e">glm::highp_ivec2</a></div><div class="ttdeci">tvec2&lt; int, highp &gt; highp_ivec2</div><div class="ttdoc">2 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00175">type_vec.hpp:175</a></div></div>
+<div class="ttc" id="a00156_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00518">type_vec.hpp:518</a></div></div>
+<div class="ttc" id="a00156_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00156.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00513">type_vec.hpp:513</a></div></div>
+<div class="ttc" id="a00156_html_ga444e8f61bfb3a6f037d019ac6933f8c6"><div class="ttname"><a href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">glm::bvec4</a></div><div class="ttdeci">highp_bvec4 bvec4</div><div class="ttdoc">4 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00572">type_vec.hpp:572</a></div></div>
+<div class="ttc" id="a00157_html_gaa0eed70387a998c3eca2f4e45f3efaad"><div class="ttname"><a href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad">glm::highp_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, highp &gt; highp_uvec2</div><div class="ttdoc">2 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00196">type_vec.hpp:196</a></div></div>
+<div class="ttc" id="a00157_html_ga6efcd4574e112cfcda320db58e649ee3"><div class="ttname"><a href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3">glm::lowp_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, lowp &gt; lowp_uvec4</div><div class="ttdoc">4 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00415">type_vec.hpp:415</a></div></div>
+<div class="ttc" id="a00156_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00486">type_vec.hpp:486</a></div></div>
+<div class="ttc" id="a00156_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00535">type_vec.hpp:535</a></div></div>
+<div class="ttc" id="a00157_html_ga3e804226444dfe246133fc6ec4a3912f"><div class="ttname"><a href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f">glm::mediump_dvec4</a></div><div class="ttdeci">tvec4&lt; double, mediump &gt; mediump_dvec4</div><div class="ttdoc">4 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00373">type_vec.hpp:373</a></div></div>
+<div class="ttc" id="a00157_html_ga435eb408e8dfa4f7185368109d432c14"><div class="ttname"><a href="a00157.html#ga435eb408e8dfa4f7185368109d432c14">glm::highp_dvec2</a></div><div class="ttdeci">tvec2&lt; double, highp &gt; highp_dvec2</div><div class="ttdoc">2 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00154">type_vec.hpp:154</a></div></div>
+<div class="ttc" id="a00157_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3&lt; float, highp &gt; highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00243">type_vec.hpp:243</a></div></div>
+<div class="ttc" id="a00157_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4&lt; float, lowp &gt; lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00361">type_vec.hpp:361</a></div></div>
+<div class="ttc" id="a00156_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00459">type_vec.hpp:459</a></div></div>
+<div class="ttc" id="a00157_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00157.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2&lt; float, lowp &gt; lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00147">type_vec.hpp:147</a></div></div>
+<div class="ttc" id="a00157_html_gae5f9c57d04b338c9a51a9af39e50795b"><div class="ttname"><a href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b">glm::highp_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, highp &gt; highp_bvec4</div><div class="ttdoc">4 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00421">type_vec.hpp:421</a></div></div>
+<div class="ttc" id="a00157_html_gaf7ec7b1cefeeaf63659460ef52fd06a9"><div class="ttname"><a href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">glm::lowp_dvec3</a></div><div class="ttdeci">tvec3&lt; double, lowp &gt; lowp_dvec3</div><div class="ttdoc">3 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00278">type_vec.hpp:278</a></div></div>
+<div class="ttc" id="a00156_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00454">type_vec.hpp:454</a></div></div>
+<div class="ttc" id="a00157_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3&lt; float, mediump &gt; mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00250">type_vec.hpp:250</a></div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00111_html"><div class="ttname"><a href="a00111.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_ga3f0c27f7ab42f004054a247c93a7bf57"><div class="ttname"><a href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57">glm::mediump_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, mediump &gt; mediump_bvec4</div><div class="ttdoc">4 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00427">type_vec.hpp:427</a></div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_ga5d454f34d819d90b9bbb30dcb9ed7b39"><div class="ttname"><a href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">glm::highp_dvec4</a></div><div class="ttdeci">tvec4&lt; double, highp &gt; highp_dvec4</div><div class="ttdoc">4 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00367">type_vec.hpp:367</a></div></div>
+<div class="ttc" id="a00157_html_gab5d6a45e1bbb13314b47793865a4c072"><div class="ttname"><a href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072">glm::lowp_dvec4</a></div><div class="ttdeci">tvec4&lt; double, lowp &gt; lowp_dvec4</div><div class="ttdoc">4 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00379">type_vec.hpp:379</a></div></div>
+<div class="ttc" id="a00156_html_ga0e46aaaccc5e713eac5bfbc8d6885a60"><div class="ttname"><a href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">glm::bvec2</a></div><div class="ttdeci">highp_bvec2 bvec2</div><div class="ttdoc">2 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00562">type_vec.hpp:562</a></div></div>
+<div class="ttc" id="a00157_html_ga96eb13864627c7c832b5af36aa73bda6"><div class="ttname"><a href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6">glm::lowp_dvec2</a></div><div class="ttdeci">tvec2&lt; double, lowp &gt; lowp_dvec2</div><div class="ttdoc">2 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00168">type_vec.hpp:168</a></div></div>
+<div class="ttc" id="a00156_html_ga150731e2a148eff8752114a0e450505e"><div class="ttname"><a href="a00156.html#ga150731e2a148eff8752114a0e450505e">glm::bvec3</a></div><div class="ttdeci">highp_bvec3 bvec3</div><div class="ttdoc">3 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00567">type_vec.hpp:567</a></div></div>
+<div class="ttc" id="a00157_html_ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><div class="ttname"><a href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">glm::lowp_ivec2</a></div><div class="ttdeci">tvec2&lt; int, lowp &gt; lowp_ivec2</div><div class="ttdoc">2 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00189">type_vec.hpp:189</a></div></div>
+<div class="ttc" id="a00157_html_ga8330bf0d7e6d03ca12ee2b1334c2c30f"><div class="ttname"><a href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">glm::highp_ivec3</a></div><div class="ttdeci">tvec3&lt; int, highp &gt; highp_ivec3</div><div class="ttdoc">3 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00285">type_vec.hpp:285</a></div></div>
+<div class="ttc" id="a00156_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00464">type_vec.hpp:464</a></div></div>
+<div class="ttc" id="a00157_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4&lt; float, highp &gt; highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00349">type_vec.hpp:349</a></div></div>
+<div class="ttc" id="a00157_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2&lt; float, mediump &gt; mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00140">type_vec.hpp:140</a></div></div>
+<div class="ttc" id="a00157_html_ga0424a75bb400571489b8528897f35258"><div class="ttname"><a href="a00157.html#ga0424a75bb400571489b8528897f35258">glm::highp_ivec4</a></div><div class="ttdeci">tvec4&lt; int, highp &gt; highp_ivec4</div><div class="ttdoc">4 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00385">type_vec.hpp:385</a></div></div>
+<div class="ttc" id="a00156_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00508">type_vec.hpp:508</a></div></div>
+<div class="ttc" id="a00157_html_ga28dcda102dd8c94ec500ee786af7a30a"><div class="ttname"><a href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a">glm::lowp_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, lowp &gt; lowp_bvec2</div><div class="ttdoc">2 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00231">type_vec.hpp:231</a></div></div>
+<div class="ttc" id="a00157_html_gafa2087ead0d0e2a3c907e3fbd99f4d85"><div class="ttname"><a href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">glm::lowp_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, lowp &gt; lowp_bvec4</div><div class="ttdoc">4 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00433">type_vec.hpp:433</a></div></div>
+<div class="ttc" id="a00157_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4&lt; float, mediump &gt; mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00355">type_vec.hpp:355</a></div></div>
+<div class="ttc" id="a00157_html_ga61359f5531550e45871a97589d8dcce1"><div class="ttname"><a href="a00157.html#ga61359f5531550e45871a97589d8dcce1">glm::highp_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, highp &gt; highp_uvec4</div><div class="ttdoc">4 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00403">type_vec.hpp:403</a></div></div>
+<div class="ttc" id="a00157_html_gaca7c2a58eb926799c30ad547a290fccf"><div class="ttname"><a href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf">glm::highp_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, highp &gt; highp_bvec3</div><div class="ttdoc">3 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00326">type_vec.hpp:326</a></div></div>
+<div class="ttc" id="a00157_html_ga01d2c9b292e27518e4d6f8442607e8aa"><div class="ttname"><a href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa">glm::highp_dvec3</a></div><div class="ttdeci">tvec3&lt; double, highp &gt; highp_dvec3</div><div class="ttdoc">3 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00264">type_vec.hpp:264</a></div></div>
+<div class="ttc" id="a00156_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00125_source.html#l00545">type_vec.hpp:545</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00126.html b/3rdparty/glm/doc/api/a00126.html
index 8fbce27cbcd..075933a3234 100644
--- a/3rdparty/glm/doc/api/a00126.html
+++ b/3rdparty/glm/doc/api/a00126.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x4.hpp File Reference</title>
+<title>0.9.9 API documenation: type_vec1.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x4.hpp File Reference</div> </div>
+<div class="title">type_vec1.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00126_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00126_source.html">type_mat3x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00126_source.html">type_vec1.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00126_source.html b/3rdparty/glm/doc/api/a00126_source.html
index 3687710fc44..c6cc2af9b57 100644
--- a/3rdparty/glm/doc/api/a00126_source.html
+++ b/3rdparty/glm/doc/api/a00126_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x4.hpp Source File</title>
+<title>0.9.9 API documenation: type_vec1.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,203 +64,327 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x4.hpp</div> </div>
+<div class="title">type_vec1.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00126.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>tmat3x4</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 3;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; col_type value[3];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat3x4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat3x4(tmat3x4&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tmat3x4(tmat3x4&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL explicit tmat3x4(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL explicit tmat3x4(T const &amp; s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0, T const &amp; w0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1, T const &amp; w1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T const &amp; x2, T const &amp; y2, T const &amp; z2, T const &amp; w2);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; col_type const &amp; v2);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; template&lt;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; typename X2, typename Y2, typename Z2, typename W2,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; typename X3, typename Y3, typename Z3, typename W3&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1, W1 const &amp; w1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2, W2 const &amp; w2,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; X3 const &amp; x3, Y3 const &amp; y3, Z3 const &amp; z3, W3 const &amp; w3);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; template &lt;typename V1, typename V2, typename V3&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; tvec4&lt;V1, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; tvec4&lt;V2, P&gt; const &amp; v2,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; tvec4&lt;V3, P&gt; const &amp; v3);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">type_vec.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">struct </span>tvec1</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> tvec1&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, P&gt; bool_type;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">union</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; T x;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; T r;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; T s;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, x)</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, r)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, s)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, x)</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, r)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, s)</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, x)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, r)</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, s)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"># endif//GLM_SWIZZLE*/</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">union </span>{T x, r, s;};</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, P, tvec2, tvec2, tvec3, tvec4)</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"># endif//GLM_SWIZZLE*/</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 1;}</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec1() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1&lt;T, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec1(ctor);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec1(T scalar);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec2&lt;U, Q&gt; const &amp; v);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x4&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL explicit tmat3x4(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec3&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec4&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec1&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"># if(GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> template &lt;int E0&gt;</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> GLM_FUNC_DECL tvec1(detail::_swizzle&lt;1, T, P, tvec1, E0, -1,-2,-3&gt; const &amp; that)</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> {</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> *this = that();</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> }</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"># endif//(GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator=(tvec1&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator=(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator=(tmat3x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator+=(tmat3x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator-=(tmat3x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; };</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator+(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator+(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator-(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator-(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator+=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator-=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator*=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator/=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; template &lt;typename U&gt;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; };</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::col_type operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; const &amp; v);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat3x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; const &amp; v);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator/(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator-(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator- (tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#include &quot;type_mat3x4.inl&quot;</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator*(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator/(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator%(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&amp;(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator|(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator^(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&lt;&lt;(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; const &amp; v, T scalar);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&gt;&gt;(T scalar, tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator~(tvec1&lt;T, P&gt; const &amp; v);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; template &lt;typename T, precision P&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec1&lt;T, P&gt; const &amp; v1, tvec1&lt;T, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; template &lt;precision P&gt;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec1&lt;<span class="keywordtype">bool</span>, P&gt; operator&amp;&amp;(tvec1&lt;<span class="keywordtype">bool</span>, P&gt; const &amp; v1, tvec1&lt;<span class="keywordtype">bool</span>, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; template &lt;precision P&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tvec1&lt;<span class="keywordtype">bool</span>, P&gt; operator||(tvec1&lt;<span class="keywordtype">bool</span>, P&gt; const &amp; v1, tvec1&lt;<span class="keywordtype">bool</span>, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#include &quot;type_vec1.inl&quot;</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00127.html b/3rdparty/glm/doc/api/a00127.html
index 40f4f05af54..6f113b6a87d 100644
--- a/3rdparty/glm/doc/api/a00127.html
+++ b/3rdparty/glm/doc/api/a00127.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x2.hpp File Reference</title>
+<title>0.9.9 API documenation: type_vec2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x2.hpp File Reference</div> </div>
+<div class="title">type_vec2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00127_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-10-01 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00127_source.html">type_mat4x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00127_source.html">type_vec2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00127_source.html b/3rdparty/glm/doc/api/a00127_source.html
index d2d600745ac..dc50acc778e 100644
--- a/3rdparty/glm/doc/api/a00127_source.html
+++ b/3rdparty/glm/doc/api/a00127_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x2.hpp Source File</title>
+<title>0.9.9 API documenation: type_vec2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,208 +64,413 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x2.hpp</div> </div>
+<div class="title">type_vec2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00127.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">type_vec2.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>tmat4x2</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 2;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; col_type value[4];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat4x2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat4x2(tmat4x2&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tmat4x2(tmat4x2&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL explicit tmat4x2(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL explicit tmat4x2(T const &amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T const &amp; x0, T const &amp; y0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T const &amp; x1, T const &amp; y1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T const &amp; x2, T const &amp; y2,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; T const &amp; x3, T const &amp; y3);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; col_type const &amp; v2,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; col_type const &amp; v3);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">type_vec.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>tvec2</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, P&gt; bool_type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">union</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">struct</span>{ T x, y; };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">struct</span>{ T r, g; };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct</span>{ T s, t; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, x, y)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; _GLM_SWIZZLE2_2_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec2, r, g)</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; _GLM_SWIZZLE2_2_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec2, s, t)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; _GLM_SWIZZLE2_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, x, y)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; _GLM_SWIZZLE2_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, r, g)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; _GLM_SWIZZLE2_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, s, t)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; _GLM_SWIZZLE2_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, x, y)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; _GLM_SWIZZLE2_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, r, g)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; _GLM_SWIZZLE2_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, s, t)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">union </span>{T x, r, s;};</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">union </span>{T y, g, t;};</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 2;}</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; template &lt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; typename X1, typename Y1,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; typename X2, typename Y2,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; typename X3, typename Y3,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; typename X4, typename Y4&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; X1 const &amp; x1, Y1 const &amp; y1,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; X2 const &amp; x2, Y2 const &amp; y2,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; X3 const &amp; x3, Y3 const &amp; y3,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; X4 const &amp; x4, Y4 const &amp; y4);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2&lt;T, P&gt; const&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2&lt;T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec2(ctor);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(T scalar);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec2(T s1, T s2);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; template &lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; tvec2&lt;V1, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; tvec2&lt;V2, P&gt; const &amp; v2,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; tvec2&lt;V3, P&gt; const &amp; v3,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tvec2&lt;V4, P&gt; const &amp; v4);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x2&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL explicit tmat4x2(tmat3x4&lt;T, P&gt; const &amp; x);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; template &lt;typename A, typename B&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec2(A x, B y);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; template &lt;typename A, typename B&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec1&lt;A, P&gt; const &amp; v1, tvec1&lt;B, P&gt; const &amp; v2);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec3&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec4&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec2&lt;U, Q&gt; const &amp; v);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator=(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator=(tmat4x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator+=(tmat4x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator-=(tmat4x2&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator++ ();</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; &amp; operator-- ();</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; };</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator+(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator+(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator-(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator-(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::col_type operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat4x2&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator*(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator/(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL tvec2(detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1,-1,-2&gt; <span class="keyword">const</span>&amp; that)</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"># endif// GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator=(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator+=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator-=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator*=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator/=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator%=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&amp;=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator|=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator^=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// -- Unary operators --</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x2&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#include &quot;type_mat4x2.inl&quot;</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(T scalar, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator~(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">template</span> &lt;precision P&gt;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; GLM_FUNC_DECL tvec2&lt;bool, P&gt; operator&amp;&amp;(tvec2&lt;bool, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;bool, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">template</span> &lt;precision P&gt;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; GLM_FUNC_DECL tvec2&lt;bool, P&gt; operator||(tvec2&lt;bool, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;bool, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#include &quot;type_vec2.inl&quot;</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00128.html b/3rdparty/glm/doc/api/a00128.html
index d21cc313cb7..01c94a069ea 100644
--- a/3rdparty/glm/doc/api/a00128.html
+++ b/3rdparty/glm/doc/api/a00128.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x3.hpp File Reference</title>
+<title>0.9.9 API documenation: type_vec3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x3.hpp File Reference</div> </div>
+<div class="title">type_vec3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00128_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-04 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00128_source.html">type_mat4x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00128_source.html">type_vec3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00128_source.html b/3rdparty/glm/doc/api/a00128_source.html
index 52d8417aa5f..4db3e140c45 100644
--- a/3rdparty/glm/doc/api/a00128_source.html
+++ b/3rdparty/glm/doc/api/a00128_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x3.hpp Source File</title>
+<title>0.9.9 API documenation: type_vec3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,208 +64,431 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x3.hpp</div> </div>
+<div class="title">type_vec3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00128.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">type_vec3.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>tmat4x3</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 3;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; col_type value[4];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL tmat4x3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL tmat4x3(tmat4x3&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL tmat4x3(tmat4x3&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL explicit tmat4x3(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL explicit tmat4x3(T const &amp; x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; T const &amp; x2, T const &amp; y2, T const &amp; z2,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; T const &amp; x3, T const &amp; y3, T const &amp; z3);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; col_type const &amp; v2,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; col_type const &amp; v3);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">type_vec.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>tvec3</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, P&gt; bool_type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">union</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">struct</span>{ T x, y, z; };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">struct</span>{ T r, g, b; };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct</span>{ T s, t, p; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, x, y, z)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; _GLM_SWIZZLE3_2_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec2, r, g, b)</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; _GLM_SWIZZLE3_2_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec2, s, t, p)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; _GLM_SWIZZLE3_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, x, y, z)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; _GLM_SWIZZLE3_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, r, g, b)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; _GLM_SWIZZLE3_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, s, t, p)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; _GLM_SWIZZLE3_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, x, y, z)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; _GLM_SWIZZLE3_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, r, g, b)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; _GLM_SWIZZLE3_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, s, t, p)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; };</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">union </span>{ T x, r, s; };</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">union </span>{ T y, g, t; };</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 3;}</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; template &lt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; typename X1, typename Y1, typename Z1,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; typename X2, typename Y2, typename Z2,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; typename X3, typename Y3, typename Z3,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; typename X4, typename Y4, typename Z4&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; X3 const &amp; x3, Y3 const &amp; y3, Z3 const &amp; z3,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; X4 const &amp; x4, Y4 const &amp; y4, Z4 const &amp; z4);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3&lt;T, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec3(ctor);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(T scalar);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(T a, T b, T c);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; template &lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; tvec3&lt;V1, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; tvec3&lt;V2, P&gt; const &amp; v2,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; tvec3&lt;V3, P&gt; const &amp; v3,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tvec3&lt;V4, P&gt; const &amp; v4);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x3&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat4x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL explicit tmat4x3(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator=(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator=(tmat4x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator+=(tmat4x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator-=(tmat4x3&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; };</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator+(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator+(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator-(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator-(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; template &lt;typename A, typename B, typename C&gt;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, B b, C c);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; template &lt;typename A, typename B, typename C&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1&lt;A, P&gt; const &amp; a, tvec1&lt;B, P&gt; const &amp; b, tvec1&lt;C, P&gt; const &amp; c);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2&lt;A, Q&gt; const &amp; a, B b);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, tvec2&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1&lt;A, Q&gt; const &amp; a, tvec2&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec4&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec3&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL tvec3(detail::_swizzle&lt;3, T, P, glm::tvec3, E0, E1, E2, -1&gt; <span class="keyword">const</span> &amp; that)</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL tvec3(detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; scalar)</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; *<span class="keyword">this</span> = tvec3&lt;T, P&gt;(v(), scalar);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL tvec3(T <span class="keyword">const</span> &amp; scalar, detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; *<span class="keyword">this</span> = tvec3&lt;T, P&gt;(scalar, v());</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"># endif// GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator=(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator+=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator-=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator*=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator/=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::col_type operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat4x3&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator*(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator/(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x3&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#include &quot;type_mat4x3.inl&quot;</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator%=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&amp;=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator|=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator^=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; };</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(T <span class="keyword">const</span> &amp; scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T scalar);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(T scalar, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator~(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">template</span> &lt;precision P&gt;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; GLM_FUNC_DECL tvec3&lt;bool, P&gt; operator&amp;&amp;(tvec3&lt;bool, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;bool, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keyword">template</span> &lt;precision P&gt;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; GLM_FUNC_DECL tvec3&lt;bool, P&gt; operator||(tvec3&lt;bool, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;bool, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#include &quot;type_vec3.inl&quot;</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00129.html b/3rdparty/glm/doc/api/a00129.html
index 102ec7c550f..293b3fcfc6b 100644
--- a/3rdparty/glm/doc/api/a00129.html
+++ b/3rdparty/glm/doc/api/a00129.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x4.hpp File Reference</title>
+<title>0.9.9 API documenation: type_vec4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x4.hpp File Reference</div> </div>
+<div class="title">type_vec4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00129_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-27 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00129_source.html">type_mat4x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00129_source.html">type_vec4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00129_source.html b/3rdparty/glm/doc/api/a00129_source.html
index e30da42623e..c37bada84bc 100644
--- a/3rdparty/glm/doc/api/a00129_source.html
+++ b/3rdparty/glm/doc/api/a00129_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x4.hpp Source File</title>
+<title>0.9.9 API documenation: type_vec4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,230 +64,470 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x4.hpp</div> </div>
+<div class="title">type_vec4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00129.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">type_vec4.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00120.html">type_mat.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>tmat4x4</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; col_type;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; row_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;T, P&gt; transpose_type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, precision Q&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">friend</span> tvec4&lt;U, Q&gt; operator/(tmat4x4&lt;U, Q&gt; <span class="keyword">const</span> &amp; m, tvec4&lt;U, Q&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U, precision Q&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">friend</span> tvec4&lt;U, Q&gt; operator/(tvec4&lt;U, Q&gt; <span class="keyword">const</span> &amp; v, tmat4x4&lt;U, Q&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; col_type value[4];</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; GLM_FUNC_DECL tmat4x4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL tmat4x4(tmat4x4&lt;T, P&gt; const &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL tmat4x4(tmat4x4&lt;T, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_DECL explicit tmat4x4(ctor);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL explicit tmat4x4(T const &amp; x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T const &amp; x0, T const &amp; y0, T const &amp; z0, T const &amp; w0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; T const &amp; x1, T const &amp; y1, T const &amp; z1, T const &amp; w1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; T const &amp; x2, T const &amp; y2, T const &amp; z2, T const &amp; w2,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; T const &amp; x3, T const &amp; y3, T const &amp; z3, T const &amp; w3);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; col_type const &amp; v0,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; col_type const &amp; v1,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; col_type const &amp; v2,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; col_type const &amp; v3);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; template &lt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; typename X2, typename Y2, typename Z2, typename W2,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; typename X3, typename Y3, typename Z3, typename W3,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; typename X4, typename Y4, typename Z4, typename W4&gt;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; X1 const &amp; x1, Y1 const &amp; y1, Z1 const &amp; z1, W1 const &amp; w1,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; X2 const &amp; x2, Y2 const &amp; y2, Z2 const &amp; z2, W2 const &amp; w2,</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; X3 const &amp; x3, Y3 const &amp; y3, Z3 const &amp; z3, W3 const &amp; w3,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; X4 const &amp; x4, Y4 const &amp; y4, Z4 const &amp; z4, W4 const &amp; w4);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; template &lt;typename V1, typename V2, typename V3, typename V4&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; tvec4&lt;V1, P&gt; const &amp; v1,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; tvec4&lt;V2, P&gt; const &amp; v2,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; tvec4&lt;V3, P&gt; const &amp; v3,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; tvec4&lt;V4, P&gt; const &amp; v4);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00125.html">type_vec.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>tvec4</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, P&gt; bool_type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-anonymous-struct&quot;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wnested-anon-types&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">union</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">struct </span>{ T x, y, z, w;};</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">struct </span>{ T r, g, b, a; };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">struct </span>{ T s, t, p, q; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typename</span> detail::storage&lt;T, sizeof(T) * 4, detail::is_aligned&lt;P&gt;::value&gt;::type data;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, x, y, z, w)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; _GLM_SWIZZLE4_2_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec2, r, g, b, a)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; _GLM_SWIZZLE4_2_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec2, s, t, p, q)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; _GLM_SWIZZLE4_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, x, y, z, w)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; _GLM_SWIZZLE4_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, r, g, b, a)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; _GLM_SWIZZLE4_3_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec3, s, t, p, q)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; _GLM_SWIZZLE4_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, x, y, z, w)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; _GLM_SWIZZLE4_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, r, g, b, a)</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; _GLM_SWIZZLE4_4_MEMBERS(T, P, <a class="code" href="a00140.html">glm</a>::tvec4, s, t, p, q)</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># if GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">union </span>{ T x, r, s; };</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">union </span>{ T y, g, t; };</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">union </span>{ T w, a, q; };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL <span class="keyword">static</span> length_type <a class="code" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(){<span class="keywordflow">return</span> 4;}</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(tvec4&lt;T, P&gt; const&amp; v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; template &lt;precision Q&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(tvec4&lt;T, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit tvec4(ctor);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit tvec4(T scalar);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(T a, T b, T c, T d);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; template &lt;typename A, typename B, typename C, typename D&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(A a, B b, C c, D d);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; template &lt;typename A, typename B, typename C, typename D&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR_CTOR tvec4(tvec1&lt;A, P&gt; const&amp; a, tvec1&lt;B, P&gt; const&amp; b, tvec1&lt;C, P&gt; const&amp; c, tvec1&lt;D, P&gt; const&amp; d);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x4&lt;U, Q&gt; const &amp; m);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat2x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat3x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat2x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat3x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat2x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat4x2&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat3x4&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL explicit tmat4x4(tmat4x3&lt;T, P&gt; const &amp; x);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL col_type &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL col_type <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator=(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator+=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator-=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator*=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator/=(tmat4x4&lt;U, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; <span class="keyword">const</span> operator-(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2&lt;A, Q&gt; const &amp; a, B b, C c);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b, tvec1&lt;C, Q&gt; const &amp; c);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec2&lt;B, Q&gt; const &amp; b, C c);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1&lt;A, Q&gt; const &amp; a, tvec2&lt;B, Q&gt; const &amp; b, tvec1&lt;C, Q&gt; const &amp; c);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, tvec2&lt;C, Q&gt; const &amp; c);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b, tvec2&lt;C, Q&gt; const &amp; c);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3&lt;A, Q&gt; const &amp; a, B b);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec3&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1&lt;A, Q&gt; const &amp; a, tvec3&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2&lt;A, Q&gt; const &amp; a, tvec2&lt;B, Q&gt; const &amp; b);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; template &lt;typename U, precision Q&gt;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec4(tvec4&lt;U, Q&gt; const&amp; v);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;4, T, P, glm::tvec4, E0, E1, E2, E3&gt; <span class="keyword">const</span> &amp; that)</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> F0, <span class="keywordtype">int</span> F1&gt;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, detail::_swizzle&lt;2, T, P, glm::tvec2, F0, F1, -1, -2&gt; <span class="keyword">const</span> &amp; u)</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(v(), u());</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> &amp; x, T <span class="keyword">const</span> &amp; y, detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(x, y, v());</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> &amp; x, detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; w)</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(x, v(), w);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator+(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator-(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;2, T, P, glm::tvec2, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; z, T <span class="keyword">const</span> &amp; w)</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(v(), z, w);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;3, T, P, glm::tvec3, E0, E1, E2, -1&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; w)</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(v(), w);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> &amp; x, detail::_swizzle&lt;3, T, P, glm::tvec3, E0, E1, E2, -1&gt; <span class="keyword">const</span> &amp; v)</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(x, v());</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"># endif// GLM_HAS_UNRESTRICTED_UNIONS &amp;&amp; (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator=(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type operator*(<span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type <span class="keyword">const</span> &amp; v, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat2x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat3x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator*(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator/(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type operator/(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m, <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator+=(U scalar);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator+=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator-=(U scalar);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator-=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator*=(U scalar);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator*=(tvec4&lt;U, P&gt; <span class="keyword">const</span>&amp; v);</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator/=(U scalar);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator/=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::row_type operator/(<span class="keyword">typename</span> tmat4x4&lt;T, P&gt;::col_type &amp; v, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, P&gt; operator/(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m1, tmat4x4&lt;T, P&gt; <span class="keyword">const</span> &amp; m2);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#include &quot;type_mat4x4.inl&quot;</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator++();</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator--();</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator%=(U scalar);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator%=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&amp;=(U scalar);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&amp;=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator|=(U scalar);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator|=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator^=(U scalar);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator^=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&lt;&lt;=(U scalar);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&gt;&gt;=(U scalar);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; };</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator~(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">template</span> &lt;precision P&gt;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; operator&amp;&amp;(tvec4&lt;bool, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;bool, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">template</span> &lt;precision P&gt;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; GLM_FUNC_DECL tvec4&lt;bool, P&gt; operator||(tvec4&lt;bool, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;bool, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="preprocessor">#include &quot;type_vec4.inl&quot;</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00147_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00130.html b/3rdparty/glm/doc/api/a00130.html
index 0a61195327e..22302c48b05 100644
--- a/3rdparty/glm/doc/api/a00130.html
+++ b/3rdparty/glm/doc/api/a00130.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_precision.hpp File Reference</title>
+<title>0.9.9 API documenation: ulp.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,34 +64,70 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_precision.hpp File Reference</div> </div>
+<div class="title">ulp.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00179.html">GLM_GTC_ulp</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00130_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &amp;x, T const &amp;y)</td></tr>
+<tr class="memdesc:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the distance in the number of ULP between 2 scalars. <a href="a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634">More...</a><br /></td></tr>
+<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga85355f2549d75789eb66e5d565d8ad26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the distance in the number of ULP between 2 vectors. <a href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">More...</a><br /></td></tr>
+<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:gae516ae554faa6117660828240e8bdaf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the next ULP value(s) after the input value(s). <a href="a00179.html#gae516ae554faa6117660828240e8bdaf0">More...</a><br /></td></tr>
+<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
+<tr class="memdesc:gad107ec3d9697ef82032a33338a73ebdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the value(s) ULP distance after the input value(s). <a href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">More...</a><br /></td></tr>
+<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the previous ULP value(s) before the input value(s). <a href="a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07">More...</a><br /></td></tr>
+<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
+<tr class="memdesc:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the value(s) ULP distance before the input value(s). <a href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">More...</a><br /></td></tr>
+<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00181.html">GLM_GTC_type_precision</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-04 / 2011-12-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00179.html">GLM_GTC_ulp</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00130_source.html">type_precision.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00130_source.html">ulp.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00130_source.html b/3rdparty/glm/doc/api/a00130_source.html
index 7317c72cb80..8015b2688c2 100644
--- a/3rdparty/glm/doc/api/a00130_source.html
+++ b/3rdparty/glm/doc/api/a00130_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_precision.hpp Source File</title>
+<title>0.9.9 API documenation: ulp.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,648 +64,71 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_precision.hpp</div> </div>
+<div class="title">ulp.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00130.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_precision extension included&quot;)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Signed int vector types </span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">typedef</span> detail::int8 int8;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">typedef</span> detail::int16 int16;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">typedef</span> detail::int32 int32;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">typedef</span> detail::int64 int64;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i8, defaultp&gt; <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i8, defaultp&gt; <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i8, defaultp&gt; <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i8, defaultp&gt; <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i16, defaultp&gt; <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i16, defaultp&gt; <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i16, defaultp&gt; <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i16, defaultp&gt; <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i32, defaultp&gt; <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i32, defaultp&gt; <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i32, defaultp&gt; <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i32, defaultp&gt; <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">typedef</span> tvec1&lt;i64, defaultp&gt; <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">typedef</span> tvec2&lt;i64, defaultp&gt; <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">typedef</span> tvec3&lt;i64, defaultp&gt; <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">typedef</span> tvec4&lt;i64, defaultp&gt; <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="comment">// Unsigned int vector types</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; </div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; </div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; </div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; </div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">typedef</span> detail::uint8 uint8;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">typedef</span> detail::uint16 uint16;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">typedef</span> detail::uint32 uint32;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keyword">typedef</span> detail::uint64 uint64;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">using</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; </div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; </div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u8, defaultp&gt; <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u8, defaultp&gt; <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u8, defaultp&gt; <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u8, defaultp&gt; <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u16, defaultp&gt; <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; </div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u16, defaultp&gt; <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u16, defaultp&gt; <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u16, defaultp&gt; <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u32, defaultp&gt; <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; </div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u32, defaultp&gt; <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u32, defaultp&gt; <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u32, defaultp&gt; <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keyword">typedef</span> tvec1&lt;u64, defaultp&gt; <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; </div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keyword">typedef</span> tvec2&lt;u64, defaultp&gt; <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keyword">typedef</span> tvec3&lt;u64, defaultp&gt; <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keyword">typedef</span> tvec4&lt;u64, defaultp&gt; <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// Float vector types</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keyword">typedef</span> detail::float32 float32;</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keyword">typedef</span> detail::float64 float64;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">typedef</span> detail::float32 <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keyword">typedef</span> detail::float64 <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">typedef</span> float32 <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keyword">typedef</span> float64 <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, defaultp&gt; <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, defaultp&gt; <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, defaultp&gt; <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, defaultp&gt; <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; </div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">typedef</span> tvec1&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keyword">typedef</span> tvec2&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keyword">typedef</span> tvec3&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keyword">typedef</span> tvec4&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// Float matrix types </span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32&gt; fmat1;</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">//typedef f32 fmat1x1;</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f32, defaultp&gt; f32mat1;</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="comment">//typedef f32 f32mat1x1;</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f32, defaultp&gt; <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="comment">//typedef detail::tmat1x1&lt;f64, defaultp&gt; f64mat1;</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="comment">//typedef f64 f64mat1x1;</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keyword">typedef</span> tmat2x2&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keyword">typedef</span> tmat2x3&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keyword">typedef</span> tmat2x4&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keyword">typedef</span> tmat3x2&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keyword">typedef</span> tmat3x3&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keyword">typedef</span> tmat3x4&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;</div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keyword">typedef</span> tmat4x2&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keyword">typedef</span> tmat4x3&lt;f64, defaultp&gt; <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keyword">typedef</span> tmat4x4&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="comment">// Quaternion types</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keyword">typedef</span> tquat&lt;f32, defaultp&gt; <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keyword">typedef</span> tquat&lt;f64, defaultp&gt; <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="preprocessor">#include &quot;type_precision.inl&quot;</span></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00740">fwd.hpp:740</a></div></div>
-<div class="ttc" id="a00181_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00157">fwd.hpp:157</a></div></div>
-<div class="ttc" id="a00181_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00181.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00133">fwd.hpp:133</a></div></div>
-<div class="ttc" id="a00181_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01082">fwd.hpp:1082</a></div></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00181_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00736">fwd.hpp:736</a></div></div>
-<div class="ttc" id="a00181_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02364">fwd.hpp:2364</a></div></div>
-<div class="ttc" id="a00181_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02388">fwd.hpp:2388</a></div></div>
-<div class="ttc" id="a00181_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00723">fwd.hpp:723</a></div></div>
-<div class="ttc" id="a00181_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02482">fwd.hpp:2482</a></div></div>
-<div class="ttc" id="a00181_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00816">fwd.hpp:816</a></div></div>
-<div class="ttc" id="a00181_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00269">fwd.hpp:269</a></div></div>
-<div class="ttc" id="a00181_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01165">fwd.hpp:1165</a></div></div>
-<div class="ttc" id="a00181_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00181.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01014">fwd.hpp:1014</a></div></div>
-<div class="ttc" id="a00181_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00253">fwd.hpp:253</a></div></div>
-<div class="ttc" id="a00181_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00181.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00485">fwd.hpp:485</a></div></div>
-<div class="ttc" id="a00181_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00217">fwd.hpp:217</a></div></div>
-<div class="ttc" id="a00181_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00129">fwd.hpp:129</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00181_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00766">fwd.hpp:766</a></div></div>
-<div class="ttc" id="a00181_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00314">fwd.hpp:314</a></div></div>
-<div class="ttc" id="a00181_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00784">fwd.hpp:784</a></div></div>
-<div class="ttc" id="a00181_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02592">fwd.hpp:2592</a></div></div>
-<div class="ttc" id="a00181_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00757">fwd.hpp:757</a></div></div>
-<div class="ttc" id="a00181_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00221">fwd.hpp:221</a></div></div>
-<div class="ttc" id="a00181_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00719">fwd.hpp:719</a></div></div>
-<div class="ttc" id="a00181_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00265">fwd.hpp:265</a></div></div>
-<div class="ttc" id="a00181_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00774">fwd.hpp:774</a></div></div>
-<div class="ttc" id="a00181_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00261">fwd.hpp:261</a></div></div>
-<div class="ttc" id="a00181_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00257">fwd.hpp:257</a></div></div>
-<div class="ttc" id="a00181_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01169">fwd.hpp:1169</a></div></div>
-<div class="ttc" id="a00181_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02416">fwd.hpp:2416</a></div></div>
-<div class="ttc" id="a00181_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00824">fwd.hpp:824</a></div></div>
-<div class="ttc" id="a00181_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02360">fwd.hpp:2360</a></div></div>
-<div class="ttc" id="a00181_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00177">fwd.hpp:177</a></div></div>
-<div class="ttc" id="a00181_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00874">fwd.hpp:874</a></div></div>
-<div class="ttc" id="a00181_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00812">fwd.hpp:812</a></div></div>
-<div class="ttc" id="a00181_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00552">fwd.hpp:552</a></div></div>
-<div class="ttc" id="a00181_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00866">fwd.hpp:866</a></div></div>
-<div class="ttc" id="a00181_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01090">fwd.hpp:1090</a></div></div>
-<div class="ttc" id="a00181_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00477">fwd.hpp:477</a></div></div>
-<div class="ttc" id="a00181_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02478">fwd.hpp:2478</a></div></div>
-<div class="ttc" id="a00181_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00181.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00564">fwd.hpp:564</a></div></div>
-<div class="ttc" id="a00181_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00141">fwd.hpp:141</a></div></div>
-<div class="ttc" id="a00181_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00181.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02450">fwd.hpp:2450</a></div></div>
-<div class="ttc" id="a00181_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02454">fwd.hpp:2454</a></div></div>
-<div class="ttc" id="a00181_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00181.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02544">fwd.hpp:2544</a></div></div>
-<div class="ttc" id="a00181_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02584">fwd.hpp:2584</a></div></div>
-<div class="ttc" id="a00181_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00169">fwd.hpp:169</a></div></div>
-<div class="ttc" id="a00181_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00181.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00796">fwd.hpp:796</a></div></div>
-<div class="ttc" id="a00181_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02430">fwd.hpp:2430</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00181_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01538">fwd.hpp:1538</a></div></div>
-<div class="ttc" id="a00181_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02588">fwd.hpp:2588</a></div></div>
-<div class="ttc" id="a00181_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02532">fwd.hpp:2532</a></div></div>
-<div class="ttc" id="a00181_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02368">fwd.hpp:2368</a></div></div>
-<div class="ttc" id="a00181_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00209">fwd.hpp:209</a></div></div>
-<div class="ttc" id="a00181_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02474">fwd.hpp:2474</a></div></div>
-<div class="ttc" id="a00181_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02548">fwd.hpp:2548</a></div></div>
-<div class="ttc" id="a00181_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01530">fwd.hpp:1530</a></div></div>
-<div class="ttc" id="a00181_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01002">fwd.hpp:1002</a></div></div>
-<div class="ttc" id="a00181_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02396">fwd.hpp:2396</a></div></div>
-<div class="ttc" id="a00181_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01006">fwd.hpp:1006</a></div></div>
-<div class="ttc" id="a00181_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00181.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01320">fwd.hpp:1320</a></div></div>
-<div class="ttc" id="a00181_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00834">fwd.hpp:834</a></div></div>
-<div class="ttc" id="a00181_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00820">fwd.hpp:820</a></div></div>
-<div class="ttc" id="a00181_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02564">fwd.hpp:2564</a></div></div>
-<div class="ttc" id="a00181_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00792">fwd.hpp:792</a></div></div>
-<div class="ttc" id="a00181_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02466">fwd.hpp:2466</a></div></div>
-<div class="ttc" id="a00181_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00229">fwd.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00233">fwd.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00193">fwd.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02490">fwd.hpp:2490</a></div></div>
-<div class="ttc" id="a00181_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00405">fwd.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00225">fwd.hpp:225</a></div></div>
-<div class="ttc" id="a00181_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02556">fwd.hpp:2556</a></div></div>
-<div class="ttc" id="a00181_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01094">fwd.hpp:1094</a></div></div>
-<div class="ttc" id="a00181_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01324">fwd.hpp:1324</a></div></div>
-<div class="ttc" id="a00181_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00862">fwd.hpp:862</a></div></div>
-<div class="ttc" id="a00181_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01534">fwd.hpp:1534</a></div></div>
-<div class="ttc" id="a00181_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00161">fwd.hpp:161</a></div></div>
-<div class="ttc" id="a00181_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02426">fwd.hpp:2426</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00181_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00770">fwd.hpp:770</a></div></div>
-<div class="ttc" id="a00181_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02380">fwd.hpp:2380</a></div></div>
-<div class="ttc" id="a00181_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02356">fwd.hpp:2356</a></div></div>
-<div class="ttc" id="a00181_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00165">fwd.hpp:165</a></div></div>
-<div class="ttc" id="a00181_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00181.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
-<div class="ttc" id="a00181_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00556">fwd.hpp:556</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00181_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00788">fwd.hpp:788</a></div></div>
-<div class="ttc" id="a00181_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02596">fwd.hpp:2596</a></div></div>
-<div class="ttc" id="a00181_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00241">fwd.hpp:241</a></div></div>
-<div class="ttc" id="a00181_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00850">fwd.hpp:850</a></div></div>
-<div class="ttc" id="a00181_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00393">fwd.hpp:393</a></div></div>
-<div class="ttc" id="a00181_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00473">fwd.hpp:473</a></div></div>
-<div class="ttc" id="a00181_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00205">fwd.hpp:205</a></div></div>
-<div class="ttc" id="a00181_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02372">fwd.hpp:2372</a></div></div>
-<div class="ttc" id="a00181_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="a00181_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00181.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00838">fwd.hpp:838</a></div></div>
-<div class="ttc" id="a00181_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00181.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00744">fwd.hpp:744</a></div></div>
-<div class="ttc" id="a00181_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02376">fwd.hpp:2376</a></div></div>
-<div class="ttc" id="a00181_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01526">fwd.hpp:1526</a></div></div>
-<div class="ttc" id="a00181_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00401">fwd.hpp:401</a></div></div>
-<div class="ttc" id="a00181_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02384">fwd.hpp:2384</a></div></div>
-<div class="ttc" id="a00181_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00213">fwd.hpp:213</a></div></div>
-<div class="ttc" id="a00181_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00804">fwd.hpp:804</a></div></div>
-<div class="ttc" id="a00181_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01173">fwd.hpp:1173</a></div></div>
-<div class="ttc" id="a00181_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02568">fwd.hpp:2568</a></div></div>
-<div class="ttc" id="a00181_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00753">fwd.hpp:753</a></div></div>
-<div class="ttc" id="a00181_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00181">fwd.hpp:181</a></div></div>
-<div class="ttc" id="a00181_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02392">fwd.hpp:2392</a></div></div>
-<div class="ttc" id="a00181_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02400">fwd.hpp:2400</a></div></div>
-<div class="ttc" id="a00181_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01010">fwd.hpp:1010</a></div></div>
-<div class="ttc" id="a00181_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00181.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02540">fwd.hpp:2540</a></div></div>
-<div class="ttc" id="a00181_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00181.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01332">fwd.hpp:1332</a></div></div>
-<div class="ttc" id="a00181_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00197">fwd.hpp:197</a></div></div>
-<div class="ttc" id="a00181_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00149">fwd.hpp:149</a></div></div>
-<div class="ttc" id="a00181_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00181.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02576">fwd.hpp:2576</a></div></div>
-<div class="ttc" id="a00181_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00808">fwd.hpp:808</a></div></div>
-<div class="ttc" id="a00181_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00201">fwd.hpp:201</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02560">fwd.hpp:2560</a></div></div>
-<div class="ttc" id="a00181_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02442">fwd.hpp:2442</a></div></div>
-<div class="ttc" id="a00181_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02458">fwd.hpp:2458</a></div></div>
-<div class="ttc" id="a00181_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00854">fwd.hpp:854</a></div></div>
-<div class="ttc" id="a00181_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00397">fwd.hpp:397</a></div></div>
-<div class="ttc" id="a00181_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00245">fwd.hpp:245</a></div></div>
-<div class="ttc" id="a00181_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00137">fwd.hpp:137</a></div></div>
-<div class="ttc" id="a00181_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00181.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00878">fwd.hpp:878</a></div></div>
-<div class="ttc" id="a00181_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00181.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02572">fwd.hpp:2572</a></div></div>
-<div class="ttc" id="a00181_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00185">fwd.hpp:185</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00181_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00181.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02486">fwd.hpp:2486</a></div></div>
-<div class="ttc" id="a00181_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00778">fwd.hpp:778</a></div></div>
-<div class="ttc" id="a00181_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00828">fwd.hpp:828</a></div></div>
-<div class="ttc" id="a00181_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00761">fwd.hpp:761</a></div></div>
-<div class="ttc" id="a00181_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00858">fwd.hpp:858</a></div></div>
-<div class="ttc" id="a00181_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00181.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00481">fwd.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02404">fwd.hpp:2404</a></div></div>
-<div class="ttc" id="a00181_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00249">fwd.hpp:249</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02434">fwd.hpp:2434</a></div></div>
-<div class="ttc" id="a00181_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02580">fwd.hpp:2580</a></div></div>
-<div class="ttc" id="a00181_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00181.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02552">fwd.hpp:2552</a></div></div>
-<div class="ttc" id="a00181_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00842">fwd.hpp:842</a></div></div>
-<div class="ttc" id="a00181_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00870">fwd.hpp:870</a></div></div>
-<div class="ttc" id="a00181_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02446">fwd.hpp:2446</a></div></div>
-<div class="ttc" id="a00181_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02408">fwd.hpp:2408</a></div></div>
-<div class="ttc" id="a00181_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00181.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00800">fwd.hpp:800</a></div></div>
-<div class="ttc" id="a00181_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00322">fwd.hpp:322</a></div></div>
-<div class="ttc" id="a00181_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02438">fwd.hpp:2438</a></div></div>
-<div class="ttc" id="a00181_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00181.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00560">fwd.hpp:560</a></div></div>
-<div class="ttc" id="a00181_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00181.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01086">fwd.hpp:1086</a></div></div>
-<div class="ttc" id="a00181_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00181.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
-<div class="ttc" id="a00181_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
-<div class="ttc" id="a00181_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00318">fwd.hpp:318</a></div></div>
-<div class="ttc" id="a00181_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00181.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02462">fwd.hpp:2462</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00181_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00237">fwd.hpp:237</a></div></div>
-<div class="ttc" id="a00181_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01161">fwd.hpp:1161</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-<div class="ttc" id="a00181_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00181.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02470">fwd.hpp:2470</a></div></div>
-<div class="ttc" id="a00181_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00181.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02412">fwd.hpp:2412</a></div></div>
-<div class="ttc" id="a00181_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00189">fwd.hpp:189</a></div></div>
-<div class="ttc" id="a00181_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00153">fwd.hpp:153</a></div></div>
-<div class="ttc" id="a00181_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02536">fwd.hpp:2536</a></div></div>
-<div class="ttc" id="a00181_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00846">fwd.hpp:846</a></div></div>
-<div class="ttc" id="a00181_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00181.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00326">fwd.hpp:326</a></div></div>
-<div class="ttc" id="a00181_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01328">fwd.hpp:1328</a></div></div>
-<div class="ttc" id="a00181_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00173">fwd.hpp:173</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../detail/type_int.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_ulp extension included&quot;)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> &amp; x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> &amp; Distance);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> &amp; Distance);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; GLM_FUNC_DECL <a class="code" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(T <span class="keyword">const</span> &amp; x, T <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; GLM_FUNC_DECL vecType&lt;uint&gt; <a class="code" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(vecType&lt;T&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;ulp.inl&quot;</span></div>
+<div class="ttc" id="a00157_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00111_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00179_html_gaa399d5b6472a70e8952f9b26ecaacdec"><div class="ttname"><a href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">glm::prev_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType prev_float(genType const &amp;x, uint const &amp;Distance)</div><div class="ttdoc">Return the value(s) ULP distance before the input value(s). </div></div>
+<div class="ttc" id="a00179_html_gad107ec3d9697ef82032a33338a73ebdd"><div class="ttname"><a href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">glm::next_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType next_float(genType const &amp;x, uint const &amp;Distance)</div><div class="ttdoc">Return the value(s) ULP distance after the input value(s). </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00179_html_ga85355f2549d75789eb66e5d565d8ad26"><div class="ttname"><a href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">glm::float_distance</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint &gt; float_distance(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</div><div class="ttdoc">Return the distance in the number of ULP between 2 vectors. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00131.html b/3rdparty/glm/doc/api/a00131.html
index 70c913e0897..664be7d3fcb 100644
--- a/3rdparty/glm/doc/api/a00131.html
+++ b/3rdparty/glm/doc/api/a00131.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_ptr.hpp File Reference</title>
+<title>0.9.9 API documenation: vec1.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,91 +64,97 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_ptr.hpp File Reference</div> </div>
+<div class="title">vec1.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00180.html">GLM_GTC_vec1</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00131_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &amp;vec)</td></tr>
-<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a97f808440fd5411e2c46a55db01329f0"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1&#160;</td><td class="memItemRight" valign="bottom"><b>bvec1</b></td></tr>
+<tr class="memdesc:a97f808440fd5411e2c46a55db01329f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of boolean. <a href="a00140.html#a97f808440fd5411e2c46a55db01329f0">More...</a><br /></td></tr>
+<tr class="separator:a97f808440fd5411e2c46a55db01329f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1&#160;</td><td class="memItemRight" valign="bottom"><b>dvec1</b></td></tr>
+<tr class="memdesc:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of floating-point numbers. <a href="a00140.html#af5895ca3a2b8ff8239bdcd5d153fa5ab">More...</a><br /></td></tr>
+<tr class="separator:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb1dfdb295030ec2965eed463009d9aa"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_bvec1</b></td></tr>
+<tr class="memdesc:abb1dfdb295030ec2965eed463009d9aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of high precision boolean. <a href="a00140.html#abb1dfdb295030ec2965eed463009d9aa">More...</a><br /></td></tr>
+<tr class="separator:abb1dfdb295030ec2965eed463009d9aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_dvec1</b></td></tr>
+<tr class="memdesc:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of high precision floating-point numbers. <a href="a00140.html#ae0b25a2a5d5abf7001aecefaf0ad8d0e">More...</a><br /></td></tr>
+<tr class="separator:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_ivec1</b></td></tr>
+<tr class="memdesc:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of high precision signed integer numbers. <a href="a00140.html#aad38f7770219bb7a4b84a7d5c68d7f7d">More...</a><br /></td></tr>
+<tr class="separator:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae38198c95c92d34875ca31f4b7c14d27"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_uvec1</b></td></tr>
+<tr class="memdesc:ae38198c95c92d34875ca31f4b7c14d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of high precision unsigned integer numbers. <a href="a00140.html#ae38198c95c92d34875ca31f4b7c14d27">More...</a><br /></td></tr>
+<tr class="separator:ae38198c95c92d34875ca31f4b7c14d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1&#160;</td><td class="memItemRight" valign="bottom"><b>ivec1</b></td></tr>
+<tr class="memdesc:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of signed integer numbers. <a href="a00140.html#ac424dc0bcb8f78bb57f5f9350a36d9b5">More...</a><br /></td></tr>
+<tr class="separator:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac42347907bf39ce2adc41f764c7e6c99"><td class="memItemLeft" align="right" valign="top">typedef lowp_bvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_bvec1</b></td></tr>
+<tr class="memdesc:ac42347907bf39ce2adc41f764c7e6c99"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of low precision boolean. <a href="a00140.html#ac42347907bf39ce2adc41f764c7e6c99">More...</a><br /></td></tr>
+<tr class="separator:ac42347907bf39ce2adc41f764c7e6c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memItemLeft" align="right" valign="top">typedef lowp_dvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_dvec1</b></td></tr>
+<tr class="memdesc:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of low precision floating-point numbers. <a href="a00140.html#a9a00665cc5ffd8bb7dea1262a421d07b">More...</a><br /></td></tr>
+<tr class="separator:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62179513d4c3d38f5f7d73756220e568"><td class="memItemLeft" align="right" valign="top">typedef lowp_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_ivec1</b></td></tr>
+<tr class="memdesc:a62179513d4c3d38f5f7d73756220e568"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of low precision signed integer numbers. <a href="a00140.html#a62179513d4c3d38f5f7d73756220e568">More...</a><br /></td></tr>
+<tr class="separator:a62179513d4c3d38f5f7d73756220e568"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memItemLeft" align="right" valign="top">typedef lowp_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_uvec1</b></td></tr>
+<tr class="memdesc:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of low precision unsigned integer numbers. <a href="a00140.html#ab73c0a6f4fe24ce30e808b6c4f511935">More...</a><br /></td></tr>
+<tr class="separator:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac363ee47ee16b0361db847c5a97e821"><td class="memItemLeft" align="right" valign="top">typedef mediump_bvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_bvec1</b></td></tr>
+<tr class="memdesc:aac363ee47ee16b0361db847c5a97e821"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of medium precision boolean. <a href="a00140.html#aac363ee47ee16b0361db847c5a97e821">More...</a><br /></td></tr>
+<tr class="separator:aac363ee47ee16b0361db847c5a97e821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08d652d636a98a60782ac109f0273931"><td class="memItemLeft" align="right" valign="top">typedef mediump_dvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_dvec1</b></td></tr>
+<tr class="memdesc:a08d652d636a98a60782ac109f0273931"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of medium precision floating-point numbers. <a href="a00140.html#a08d652d636a98a60782ac109f0273931">More...</a><br /></td></tr>
+<tr class="separator:a08d652d636a98a60782ac109f0273931"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2b635f944fd11622a4f23f783f0c01e"><td class="memItemLeft" align="right" valign="top">typedef mediump_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_ivec1</b></td></tr>
+<tr class="memdesc:ae2b635f944fd11622a4f23f783f0c01e"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of medium precision signed integer numbers. <a href="a00140.html#ae2b635f944fd11622a4f23f783f0c01e">More...</a><br /></td></tr>
+<tr class="separator:ae2b635f944fd11622a4f23f783f0c01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a265324081f85d36db159677d8ca35fd1"><td class="memItemLeft" align="right" valign="top">typedef mediump_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_uvec1</b></td></tr>
+<tr class="memdesc:a265324081f85d36db159677d8ca35fd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of medium precision unsigned integer numbers. <a href="a00140.html#a265324081f85d36db159677d8ca35fd1">More...</a><br /></td></tr>
+<tr class="separator:a265324081f85d36db159677d8ca35fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63e1e4312a97da0007db93d7f18d9687"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1&#160;</td><td class="memItemRight" valign="bottom"><b>uvec1</b></td></tr>
+<tr class="memdesc:a63e1e4312a97da0007db93d7f18d9687"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of unsigned integer numbers. <a href="a00140.html#a63e1e4312a97da0007db93d7f18d9687">More...</a><br /></td></tr>
+<tr class="separator:a63e1e4312a97da0007db93d7f18d9687"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4df551da8fd418cf98951a3948390485"><td class="memItemLeft" align="right" valign="top">typedef highp_vec1&#160;</td><td class="memItemRight" valign="bottom"><b>vec1</b></td></tr>
+<tr class="memdesc:a4df551da8fd418cf98951a3948390485"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of floating-point numbers. <a href="a00140.html#a4df551da8fd418cf98951a3948390485">More...</a><br /></td></tr>
+<tr class="separator:a4df551da8fd418cf98951a3948390485"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00182.html">GLM_GTC_type_ptr</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-06 / 2011-06-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00180.html">GLM_GTC_vec1</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00131_source.html">type_ptr.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00131_source.html">vec1.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00131_source.html b/3rdparty/glm/doc/api/a00131_source.html
index 87452468898..fc326241273 100644
--- a/3rdparty/glm/doc/api/a00131_source.html
+++ b/3rdparty/glm/doc/api/a00131_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_ptr.hpp Source File</title>
+<title>0.9.9 API documenation: vec1.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,114 +64,129 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_ptr.hpp</div> </div>
+<div class="title">vec1.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00131.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;../mat2x2.hpp&quot;</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &quot;../mat2x3.hpp&quot;</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;../mat2x4.hpp&quot;</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &quot;../mat3x2.hpp&quot;</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;../mat3x3.hpp&quot;</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &quot;../mat3x4.hpp&quot;</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;../mat4x2.hpp&quot;</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#include &quot;../mat4x3.hpp&quot;</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#include &quot;../mat4x4.hpp&quot;</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_type_ptr extension included&quot;)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(genType <span class="keyword">const</span> &amp; vec);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_DECL tvec4&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; <a class="code" href="a00182.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL tmat2x3&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLM_FUNC_DECL tmat2x4&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tmat3x2&lt;T, defaultp&gt; <a class="code" href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL tmat3x4&lt;T, defaultp&gt; <a class="code" href="a00182.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_FUNC_DECL tmat4x2&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GLM_FUNC_DECL tmat4x3&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_vec1 extension included&quot;)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> highp_vec1_t highp_vec1;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">typedef</span> mediump_vec1_t mediump_vec1;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">typedef</span> lowp_vec1_t lowp_vec1;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> highp_dvec1_t highp_dvec1;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> mediump_dvec1_t mediump_dvec1;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> lowp_dvec1_t lowp_dvec1;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> highp_ivec1_t highp_ivec1;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typedef</span> mediump_ivec1_t mediump_ivec1;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> lowp_ivec1_t lowp_ivec1;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">typedef</span> highp_uvec1_t highp_uvec1;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> mediump_uvec1_t mediump_uvec1;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typedef</span> lowp_uvec1_t lowp_uvec1;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">typedef</span> highp_bvec1_t highp_bvec1;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">typedef</span> mediump_bvec1_t mediump_bvec1;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">typedef</span> lowp_bvec1_t lowp_bvec1;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// vec1 definition</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_BOOL))</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">typedef</span> mediump_bvec1 bvec1;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">typedef</span> lowp_bvec1 bvec1;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">typedef</span> highp_vec1 vec1;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">typedef</span> mediump_vec1 vec1;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">typedef</span> lowp_vec1 vec1;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> highp_vec1 vec1;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE))</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">typedef</span> mediump_dvec1 dvec1;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">typedef</span> lowp_dvec1 dvec1;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">typedef</span> mediump_ivec1 ivec1;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">typedef</span> lowp_ivec1 ivec1;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; <a class="code" href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; <a class="code" href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tquat&lt;T, defaultp&gt; <a class="code" href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#include &quot;type_ptr.inl&quot;</span></div>
-<div class="ttc" id="a00182_html_ga6dfb2ac10859b0cc8e3893ea84fa95b5"><div class="ttname"><a href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">glm::make_mat2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4&lt; T, defaultp &gt; make_mat2x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gadb29e510762e1042069cb28bf24ae990"><div class="ttname"><a href="a00182.html#gadb29e510762e1042069cb28bf24ae990">glm::make_mat2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt; make_mat2x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gaadafb6600af2633e4c98cc64c72f5269"><div class="ttname"><a href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">glm::make_quat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat&lt; T, defaultp &gt; make_quat(T const *const ptr)</div><div class="ttdoc">Build a quaternion from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga4d42daced532b33cc672280e48670a51"><div class="ttname"><a href="a00182.html#ga4d42daced532b33cc672280e48670a51">glm::make_mat4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3&lt; T, defaultp &gt; make_mat4x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga3cbe7adf857c867cee77eae4617abadd"><div class="ttname"><a href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">glm::make_mat3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt; make_mat3x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga5f7393c30970c5949be13ceb525093a6"><div class="ttname"><a href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">glm::make_vec2</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt; make_vec2(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gac083edd180ab4d4b817acc60c516209b"><div class="ttname"><a href="a00182.html#gac083edd180ab4d4b817acc60c516209b">glm::make_mat3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4&lt; T, defaultp &gt; make_mat3x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga37988c6dd941f617cdfab86d54375fc1"><div class="ttname"><a href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">glm::make_mat2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3&lt; T, defaultp &gt; make_mat2x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga967a5b934e67ff9a6d1d0d27a377a264"><div class="ttname"><a href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">glm::make_mat4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2&lt; T, defaultp &gt; make_mat4x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga86f4bc63570db86346db2e567fb760f6"><div class="ttname"><a href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">glm::make_vec3</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt; make_vec3(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00182_html_ga52a16e333fef7e33ca740779482a8693"><div class="ttname"><a href="a00182.html#ga52a16e333fef7e33ca740779482a8693">glm::make_mat2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt; make_mat2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga152345176b8951c15711f6ed4f6fc237"><div class="ttname"><a href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">glm::make_vec4</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4&lt; T, defaultp &gt; make_vec4(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga2c6e6d457cb932e1ce683e4f690a6f60"><div class="ttname"><a href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">glm::make_mat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; make_mat4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gaf605a5f5e2ff594e8d404b2855b09541"><div class="ttname"><a href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">glm::make_mat4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt; make_mat4x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gabe1e5066608a66da7a94f802b57b4eed"><div class="ttname"><a href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">glm::make_mat3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2&lt; T, defaultp &gt; make_mat3x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gac2bc10c519ffc8db9e24f325f23787ea"><div class="ttname"><a href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">glm::make_mat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt; make_mat3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &amp;vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">typedef</span> mediump_uvec1 uvec1;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">typedef</span> lowp_uvec1 uvec1;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#include &quot;vec1.inl&quot;</span></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00132.html b/3rdparty/glm/doc/api/a00132.html
index d230c793d57..af82bbd26c1 100644
--- a/3rdparty/glm/doc/api/a00132.html
+++ b/3rdparty/glm/doc/api/a00132.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec.hpp File Reference</title>
+<title>0.9.9 API documenation: vec2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,155 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_vec.hpp File Reference</div> </div>
+<div class="title">vec2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00132_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
-<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
-<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
-<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
-<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
-<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
-<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
-<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
-<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
-<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
-<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
-<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
-<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
-<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
-<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
-<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
-<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
-<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
-<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
-<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
-<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
-<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
-<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
-<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
-<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
-<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
-<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
-<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
-<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
-<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
-<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
-<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
-<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
-<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
-<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
-<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
-<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
-<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
-<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
-<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
-<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
-<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
-<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
-<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
-<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
-<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
-<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
-<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
-<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
-<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
-<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
-<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
-<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
-<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
-<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
-<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
-<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
-<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
-<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
-<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
-<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-01-26 / 2014-10-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00132_source.html">vec2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00132_source.html b/3rdparty/glm/doc/api/a00132_source.html
index 83ab617e769..20acd0a1176 100644
--- a/3rdparty/glm/doc/api/a00132_source.html
+++ b/3rdparty/glm/doc/api/a00132_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec.hpp Source File</title>
+<title>0.9.9 API documenation: vec2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,296 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec.hpp</div> </div>
+<div class="title">vec2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00132.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00092.html">precision.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00119.html">type_int.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec1;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec2;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec3;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; <span class="keyword">struct </span>tvec4;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, highp&gt; highp_vec1_t;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, mediump&gt; mediump_vec1_t;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> tvec1&lt;float, lowp&gt; lowp_vec1_t;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, highp&gt; highp_dvec1_t;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, mediump&gt; mediump_dvec1_t;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> tvec1&lt;double, lowp&gt; lowp_dvec1_t;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, highp&gt; highp_ivec1_t;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, mediump&gt; mediump_ivec1_t;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> tvec1&lt;int, lowp&gt; lowp_ivec1_t;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, highp&gt; highp_uvec1_t;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, mediump&gt; mediump_uvec1_t;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">typedef</span> tvec1&lt;uint, lowp&gt; lowp_uvec1_t;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, highp&gt; highp_bvec1_t;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, mediump&gt; mediump_bvec1_t;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, lowp&gt; lowp_bvec1_t;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997"> 69</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, highp&gt; <a class="code" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7"> 76</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, mediump&gt; <a class="code" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00164.html#ga51e835b2aa735782f0174328acffa521"> 83</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;float, lowp&gt; <a class="code" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14"> 90</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, highp&gt; <a class="code" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a>;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9"> 97</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, mediump&gt; <a class="code" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6"> 104</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;double, lowp&gt; <a class="code" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a>;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00164.html#gaa015a3707413de20c03948308dba2f2e"> 111</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, highp&gt; <a class="code" href="a00164.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef"> 118</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, mediump&gt; <a class="code" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a>;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"> 125</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;int, lowp&gt; <a class="code" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad"> 132</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, highp&gt; <a class="code" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a>;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7"> 139</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, mediump&gt; <a class="code" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309"> 146</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;uint, lowp&gt; <a class="code" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a>;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00164.html#ga829f39950549881a08c534946c0487e1"> 153</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, highp&gt; <a class="code" href="a00164.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b"> 160</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, mediump&gt; <a class="code" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a>;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a"> 167</a></span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, lowp&gt; <a class="code" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a>;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a"> 179</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, highp&gt; <a class="code" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83"> 186</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, mediump&gt; <a class="code" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e"> 193</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;float, lowp&gt; <a class="code" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa"> 200</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, highp&gt; <a class="code" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a>;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be"> 207</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, mediump&gt; <a class="code" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9"> 214</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;double, lowp&gt; <a class="code" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f"> 221</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, highp&gt; <a class="code" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a>;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0"> 228</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, mediump&gt; <a class="code" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a>;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2"> 235</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;int, lowp&gt; <a class="code" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a>;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4"> 242</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, highp&gt; <a class="code" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e"> 249</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, mediump&gt; <a class="code" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a>;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820"> 256</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;uint, lowp&gt; <a class="code" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a>;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf"> 262</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, highp&gt; <a class="code" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a>;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0"> 268</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, mediump&gt; <a class="code" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a>;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673"> 274</a></span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, lowp&gt; <a class="code" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a>;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239"> 285</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, highp&gt; <a class="code" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae"> 291</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, mediump&gt; <a class="code" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395"> 297</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;float, lowp&gt; <a class="code" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39"> 303</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, highp&gt; <a class="code" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a>;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f"> 309</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, mediump&gt; <a class="code" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a>;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072"> 315</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;double, lowp&gt; <a class="code" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a>;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00164.html#ga0424a75bb400571489b8528897f35258"> 321</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, highp&gt; <a class="code" href="a00164.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a>;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995"> 327</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, mediump&gt; <a class="code" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a>;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203"> 333</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;int, lowp&gt; <a class="code" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a>;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="a00164.html#ga61359f5531550e45871a97589d8dcce1"> 339</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, highp&gt; <a class="code" href="a00164.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a>;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7"> 345</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, mediump&gt; <a class="code" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a>;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3"> 351</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;uint, lowp&gt; <a class="code" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a>;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b"> 357</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, highp&gt; <a class="code" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a>;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57"> 363</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, mediump&gt; <a class="code" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85"> 369</a></span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, lowp&gt; <a class="code" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">// -- Default float definition --</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">typedef</span> lowp_vec2 <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">typedef</span> lowp_vec3 <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">typedef</span> lowp_vec4 <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">typedef</span> mediump_vec2 <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">typedef</span> mediump_vec3 <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">typedef</span> mediump_vec4 <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">typedef</span> highp_vec2 <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897"> 395</a></span>&#160; <span class="keyword">typedef</span> highp_vec3 <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="a00163.html#gafbab23070ca47932487d25332adc7d7c"> 400</a></span>&#160; <span class="keyword">typedef</span> highp_vec4 <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// -- Default double definition --</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">typedef</span> lowp_dvec2 <a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">typedef</span> lowp_dvec3 <a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">typedef</span> lowp_dvec4 <a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">typedef</span> mediump_dvec2 <a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">typedef</span> mediump_dvec3 <a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">typedef</span> mediump_dvec4 <a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">typedef</span> highp_dvec2 <a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4"> 422</a></span>&#160; <span class="keyword">typedef</span> highp_dvec3 <a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1"> 427</a></span>&#160; <span class="keyword">typedef</span> highp_dvec4 <a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="comment">// -- Signed integer definition --</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">typedef</span> lowp_ivec2 <a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">typedef</span> lowp_ivec3 <a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">typedef</span> lowp_ivec4 <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">typedef</span> mediump_ivec2 <a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">typedef</span> mediump_ivec3 <a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">typedef</span> mediump_ivec4 <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_INT)</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">typedef</span> highp_ivec2 <a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="a00163.html#ga34aee73784bcc247d426250540c1911c"> 449</a></span>&#160; <span class="keyword">typedef</span> highp_ivec3 <a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224"> 454</a></span>&#160; <span class="keyword">typedef</span> highp_ivec4 <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// -- Unsigned integer definition --</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">typedef</span> lowp_uvec2 <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">typedef</span> lowp_uvec3 <a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">typedef</span> lowp_uvec4 <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">typedef</span> mediump_uvec2 <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">typedef</span> mediump_uvec3 <a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">typedef</span> mediump_uvec4 <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_UINT)</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">typedef</span> highp_uvec2 <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72"> 476</a></span>&#160; <span class="keyword">typedef</span> highp_uvec3 <a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e"> 481</a></span>&#160; <span class="keyword">typedef</span> highp_uvec4 <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="comment">// -- Boolean definition --</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">typedef</span> lowp_bvec2 <a class="code" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keyword">typedef</span> lowp_bvec3 <a class="code" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keyword">typedef</span> lowp_bvec4 <a class="code" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">typedef</span> mediump_bvec2 <a class="code" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">typedef</span> mediump_bvec3 <a class="code" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">typedef</span> mediump_bvec4 <a class="code" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">typedef</span> highp_bvec2 <a class="code" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="a00163.html#ga150731e2a148eff8752114a0e450505e"> 503</a></span>&#160; <span class="keyword">typedef</span> highp_bvec3 <a class="code" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6"> 508</a></span>&#160; <span class="keyword">typedef</span> highp_bvec4 <a class="code" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2&lt; float, highp &gt; highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00069">type_vec.hpp:69</a></div></div>
-<div class="ttc" id="a00163_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00163.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00449">type_vec.hpp:449</a></div></div>
-<div class="ttc" id="a00164_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3&lt; float, mediump &gt; mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00186">type_vec.hpp:186</a></div></div>
-<div class="ttc" id="a00163_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00417">type_vec.hpp:417</a></div></div>
-<div class="ttc" id="a00164_html_ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><div class="ttname"><a href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">glm::lowp_ivec2</a></div><div class="ttdeci">tvec2&lt; int, lowp &gt; lowp_ivec2</div><div class="ttdoc">2 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00125">type_vec.hpp:125</a></div></div>
-<div class="ttc" id="a00163_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00476">type_vec.hpp:476</a></div></div>
-<div class="ttc" id="a00164_html_ga01d2c9b292e27518e4d6f8442607e8aa"><div class="ttname"><a href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">glm::highp_dvec3</a></div><div class="ttdeci">tvec3&lt; double, highp &gt; highp_dvec3</div><div class="ttdoc">3 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00200">type_vec.hpp:200</a></div></div>
-<div class="ttc" id="a00164_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2&lt; float, mediump &gt; mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00076">type_vec.hpp:76</a></div></div>
-<div class="ttc" id="a00164_html_ga3e804226444dfe246133fc6ec4a3912f"><div class="ttname"><a href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">glm::mediump_dvec4</a></div><div class="ttdeci">tvec4&lt; double, mediump &gt; mediump_dvec4</div><div class="ttdoc">4 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00309">type_vec.hpp:309</a></div></div>
-<div class="ttc" id="a00164_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3&lt; float, highp &gt; highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00179">type_vec.hpp:179</a></div></div>
-<div class="ttc" id="a00163_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00481">type_vec.hpp:481</a></div></div>
-<div class="ttc" id="a00163_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00427">type_vec.hpp:427</a></div></div>
-<div class="ttc" id="a00164_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4&lt; float, highp &gt; highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00285">type_vec.hpp:285</a></div></div>
-<div class="ttc" id="a00164_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4&lt; float, mediump &gt; mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00291">type_vec.hpp:291</a></div></div>
-<div class="ttc" id="a00164_html_ga61359f5531550e45871a97589d8dcce1"><div class="ttname"><a href="a00164.html#ga61359f5531550e45871a97589d8dcce1">glm::highp_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, highp &gt; highp_uvec4</div><div class="ttdoc">4 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00339">type_vec.hpp:339</a></div></div>
-<div class="ttc" id="a00164_html_gae5f9c57d04b338c9a51a9af39e50795b"><div class="ttname"><a href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">glm::highp_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, highp &gt; highp_bvec4</div><div class="ttdoc">4 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00357">type_vec.hpp:357</a></div></div>
-<div class="ttc" id="a00164_html_ga8330bf0d7e6d03ca12ee2b1334c2c30f"><div class="ttname"><a href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">glm::highp_ivec3</a></div><div class="ttdeci">tvec3&lt; int, highp &gt; highp_ivec3</div><div class="ttdoc">3 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00221">type_vec.hpp:221</a></div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00164_html_gafa2087ead0d0e2a3c907e3fbd99f4d85"><div class="ttname"><a href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">glm::lowp_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, lowp &gt; lowp_bvec4</div><div class="ttdoc">4 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00369">type_vec.hpp:369</a></div></div>
-<div class="ttc" id="a00164_html_ga631f5767b9d45c5cd3d0bcd67565b3f7"><div class="ttname"><a href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">glm::mediump_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, mediump &gt; mediump_uvec4</div><div class="ttdoc">4 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00345">type_vec.hpp:345</a></div></div>
-<div class="ttc" id="a00163_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00471">type_vec.hpp:471</a></div></div>
-<div class="ttc" id="a00164_html_ga96eb13864627c7c832b5af36aa73bda6"><div class="ttname"><a href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">glm::lowp_dvec2</a></div><div class="ttdeci">tvec2&lt; double, lowp &gt; lowp_dvec2</div><div class="ttdoc">2 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00104">type_vec.hpp:104</a></div></div>
-<div class="ttc" id="a00164_html_ga9b7843453f7ad6ebfa26e50408b8dcf0"><div class="ttname"><a href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">glm::mediump_ivec3</a></div><div class="ttdeci">tvec3&lt; int, mediump &gt; mediump_ivec3</div><div class="ttdoc">3 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00228">type_vec.hpp:228</a></div></div>
-<div class="ttc" id="a00164_html_ga28dcda102dd8c94ec500ee786af7a30a"><div class="ttname"><a href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">glm::lowp_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, lowp &gt; lowp_bvec2</div><div class="ttdoc">2 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00167">type_vec.hpp:167</a></div></div>
-<div class="ttc" id="a00164_html_ga14614613c8e79772c8a6d25dd1c45995"><div class="ttname"><a href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">glm::mediump_ivec4</a></div><div class="ttdeci">tvec4&lt; int, mediump &gt; mediump_ivec4</div><div class="ttdoc">4 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00327">type_vec.hpp:327</a></div></div>
-<div class="ttc" id="a00164_html_ga392c0761c8bef616801e0d81a6867ed7"><div class="ttname"><a href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">glm::mediump_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, mediump &gt; mediump_uvec2</div><div class="ttdoc">2 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00139">type_vec.hpp:139</a></div></div>
-<div class="ttc" id="a00163_html_ga0e46aaaccc5e713eac5bfbc8d6885a60"><div class="ttname"><a href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">glm::bvec2</a></div><div class="ttdeci">highp_bvec2 bvec2</div><div class="ttdoc">2 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00498">type_vec.hpp:498</a></div></div>
-<div class="ttc" id="a00164_html_ga3f0c27f7ab42f004054a247c93a7bf57"><div class="ttname"><a href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">glm::mediump_bvec4</a></div><div class="ttdeci">tvec4&lt; bool, mediump &gt; mediump_bvec4</div><div class="ttdoc">4 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00363">type_vec.hpp:363</a></div></div>
-<div class="ttc" id="a00164_html_ga8b7483dc67dc332f9d874c6cf7172203"><div class="ttname"><a href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">glm::lowp_ivec4</a></div><div class="ttdeci">tvec4&lt; int, lowp &gt; lowp_ivec4</div><div class="ttdoc">4 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00333">type_vec.hpp:333</a></div></div>
-<div class="ttc" id="a00164_html_ga0d1778766f17c4329a8c3f2b37f5fab0"><div class="ttname"><a href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">glm::mediump_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, mediump &gt; mediump_bvec3</div><div class="ttdoc">3 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00268">type_vec.hpp:268</a></div></div>
-<div class="ttc" id="a00164_html_ga0b4741d444b131ef1fc54b19c37f72be"><div class="ttname"><a href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">glm::mediump_dvec3</a></div><div class="ttdeci">tvec3&lt; double, mediump &gt; mediump_dvec3</div><div class="ttdoc">3 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00207">type_vec.hpp:207</a></div></div>
-<div class="ttc" id="a00164_html_ga388fd99d9ffc7190a4732c35b0c7bfc9"><div class="ttname"><a href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">glm::mediump_dvec2</a></div><div class="ttdeci">tvec2&lt; double, mediump &gt; mediump_dvec2</div><div class="ttdoc">2 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00097">type_vec.hpp:97</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00163_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00454">type_vec.hpp:454</a></div></div>
-<div class="ttc" id="a00163_html_ga444e8f61bfb3a6f037d019ac6933f8c6"><div class="ttname"><a href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">glm::bvec4</a></div><div class="ttdeci">highp_bvec4 bvec4</div><div class="ttdoc">4 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00508">type_vec.hpp:508</a></div></div>
-<div class="ttc" id="a00164_html_gae1f4f68346474246eb4a9952af49e72b"><div class="ttname"><a href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">glm::mediump_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, mediump &gt; mediump_bvec2</div><div class="ttdoc">2 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00160">type_vec.hpp:160</a></div></div>
-<div class="ttc" id="a00164_html_gaa015a3707413de20c03948308dba2f2e"><div class="ttname"><a href="a00164.html#gaa015a3707413de20c03948308dba2f2e">glm::highp_ivec2</a></div><div class="ttdeci">tvec2&lt; int, highp &gt; highp_ivec2</div><div class="ttdoc">2 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00111">type_vec.hpp:111</a></div></div>
-<div class="ttc" id="a00164_html_ga76c0948546deeeb18bfda36f18b3e673"><div class="ttname"><a href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">glm::lowp_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, lowp &gt; lowp_bvec3</div><div class="ttdoc">3 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00274">type_vec.hpp:274</a></div></div>
-<div class="ttc" id="a00164_html_gab5d6a45e1bbb13314b47793865a4c072"><div class="ttname"><a href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">glm::lowp_dvec4</a></div><div class="ttdeci">tvec4&lt; double, lowp &gt; lowp_dvec4</div><div class="ttdoc">4 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00315">type_vec.hpp:315</a></div></div>
-<div class="ttc" id="a00164_html_ga829f39950549881a08c534946c0487e1"><div class="ttname"><a href="a00164.html#ga829f39950549881a08c534946c0487e1">glm::highp_bvec2</a></div><div class="ttdeci">tvec2&lt; bool, highp &gt; highp_bvec2</div><div class="ttdoc">2 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00153">type_vec.hpp:153</a></div></div>
-<div class="ttc" id="a00163_html_ga150731e2a148eff8752114a0e450505e"><div class="ttname"><a href="a00163.html#ga150731e2a148eff8752114a0e450505e">glm::bvec3</a></div><div class="ttdeci">highp_bvec3 bvec3</div><div class="ttdoc">3 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00503">type_vec.hpp:503</a></div></div>
-<div class="ttc" id="a00164_html_gaf7ec7b1cefeeaf63659460ef52fd06a9"><div class="ttname"><a href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">glm::lowp_dvec3</a></div><div class="ttdeci">tvec3&lt; double, lowp &gt; lowp_dvec3</div><div class="ttdoc">3 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00214">type_vec.hpp:214</a></div></div>
-<div class="ttc" id="a00164_html_ga5d454f34d819d90b9bbb30dcb9ed7b39"><div class="ttname"><a href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">glm::highp_dvec4</a></div><div class="ttdeci">tvec4&lt; double, highp &gt; highp_dvec4</div><div class="ttdoc">4 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00303">type_vec.hpp:303</a></div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00164_html_ga6efcd4574e112cfcda320db58e649ee3"><div class="ttname"><a href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">glm::lowp_uvec4</a></div><div class="ttdeci">tvec4&lt; uint, lowp &gt; lowp_uvec4</div><div class="ttdoc">4 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00351">type_vec.hpp:351</a></div></div>
-<div class="ttc" id="a00164_html_gaa040f25233c314adc9560dcdb9dadac2"><div class="ttname"><a href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">glm::lowp_ivec3</a></div><div class="ttdeci">tvec3&lt; int, lowp &gt; lowp_ivec3</div><div class="ttdoc">3 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00235">type_vec.hpp:235</a></div></div>
-<div class="ttc" id="a00164_html_ga6bfb90b936bbbc67e438bb9ac6910309"><div class="ttname"><a href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">glm::lowp_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, lowp &gt; lowp_uvec2</div><div class="ttdoc">2 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00146">type_vec.hpp:146</a></div></div>
-<div class="ttc" id="a00164_html_ga54ae0b7b207b8e7e88841d146d2de12e"><div class="ttname"><a href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">glm::mediump_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, mediump &gt; mediump_uvec3</div><div class="ttdoc">3 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00249">type_vec.hpp:249</a></div></div>
-<div class="ttc" id="a00164_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00164.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2&lt; float, lowp &gt; lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00083">type_vec.hpp:83</a></div></div>
-<div class="ttc" id="a00164_html_gaf0049c860a612da9bd3ba9ac9e49e820"><div class="ttname"><a href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">glm::lowp_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, lowp &gt; lowp_uvec3</div><div class="ttdoc">3 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00256">type_vec.hpp:256</a></div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00163_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00422">type_vec.hpp:422</a></div></div>
-<div class="ttc" id="a00164_html_gaf564d5be1e65bd2204754043b218c9a4"><div class="ttname"><a href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">glm::highp_uvec3</a></div><div class="ttdeci">tvec3&lt; uint, highp &gt; highp_uvec3</div><div class="ttdoc">3 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00242">type_vec.hpp:242</a></div></div>
-<div class="ttc" id="a00164_html_gaca7c2a58eb926799c30ad547a290fccf"><div class="ttname"><a href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">glm::highp_bvec3</a></div><div class="ttdeci">tvec3&lt; bool, highp &gt; highp_bvec3</div><div class="ttdoc">3 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00262">type_vec.hpp:262</a></div></div>
-<div class="ttc" id="a00164_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3&lt; float, lowp &gt; lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00193">type_vec.hpp:193</a></div></div>
-<div class="ttc" id="a00163_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00444">type_vec.hpp:444</a></div></div>
-<div class="ttc" id="a00164_html_gaa0eed70387a998c3eca2f4e45f3efaad"><div class="ttname"><a href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">glm::highp_uvec2</a></div><div class="ttdeci">tvec2&lt; uint, highp &gt; highp_uvec2</div><div class="ttdoc">2 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00132">type_vec.hpp:132</a></div></div>
-<div class="ttc" id="a00164_html_ga199cc7c4cfa7c7cadad0c74d2f059aef"><div class="ttname"><a href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">glm::mediump_ivec2</a></div><div class="ttdeci">tvec2&lt; int, mediump &gt; mediump_ivec2</div><div class="ttdoc">2 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00118">type_vec.hpp:118</a></div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga0424a75bb400571489b8528897f35258"><div class="ttname"><a href="a00164.html#ga0424a75bb400571489b8528897f35258">glm::highp_ivec4</a></div><div class="ttdeci">tvec4&lt; int, highp &gt; highp_ivec4</div><div class="ttdoc">4 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00321">type_vec.hpp:321</a></div></div>
-<div class="ttc" id="a00164_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4&lt; float, lowp &gt; lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00297">type_vec.hpp:297</a></div></div>
-<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_int.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga435eb408e8dfa4f7185368109d432c14"><div class="ttname"><a href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">glm::highp_dvec2</a></div><div class="ttdeci">tvec2&lt; double, highp &gt; highp_dvec2</div><div class="ttdoc">2 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00090">type_vec.hpp:90</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00127.html">detail/type_vec2.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00133.html b/3rdparty/glm/doc/api/a00133.html
index da3056b2049..2fc2f392203 100644
--- a/3rdparty/glm/doc/api/a00133.html
+++ b/3rdparty/glm/doc/api/a00133.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec1.hpp File Reference</title>
+<title>0.9.9 API documenation: vec3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec1.hpp File Reference</div> </div>
+<div class="title">vec3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00133_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-25 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00133_source.html">type_vec1.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00133_source.html">vec3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00133_source.html b/3rdparty/glm/doc/api/a00133_source.html
index 0ade632a51e..05b9124c7fc 100644
--- a/3rdparty/glm/doc/api/a00133_source.html
+++ b/3rdparty/glm/doc/api/a00133_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec1.hpp Source File</title>
+<title>0.9.9 API documenation: vec3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,300 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec1.hpp</div> </div>
+<div class="title">vec3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00133.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;../fwd.hpp&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00132.html">type_vec.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">struct </span>tvec1</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> tvec1&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> tvec1&lt;bool, P&gt; bool_type;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 1;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">union</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; T x;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; T r;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; T s;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, x)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, r)</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, s)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, x)</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, r)</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, s)</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, x)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, r)</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, s)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"># endif//GLM_SWIZZLE*/</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">union </span>{T x, r, s;};</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, P, tvec2, tvec2, tvec3, tvec4)</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"># endif//GLM_SWIZZLE*/</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL T &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tvec1() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL tvec1(tvec1&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tvec1(tvec1&lt;T, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL explicit tvec1(ctor);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL explicit tvec1(T const &amp; s);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL explicit tvec1(tvec2&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL explicit tvec1(tvec3&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GLM_FUNC_DECL explicit tvec1(tvec4&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec1&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"># if(GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE))</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL tvec1(detail::_swizzle&lt;1, T, P, tvec1&lt;T, P&gt;, E0, -1,-2,-3&gt; <span class="keyword">const</span> &amp; that)</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"># endif//(GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE))</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator=(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator+=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator-=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator*=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator/=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator%=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&amp;=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator|=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator^=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&lt;&lt;=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&gt;&gt;=(U <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator- (tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator%(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&amp;(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator|(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator^(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&lt;&lt;(T const &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&gt;&gt;(T <span class="keyword">const</span> &amp; s, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL tvec1&lt;T, P&gt; operator~(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#include &quot;type_vec1.inl&quot;</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00128.html">detail/type_vec3.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00134.html b/3rdparty/glm/doc/api/a00134.html
index b7fd90f8e11..ad6e1ab87a6 100644
--- a/3rdparty/glm/doc/api/a00134.html
+++ b/3rdparty/glm/doc/api/a00134.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec2.hpp File Reference</title>
+<title>0.9.9 API documenation: vec4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec2.hpp File Reference</div> </div>
+<div class="title">vec4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00134_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-18 / 2013-08-27 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00134_source.html">type_vec2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00134_source.html">vec4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00134_source.html b/3rdparty/glm/doc/api/a00134_source.html
index 46b5e373d4d..ef4df84783c 100644
--- a/3rdparty/glm/doc/api/a00134_source.html
+++ b/3rdparty/glm/doc/api/a00134_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec2.hpp Source File</title>
+<title>0.9.9 API documenation: vec4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,389 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec2.hpp</div> </div>
+<div class="title">vec4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00134.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00132.html">type_vec.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>tvec2</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> tvec2&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> tvec2&lt;bool, P&gt; bool_type;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">union</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct</span>{ T x, y; };</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">struct</span>{ T r, g; };</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">struct</span>{ T s, t; };</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">union </span>{T x, r, s;};</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">union </span>{T y, g, t;};</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GLM_FUNC_DECL T &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GLM_FUNC_DECL tvec2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL tvec2(tvec2&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; GLM_FUNC_DECL tvec2(tvec2&lt;T, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL explicit tvec2(ctor);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL explicit tvec2(T const &amp; s);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL tvec2(T const &amp; s1, T const &amp; s2);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; template &lt;typename A, typename B&gt;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; GLM_FUNC_DECL tvec2(A const &amp; x, B const &amp; y);</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; template &lt;typename A, typename B&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GLM_FUNC_DECL tvec2(tvec1&lt;A, P&gt; const &amp; v1, tvec1&lt;B, P&gt; const &amp; v2);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL explicit tvec2(tvec3&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GLM_FUNC_DECL explicit tvec2(tvec4&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tvec2(tvec2&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL tvec2(detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1,-1,-2&gt; <span class="keyword">const</span> &amp; that)</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"># endif// GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator=(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator+=(U s);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator+=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator-=(U s);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator-=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator*=(U s);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator*=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator/=(U s);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt;&amp; operator/=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator%=(U s);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator%=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&amp;=(U s);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&amp;=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator|=(U s);</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator|=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator^=(U s);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator^=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&lt;&lt;=(U s);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&gt;&gt;=(U s);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt; </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec2&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; };</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator+(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator*(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator/(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator-(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator%(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&amp;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator|(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator^(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(T const &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&lt;&lt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(T <span class="keyword">const</span> &amp; s, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator&gt;&gt;(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; GLM_FUNC_DECL tvec2&lt;T, P&gt; operator~(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor">#include &quot;type_vec2.inl&quot;</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00129.html">detail/type_vec4.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00135.html b/3rdparty/glm/doc/api/a00135.html
index 42a2af9ff08..27f376ecaf0 100644
--- a/3rdparty/glm/doc/api/a00135.html
+++ b/3rdparty/glm/doc/api/a00135.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec3.hpp File Reference</title>
+<title>0.9.9 API documenation: vec_swizzle.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,40 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec3.hpp File Reference</div> </div>
+<div class="title">vec_swizzle.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00233.html">GLM_GTX_vec_swizzle</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00135_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00233.html">GLM_GTX_vec_swizzle</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00135_source.html">type_vec3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00135_source.html">vec_swizzle.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00135_source.html b/3rdparty/glm/doc/api/a00135_source.html
index a7e2ea50fc8..ede5ce59e08 100644
--- a/3rdparty/glm/doc/api/a00135_source.html
+++ b/3rdparty/glm/doc/api/a00135_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec3.hpp Source File</title>
+<title>0.9.9 API documenation: vec_swizzle.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,405 +64,2798 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec3.hpp</div> </div>
+<div class="title">vec_swizzle.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00135.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00132.html">type_vec.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>tvec3</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> tvec3&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> tvec3&lt;bool, P&gt; bool_type;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">union</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct</span>{ T x, y, z; };</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">struct</span>{ T r, g, b; };</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">struct</span>{ T s, t, p; };</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_vec_swizzle is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="comment">// xx</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xx(<span class="keyword">const</span> glm::tvec1&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.x);</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.x);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; }</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.x);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// xy</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.y);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.y);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.y);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// xz</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.z);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.z);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">union </span>{ T x, r, s; };</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">union </span>{ T y, g, t; };</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// xw</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; xw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.x, v.w);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// yx</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.x);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.x);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_DECL T &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; GLM_FUNC_DECL tvec3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL tvec3(tvec3&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_FUNC_DECL tvec3(tvec3&lt;T, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// yy</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.y);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.y);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.y);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// yz</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.z);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.z);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GLM_FUNC_DECL explicit tvec3(ctor);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL explicit tvec3(T const &amp; s);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_FUNC_DECL tvec3(T const &amp; a, T const &amp; b, T const &amp; c);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// yw</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; yw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.y, v.w);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; template &lt;typename A, typename B, typename C&gt;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL tvec3(A const &amp; a, B const &amp; b, C const &amp; c);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; template &lt;typename A, typename B, typename C&gt;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_DECL tvec3(tvec1&lt;A, P&gt; const &amp; a, tvec1&lt;B, P&gt; const &amp; b, tvec1&lt;C, P&gt; const &amp; c);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// zx</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.x);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GLM_FUNC_DECL explicit tvec3(tvec2&lt;A, Q&gt; const &amp; a, B const &amp; b);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL explicit tvec3(tvec2&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL explicit tvec3(A const &amp; a, tvec2&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL explicit tvec3(tvec1&lt;A, Q&gt; const &amp; a, tvec2&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL explicit tvec3(tvec4&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tvec3(tvec3&lt;U, Q&gt; const &amp; v);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.x);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// zy</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.y);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.y);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// zz</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.z);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL tvec3(detail::_swizzle&lt;3, T, P, tvec3&lt;T, P&gt;, E0, E1, E2, -1&gt; <span class="keyword">const</span> &amp; that)</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL tvec3(detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s)</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; *<span class="keyword">this</span> = tvec3&lt;T, P&gt;(v(), s);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tvec3(T <span class="keyword">const</span> &amp; s, detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; *<span class="keyword">this</span> = tvec3&lt;T, P&gt;(s, v());</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"># endif// GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator=(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator+=(U s);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator+=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator-=(U s);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator-=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator*=(U s);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator*=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator/=(U s);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator/=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.z);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// zw</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; zw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.z, v.w);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// wx</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; wx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.w, v.x);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// wy</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; wy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.w, v.y);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// wz</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; wz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.w, v.z);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// ww</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_INLINE glm::tvec2&lt;T, P&gt; ww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> glm::tvec2&lt;T, P&gt;(v.w, v.w);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// xxx</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxx(<span class="keyword">const</span> glm::tvec1&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.x);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.x);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.x);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.x);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// xxy</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.y);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator%=(U s);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator%=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&amp;=(U s);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&amp;=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator|=(U s);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator|=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator^=(U s);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator^=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&lt;&lt;=(U s);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&gt;&gt;=(U s);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec3&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; };</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.y);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.y);</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// xxz</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.z);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.z);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// xxw</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.x, v.w);</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// xyx</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.x);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.x);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.x);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// xyy</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.y);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.y);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator+(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator-(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.y);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// xyz</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.z);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.z);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// xyw</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.y, v.w);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// xzx</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.x);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.x);</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator*(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">// xzy</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.y);</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator/(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator%(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&amp;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator|(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.y);</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">// xzz</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.z);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.z);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// xzw</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.z, v.w);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// xwx</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.w, v.x);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">// xwy</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.w, v.y);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">// xwz</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.w, v.z);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="comment">// xww</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; xww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.x, v.w, v.w);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="comment">// yxx</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.x);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.x);</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator^(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.x);</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="comment">// yxy</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.y);</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.y);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.y);</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(T const &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="comment">// yxz</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.z);</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&lt;&lt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(T <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator&gt;&gt;(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; GLM_FUNC_DECL tvec3&lt;T, P&gt; operator~(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="preprocessor">#include &quot;type_vec3.inl&quot;</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.z);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">// yxw</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.x, v.w);</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// yyx</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.x);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.x);</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.x);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// yyy</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.y);</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.y);</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.y);</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// yyz</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.z);</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.z);</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="comment">// yyw</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.y, v.w);</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="comment">// yzx</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.x);</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.x);</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="comment">// yzy</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.y);</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.y);</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">// yzz</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.z);</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.z);</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// yzw</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.z, v.w);</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// ywx</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; ywx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.w, v.x);</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// ywy</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; ywy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.w, v.y);</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// ywz</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; ywz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.w, v.z);</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// yww</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; yww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.y, v.w, v.w);</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="comment">// zxx</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.x);</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; }</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.x);</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="comment">// zxy</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.y);</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.y);</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// zxz</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.z);</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.z);</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="comment">// zxw</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.x, v.w);</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="comment">// zyx</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.x);</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.x);</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="comment">// zyy</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.y);</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.y);</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="comment">// zyz</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.z);</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.z);</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="comment">// zyw</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.y, v.w);</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="comment">// zzx</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.x);</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.x);</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// zzy</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.y);</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.y);</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="comment">// zzz</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.z);</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; }</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.z);</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; }</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// zzw</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.z, v.w);</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="comment">// zwx</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.w, v.x);</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="comment">// zwy</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.w, v.y);</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// zwz</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.w, v.z);</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="comment">// zww</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; zww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.z, v.w, v.w);</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; }</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="comment">// wxx</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.x, v.x);</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; }</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="comment">// wxy</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.x, v.y);</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; }</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="comment">// wxz</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.x, v.z);</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; }</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">// wxw</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.x, v.w);</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="comment">// wyx</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.y, v.x);</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="comment">// wyy</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.y, v.y);</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; }</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="comment">// wyz</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.y, v.z);</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="comment">// wyw</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.y, v.w);</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">// wzx</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.z, v.x);</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">// wzy</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.z, v.y);</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// wzz</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.z, v.z);</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; }</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// wzw</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.z, v.w);</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; }</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// wwx</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.w, v.x);</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="comment">// wwy</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.w, v.y);</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="comment">// wwz</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; wwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.w, v.z);</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="comment">// www</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; GLM_INLINE glm::tvec3&lt;T, P&gt; www(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">return</span> glm::tvec3&lt;T, P&gt;(v.w, v.w, v.w);</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="comment">// xxxx</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxx(<span class="keyword">const</span> glm::tvec1&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.x);</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; }</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.x);</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.x);</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.x);</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; }</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="comment">// xxxy</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.y);</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; }</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.y);</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; }</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.y);</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; }</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="comment">// xxxz</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.z);</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; }</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.z);</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="comment">// xxxw</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.x, v.w);</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// xxyx</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.x);</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.x);</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.x);</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="comment">// xxyy</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.y);</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.y);</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.y);</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="comment">// xxyz</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.z);</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.z);</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="comment">// xxyw</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.y, v.w);</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="comment">// xxzx</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.x);</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.x);</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="comment">// xxzy</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.y);</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; }</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.y);</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; }</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="comment">// xxzz</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.z);</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; }</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.z);</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="comment">// xxzw</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.z, v.w);</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; }</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="comment">// xxwx</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.w, v.x);</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="comment">// xxwy</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.w, v.y);</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="comment">// xxwz</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.w, v.z);</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; }</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="comment">// xxww</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xxww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.x, v.w, v.w);</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; }</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="comment">// xyxx</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.x);</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.x);</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.x);</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="comment">// xyxy</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.y);</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; }</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.y);</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.y);</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; }</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="comment">// xyxz</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.z);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.z);</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="comment">// xyxw</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.x, v.w);</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="comment">// xyyx</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.x);</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.x);</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; }</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.x);</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; }</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;</div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="comment">// xyyy</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.y);</div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; }</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.y);</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; }</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.y);</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; }</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="comment">// xyyz</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.z);</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; }</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.z);</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; }</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="comment">// xyyw</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.y, v.w);</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; }</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="comment">// xyzx</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.x);</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.x);</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; }</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="comment">// xyzy</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.y);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; }</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.y);</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; }</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="comment">// xyzz</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.z);</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.z);</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; }</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="comment">// xyzw</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.z, v.w);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; }</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="comment">// xywx</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xywx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.w, v.x);</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="comment">// xywy</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xywy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.w, v.y);</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; }</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <span class="comment">// xywz</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xywz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.w, v.z);</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; }</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="comment">// xyww</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xyww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.y, v.w, v.w);</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; }</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="comment">// xzxx</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.x);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; }</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.x);</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="comment">// xzxy</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.y);</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; }</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.y);</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="comment">// xzxz</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.z);</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; }</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.z);</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; }</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="comment">// xzxw</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.x, v.w);</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; }</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="comment">// xzyx</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.x);</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; }</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.x);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; }</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="comment">// xzyy</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.y);</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.y);</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; }</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="comment">// xzyz</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.z);</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; }</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.z);</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; }</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="comment">// xzyw</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.y, v.w);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; }</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="comment">// xzzx</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.x);</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; }</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.x);</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; }</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="comment">// xzzy</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.y);</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; }</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.y);</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; }</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="comment">// xzzz</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.z);</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; }</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.z);</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; }</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="comment">// xzzw</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.z, v.w);</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; }</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="comment">// xzwx</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.w, v.x);</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; }</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="comment">// xzwy</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.w, v.y);</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; }</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="comment">// xzwz</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.w, v.z);</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; }</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="comment">// xzww</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xzww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.z, v.w, v.w);</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; }</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="comment">// xwxx</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.x, v.x);</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; }</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <span class="comment">// xwxy</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.x, v.y);</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; }</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="comment">// xwxz</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.x, v.z);</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; }</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="comment">// xwxw</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.x, v.w);</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; }</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="comment">// xwyx</span></div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.y, v.x);</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; }</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="comment">// xwyy</span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.y, v.y);</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; }</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="comment">// xwyz</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.y, v.z);</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; }</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="comment">// xwyw</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.y, v.w);</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; }</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="comment">// xwzx</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.z, v.x);</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; }</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="comment">// xwzy</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.z, v.y);</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; }</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="comment">// xwzz</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.z, v.z);</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; }</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="comment">// xwzw</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.z, v.w);</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; }</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="comment">// xwwx</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.w, v.x);</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; }</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="comment">// xwwy</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.w, v.y);</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; }</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <span class="comment">// xwwz</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.w, v.z);</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; }</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="comment">// xwww</span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; xwww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.x, v.w, v.w, v.w);</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; }</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="comment">// yxxx</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.x);</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; }</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.x);</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; }</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.x);</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; }</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="comment">// yxxy</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.y);</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; }</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.y);</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; }</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.y);</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; }</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="comment">// yxxz</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.z);</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; }</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.z);</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; }</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="comment">// yxxw</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.x, v.w);</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; }</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <span class="comment">// yxyx</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.x);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; }</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.x);</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; }</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.x);</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; }</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="comment">// yxyy</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.y);</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; }</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.y);</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; }</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.y);</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; }</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; <span class="comment">// yxyz</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.z);</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; }</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.z);</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; }</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <span class="comment">// yxyw</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.y, v.w);</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; }</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="comment">// yxzx</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.x);</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; }</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.x);</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; }</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="comment">// yxzy</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.y);</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; }</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.y);</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; }</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="comment">// yxzz</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.z);</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; }</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.z);</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; }</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <span class="comment">// yxzw</span></div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.z, v.w);</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; }</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="comment">// yxwx</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.w, v.x);</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; }</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <span class="comment">// yxwy</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.w, v.y);</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; }</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <span class="comment">// yxwz</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.w, v.z);</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; }</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="comment">// yxww</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yxww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.x, v.w, v.w);</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; }</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; <span class="comment">// yyxx</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.x);</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; }</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.x);</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; }</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.x);</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; }</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="comment">// yyxy</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.y);</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; }</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.y);</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; }</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.y);</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; }</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="comment">// yyxz</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.z);</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; }</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.z);</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; }</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <span class="comment">// yyxw</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.x, v.w);</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; }</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; <span class="comment">// yyyx</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyx(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.x);</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; }</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.x);</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; }</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.x);</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; }</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="comment">// yyyy</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyy(<span class="keyword">const</span> glm::tvec2&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.y);</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; }</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.y);</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; }</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.y);</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; }</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; <span class="comment">// yyyz</span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.z);</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; }</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.z);</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; }</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="comment">// yyyw</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.y, v.w);</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; }</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="comment">// yyzx</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.x);</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; }</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.x);</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; }</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; <span class="comment">// yyzy</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.y);</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; }</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.y);</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; }</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="comment">// yyzz</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.z);</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; }</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.z);</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; }</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; <span class="comment">// yyzw</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.z, v.w);</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; }</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; <span class="comment">// yywx</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yywx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.w, v.x);</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; }</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; <span class="comment">// yywy</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yywy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.w, v.y);</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; }</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; <span class="comment">// yywz</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yywz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.w, v.z);</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; }</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; <span class="comment">// yyww</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yyww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.y, v.w, v.w);</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; }</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; <span class="comment">// yzxx</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.x);</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; }</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.x);</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; }</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; <span class="comment">// yzxy</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.y);</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; }</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.y);</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; }</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="comment">// yzxz</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.z);</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; }</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.z);</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; }</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="comment">// yzxw</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.x, v.w);</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; }</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <span class="comment">// yzyx</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.x);</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; }</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.x);</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; }</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="comment">// yzyy</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.y);</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; }</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.y);</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; }</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; <span class="comment">// yzyz</span></div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.z);</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; }</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.z);</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; }</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <span class="comment">// yzyw</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.y, v.w);</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; }</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <span class="comment">// yzzx</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.x);</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; }</div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.x);</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; }</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; <span class="comment">// yzzy</span></div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.y);</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; }</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.y);</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; }</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; <span class="comment">// yzzz</span></div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.z);</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; }</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.z);</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; }</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; <span class="comment">// yzzw</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.z, v.w);</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; }</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; <span class="comment">// yzwx</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.w, v.x);</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; }</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; <span class="comment">// yzwy</span></div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.w, v.y);</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; }</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; <span class="comment">// yzwz</span></div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.w, v.z);</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; }</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; <span class="comment">// yzww</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; yzww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.z, v.w, v.w);</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; }</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; <span class="comment">// ywxx</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.x, v.x);</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; }</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160; <span class="comment">// ywxy</span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.x, v.y);</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; }</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; <span class="comment">// ywxz</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.x, v.z);</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160; }</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; <span class="comment">// ywxw</span></div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.x, v.w);</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; }</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; <span class="comment">// ywyx</span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.y, v.x);</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; }</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; <span class="comment">// ywyy</span></div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.y, v.y);</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; }</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;</div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; <span class="comment">// ywyz</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.y, v.z);</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; }</div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="comment">// ywyw</span></div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.y, v.w);</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; }</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; <span class="comment">// ywzx</span></div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.z, v.x);</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; }</div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; <span class="comment">// ywzy</span></div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.z, v.y);</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; }</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; <span class="comment">// ywzz</span></div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.z, v.z);</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; }</div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; <span class="comment">// ywzw</span></div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.z, v.w);</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; }</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;</div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; <span class="comment">// ywwx</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.w, v.x);</div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; }</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="comment">// ywwy</span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.w, v.y);</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; }</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;</div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; <span class="comment">// ywwz</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.w, v.z);</div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; }</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <span class="comment">// ywww</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; ywww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.y, v.w, v.w, v.w);</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; }</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;</div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; <span class="comment">// zxxx</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.x);</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; }</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.x);</div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; }</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="comment">// zxxy</span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.y);</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; }</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.y);</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; }</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;</div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; <span class="comment">// zxxz</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.z);</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; }</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.z);</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; }</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <span class="comment">// zxxw</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.x, v.w);</div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; }</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; <span class="comment">// zxyx</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.x);</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; }</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;</div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.x);</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; }</div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;</div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <span class="comment">// zxyy</span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.y);</div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; }</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.y);</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; }</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <span class="comment">// zxyz</span></div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.z);</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; }</div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;</div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.z);</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; }</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="comment">// zxyw</span></div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.y, v.w);</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; }</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; <span class="comment">// zxzx</span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.x);</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; }</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.x);</div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; }</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <span class="comment">// zxzy</span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.y);</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; }</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.y);</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; }</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="comment">// zxzz</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.z);</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; }</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;</div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.z);</div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; }</div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="comment">// zxzw</span></div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.z, v.w);</div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; }</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="comment">// zxwx</span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.w, v.x);</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; }</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;</div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <span class="comment">// zxwy</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.w, v.y);</div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; }</div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; <span class="comment">// zxwz</span></div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.w, v.z);</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; }</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; <span class="comment">// zxww</span></div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zxww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.x, v.w, v.w);</div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; }</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="comment">// zyxx</span></div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.x);</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; }</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.x);</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; }</div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; <span class="comment">// zyxy</span></div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.y);</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; }</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.y);</div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; }</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; <span class="comment">// zyxz</span></div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.z);</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; }</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.z);</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; }</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="comment">// zyxw</span></div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.x, v.w);</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; }</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="comment">// zyyx</span></div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.x);</div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; }</div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;</div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.x);</div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; }</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="comment">// zyyy</span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.y);</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; }</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;</div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.y);</div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; }</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <span class="comment">// zyyz</span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.z);</div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; }</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;</div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.z);</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; }</div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;</div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; <span class="comment">// zyyw</span></div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.y, v.w);</div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; }</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; <span class="comment">// zyzx</span></div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.x);</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; }</div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;</div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.x);</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; }</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; <span class="comment">// zyzy</span></div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.y);</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; }</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.y);</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; }</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; <span class="comment">// zyzz</span></div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.z);</div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; }</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.z);</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160; }</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; <span class="comment">// zyzw</span></div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.z, v.w);</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; }</div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;</div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; <span class="comment">// zywx</span></div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zywx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.w, v.x);</div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; }</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; <span class="comment">// zywy</span></div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zywy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.w, v.y);</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; }</div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;</div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160; <span class="comment">// zywz</span></div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zywz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.w, v.z);</div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; }</div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; <span class="comment">// zyww</span></div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zyww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.y, v.w, v.w);</div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; }</div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;</div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; <span class="comment">// zzxx</span></div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.x);</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; }</div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.x);</div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; }</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;</div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; <span class="comment">// zzxy</span></div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.y);</div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; }</div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;</div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.y);</div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; }</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; <span class="comment">// zzxz</span></div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.z);</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; }</div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;</div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.z);</div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; }</div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; <span class="comment">// zzxw</span></div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.x, v.w);</div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; }</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;</div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; <span class="comment">// zzyx</span></div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.x);</div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; }</div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;</div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.x);</div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; }</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; <span class="comment">// zzyy</span></div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.y);</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; }</div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;</div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.y);</div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160; }</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160; <span class="comment">// zzyz</span></div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.z);</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; }</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;</div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.z);</div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; }</div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;</div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="comment">// zzyw</span></div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.y, v.w);</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160; }</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;</div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160; <span class="comment">// zzzx</span></div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzx(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.x);</div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160; }</div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.x);</div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; }</div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; <span class="comment">// zzzy</span></div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzy(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.y);</div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160; }</div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;</div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.y);</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; }</div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160; <span class="comment">// zzzz</span></div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzz(<span class="keyword">const</span> glm::tvec3&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.z);</div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; }</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.z);</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; }</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160; <span class="comment">// zzzw</span></div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.z, v.w);</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160; }</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160; <span class="comment">// zzwx</span></div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.w, v.x);</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; }</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; <span class="comment">// zzwy</span></div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.w, v.y);</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; }</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; <span class="comment">// zzwz</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.w, v.z);</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; }</div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <span class="comment">// zzww</span></div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zzww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.z, v.w, v.w);</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; }</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; <span class="comment">// zwxx</span></div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.x, v.x);</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; }</div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; <span class="comment">// zwxy</span></div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.x, v.y);</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; }</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="comment">// zwxz</span></div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.x, v.z);</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; }</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;</div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; <span class="comment">// zwxw</span></div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.x, v.w);</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; }</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; <span class="comment">// zwyx</span></div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.y, v.x);</div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; }</div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; <span class="comment">// zwyy</span></div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.y, v.y);</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160; }</div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;</div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160; <span class="comment">// zwyz</span></div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.y, v.z);</div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; }</div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; <span class="comment">// zwyw</span></div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.y, v.w);</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; }</div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;</div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; <span class="comment">// zwzx</span></div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.z, v.x);</div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; }</div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; <span class="comment">// zwzy</span></div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.z, v.y);</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160; }</div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;</div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160; <span class="comment">// zwzz</span></div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.z, v.z);</div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160; }</div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160; <span class="comment">// zwzw</span></div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.z, v.w);</div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; }</div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;</div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; <span class="comment">// zwwx</span></div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.w, v.x);</div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; }</div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; <span class="comment">// zwwy</span></div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.w, v.y);</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160; }</div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;</div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160; <span class="comment">// zwwz</span></div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.w, v.z);</div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160; }</div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160; <span class="comment">// zwww</span></div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; zwww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.z, v.w, v.w, v.w);</div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160; }</div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;</div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160; <span class="comment">// wxxx</span></div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.x, v.x);</div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160; }</div>
+<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;</div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; <span class="comment">// wxxy</span></div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.x, v.y);</div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160; }</div>
+<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;</div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160; <span class="comment">// wxxz</span></div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.x, v.z);</div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; }</div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;</div>
+<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; <span class="comment">// wxxw</span></div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.x, v.w);</div>
+<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160; }</div>
+<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160; <span class="comment">// wxyx</span></div>
+<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.y, v.x);</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160; }</div>
+<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;</div>
+<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160; <span class="comment">// wxyy</span></div>
+<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.y, v.y);</div>
+<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160; }</div>
+<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; <span class="comment">// wxyz</span></div>
+<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.y, v.z);</div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160; }</div>
+<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;</div>
+<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160; <span class="comment">// wxyw</span></div>
+<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.y, v.w);</div>
+<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160; }</div>
+<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;</div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160; <span class="comment">// wxzx</span></div>
+<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.z, v.x);</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160; }</div>
+<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;</div>
+<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160; <span class="comment">// wxzy</span></div>
+<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.z, v.y);</div>
+<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160; }</div>
+<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160; <span class="comment">// wxzz</span></div>
+<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.z, v.z);</div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160; }</div>
+<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;</div>
+<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160; <span class="comment">// wxzw</span></div>
+<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.z, v.w);</div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160; }</div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160;</div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160; <span class="comment">// wxwx</span></div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.w, v.x);</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; }</div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;</div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160; <span class="comment">// wxwy</span></div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.w, v.y);</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160; }</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160; <span class="comment">// wxwz</span></div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.w, v.z);</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; }</div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; <span class="comment">// wxww</span></div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wxww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.x, v.w, v.w);</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; }</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;</div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; <span class="comment">// wyxx</span></div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.x, v.x);</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; }</div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;</div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; <span class="comment">// wyxy</span></div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.x, v.y);</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160; }</div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;</div>
+<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160; <span class="comment">// wyxz</span></div>
+<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.x, v.z);</div>
+<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160; }</div>
+<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160; <span class="comment">// wyxw</span></div>
+<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.x, v.w);</div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160; }</div>
+<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;</div>
+<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160; <span class="comment">// wyyx</span></div>
+<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.y, v.x);</div>
+<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; }</div>
+<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160; <span class="comment">// wyyy</span></div>
+<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.y, v.y);</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160; }</div>
+<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;</div>
+<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160; <span class="comment">// wyyz</span></div>
+<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.y, v.z);</div>
+<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160; }</div>
+<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160; <span class="comment">// wyyw</span></div>
+<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.y, v.w);</div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160; }</div>
+<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;</div>
+<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160; <span class="comment">// wyzx</span></div>
+<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.z, v.x);</div>
+<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160; }</div>
+<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;</div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; <span class="comment">// wyzy</span></div>
+<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.z, v.y);</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160; }</div>
+<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;</div>
+<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160; <span class="comment">// wyzz</span></div>
+<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.z, v.z);</div>
+<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160; }</div>
+<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;</div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160; <span class="comment">// wyzw</span></div>
+<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.z, v.w);</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160; }</div>
+<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;</div>
+<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160; <span class="comment">// wywx</span></div>
+<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wywx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.w, v.x);</div>
+<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160; }</div>
+<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;</div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160; <span class="comment">// wywy</span></div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wywy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.w, v.y);</div>
+<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160; }</div>
+<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;</div>
+<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160; <span class="comment">// wywz</span></div>
+<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wywz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.w, v.z);</div>
+<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160; }</div>
+<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;</div>
+<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160; <span class="comment">// wyww</span></div>
+<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wyww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.y, v.w, v.w);</div>
+<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160; }</div>
+<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;</div>
+<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160; <span class="comment">// wzxx</span></div>
+<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.x, v.x);</div>
+<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160; }</div>
+<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;</div>
+<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160; <span class="comment">// wzxy</span></div>
+<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.x, v.y);</div>
+<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160; }</div>
+<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;</div>
+<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160; <span class="comment">// wzxz</span></div>
+<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.x, v.z);</div>
+<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160; }</div>
+<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;</div>
+<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160; <span class="comment">// wzxw</span></div>
+<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.x, v.w);</div>
+<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160; }</div>
+<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;</div>
+<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160; <span class="comment">// wzyx</span></div>
+<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.y, v.x);</div>
+<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160; }</div>
+<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;</div>
+<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160; <span class="comment">// wzyy</span></div>
+<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.y, v.y);</div>
+<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160; }</div>
+<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;</div>
+<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160; <span class="comment">// wzyz</span></div>
+<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.y, v.z);</div>
+<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160; }</div>
+<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160;</div>
+<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160; <span class="comment">// wzyw</span></div>
+<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.y, v.w);</div>
+<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160; }</div>
+<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160;</div>
+<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160; <span class="comment">// wzzx</span></div>
+<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.z, v.x);</div>
+<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160; }</div>
+<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;</div>
+<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160; <span class="comment">// wzzy</span></div>
+<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.z, v.y);</div>
+<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160; }</div>
+<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;</div>
+<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160; <span class="comment">// wzzz</span></div>
+<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.z, v.z);</div>
+<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160; }</div>
+<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;</div>
+<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160; <span class="comment">// wzzw</span></div>
+<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.z, v.w);</div>
+<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160; }</div>
+<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160;</div>
+<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160; <span class="comment">// wzwx</span></div>
+<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.w, v.x);</div>
+<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160; }</div>
+<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;</div>
+<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; <span class="comment">// wzwy</span></div>
+<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.w, v.y);</div>
+<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; }</div>
+<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;</div>
+<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160; <span class="comment">// wzwz</span></div>
+<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.w, v.z);</div>
+<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; }</div>
+<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;</div>
+<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160; <span class="comment">// wzww</span></div>
+<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wzww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.z, v.w, v.w);</div>
+<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160; }</div>
+<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;</div>
+<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160; <span class="comment">// wwxx</span></div>
+<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwxx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.x, v.x);</div>
+<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; }</div>
+<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;</div>
+<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; <span class="comment">// wwxy</span></div>
+<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwxy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.x, v.y);</div>
+<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160; }</div>
+<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;</div>
+<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160; <span class="comment">// wwxz</span></div>
+<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwxz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.x, v.z);</div>
+<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160; }</div>
+<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;</div>
+<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160; <span class="comment">// wwxw</span></div>
+<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwxw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.x, v.w);</div>
+<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160; }</div>
+<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;</div>
+<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160; <span class="comment">// wwyx</span></div>
+<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwyx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.y, v.x);</div>
+<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160; }</div>
+<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;</div>
+<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160; <span class="comment">// wwyy</span></div>
+<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwyy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.y, v.y);</div>
+<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160; }</div>
+<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;</div>
+<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160; <span class="comment">// wwyz</span></div>
+<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwyz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.y, v.z);</div>
+<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160; }</div>
+<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;</div>
+<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160; <span class="comment">// wwyw</span></div>
+<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwyw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.y, v.w);</div>
+<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160; }</div>
+<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;</div>
+<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160; <span class="comment">// wwzx</span></div>
+<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwzx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.z, v.x);</div>
+<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160; }</div>
+<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;</div>
+<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160; <span class="comment">// wwzy</span></div>
+<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwzy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.z, v.y);</div>
+<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160; }</div>
+<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;</div>
+<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160; <span class="comment">// wwzz</span></div>
+<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwzz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.z, v.z);</div>
+<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160; }</div>
+<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;</div>
+<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160; <span class="comment">// wwzw</span></div>
+<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwzw(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.z, v.w);</div>
+<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160; }</div>
+<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;</div>
+<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160; <span class="comment">// wwwx</span></div>
+<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwwx(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.w, v.x);</div>
+<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160; }</div>
+<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160;</div>
+<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160; <span class="comment">// wwwy</span></div>
+<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwwy(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.w, v.y);</div>
+<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160; }</div>
+<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;</div>
+<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160; <span class="comment">// wwwz</span></div>
+<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwwz(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.w, v.z);</div>
+<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160; }</div>
+<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;</div>
+<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160; <span class="comment">// wwww</span></div>
+<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160; GLM_INLINE glm::tvec4&lt;T, P&gt; wwww(<span class="keyword">const</span> glm::tvec4&lt;T, P&gt; &amp;v) {</div>
+<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160; <span class="keywordflow">return</span> glm::tvec4&lt;T, P&gt;(v.w, v.w, v.w, v.w);</div>
+<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160; }</div>
+<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;</div>
+<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;}</div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00136.html b/3rdparty/glm/doc/api/a00136.html
index 8f516f113df..40d8d93de4e 100644
--- a/3rdparty/glm/doc/api/a00136.html
+++ b/3rdparty/glm/doc/api/a00136.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec4.hpp File Reference</title>
+<title>0.9.9 API documenation: vector_angle.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,62 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_vec4.hpp File Reference</div> </div>
+<div class="title">vector_angle.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00234.html">GLM_GTX_vector_angle</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00136_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00234.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr class="memdesc:gab8691008a2536b681b711211816c14f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the absolute angle between two vectors. <a href="a00234.html#gab8691008a2536b681b711211816c14f7">More...</a><br /></td></tr>
+<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00234.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2&lt; T, P &gt; const &amp;x, tvec2&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga82a19d474be13c92c7b10caab42a5a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the oriented angle between two 2d vectors. <a href="a00234.html#ga82a19d474be13c92c7b10caab42a5a72">More...</a><br /></td></tr>
+<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)</td></tr>
+<tr class="memdesc:ga7254dba112eff55f55f9544f41cb9ece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the oriented angle between two 3d vectors based from a reference axis. <a href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">More...</a><br /></td></tr>
+<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00234.html">GLM_GTX_vector_angle</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd>
+<dd>
+gtx_epsilon (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00136_source.html">type_vec4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00136_source.html">vector_angle.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00136_source.html b/3rdparty/glm/doc/api/a00136_source.html
index 93e64c75999..1aa269dea5a 100644
--- a/3rdparty/glm/doc/api/a00136_source.html
+++ b/3rdparty/glm/doc/api/a00136_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec4.hpp Source File</title>
+<title>0.9.9 API documenation: vector_angle.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,505 +64,72 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec4.hpp</div> </div>
+<div class="title">vector_angle.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00136.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00105.html">setup.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00132.html">type_vec.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00004.html">_swizzle.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="a00005.html">_swizzle_func.hpp</a>&quot;</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">struct </span>simd</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> T type[4];</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; };</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"># define GLM_NOT_BUGGY_VC32BITS !(GLM_MODEL == GLM_MODEL_32 &amp;&amp; (GLM_COMPILER &amp; GLM_COMPILER_VC) &amp;&amp; GLM_COMPILER &lt; GLM_COMPILER_VC2013)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_SSE2) &amp;&amp; GLM_NOT_BUGGY_VC32BITS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">struct </span>simd&lt;float&gt;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> __m128 type;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/epsilon.hpp&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../gtx/rotate_vector.hpp&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_vector_angle is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_angle extension included&quot;)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00234.html#gab8691008a2536b681b711211816c14f7">angle</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; vecType <span class="keyword">const</span> &amp; x, </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; vecType <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; ref);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">struct </span>simd&lt;int&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">typedef</span> __m128i type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; };</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">struct </span>simd&lt;unsigned int&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">typedef</span> __m128i type;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; };</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_AVX) &amp;&amp; GLM_NOT_BUGGY_VC32BITS</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">struct </span>simd&lt;double&gt;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> __m256d type;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"># if (GLM_ARCH &amp; GLM_ARCH_AVX2) &amp;&amp; GLM_NOT_BUGGY_VC32BITS</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">struct </span>simd&lt;int64&gt;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">typedef</span> __m256i type;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; };</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">struct </span>simd&lt;uint64&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> __m256i type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; };</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P = defaultp&gt;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">struct </span>tvec4</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">typedef</span> tvec4&lt;T, P&gt; type;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">typedef</span> tvec4&lt;bool, P&gt; bool_type;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">union</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">struct </span>{ T x, y, z, w;};</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">struct </span>{ T r, g, b, a; };</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">struct </span>{ T s, t, p, q; };</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">typename</span> detail::simd&lt;T&gt;::type data;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; };</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">union </span>{ T x, r, s; };</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">union </span>{ T y, g, t; };</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">union </span>{ T z, b, p; };</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">union </span>{ T w, a, q; };</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL T &amp; operator[](size_type i);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL T &amp; operator[](length_type i);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; GLM_FUNC_DECL T <span class="keyword">const</span> &amp; operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; GLM_FUNC_DECL tvec4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GLM_FUNC_DECL tvec4(tvec4&lt;T, P&gt; const &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; template &lt;precision Q&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL tvec4(tvec4&lt;T, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; GLM_FUNC_DECL explicit tvec4(ctor);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL explicit tvec4(T s);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; GLM_FUNC_DECL tvec4(T a, T b, T c, T d);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// -- Conversion scalar constructors --</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; template &lt;typename A, typename B, typename C, typename D&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GLM_FUNC_DECL tvec4(A a, B b, C c, D d);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; template &lt;typename A, typename B, typename C, typename D&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL tvec4(tvec1&lt;A, P&gt; const &amp; a, tvec1&lt;B, P&gt; const &amp; b, tvec1&lt;C, P&gt; const &amp; c, tvec1&lt;D, P&gt; const &amp; d);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec2&lt;A, Q&gt; const &amp; a, B b, C c);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec2&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b, tvec1&lt;C, Q&gt; const &amp; c);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL explicit tvec4(A a, tvec2&lt;B, Q&gt; const &amp; b, C c);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec1&lt;A, Q&gt; const &amp; a, tvec2&lt;B, Q&gt; const &amp; b, tvec1&lt;C, Q&gt; const &amp; c);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; GLM_FUNC_DECL explicit tvec4(A a, B b, tvec2&lt;C, Q&gt; const &amp; c);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; template &lt;typename A, typename B, typename C, precision Q&gt;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec1&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b, tvec2&lt;C, Q&gt; const &amp; c);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec3&lt;A, Q&gt; const &amp; a, B b);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec3&lt;A, Q&gt; const &amp; a, tvec1&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; GLM_FUNC_DECL explicit tvec4(A a, tvec3&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec1&lt;A, Q&gt; const &amp; a, tvec3&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; template &lt;typename A, typename B, precision Q&gt;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; GLM_FUNC_DECL explicit tvec4(tvec2&lt;A, Q&gt; const &amp; a, tvec2&lt;B, Q&gt; const &amp; b);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; template &lt;typename U, precision Q&gt;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; GLM_FUNC_DECL GLM_EXPLICIT tvec4(tvec4&lt;U, Q&gt; const &amp; v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3&gt;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;4, T, P, tvec4&lt;T, P&gt;, E0, E1, E2, E3&gt; <span class="keyword">const</span> &amp; that)</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> F0, <span class="keywordtype">int</span> F1&gt;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, F0, F1, -1, -2&gt; <span class="keyword">const</span> &amp; u)</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(v(), u());</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> &amp; x, T <span class="keyword">const</span> &amp; y, detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(x, y, v());</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> &amp; x, detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; w)</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(x, v(), w);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1&gt;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;2, T, P, tvec2&lt;T, P&gt;, E0, E1, -1, -2&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; z, T <span class="keyword">const</span> &amp; w)</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(v(), z, w);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; GLM_FUNC_DECL tvec4(detail::_swizzle&lt;3, T, P, tvec3&lt;T, P&gt;, E0, E1, E2, -1&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; w)</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(v(), w);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2&gt;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> &amp; x, detail::_swizzle&lt;3, T, P, tvec3&lt;T, P&gt;, E0, E1, E2, -1&gt; <span class="keyword">const</span> &amp; v)</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; *<span class="keyword">this</span> = tvec4&lt;T, P&gt;(x, v());</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># endif// GLM_HAS_ANONYMOUS_UNION &amp;&amp; defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator=(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator+=(U scalar);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator+=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator+=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator-=(U scalar);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator-=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator-=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator*=(U scalar);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator*=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator*=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator/=(U scalar);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator/=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator/=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator++();</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator--();</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator%=(U scalar);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator%=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator%=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&amp;=(U scalar);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&amp;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&amp;=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator|=(U scalar);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator|=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator|=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator^=(U scalar);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator^=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator^=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&lt;&lt;=(U scalar);</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&lt;&lt;=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&gt;&gt;=(U scalar);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec1&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; &amp; operator&gt;&gt;=(tvec4&lt;U, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; };</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator+(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator-(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator*(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator/(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator%(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&amp;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator|(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator^(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&lt;&lt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T scalar);</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v, tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s);</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(T scalar, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec1&lt;T, P&gt; <span class="keyword">const</span> &amp; s, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator&gt;&gt;(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt; </div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; GLM_FUNC_DECL tvec4&lt;T, P&gt; operator~(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v);</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; v2);</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;}<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor">#include &quot;type_vec4.inl&quot;</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType&lt; T, P &gt; const &amp;x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;vector_angle.inl&quot;</span></div>
+<div class="ttc" id="a00234_html_ga7254dba112eff55f55f9544f41cb9ece"><div class="ttname"><a href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">glm::orientedAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T orientedAngle(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)</div><div class="ttdoc">Returns the oriented angle between two 3d vectors based from a reference axis. </div></div>
+<div class="ttc" id="a00234_html_gab8691008a2536b681b711211816c14f7"><div class="ttname"><a href="a00234.html#gab8691008a2536b681b711211816c14f7">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL vecType::value_type angle(vecType const &amp;x, vecType const &amp;y)</div><div class="ttdoc">Returns the absolute angle between two vectors. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00137.html b/3rdparty/glm/doc/api/a00137.html
index 705074a9132..cfbb991c99a 100644
--- a/3rdparty/glm/doc/api/a00137.html
+++ b/3rdparty/glm/doc/api/a00137.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: ulp.hpp File Reference</title>
+<title>0.9.9 API documenation: vector_query.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,54 +64,70 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">ulp.hpp File Reference</div> </div>
+<div class="title">vector_query.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00235.html">GLM_GTX_vector_query</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00137_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &amp;x, T const &amp;y)</td></tr>
-<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
-<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
-<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
-<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga465b844190d1740051e45d780832ea4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether two vectors are collinears. <a href="a00235.html#ga465b844190d1740051e45d780832ea4c">More...</a><br /></td></tr>
+<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gaee10acefed397c11e01f2862e837754c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether two vectors are orthogonals. <a href="a00235.html#gaee10acefed397c11e01f2862e837754c">More...</a><br /></td></tr>
+<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga89c82bc60e5b84e4489b74c15a134caf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether two vectors are orthonormal. <a href="a00235.html#ga89c82bc60e5b84e4489b74c15a134caf">More...</a><br /></td></tr>
+<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga93ecd4137480483ce1af0de8bbbf6546"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a each component of a vector is null. <a href="a00235.html#ga93ecd4137480483ce1af0de8bbbf6546">More...</a><br /></td></tr>
+<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga6fa5fa2af67d14c205d24c49aad03270"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a vector is normalized. <a href="a00235.html#ga6fa5fa2af67d14c205d24c49aad03270">More...</a><br /></td></tr>
+<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga81a64edc1a2b470b82896592e89c523b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a vector is null. <a href="a00235.html#ga81a64edc1a2b470b82896592e89c523b">More...</a><br /></td></tr>
+<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00183.html">GLM_GTC_ulp</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-02-21 / 2011-12-12 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00235.html">GLM_GTX_vector_query</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00137_source.html">ulp.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00137_source.html">vector_query.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00137_source.html b/3rdparty/glm/doc/api/a00137_source.html
index 3ad2c534e0d..f172d9979a3 100644
--- a/3rdparty/glm/doc/api/a00137_source.html
+++ b/3rdparty/glm/doc/api/a00137_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: ulp.hpp Source File</title>
+<title>0.9.9 API documenation: vector_query.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,57 +64,78 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">ulp.hpp</div> </div>
+<div class="title">vector_query.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00137.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../detail/precision.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../detail/type_int.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_ulp extension included&quot;)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> &amp; x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> &amp; Distance);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> &amp; x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> &amp; Distance);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(T <span class="keyword">const</span> &amp; x, T <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">template</span>&lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL vecType&lt;uint&gt; <a class="code" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(vecType&lt;T&gt; <span class="keyword">const</span> &amp; x, vecType&lt;T&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &quot;ulp.inl&quot;</span></div>
-<div class="ttc" id="a00183_html_ga85355f2549d75789eb66e5d565d8ad26"><div class="ttname"><a href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">glm::float_distance</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; uint &gt; float_distance(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</div><div class="ttdoc">Return the distance in the number of ULP between 2 vectors. </div></div>
-<div class="ttc" id="a00183_html_gaa399d5b6472a70e8952f9b26ecaacdec"><div class="ttname"><a href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">glm::prev_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType prev_float(genType const &amp;x, uint const &amp;Distance)</div><div class="ttdoc">Return the value(s) ULP distance before the input value(s). </div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00183_html_gad107ec3d9697ef82032a33338a73ebdd"><div class="ttname"><a href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">glm::next_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType next_float(genType const &amp;x, uint const &amp;Distance)</div><div class="ttdoc">Return the value(s) ULP distance after the input value(s). </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;cfloat&gt;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_vector_query is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_query extension included&quot;)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00235.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00235.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00235.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00235.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00235.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00235.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T <span class="keyword">const</span> &amp; <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;vector_query.inl&quot;</span></div>
+<div class="ttc" id="a00235_html_ga6fa5fa2af67d14c205d24c49aad03270"><div class="ttname"><a href="a00235.html#ga6fa5fa2af67d14c205d24c49aad03270">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</div><div class="ttdoc">Check whether a vector is normalized. </div></div>
+<div class="ttc" id="a00235_html_ga81a64edc1a2b470b82896592e89c523b"><div class="ttname"><a href="a00235.html#ga81a64edc1a2b470b82896592e89c523b">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</div><div class="ttdoc">Check whether a vector is null. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00235_html_ga89c82bc60e5b84e4489b74c15a134caf"><div class="ttname"><a href="a00235.html#ga89c82bc60e5b84e4489b74c15a134caf">glm::areOrthonormal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthonormal(vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</div><div class="ttdoc">Check whether two vectors are orthonormal. </div></div>
+<div class="ttc" id="a00235_html_ga93ecd4137480483ce1af0de8bbbf6546"><div class="ttname"><a href="a00235.html#ga93ecd4137480483ce1af0de8bbbf6546">glm::isCompNull</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isCompNull(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</div><div class="ttdoc">Check whether a each component of a vector is null. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00235_html_gaee10acefed397c11e01f2862e837754c"><div class="ttname"><a href="a00235.html#gaee10acefed397c11e01f2862e837754c">glm::areOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthogonal(vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</div><div class="ttdoc">Check whether two vectors are orthogonals. </div></div>
+<div class="ttc" id="a00235_html_ga465b844190d1740051e45d780832ea4c"><div class="ttname"><a href="a00235.html#ga465b844190d1740051e45d780832ea4c">glm::areCollinear</a></div><div class="ttdeci">GLM_FUNC_DECL bool areCollinear(vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</div><div class="ttdoc">Check whether two vectors are collinears. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00138.html b/3rdparty/glm/doc/api/a00138.html
index fa328d733f7..44b0ea7ba26 100644
--- a/3rdparty/glm/doc/api/a00138.html
+++ b/3rdparty/glm/doc/api/a00138.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec1.hpp File Reference</title>
+<title>0.9.9 API documenation: vector_relational.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,70 +64,39 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">vec1.hpp File Reference</div> </div>
+<div class="title">vector_relational.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00155.html">GLM Core</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00138_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a97f808440fd5411e2c46a55db01329f0"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1&#160;</td><td class="memItemRight" valign="bottom"><b>bvec1</b></td></tr>
-<tr class="separator:a97f808440fd5411e2c46a55db01329f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1&#160;</td><td class="memItemRight" valign="bottom"><b>dvec1</b></td></tr>
-<tr class="separator:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb1dfdb295030ec2965eed463009d9aa"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_bvec1</b></td></tr>
-<tr class="separator:abb1dfdb295030ec2965eed463009d9aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_dvec1</b></td></tr>
-<tr class="separator:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_ivec1</b></td></tr>
-<tr class="separator:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae38198c95c92d34875ca31f4b7c14d27"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>highp_uvec1</b></td></tr>
-<tr class="separator:ae38198c95c92d34875ca31f4b7c14d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1&#160;</td><td class="memItemRight" valign="bottom"><b>ivec1</b></td></tr>
-<tr class="separator:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac42347907bf39ce2adc41f764c7e6c99"><td class="memItemLeft" align="right" valign="top">typedef lowp_bvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_bvec1</b></td></tr>
-<tr class="separator:ac42347907bf39ce2adc41f764c7e6c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memItemLeft" align="right" valign="top">typedef lowp_dvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_dvec1</b></td></tr>
-<tr class="separator:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a62179513d4c3d38f5f7d73756220e568"><td class="memItemLeft" align="right" valign="top">typedef lowp_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_ivec1</b></td></tr>
-<tr class="separator:a62179513d4c3d38f5f7d73756220e568"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memItemLeft" align="right" valign="top">typedef lowp_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>lowp_uvec1</b></td></tr>
-<tr class="separator:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac363ee47ee16b0361db847c5a97e821"><td class="memItemLeft" align="right" valign="top">typedef mediump_bvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_bvec1</b></td></tr>
-<tr class="separator:aac363ee47ee16b0361db847c5a97e821"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a08d652d636a98a60782ac109f0273931"><td class="memItemLeft" align="right" valign="top">typedef mediump_dvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_dvec1</b></td></tr>
-<tr class="separator:a08d652d636a98a60782ac109f0273931"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae2b635f944fd11622a4f23f783f0c01e"><td class="memItemLeft" align="right" valign="top">typedef mediump_ivec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_ivec1</b></td></tr>
-<tr class="separator:ae2b635f944fd11622a4f23f783f0c01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a265324081f85d36db159677d8ca35fd1"><td class="memItemLeft" align="right" valign="top">typedef mediump_uvec1_t&#160;</td><td class="memItemRight" valign="bottom"><b>mediump_uvec1</b></td></tr>
-<tr class="separator:a265324081f85d36db159677d8ca35fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a63e1e4312a97da0007db93d7f18d9687"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1&#160;</td><td class="memItemRight" valign="bottom"><b>uvec1</b></td></tr>
-<tr class="separator:a63e1e4312a97da0007db93d7f18d9687"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4df551da8fd418cf98951a3948390485"><td class="memItemLeft" align="right" valign="top">typedef highp_vec1&#160;</td><td class="memItemRight" valign="bottom"><b>vec1</b></td></tr>
-<tr class="separator:a4df551da8fd418cf98951a3948390485"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00184.html">GLM_GTC_vec1</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-02-08 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00138_source.html">vec1.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00138_source.html">vector_relational.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00138_source.html b/3rdparty/glm/doc/api/a00138_source.html
index ef72fd006cf..e7631f14fee 100644
--- a/3rdparty/glm/doc/api/a00138_source.html
+++ b/3rdparty/glm/doc/api/a00138_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec1.hpp Source File</title>
+<title>0.9.9 API documenation: vector_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,115 +64,35 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec1.hpp</div> </div>
+<div class="title">vector_relational.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00138.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../detail/type_vec1.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_vec1 extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">typedef</span> highp_vec1_t highp_vec1;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">typedef</span> mediump_vec1_t mediump_vec1;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">typedef</span> lowp_vec1_t lowp_vec1;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">typedef</span> highp_dvec1_t highp_dvec1;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">typedef</span> mediump_dvec1_t mediump_dvec1;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> lowp_dvec1_t lowp_dvec1;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">typedef</span> highp_ivec1_t highp_ivec1;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">typedef</span> mediump_ivec1_t mediump_ivec1;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">typedef</span> lowp_ivec1_t lowp_ivec1;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> highp_uvec1_t highp_uvec1;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">typedef</span> mediump_uvec1_t mediump_uvec1;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> lowp_uvec1_t lowp_uvec1;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">typedef</span> highp_bvec1_t highp_bvec1;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">typedef</span> mediump_bvec1_t mediump_bvec1;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">typedef</span> lowp_bvec1_t lowp_bvec1;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// vec1 definition</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_BOOL))</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">typedef</span> mediump_bvec1 bvec1;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">typedef</span> lowp_bvec1 bvec1;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">typedef</span> highp_vec1 vec1;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">typedef</span> mediump_vec1 vec1;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">typedef</span> lowp_vec1 vec1;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">typedef</span> highp_vec1 vec1;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE))</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">typedef</span> mediump_dvec1 dvec1;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">typedef</span> lowp_dvec1 dvec1;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">typedef</span> mediump_ivec1 ivec1;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">typedef</span> lowp_ivec1 ivec1;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">typedef</span> mediump_uvec1 uvec1;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">typedef</span> lowp_uvec1 uvec1;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#include &quot;vec1.inl&quot;</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">detail/func_vector_relational.hpp</a>&quot;</span></div>
+<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">func_vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00139.html b/3rdparty/glm/doc/api/a00139.html
index 3393fab238c..f71ad592b61 100644
--- a/3rdparty/glm/doc/api/a00139.html
+++ b/3rdparty/glm/doc/api/a00139.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec2.hpp File Reference</title>
+<title>0.9.9 API documenation: wrap.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,29 +64,62 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">vec2.hpp File Reference</div> </div>
+<div class="title">wrap.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<p><a class="el" href="a00236.html">GLM_GTX_wrap</a>
+<a href="#details">More...</a></p>
+
<p><a href="a00139_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_CLAMP OpenGL wrap mode. <a href="a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33">More...</a><br /></td></tr>
+<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:gaa6856a0a048d2749252848da35e10c8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. <a href="a00236.html#gaa6856a0a048d2749252848da35e10c8b">More...</a><br /></td></tr>
+<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:ga16a89b0661b60d5bea85137bbae74d73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_MIRROR_REPEAT OpenGL wrap mode. <a href="a00236.html#ga16a89b0661b60d5bea85137bbae74d73">More...</a><br /></td></tr>
+<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:ga809650c6310ea7c42666e918c117fb6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_REPEAT OpenGL wrap mode. <a href="a00236.html#ga809650c6310ea7c42666e918c117fb6f">More...</a><br /></td></tr>
+<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00236.html">GLM_GTX_wrap</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00155.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00139_source.html">vec2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00139_source.html">wrap.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00139_source.html b/3rdparty/glm/doc/api/a00139_source.html
index 1e0d61d7a1b..87e37da0c96 100644
--- a/3rdparty/glm/doc/api/a00139_source.html
+++ b/3rdparty/glm/doc/api/a00139_source.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec2.hpp Source File</title>
+<title>0.9.9 API documenation: wrap.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -39,21 +64,68 @@
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec2.hpp</div> </div>
+<div class="title">wrap.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00139.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00134.html">detail/type_vec2.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># error &quot;GLM: GLM_GTX_wrap is an experimetal extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_wrap extension included&quot;)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00140.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a>(genType <span class="keyword">const</span>&amp; Texcoord);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00236.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a>(genType <span class="keyword">const</span>&amp; Texcoord);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00236.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a>(genType <span class="keyword">const</span>&amp; Texcoord);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00236.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a>(genType <span class="keyword">const</span>&amp; Texcoord);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;wrap.inl&quot;</span></div>
+<div class="ttc" id="a00236_html_ga6c0cc6bd1d67ea1008d2592e998bad33"><div class="ttname"><a href="a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_CLAMP OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00236_html_ga16a89b0661b60d5bea85137bbae74d73"><div class="ttname"><a href="a00236.html#ga16a89b0661b60d5bea85137bbae74d73">glm::mirrorRepeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorRepeat(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00236_html_gaa6856a0a048d2749252848da35e10c8b"><div class="ttname"><a href="a00236.html#gaa6856a0a048d2749252848da35e10c8b">glm::mirrorClamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorClamp(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00236_html_ga809650c6310ea7c42666e918c117fb6f"><div class="ttname"><a href="a00236.html#ga809650c6310ea7c42666e918c117fb6f">glm::repeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType repeat(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_REPEAT OpenGL wrap mode. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00140.html b/3rdparty/glm/doc/api/a00140.html
deleted file mode 100644
index 9eca1e259f3..00000000000
--- a/3rdparty/glm/doc/api/a00140.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec3.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vec3.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00140_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00140_source.html">vec3.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00140_source.html b/3rdparty/glm/doc/api/a00140_source.html
deleted file mode 100644
index b5b30412a1e..00000000000
--- a/3rdparty/glm/doc/api/a00140_source.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec3.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vec3.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00140.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00135.html">detail/type_vec3.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00141.html b/3rdparty/glm/doc/api/a00141.html
deleted file mode 100644
index f9705a9e13d..00000000000
--- a/3rdparty/glm/doc/api/a00141.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec4.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vec4.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00141_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00141_source.html">vec4.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00141_source.html b/3rdparty/glm/doc/api/a00141_source.html
deleted file mode 100644
index 9a74293fe7b..00000000000
--- a/3rdparty/glm/doc/api/a00141_source.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec4.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vec4.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00141.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00136.html">detail/type_vec4.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00142.html b/3rdparty/glm/doc/api/a00142.html
deleted file mode 100644
index bf26f41d3b8..00000000000
--- a/3rdparty/glm/doc/api/a00142.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_angle.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">vector_angle.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00142_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2&lt; T, P &gt; const &amp;x, tvec2&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)</td></tr>
-<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00239.html">GLM_GTX_vector_angle</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-30 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd>
-<dd>
-gtx_epsilon (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00142_source.html">vector_angle.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00142_source.html b/3rdparty/glm/doc/api/a00142_source.html
deleted file mode 100644
index be51d24c51d..00000000000
--- a/3rdparty/glm/doc/api/a00142_source.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_angle.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_angle.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00142.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;../gtc/epsilon.hpp&quot;</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;../gtx/quaternion.hpp&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;../gtx/rotate_vector.hpp&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_angle extension included&quot;)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> vecType&gt;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00239.html#gab8691008a2536b681b711211816c14f7">angle</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; vecType <span class="keyword">const</span> &amp; x, </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vecType <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tvec2&lt;T, P&gt; <span class="keyword">const</span> &amp; y);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; x,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; y,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; tvec3&lt;T, P&gt; <span class="keyword">const</span> &amp; ref);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &quot;vector_angle.inl&quot;</span></div>
-<div class="ttc" id="a00239_html_gab8691008a2536b681b711211816c14f7"><div class="ttname"><a href="a00239.html#gab8691008a2536b681b711211816c14f7">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL vecType::value_type angle(vecType const &amp;x, vecType const &amp;y)</div><div class="ttdoc">Returns the absolute angle between two vectors Parameters need to be normalized. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00239_html_ga7254dba112eff55f55f9544f41cb9ece"><div class="ttname"><a href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">glm::orientedAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T orientedAngle(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)</div><div class="ttdoc">Returns the oriented angle between two 3d vectors based from a reference axis. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00143.html b/3rdparty/glm/doc/api/a00143.html
deleted file mode 100644
index 33b0813c3bc..00000000000
--- a/3rdparty/glm/doc/api/a00143.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_query.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">vector_query.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00143_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
-<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00240.html">GLM_GTX_vector_query</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-03-10 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00143_source.html">vector_query.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00143_source.html b/3rdparty/glm/doc/api/a00143_source.html
deleted file mode 100644
index c667598e368..00000000000
--- a/3rdparty/glm/doc/api/a00143_source.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_query.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_query.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00143.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;cfloat&gt;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_vector_query extension included&quot;)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL vecType&lt;bool, P&gt; <a class="code" href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a>(vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v0, vecType&lt;T, P&gt; <span class="keyword">const</span> &amp; v1, T <span class="keyword">const</span> &amp; <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#include &quot;vector_query.inl&quot;</span></div>
-<div class="ttc" id="a00240_html_ga6fa5fa2af67d14c205d24c49aad03270"><div class="ttname"><a href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</div><div class="ttdoc">Check whether a vector is normalized. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00240_html_ga93ecd4137480483ce1af0de8bbbf6546"><div class="ttname"><a href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">glm::isCompNull</a></div><div class="ttdeci">GLM_FUNC_DECL vecType&lt; bool, P &gt; isCompNull(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</div><div class="ttdoc">Check whether a each component of a vector is null. </div></div>
-<div class="ttc" id="a00240_html_gaee10acefed397c11e01f2862e837754c"><div class="ttname"><a href="a00240.html#gaee10acefed397c11e01f2862e837754c">glm::areOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthogonal(vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</div><div class="ttdoc">Check whether two vectors are orthogonals. </div></div>
-<div class="ttc" id="a00240_html_ga81a64edc1a2b470b82896592e89c523b"><div class="ttname"><a href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</div><div class="ttdoc">Check whether a vector is null. </div></div>
-<div class="ttc" id="a00240_html_ga89c82bc60e5b84e4489b74c15a134caf"><div class="ttname"><a href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">glm::areOrthonormal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthonormal(vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</div><div class="ttdoc">Check whether two vectors are orthonormal. </div></div>
-<div class="ttc" id="a00240_html_ga465b844190d1740051e45d780832ea4c"><div class="ttname"><a href="a00240.html#ga465b844190d1740051e45d780832ea4c">glm::areCollinear</a></div><div class="ttdeci">GLM_FUNC_DECL bool areCollinear(vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</div><div class="ttdoc">Check whether two vectors are collinears. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00144.html b/3rdparty/glm/doc/api/a00144.html
deleted file mode 100644
index c712fc511aa..00000000000
--- a/3rdparty/glm/doc/api/a00144.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_relational.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_relational.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00144_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00144_source.html">vector_relational.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00144_source.html b/3rdparty/glm/doc/api/a00144_source.html
deleted file mode 100644
index 8d371452a18..00000000000
--- a/3rdparty/glm/doc/api/a00144_source.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_relational.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_relational.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00144.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">detail/func_vector_relational.hpp</a>&quot;</span></div>
-<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">func_vector_relational.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00145.html b/3rdparty/glm/doc/api/a00145.html
index 6b1e6c1e348..10b458433e5 100644
--- a/3rdparty/glm/doc/api/a00145.html
+++ b/3rdparty/glm/doc/api/a00145.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: wrap.hpp File Reference</title>
+<title>0.9.9 API documenation: Common functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,61 +33,1159 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">wrap.hpp File Reference</div> </div>
+<div class="title">Common functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p><a href="a00145_source.html">Go to the source code of this file.</a></p>
+<p>These all operate component-wise.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
+<tr class="memdesc:ga693d77696ff36572a0da79efec965acd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x. <a href="a00145.html#ga693d77696ff36572a0da79efec965acd">More...</a><br /></td></tr>
+<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is greater than or equal to x. <a href="a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8">More...</a><br /></td></tr>
+<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
+<tr class="memdesc:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c">More...</a><br /></td></tr>
+<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &amp;v)</td></tr>
+<tr class="memdesc:ga1425c1c3160ec51214b03a0469a3013d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00145.html#ga1425c1c3160ec51214b03a0469a3013d">More...</a><br /></td></tr>
+<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gac4a0710238ae54c67931dd29a0b0f873"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00145.html#gac4a0710238ae54c67931dd29a0b0f873">More...</a><br /></td></tr>
+<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &amp;v)</td></tr>
+<tr class="memdesc:ga70e0271c34af52f3100c7960e18c3f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00145.html#ga70e0271c34af52f3100c7960e18c3f2b">More...</a><br /></td></tr>
+<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1804d4c443605d8a27be644aa461afe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00145.html#ga1804d4c443605d8a27be644aa461afe4">More...</a><br /></td></tr>
+<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga568b822b78f045f77c3325e165b44d5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is less then or equal to x. <a href="a00145.html#ga568b822b78f045f77c3325e165b44d5d">More...</a><br /></td></tr>
+<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
+<tr class="memdesc:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns a * b + c. <a href="a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2">More...</a><br /></td></tr>
+<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
+<tr class="memdesc:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x). <a href="a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7">More...</a><br /></td></tr>
+<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
+<tr class="memdesc:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">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) <a href="a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d">More...</a><br /></td></tr>
+<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &amp;v)</td></tr>
+<tr class="memdesc:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00145.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">More...</a><br /></td></tr>
+<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType&lt; int, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gad21ab176dd0e6b59d923db5efca87f4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00145.html#gad21ab176dd0e6b59d923db5efca87f4e">More...</a><br /></td></tr>
+<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaf28f7a4696746f081685c9fd05c7e2de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. <a href="a00145.html#gaf28f7a4696746f081685c9fd05c7e2de">More...</a><br /></td></tr>
+<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga6cb8f202a52eed2331724a3800198ebf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. <a href="a00145.html#ga6cb8f202a52eed2331724a3800198ebf">More...</a><br /></td></tr>
+<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
+<tr class="memdesc:ga52e319d7289b849ec92055abd4830533"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) <a href="a00145.html#ga52e319d7289b849ec92055abd4830533">More...</a><br /></td></tr>
+<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga98caa7f95a94c86a86ebce893a45326c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00145.html#ga98caa7f95a94c86a86ebce893a45326c">More...</a><br /></td></tr>
+<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga2c2bde1cec025b7ddff83c74a1113719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00145.html#ga2c2bde1cec025b7ddff83c74a1113719">More...</a><br /></td></tr>
+<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</td></tr>
+<tr class="memdesc:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">More...</a><br /></td></tr>
+<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga12201563ef902e3b07e0d1d7656efdb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00145.html#ga12201563ef902e3b07e0d1d7656efdb1">More...</a><br /></td></tr>
+<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
+<tr class="memdesc:ga85e33f139b8db1b39b590a5713b9e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). <a href="a00145.html#ga85e33f139b8db1b39b590a5713b9e679">More...</a><br /></td></tr>
+<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gada0165544c0618d634c8056a88082ce9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00145.html#gada0165544c0618d634c8056a88082ce9">More...</a><br /></td></tr>
+<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga655598104195a60a950291485e84a97e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00145.html#ga655598104195a60a950291485e84a97e">More...</a><br /></td></tr>
+<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gac3446b4138e0b8757561c07cd19f084d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. <a href="a00145.html#gac3446b4138e0b8757561c07cd19f084d">More...</a><br /></td></tr>
+<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
+<tr class="memdesc:ga562edf7eca082cc5b7a0aaf180436daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. <a href="a00145.html#ga562edf7eca082cc5b7a0aaf180436daf">More...</a><br /></td></tr>
+<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
+<tr class="memdesc:ga015a1261ff23e12650211aa872863cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType. <a href="a00145.html#ga015a1261ff23e12650211aa872863cce">More...</a><br /></td></tr>
+<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaf15b74ab672af2c7d7b535a9b4803700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00145.html#gaf15b74ab672af2c7d7b535a9b4803700">More...</a><br /></td></tr>
+<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga6d84170051fb87c183c38883ec85b411"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00145.html#ga6d84170051fb87c183c38883ec85b411">More...</a><br /></td></tr>
+<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga634cdbf8b37edca03f2248450570fd54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. <a href="a00145.html#ga634cdbf8b37edca03f2248450570fd54">More...</a><br /></td></tr>
+<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &amp;v)</td></tr>
+<tr class="memdesc:gab2bae0d15dcdca6093f88f76b3975d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00145.html#gab2bae0d15dcdca6093f88f76b3975d97">More...</a><br /></td></tr>
+<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00145.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType&lt; uint, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga3acab37650ecd792dc84548094b58684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00145.html#ga3acab37650ecd792dc84548094b58684">More...</a><br /></td></tr>
+<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00241.html">GLM_GTX_wrap</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-11-25 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00145_source.html">wrap.hpp</a>.</p>
-</div></div><!-- contents -->
+<p>These all operate component-wise. </p>
+<p>The description is per component. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga693d77696ff36572a0da79efec965acd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::abs </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns x if x &gt;= 0; otherwise, it returns -x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>floating-point or signed integer; scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9189b2bec45ff301923ea8f8dd157fb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::ceil </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer that is greater than or equal to x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga93bce26c7d80d30a62f5c508f8498a6c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>minVal</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>maxVal</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+<p>Referenced by <a class="el" href="a00017_source.html#l00050">glm::saturate()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1425c1c3160ec51214b03a0469a3013d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int glm::floatBitsToInt </td>
+ <td>(</td>
+ <td class="paramtype">float const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a signed integer value representing the encoding of a floating-point value. </p>
+<p>The floating-point value's bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac4a0710238ae54c67931dd29a0b0f873"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::floatBitsToInt </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; float, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a signed integer value representing the encoding of a floating-point value. </p>
+<p>The floatingpoint value's bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga70e0271c34af52f3100c7960e18c3f2b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::floatBitsToUint </td>
+ <td>(</td>
+ <td class="paramtype">float const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
+<p>The floatingpoint value's bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1804d4c443605d8a27be644aa461afe4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::floatBitsToUint </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; float, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
+<p>The floatingpoint value's bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga568b822b78f045f77c3325e165b44d5d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::floor </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad0f444d4b81cc53c3b6edf5aa25078c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::fma </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Computes and returns a * b + c. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8ba89e40e55ae5cdf228548f9b7639c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::fract </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return x - floor(x). </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga20620e83544d1a988857a3bc4ebe0e1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::frexp </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genIType &amp;&#160;</td>
+ <td class="paramname"><em>exp</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) </p>
+<p>The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4fb7c21c2dce064b26fd9ccdaf9adcd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::intBitsToFloat </td>
+ <td>(</td>
+ <td class="paramtype">int const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
+<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad21ab176dd0e6b59d923db5efca87f4e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;float, P&gt; glm::intBitsToFloat </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; int, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
+<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf28f7a4696746f081685c9fd05c7e2de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isinf </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
+<p>Returns false otherwise, including for implementations with no infinity representations.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6cb8f202a52eed2331724a3800198ebf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isnan </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
+<p>Returns false otherwise, including for implementations with no NaN representations.</p>
+<p>/!\ When using compiler fast math, this function may fail.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga52e319d7289b849ec92055abd4830533"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::ldexp </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genIType const &amp;&#160;</td>
+ <td class="paramname"><em>exp</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) </p>
+<p>If this product is too large to be represented in the floating-point type, the result is undefined.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>; </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga98caa7f95a94c86a86ebce893a45326c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::max </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns y if x &lt; y; otherwise, it returns x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2c2bde1cec025b7ddff83c74a1113719"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::min </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns y if y &lt; x; otherwise, it returns x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadccbaffe46f369cf1a96b2aef92cbfdd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::mix </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. </p>
+<p>The value for a is not restricted to the range [0, 1].</p>
+<p>If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mix.xml">GLSL mix man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Value to interpolate. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Value to interpolate. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Interpolant.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genTypeT</td><td>Floating point scalar or vector. </td></tr>
+ <tr><td class="paramname">genTypeU</td><td>Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.</td></tr>
+ </table>
+ </dd>
+</dl>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00041.html">glm/glm.hpp</a>&gt;</span></div>
+<div class="line">...</div>
+<div class="line">float a;</div>
+<div class="line"><span class="keywordtype">bool</span> b;</div>
+<div class="line"><a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>;</div>
+<div class="line"><a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> f;</div>
+<div class="line"><a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> g;</div>
+<div class="line"><a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> h;</div>
+<div class="line">...</div>
+<div class="line">glm::vec4 r = <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, a); <span class="comment">// Interpolate with a floating-point scalar two vectors. </span></div>
+<div class="line"><a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> s = <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, b); <span class="comment">// Teturns g or h;</span></div>
+<div class="line"><a class="code" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> t = <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(<a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
+<div class="line"><a class="code" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> u = <a class="code" href="a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, r); <span class="comment">// Interpolations can be perform per component with a vector for the last parameter.</span></div>
+</div><!-- fragment -->
+<p>Referenced by <a class="el" href="a00017_source.html#l00041">glm::lerp()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga12201563ef902e3b07e0d1d7656efdb1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::mod </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x - y * floor(x / y) for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga85e33f139b8db1b39b590a5713b9e679"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::modf </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>i</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
+<p>Both the return value and the output parameter will have the same sign as x.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada0165544c0618d634c8056a88082ce9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::round </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x. </p>
+<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga655598104195a60a950291485e84a97e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::roundEven </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x. </p>
+<p>A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd>
+<dd>
+<a href="http://developer.amd.com/documentation/articles/pages/New-Round-to-Even-Technique.aspx">New round to even technique</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac3446b4138e0b8757561c07cd19f084d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sign </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or signed integer; scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga562edf7eca082cc5b7a0aaf180436daf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::smoothstep </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>edge0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>edge1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. </p>
+<p>This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 &gt;= edge1.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga015a1261ff23e12650211aa872863cce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::step </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>edge</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf15b74ab672af2c7d7b535a9b4803700"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::step </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>edge</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6d84170051fb87c183c38883ec85b411"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::step </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>edge</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga634cdbf8b37edca03f2248450570fd54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::trunc </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab2bae0d15dcdca6093f88f76b3975d97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::uintBitsToFloat </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
+<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3acab37650ecd792dc84548094b58684"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;float, P&gt; glm::uintBitsToFloat </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
+<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/3rdparty/glm/doc/api/a00145_source.html b/3rdparty/glm/doc/api/a00145_source.html
deleted file mode 100644
index f87fbd5648a..00000000000
--- a/3rdparty/glm/doc/api/a00145_source.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: wrap.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">wrap.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00145.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if(defined(GLM_MESSAGES) &amp;&amp; !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_wrap extension included&quot;)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a>(genType <span class="keyword">const</span> &amp; Texcoord);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a>(genType <span class="keyword">const</span> &amp; Texcoord);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a>(genType <span class="keyword">const</span> &amp; Texcoord);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt; </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a>(genType <span class="keyword">const</span> &amp; Texcoord);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &quot;wrap.inl&quot;</span></div>
-<div class="ttc" id="a00241_html_ga809650c6310ea7c42666e918c117fb6f"><div class="ttname"><a href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">glm::repeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType repeat(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_REPEAT OpenGL wrap mode. </div></div>
-<div class="ttc" id="a00241_html_gaa6856a0a048d2749252848da35e10c8b"><div class="ttname"><a href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">glm::mirrorClamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorClamp(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00241_html_ga6c0cc6bd1d67ea1008d2592e998bad33"><div class="ttname"><a href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_CLAMP OpenGL wrap mode. </div></div>
-<div class="ttc" id="a00241_html_ga16a89b0661b60d5bea85137bbae74d73"><div class="ttname"><a href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">glm::mirrorRepeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorRepeat(genType const &amp;Texcoord)</div><div class="ttdoc">Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00146.html b/3rdparty/glm/doc/api/a00146.html
new file mode 100644
index 00000000000..69a352f6d66
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00146.html
@@ -0,0 +1,374 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: Exponential functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Exponential functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>These all operate component-wise.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural exponentiation of x, i.e., e^x. <a href="a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">More...</a><br /></td></tr>
+<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga42ca440d9062f1f456f5a9e896378f9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 2 raised to the v power. <a href="a00146.html#ga42ca440d9062f1f456f5a9e896378f9c">More...</a><br /></td></tr>
+<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga599103d4fe4ef2234761ba8da7268627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reciprocal of the positive square root of v. <a href="a00146.html#ga599103d4fe4ef2234761ba8da7268627">More...</a><br /></td></tr>
+<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga21efca311e62d233de0ae96bab126b83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. <a href="a00146.html#ga21efca311e62d233de0ae96bab126b83">More...</a><br /></td></tr>
+<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gabae30945338a555a03733f00dad95d0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. <a href="a00146.html#gabae30945338a555a03733f00dad95d0d">More...</a><br /></td></tr>
+<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)</td></tr>
+<tr class="memdesc:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 'base' raised to the power 'exponent'. <a href="a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd">More...</a><br /></td></tr>
+<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of v. <a href="a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">More...</a><br /></td></tr>
+<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>These all operate component-wise. </p>
+<p>The description is per component. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga25e54a7f44fc49ec6ac6ffc7675cf04a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::exp </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the natural exponentiation of x, i.e., e^x. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>exp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga42ca440d9062f1f456f5a9e896378f9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::exp2 </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 2 raised to the v power. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>exp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga599103d4fe4ef2234761ba8da7268627"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::inversesqrt </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the reciprocal of the positive square root of v. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>inversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga21efca311e62d233de0ae96bab126b83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::log </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. </p>
+<p>Results are undefined if v &lt;= 0.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>log function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabae30945338a555a03733f00dad95d0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::log2 </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>log2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga082b332a4b7c6ad1d43e09ff19e214dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::pow </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>base</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>exponent</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns 'base' raised to the power 'exponent'. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">base</td><td>Floating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
+ <tr><td class="paramname">exponent</td><td>Floating point value representing the 'exponent'. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae7ac2e44c14d4e8004098d0bfba6e2b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sqrt </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the positive square root of v. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>sqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00147.html b/3rdparty/glm/doc/api/a00147.html
new file mode 100644
index 00000000000..cf07edba796
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00147.html
@@ -0,0 +1,417 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: Geometric functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Geometric functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>These operate on vectors as vectors, not component-wise.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gafe2cae8cb26fd44be62aee97369d0af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the cross product of x and y. <a href="a00147.html#gafe2cae8cb26fd44be62aee97369d0af8">More...</a><br /></td></tr>
+<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</td></tr>
+<tr class="memdesc:ga7ca317dde0d7e94d920153554d4a02a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). <a href="a00147.html#ga7ca317dde0d7e94d920153554d4a02a8">More...</a><br /></td></tr>
+<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dot product of x and y, i.e., result = x * y. <a href="a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b">More...</a><br /></td></tr>
+<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType&lt; T, P &gt; const &amp;N, vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;Nref)</td></tr>
+<tr class="memdesc:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. <a href="a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">More...</a><br /></td></tr>
+<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga18d45e3d4c7705e67ccfabd99e521604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of x, i.e., sqrt(x * x). <a href="a00147.html#ga18d45e3d4c7705e67ccfabd99e521604">More...</a><br /></td></tr>
+<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gada9451ec170a36fe53552812b9c03a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a vector in the same direction as x but with length of 1. <a href="a00147.html#gada9451ec170a36fe53552812b9c03a68">More...</a><br /></td></tr>
+<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
+<tr class="memdesc:gab63646fc36b81cf69d3ce123a72f76f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. <a href="a00147.html#gab63646fc36b81cf69d3ce123a72f76f2">More...</a><br /></td></tr>
+<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</td></tr>
+<tr class="memdesc:gab7e7cdf4403931a5f7b74560ad64159b"><td class="mdescLeft">&#160;</td><td class="mdescRight">For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. <a href="a00147.html#gab7e7cdf4403931a5f7b74560ad64159b">More...</a><br /></td></tr>
+<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>These operate on vectors as vectors, not component-wise. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gafe2cae8cb26fd44be62aee97369d0af8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::cross </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the cross product of x and y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cross.xml">GLSL cross man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ca317dde0d7e94d920153554d4a02a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::distance </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p1</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/distance.xml">GLSL distance man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7dada304da2ba7dd3376ab4f178c3f6b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::dot </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the dot product of x and y, i.e., result = x * y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/dot.xml">GLSL dot man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaea854e5aec1b5839832ac2dfc7cd3c0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::faceforward </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>N</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>I</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Nref</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/faceforward.xml">GLSL faceforward man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga18d45e3d4c7705e67ccfabd99e521604"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::length </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the length of x, i.e., sqrt(x * x). </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/length.xml">GLSL length man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada9451ec170a36fe53552812b9c03a68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::normalize </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a vector in the same direction as x but with length of 1. </p>
+<p>According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml">GLSL normalize man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab63646fc36b81cf69d3ce123a72f76f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::reflect </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>I</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>N</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/reflect.xml">GLSL reflect man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab7e7cdf4403931a5f7b74560ad64159b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::refract </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>I</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>N</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>eta</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/refract.xml">GLSL refract man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00148.html b/3rdparty/glm/doc/api/a00148.html
new file mode 100644
index 00000000000..bda32308d7f
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00148.html
@@ -0,0 +1,632 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: Integer functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Integer functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>These all operate component-wise.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
+<tr class="memdesc:ga44abfe3379e11cbd29425a843420d0d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bits set to 1 in the binary representation of value. <a href="a00148.html#ga44abfe3379e11cbd29425a843420d0d6">More...</a><br /></td></tr>
+<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1f29640969a3c54564da06ac67a5392e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bits set to 1 in the binary representation of value. <a href="a00148.html#ga1f29640969a3c54564da06ac67a5392e">More...</a><br /></td></tr>
+<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType&lt; T, P &gt; const &amp;Value, int Offset, int Bits)</td></tr>
+<tr class="memdesc:gab84b88f3a8e367774e5dd1c618c353cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. <a href="a00148.html#gab84b88f3a8e367774e5dd1c618c353cf">More...</a><br /></td></tr>
+<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType&lt; T, P &gt; const &amp;Base, vecType&lt; T, P &gt; const &amp;Insert, int Offset, int Bits)</td></tr>
+<tr class="memdesc:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the insertion the bits least-significant bits of insert into base. <a href="a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7">More...</a><br /></td></tr>
+<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga153e7e8d0c035f83cce50fc3e580930f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reversal of the bits of value. <a href="a00148.html#ga153e7e8d0c035f83cce50fc3e580930f">More...</a><br /></td></tr>
+<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
+<tr class="memdesc:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the least significant bit set to 1 in the binary representation of value. <a href="a00148.html#gaf74c4d969fa34ab8acb9d390f5ca5274">More...</a><br /></td></tr>
+<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga014a72009e68233c34c06a6dc2251b8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the least significant bit set to 1 in the binary representation of value. <a href="a00148.html#ga014a72009e68233c34c06a6dc2251b8c">More...</a><br /></td></tr>
+<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
+<tr class="memdesc:ga7e4a794d766861c70bc961630f8ef621"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the most significant bit in the binary representation of value. <a href="a00148.html#ga7e4a794d766861c70bc961630f8ef621">More...</a><br /></td></tr>
+<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga433104d77ec2ba58888aaefb77e9183f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bit number of the most significant bit in the binary representation of value. <a href="a00148.html#ga433104d77ec2ba58888aaefb77e9183f">More...</a><br /></td></tr>
+<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType&lt; int, P &gt; const &amp;x, vecType&lt; int, P &gt; const &amp;y, vecType&lt; int, P &gt; &amp;msb, vecType&lt; int, P &gt; &amp;lsb)</td></tr>
+<tr class="memdesc:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplies 32-bit integers x and y, producing a 64-bit result. <a href="a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">More...</a><br /></td></tr>
+<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;carry)</td></tr>
+<tr class="memdesc:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). <a href="a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">More...</a><br /></td></tr>
+<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;msb, vecType&lt; uint, P &gt; &amp;lsb)</td></tr>
+<tr class="memdesc:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplies 32-bit integers x and y, producing a 64-bit result. <a href="a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">More...</a><br /></td></tr>
+<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;borrow)</td></tr>
+<tr class="memdesc:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. <a href="a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4">More...</a><br /></td></tr>
+<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>These all operate component-wise. </p>
+<p>The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga44abfe3379e11cbd29425a843420d0d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int glm::bitCount </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the number of bits set to 1 in the binary representation of value. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1f29640969a3c54564da06ac67a5392e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::bitCount </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the number of bits set to 1 in the binary representation of value. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab84b88f3a8e367774e5dd1c618c353cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldExtract </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Bits</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. </p>
+<p>For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.</p>
+<p>If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldExtract.xml">GLSL bitfieldExtract man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5681dfac9239beb1b8bd995e3c6496d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldInsert </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Base</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Insert</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Bits</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the insertion the bits least-significant bits of insert into base. </p>
+<p>The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldInsert.xml">GLSL bitfieldInsert man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga153e7e8d0c035f83cce50fc3e580930f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldReverse </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the reversal of the bits of value. </p>
+<p>The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldReverse.xml">GLSL bitfieldReverse man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf74c4d969fa34ab8acb9d390f5ca5274"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int glm::findLSB </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
+<p>If value is zero, -1 will be returned.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga014a72009e68233c34c06a6dc2251b8c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::findLSB </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
+<p>If value is zero, -1 will be returned.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7e4a794d766861c70bc961630f8ef621"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int glm::findMSB </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the bit number of the most significant bit in the binary representation of value. </p>
+<p>For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga433104d77ec2ba58888aaefb77e9183f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::findMSB </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the bit number of the most significant bit in the binary representation of value. </p>
+<p>For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e6e8b29ca40d8ca2df10b58ed17d426"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL void glm::imulExtended </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; int, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; int, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; int, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>msb</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; int, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>lsb</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
+<p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genIType</td><td>Signed integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/imulExtended.xml">GLSL imulExtended man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::uaddCarry </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>carry</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </p>
+<p>The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uaddCarry.xml">GLSL uaddCarry man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga456ff9dcec42f6769a9ae2a2af7f1ce1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL void glm::umulExtended </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>msb</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>lsb</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
+<p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/umulExtended.xml">GLSL umulExtended man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga22a889bf08313b7e547e2cdb8bb15ee4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::usubBorrow </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>borrow</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </p>
+<p>The value borrow is set to 0 if x &gt;= y, or to 1 otherwise.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/usubBorrow.xml">GLSL usubBorrow man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00149.html b/3rdparty/glm/doc/api/a00149.html
new file mode 100644
index 00000000000..9da1d6f0ed6
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00149.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: Matrix functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Matrix functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga26ea77c574802bc6fc193c40478718d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the transposed matrix of x. <a href="a00149.html#ga26ea77c574802bc6fc193c40478718d2">More...</a><br /></td></tr>
+<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:gaa7e1d5586cd499126cec76e0f11871e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the inverse of a squared matrix. <a href="a00149.html#gaa7e1d5586cd499126cec76e0f11871e3">More...</a><br /></td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga4a54992e4741188ee624b21e3ba91814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. <a href="a00149.html#ga4a54992e4741188ee624b21e3ba91814">More...</a><br /></td></tr>
+<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecTypeA, template&lt; typename, precision &gt; class vecTypeB&gt; </td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</td></tr>
+<tr class="memdesc:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. <a href="a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09">More...</a><br /></td></tr>
+<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision. </p>
+<p>Only the single-precision floating point version is shown. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga26ea77c574802bc6fc193c40478718d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::determinant </td>
+ <td>(</td>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the transposed matrix of x. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> Return the determinant of a squared matrix.</dd></dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa7e1d5586cd499126cec76e0f11871e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL matType&lt; T, P &gt; inverse </td>
+ <td>(</td>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the inverse of a squared matrix. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4a54992e4741188ee624b21e3ba91814"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL matType&lt;T, P&gt; glm::matrixCompMult </td>
+ <td>(</td>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae9f513dc8e4f3ceb993669321b6d0f09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL detail::outerProduct_trait&lt;T, P, vecTypeA, vecTypeB&gt;::type glm::outerProduct </td>
+ <td>(</td>
+ <td class="paramtype">vecTypeA&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecTypeB&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>r</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00150.html b/3rdparty/glm/doc/api/a00150.html
new file mode 100644
index 00000000000..b673be2c54d
--- /dev/null
+++ b/3rdparty/glm/doc/api/a00150.html
@@ -0,0 +1,418 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: Floating-Point Pack and Unpack Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Floating-Point Pack and Unpack Functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>These functions do not operate component-wise, rather as described in each case.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &amp;v)</td></tr>
+<tr class="memdesc:gaa916ca426b2bb0343ba17e3753e245c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a double-precision value obtained by packing the components of v into a 64-bit value. <a href="a00150.html#gaa916ca426b2bb0343ba17e3753e245c2">More...</a><br /></td></tr>
+<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga20f134b07db3a3d3a38efb2617388c92"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga20f134b07db3a3d3a38efb2617388c92">More...</a><br /></td></tr>
+<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga977ab172da5494e5ac63e952afacfbe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#ga977ab172da5494e5ac63e952afacfbe2">More...</a><br /></td></tr>
+<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga85e8f17627516445026ab7a9c2e3531a"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#ga85e8f17627516445026ab7a9c2e3531a">More...</a><br /></td></tr>
+<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga0e2d107039fe608a209497af867b85fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#ga0e2d107039fe608a209497af867b85fb">More...</a><br /></td></tr>
+<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. <a href="a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">More...</a><br /></td></tr>
+<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
+<tr class="memdesc:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a two-component unsigned integer vector representation of v. <a href="a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483">More...</a><br /></td></tr>
+<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
+<tr class="memdesc:gaf59b52e6b28da9335322c4ae19b5d745"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#gaf59b52e6b28da9335322c4ae19b5d745">More...</a><br /></td></tr>
+<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
+<tr class="memdesc:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38">More...</a><br /></td></tr>
+<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
+<tr class="memdesc:ga2db488646d48b7c43d3218954523fe82"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga2db488646d48b7c43d3218954523fe82">More...</a><br /></td></tr>
+<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
+<tr class="memdesc:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007">More...</a><br /></td></tr>
+<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
+<tr class="memdesc:ga7f903259150b67e9466f5f8edffcd197"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00150.html#ga7f903259150b67e9466f5f8edffcd197">More...</a><br /></td></tr>
+<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>These functions do not operate component-wise, rather as described in each case. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaa916ca426b2bb0343ba17e3753e245c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL double glm::packDouble2x32 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a double-precision value obtained by packing the components of v into a 64-bit value. </p>
+<p>If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packDouble2x32.xml">GLSL packDouble2x32 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga20f134b07db3a3d3a38efb2617388c92"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::packHalf2x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga977ab172da5494e5ac63e952afacfbe2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::packSnorm2x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm2x16.xml">GLSL packSnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga85e8f17627516445026ab7a9c2e3531a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::packSnorm4x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0e2d107039fe608a209497af867b85fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::packUnorm2x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm2x16.xml">GLSL packUnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf7d2f7341a9eeb4a436929d6f9ad08f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::packUnorm4x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5f4296dc5f12f0aa67ac05b8bb322483"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a two-component unsigned integer vector representation of v. </p>
+<p>The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackDouble2x32.xml">GLSL unpackDouble2x32 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf59b52e6b28da9335322c4ae19b5d745"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackHalf2x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacd8f8971a3fe28418be0d0fa1f786b38"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2db488646d48b7c43d3218954523fe82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1f66188e5d65afeb9ffba1ad971e4007"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7f903259150b67e9466f5f8edffcd197"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/a00151.html b/3rdparty/glm/doc/api/a00151.html
index 7d26630604e..477ca90f606 100644
--- a/3rdparty/glm/doc/api/a00151.html
+++ b/3rdparty/glm/doc/api/a00151.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Common functions</title>
+<title>0.9.9 API documenation: Angle and Trigonometry Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,151 +33,132 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Common functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Angle and Trigonometry Functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Function parameters specified as angle are assumed to be in units of radians.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
-<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
-<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &amp;v)</td></tr>
-<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &amp;v)</td></tr>
-<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
-<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
-<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &amp;x, genIType &amp;exp)</td></tr>
-<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &amp;v)</td></tr>
-<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType&lt; int, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template&lt;typename genType , typename genIType &gt; </td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &amp;x, genIType const &amp;exp)</td></tr>
-<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)</td></tr>
-<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
-<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
-<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
-<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &amp;v)</td></tr>
-<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class vecType, precision P&gt; </td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType&lt; uint, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc cosine. <a href="a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc">More...</a><br /></td></tr>
+<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga3f368ad3e1883b60748ca2634d816104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc hyperbolic cosine; returns the non-negative inverse of cosh. <a href="a00151.html#ga3f368ad3e1883b60748ca2634d816104">More...</a><br /></td></tr>
+<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga88e29b8289e882859d76a25798dd9490"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc sine. <a href="a00151.html#ga88e29b8289e882859d76a25798dd9490">More...</a><br /></td></tr>
+<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga72bf44c1984e1afb63acf821ba33cac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc hyperbolic sine; returns the inverse of sinh. <a href="a00151.html#ga72bf44c1984e1afb63acf821ba33cac7">More...</a><br /></td></tr>
+<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga461e769acb8b8cb695a5a89334546611"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. <a href="a00151.html#ga461e769acb8b8cb695a5a89334546611">More...</a><br /></td></tr>
+<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType&lt; T, P &gt; const &amp;y_over_x)</td></tr>
+<tr class="memdesc:gae8f22458bba8f2321ceb1bfc4a543216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. <a href="a00151.html#gae8f22458bba8f2321ceb1bfc4a543216">More...</a><br /></td></tr>
+<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaffa8decdd8620759f4e6fe4834768b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc hyperbolic tangent; returns the inverse of tanh. <a href="a00151.html#gaffa8decdd8620759f4e6fe4834768b87">More...</a><br /></td></tr>
+<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga728fd86f14609e37d83f82429995b7b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard trigonometric cosine function. <a href="a00151.html#ga728fd86f14609e37d83f82429995b7b3">More...</a><br /></td></tr>
+<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga660582a4e5e843b6c1cd535777e8c295"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. <a href="a00151.html#ga660582a4e5e843b6c1cd535777e8c295">More...</a><br /></td></tr>
+<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a> (vecType&lt; T, P &gt; const &amp;radians)</td></tr>
+<tr class="memdesc:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts radians to degrees and returns the result. <a href="a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1">More...</a><br /></td></tr>
+<tr class="separator:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a> (vecType&lt; T, P &gt; const &amp;degrees)</td></tr>
+<tr class="memdesc:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts degrees to radians and returns the result. <a href="a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c">More...</a><br /></td></tr>
+<tr class="separator:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard trigonometric sine function. <a href="a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">More...</a><br /></td></tr>
+<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:gad8f89c12efe6f8d3ae8046625b266254"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. <a href="a00151.html#gad8f89c12efe6f8d3ae8046625b266254">More...</a><br /></td></tr>
+<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard trigonometric tangent function. <a href="a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2">More...</a><br /></td></tr>
+<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
+<tr class="memdesc:ga234e904a0075f88654a594b5f837711f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) <a href="a00151.html#ga234e904a0075f88654a594b5f837711f">More...</a><br /></td></tr>
+<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These all operate component-wise. </p>
-<p>The description is per component. </p>
+<p>Function parameters specified as angle are assumed to be in units of radians. </p>
+<p>In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.</p>
+<p>These all operate component-wise. The description is per component. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga693d77696ff36572a0da79efec965acd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::abs </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x if x &gt;= 0; otherwise, it returns -x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>floating-point or signed integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9189b2bec45ff301923ea8f8dd157fb8"></a>
+<a class="anchor" id="ga58ad259b788528fe0a4bd2eeb5e381cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::ceil </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::acos </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -180,158 +167,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns a value equal to the nearest integer that is greater than or equal to x. </p>
+<p>Arc cosine. </p>
+<p>Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| &gt; 1.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93bce26c7d80d30a62f5c508f8498a6c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>minVal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>maxVal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-<p>Referenced by <a class="el" href="a00016_source.html#l00076">glm::saturate()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1425c1c3160ec51214b03a0469a3013d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::floatBitsToInt </td>
- <td>(</td>
- <td class="paramtype">float const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a signed integer value representing the encoding of a floating-point value. </p>
-<p>The floating-point value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac4a0710238ae54c67931dd29a0b0f873"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::floatBitsToInt </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; float, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a signed integer value representing the encoding of a floating-point value. </p>
-<p>The floatingpoint value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga70e0271c34af52f3100c7960e18c3f2b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::floatBitsToUint </td>
- <td>(</td>
- <td class="paramtype">float const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
-<p>The floatingpoint value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1804d4c443605d8a27be644aa461afe4"></a>
+<a class="anchor" id="ga3f368ad3e1883b60748ca2634d816104"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::floatBitsToUint </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; float, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
-<p>The floatingpoint value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga568b822b78f045f77c3325e165b44d5d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::floor </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::acosh </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -340,104 +195,90 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
+<p>Arc hyperbolic cosine; returns the non-negative inverse of cosh. </p>
+<p>Results are undefined if x &lt; 1.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad0f444d4b81cc53c3b6edf5aa25078c2"></a>
+<a class="anchor" id="ga88e29b8289e882859d76a25798dd9490"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fma </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::asin </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Computes and returns a * b + c. </p>
+<p>Arc sine. </p>
+<p>Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| &gt; 1.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8ba89e40e55ae5cdf228548f9b7639c7"></a>
+<a class="anchor" id="ga72bf44c1984e1afb63acf821ba33cac7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fract </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::asinh </td>
<td>(</td>
- <td class="paramtype">genType&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return x - floor(x). </p>
+<p>Arc hyperbolic sine; returns the inverse of sinh. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga20620e83544d1a988857a3bc4ebe0e1d"></a>
+<a class="anchor" id="ga461e769acb8b8cb695a5a89334546611"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::frexp </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::atan </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genIType &amp;&#160;</td>
- <td class="paramname"><em>exp</em>&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -447,98 +288,56 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) </p>
-<p>The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.</p>
+<p>Arc tangent. </p>
+<p>Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-</div>
-</div>
-<a class="anchor" id="ga4fb7c21c2dce064b26fd9ccdaf9adcd4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL float glm::intBitsToFloat </td>
- <td>(</td>
- <td class="paramtype">int const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Referenced by <a class="el" href="a00017_source.html#l00055">glm::atan2()</a>.</p>
</div>
</div>
-<a class="anchor" id="gad21ab176dd0e6b59d923db5efca87f4e"></a>
+<a class="anchor" id="gae8f22458bba8f2321ceb1bfc4a543216"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;float, P&gt; glm::intBitsToFloat </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; int, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf28f7a4696746f081685c9fd05c7e2de"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isinf </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::atan </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>y_over_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
-<p>Returns false otherwise, including for implementations with no infinity representations.</p>
+<p>Arc tangent. </p>
+<p>Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6cb8f202a52eed2331724a3800198ebf"></a>
+<a class="anchor" id="gaffa8decdd8620759f4e6fe4834768b87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isnan </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::atanh </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -547,568 +346,235 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
-<p>Returns false otherwise, including for implementations with no NaN representations.</p>
-<p>/!\ When using compiler fast math, this function may fail.</p>
+<p>Arc hyperbolic tangent; returns the inverse of tanh. </p>
+<p>Results are undefined if abs(x) &gt;= 1.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga52e319d7289b849ec92055abd4830533"></a>
+<a class="anchor" id="ga728fd86f14609e37d83f82429995b7b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ldexp </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::cos </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIType const &amp;&#160;</td>
- <td class="paramname"><em>exp</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) </p>
-<p>If this product is too large to be represented in the floating-point type, the result is undefined.</p>
+<p>The standard trigonometric cosine function. </p>
+<p>The values returned by this function will range from [-1, 1].</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>; </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga98caa7f95a94c86a86ebce893a45326c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::max </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns y if x &lt; y; otherwise, it returns x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2c2bde1cec025b7ddff83c74a1113719"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::min </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns y if y &lt; x; otherwise, it returns x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gadccbaffe46f369cf1a96b2aef92cbfdd"></a>
+<a class="anchor" id="ga660582a4e5e843b6c1cd535777e8c295"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::mix </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::cosh </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. </p>
-<p>The value for a is not restricted to the range [0, 1].</p>
-<p>If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mix.xml">GLSL mix man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a></dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Value to interpolate. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Value to interpolate. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Interpolant.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genTypeT</td><td>Floating point scalar or vector. </td></tr>
- <tr><td class="paramname">genTypeU</td><td>Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.</td></tr>
- </table>
- </dd>
-</dl>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00040.html">glm/glm.hpp</a>&gt;</span></div>
-<div class="line">...</div>
-<div class="line">float a;</div>
-<div class="line"><span class="keywordtype">bool</span> b;</div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>;</div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> f;</div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> g;</div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> h;</div>
-<div class="line">...</div>
-<div class="line">glm::vec4 r = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, a); <span class="comment">// Interpolate with a floating-point scalar two vectors. </span></div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> s = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, b); <span class="comment">// Teturns g or h;</span></div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> t = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(<a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> u = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, r); <span class="comment">// Interpolations can be perform per component with a vector for the last parameter.</span></div>
-</div><!-- fragment -->
-<p>Referenced by <a class="el" href="a00016_source.html#l00067">glm::lerp()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga12201563ef902e3b07e0d1d7656efdb1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::mod </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Modulus. </p>
-<p>Returns x - y * floor(x / y) for each component in x using the floating point value y.</p>
+<p>Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga85e33f139b8db1b39b590a5713b9e679"></a>
+<a class="anchor" id="gabccdcc282134fd62af0ff3d6e4bb21f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::modf </td>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt;T, P&gt; glm::degrees </td>
<td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>i</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>radians</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
-<p>Both the return value and the output parameter will have the same sign as x.</p>
+<p>Converts radians to degrees and returns the result. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gada0165544c0618d634c8056a88082ce9"></a>
+<a class="anchor" id="gafffb5e533f75318bdf4e0967d8a6c05c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::round </td>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR vecType&lt;T, P&gt; glm::radians </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>degrees</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a value equal to the nearest integer to x. </p>
-<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.</p>
+<p>Converts degrees to radians and returns the result. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga655598104195a60a950291485e84a97e"></a>
+<a class="anchor" id="ga4a0ddceb6b1e64ce0e4da209dcb021d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::roundEven </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sin </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a value equal to the nearest integer to x. </p>
-<p>A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)</p>
+<p>The standard trigonometric sine function. </p>
+<p>The values returned by this function will range from [-1, 1].</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a> </dd>
<dd>
-<a href="http://developer.amd.com/documentation/articles/pages/New-Round-to-Even-Technique.aspx">New round to even technique</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac3446b4138e0b8757561c07cd19f084d"></a>
+<a class="anchor" id="gad8f89c12efe6f8d3ae8046625b266254"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sign </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sinh </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. </p>
+<p>Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or signed integer; scalar or vector types.</td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga562edf7eca082cc5b7a0aaf180436daf"></a>
+<a class="anchor" id="gab3ae890c38b7d3aa4d5e00998fd296b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::smoothstep </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::tan </td>
<td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>edge0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>edge1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. </p>
-<p>This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 &gt;= edge1.</p>
+<p>The standard trigonometric tangent function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga015a1261ff23e12650211aa872863cce"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::step </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>edge</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf15b74ab672af2c7d7b535a9b4803700"></a>
+<a class="anchor" id="ga234e904a0075f88654a594b5f837711f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::step </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::tanh </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>edge</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6d84170051fb87c183c38883ec85b411"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::step </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>edge</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns 0.0 if x &lt; edge, otherwise it returns 1.0. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga634cdbf8b37edca03f2248450570fd54"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::trunc </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
+<p>Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab2bae0d15dcdca6093f88f76b3975d97"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL float glm::uintBitsToFloat </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3acab37650ecd792dc84548094b58684"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;float, P&gt; glm::uintBitsToFloat </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00152.html b/3rdparty/glm/doc/api/a00152.html
index 7a82558d891..6b61073fc6f 100644
--- a/3rdparty/glm/doc/api/a00152.html
+++ b/3rdparty/glm/doc/api/a00152.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Exponential functions</title>
+<title>0.9.9 API documenation: Vector Relational Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,231 +33,282 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Exponential functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Vector Relational Functions<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)</td></tr>
-<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if all components of x are true. <a href="a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e">More...</a><br /></td></tr>
+<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga632a2644532d9332011c8860400d30b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if any component of x is true. <a href="a00152.html#ga632a2644532d9332011c8860400d30b2">More...</a><br /></td></tr>
+<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x == y. <a href="a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801">More...</a><br /></td></tr>
+<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gadd80263161a308462d3e3e287e79cccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt; y. <a href="a00152.html#gadd80263161a308462d3e3e287e79cccd">More...</a><br /></td></tr>
+<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt;= y. <a href="a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">More...</a><br /></td></tr>
+<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga6261970937a70b0b747ae0d3ade1c188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison result of x &lt; y. <a href="a00152.html#ga6261970937a70b0b747ae0d3ade1c188">More...</a><br /></td></tr>
+<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaaf1d88119f11200c32011de7c5ec0102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &lt;= y. <a href="a00152.html#gaaf1d88119f11200c32011de7c5ec0102">More...</a><br /></td></tr>
+<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise logical complement of x. <a href="a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177">More...</a><br /></td></tr>
+<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga5aca2b745e5eb0096716bbc394846309"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x != y. <a href="a00152.html#ga5aca2b745e5eb0096716bbc394846309">More...</a><br /></td></tr>
+<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These all operate component-wise. </p>
-<p>The description is per component. </p>
+<p>Relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. </p>
+<p>For vector results, use the following built-in functions.</p>
+<p>In all cases, the sizes of all the input and return vectors for any particular call must match. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga25e54a7f44fc49ec6ac6ffc7675cf04a"></a>
+<a class="anchor" id="ga14bbc94f2ae2774a1d64d91f8767773e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::exp </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::all </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">vecType&lt; bool, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the natural exponentiation of x, i.e., e^x. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>exp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Returns true if all components of x are true. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga42ca440d9062f1f456f5a9e896378f9c"></a>
+<a class="anchor" id="ga632a2644532d9332011c8860400d30b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::exp2 </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::any </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">vecType&lt; bool, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 2 raised to the v power. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>exp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Returns true if any component of x is true. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga599103d4fe4ef2234761ba8da7268627"></a>
+<a class="anchor" id="ga39c80d8baf49b0ce69f2bb22d45b3801"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::inversesqrt </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::equal </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the reciprocal of the positive square root of v. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>inversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Returns the component-wise comparison of result x == y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga21efca311e62d233de0ae96bab126b83"></a>
+<a class="anchor" id="gadd80263161a308462d3e3e287e79cccd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::log </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::greaterThan </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. </p>
-<p>Results are undefined if v &lt;= 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>log function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Returns the component-wise comparison of result x &gt; y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabae30945338a555a03733f00dad95d0d"></a>
+<a class="anchor" id="gaee7e101f8cc4ea43924f14dcdeb2ef26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::log2 </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::greaterThanEqual </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>log2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Returns the component-wise comparison of result x &gt;= y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga082b332a4b7c6ad1d43e09ff19e214dd"></a>
+<a class="anchor" id="ga6261970937a70b0b747ae0d3ade1c188"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::pow </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::lessThan </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>base</em>, </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>exponent</em>&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -261,56 +318,118 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns 'base' raised to the power 'exponent'. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">base</td><td>Floating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
- <tr><td class="paramname">exponent</td><td>Floating point value representing the 'exponent'. </td></tr>
+<p>Returns the component-wise comparison result of x &lt; y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaf1d88119f11200c32011de7c5ec0102"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::lessThanEqual </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the component-wise comparison of result x &lt;= y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae7ac2e44c14d4e8004098d0bfba6e2b8"></a>
+<a class="anchor" id="ga4329ecbc2ef012c9ec704bd09da1f177"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sqrt </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::not_ </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">vecType&lt; bool, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the positive square root of v. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>sqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. </td></tr>
+<p>Returns the component-wise logical complement of x. </p>
+<p>/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5aca2b745e5eb0096716bbc394846309"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::notEqual </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the component-wise comparison of result x != y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00153.html b/3rdparty/glm/doc/api/a00153.html
index 40e45968106..3eeeeec1f86 100644
--- a/3rdparty/glm/doc/api/a00153.html
+++ b/3rdparty/glm/doc/api/a00153.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Geometric functions</title>
+<title>0.9.9 API documenation: GTC Extensions (Stable)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,335 +33,131 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> </div>
<div class="headertitle">
-<div class="title">Geometric functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GTC Extensions (Stable)</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</td></tr>
-<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType&lt; T, P &gt; const &amp;N, vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;Nref)</td></tr>
-<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &amp;I, genType const &amp;N)</td></tr>
-<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType&lt; T, P &gt; const &amp;I, vecType&lt; T, P &gt; const &amp;N, T eta)</td></tr>
-<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00159"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html">GLM_GTC_bitfield</a></td></tr>
+<tr class="memdesc:a00159"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow to perform bit operations on integer values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00160"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html">GLM_GTC_color_encoding</a></td></tr>
+<tr class="memdesc:a00160"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow to perform bit operations on integer values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00161"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00161.html">GLM_GTC_color_space</a></td></tr>
+<tr class="memdesc:a00161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow to perform bit operations on integer values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00162.html">GLM_GTC_constants</a></td></tr>
+<tr class="memdesc:a00162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a list of constants and precomputed useful values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00163"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html">GLM_GTC_epsilon</a></td></tr>
+<tr class="memdesc:a00163"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparison functions for a user defined epsilon values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00164"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html">GLM_GTC_functions</a></td></tr>
+<tr class="memdesc:a00164"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of useful common functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00165"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00165.html">GLM_GTC_integer</a></td></tr>
+<tr class="memdesc:a00165"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow to perform bit operations on integer values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00166"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html">GLM_GTC_matrix_access</a></td></tr>
+<tr class="memdesc:a00166"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines functions to access rows or columns of a matrix easily. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00167"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a></td></tr>
+<tr class="memdesc:a00167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a number of matrices with integer types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00168"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a></td></tr>
+<tr class="memdesc:a00168"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines additional matrix inverting functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00169"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a></td></tr>
+<tr class="memdesc:a00169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines functions that generate common transformation matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00170"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00170.html">GLM_GTC_noise</a></td></tr>
+<tr class="memdesc:a00170"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> &lt;<a class="el" href="a00074.html" title="GLM_GTC_noise ">glm/gtc/noise.hpp</a>&gt; need to be included to use these functionalities. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00171"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html">GLM_GTC_packing</a></td></tr>
+<tr class="memdesc:a00171"><td class="mdescLeft">&#160;</td><td class="mdescRight">This extension provides a set of function to convert vertors to packed formats. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00172"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html">GLM_GTC_quaternion</a></td></tr>
+<tr class="memdesc:a00172"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a templated quaternion type and several quaternion operations. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00173"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00173.html">GLM_GTC_random</a></td></tr>
+<tr class="memdesc:a00173"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random number from various distribution methods. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00174"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00174.html">GLM_GTC_reciprocal</a></td></tr>
+<tr class="memdesc:a00174"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define secant, cosecant and cotangent functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00175"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html">GLM_GTC_round</a></td></tr>
+<tr class="memdesc:a00175"><td class="mdescLeft">&#160;</td><td class="mdescRight">rounding value to specific boundings <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00176"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html">GLM_GTC_type_aligned</a></td></tr>
+<tr class="memdesc:a00176"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aligned types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00177"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html">GLM_GTC_type_precision</a></td></tr>
+<tr class="memdesc:a00177"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines specific C++-based precision types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00178"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00178.html">GLM_GTC_type_ptr</a></td></tr>
+<tr class="memdesc:a00178"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles the interaction between pointers and vector, matrix types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00179"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00179.html">GLM_GTC_ulp</a></td></tr>
+<tr class="memdesc:a00179"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow the measurement of the accuracy of a function against a reference implementation. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00180"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00180.html">GLM_GTC_vec1</a></td></tr>
+<tr class="memdesc:a00180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add vec1, ivec1, uvec1 and bvec1 types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These operate on vectors as vectors, not component-wise. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gafe2cae8cb26fd44be62aee97369d0af8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::cross </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the cross product of x and y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cross.xml">GLSL cross man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ca317dde0d7e94d920153554d4a02a8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::distance </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p1</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/distance.xml">GLSL distance man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7dada304da2ba7dd3376ab4f178c3f6b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::dot </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the dot product of x and y, i.e., result = x * y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/dot.xml">GLSL dot man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaea854e5aec1b5839832ac2dfc7cd3c0d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::faceforward </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>N</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>I</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Nref</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/faceforward.xml">GLSL faceforward man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga18d45e3d4c7705e67ccfabd99e521604"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::length </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the length of x, i.e., sqrt(x * x). </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/length.xml">GLSL length man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada9451ec170a36fe53552812b9c03a68"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::normalize </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a vector in the same direction as x but with length of 1. </p>
-<p>According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml">GLSL normalize man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab63646fc36b81cf69d3ce123a72f76f2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::reflect </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>I</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>N</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/reflect.xml">GLSL reflect man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab7e7cdf4403931a5f7b74560ad64159b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::refract </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>I</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>N</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>eta</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/refract.xml">GLSL refract man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
+<p>GTC extensions aim to be stable.</p>
+<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00024.html" title="GLM Core (Dependence) ">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00154.html b/3rdparty/glm/doc/api/a00154.html
index c95d3f15dab..082a41b82dc 100644
--- a/3rdparty/glm/doc/api/a00154.html
+++ b/3rdparty/glm/doc/api/a00154.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Integer functions</title>
+<title>0.9.9 API documenation: GTX Extensions (Experimental)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,545 +33,233 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> </div>
<div class="headertitle">
-<div class="title">Integer functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GTX Extensions (Experimental)</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
-<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType&lt; T, P &gt; const &amp;Value, int Offset, int Bits)</td></tr>
-<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType&lt; T, P &gt; const &amp;Base, vecType&lt; T, P &gt; const &amp;Insert, int Offset, int Bits)</td></tr>
-<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
-<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
-<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType&lt; int, P &gt; const &amp;x, vecType&lt; int, P &gt; const &amp;y, vecType&lt; int, P &gt; &amp;msb, vecType&lt; int, P &gt; &amp;lsb)</td></tr>
-<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;carry)</td></tr>
-<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;msb, vecType&lt; uint, P &gt; &amp;lsb)</td></tr>
-<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType&lt; uint, P &gt; const &amp;x, vecType&lt; uint, P &gt; const &amp;y, vecType&lt; uint, P &gt; &amp;borrow)</td></tr>
-<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00181"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a></td></tr>
+<tr class="memdesc:a00181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Min and max functions that return associated values not the compared onces. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00182"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00182.html">GLM_GTX_bit</a></td></tr>
+<tr class="memdesc:a00182"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow to perform bit operations on integer values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00183"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00183.html">GLM_GTX_closest_point</a></td></tr>
+<tr class="memdesc:a00183"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the point on a straight line which is the closet of a point. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00184"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00184.html">GLM_GTX_color_space</a></td></tr>
+<tr class="memdesc:a00184"><td class="mdescLeft">&#160;</td><td class="mdescRight">Related to RGB to HSV conversions and operations. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00185"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a></td></tr>
+<tr class="memdesc:a00185"><td class="mdescLeft">&#160;</td><td class="mdescRight">RGB to YCoCg conversions and operations. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00186"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00186.html">GLM_GTX_common</a></td></tr>
+<tr class="memdesc:a00186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide functions to increase the compatibility with Cg and HLSL languages. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html">GLM_GTX_compatibility</a></td></tr>
+<tr class="memdesc:a00187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide functions to increase the compatibility with Cg and HLSL languages. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00188"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00188.html">GLM_GTX_component_wise</a></td></tr>
+<tr class="memdesc:a00188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operations between components of a type. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00189"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a></td></tr>
+<tr class="memdesc:a00189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines a templated dual-quaternion type and several dual-quaternion operations. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00190"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00190.html">GLM_GTX_euler_angles</a></td></tr>
+<tr class="memdesc:a00190"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build matrices from Euler angles. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00191"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html">GLM_GTX_extend</a></td></tr>
+<tr class="memdesc:a00191"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extend a position from a source to a position at a defined length. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00192"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00192.html">GLM_GTX_extented_min_max</a></td></tr>
+<tr class="memdesc:a00192"><td class="mdescLeft">&#160;</td><td class="mdescRight">Min and max functions for 3 to 4 parameters. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00193"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a></td></tr>
+<tr class="memdesc:a00193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast but less accurate implementations of exponential based functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00194"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a></td></tr>
+<tr class="memdesc:a00194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast but less accurate implementations of square root based functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00195"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a></td></tr>
+<tr class="memdesc:a00195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast but less accurate implementations of trigonometric functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00196"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a></td></tr>
+<tr class="memdesc:a00196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions that return the color of procedural gradient for specific coordinates. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00197"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a></td></tr>
+<tr class="memdesc:a00197"><td class="mdescLeft">&#160;</td><td class="mdescRight">To know if a set of three basis vectors defines a right or left-handed coordinate system. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00198.html">GLM_GTX_hash</a></td></tr>
+<tr class="memdesc:a00198"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add std::hash support for glm types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00199"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html">GLM_GTX_integer</a></td></tr>
+<tr class="memdesc:a00199"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add support for integer for core functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00200"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00200.html">GLM_GTX_intersect</a></td></tr>
+<tr class="memdesc:a00200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add intersection functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00201"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00201.html">GLM_GTX_io</a></td></tr>
+<tr class="memdesc:a00201"><td class="mdescLeft">&#160;</td><td class="mdescRight">std::[w]ostream support for glm types <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00202"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00202.html">GLM_GTX_log_base</a></td></tr>
+<tr class="memdesc:a00202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm for any base. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00203"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a></td></tr>
+<tr class="memdesc:a00203"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build cross product matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00204"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a></td></tr>
+<tr class="memdesc:a00204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decomposes a model matrix to translations, rotation and scale components. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00205"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a></td></tr>
+<tr class="memdesc:a00205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows to directly interpolate two exiciting matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00206"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a></td></tr>
+<tr class="memdesc:a00206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build matrices with specific matrix order, row or column. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00207"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a></td></tr>
+<tr class="memdesc:a00207"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build diagonal matrices from vectors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00208"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html">GLM_GTX_matrix_query</a></td></tr>
+<tr class="memdesc:a00208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query to evaluate matrix properties. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00209"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a></td></tr>
+<tr class="memdesc:a00209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines functions that generate common 2d transformation matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00210"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a></td></tr>
+<tr class="memdesc:a00210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mixed product of 3 vectors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00211"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html">GLM_GTX_norm</a></td></tr>
+<tr class="memdesc:a00211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Various ways to compute vector norms. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00212"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00212.html">GLM_GTX_normal</a></td></tr>
+<tr class="memdesc:a00212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the normal of a triangle. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00213"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a></td></tr>
+<tr class="memdesc:a00213"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dot product of vectors that need to be normalize with a single square root. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00214"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html">GLM_GTX_number_precision</a></td></tr>
+<tr class="memdesc:a00214"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined size types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00215"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a></td></tr>
+<tr class="memdesc:a00215"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integer exponentiation of power functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00216"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a></td></tr>
+<tr class="memdesc:a00216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Orthonormalize matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00217"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00217.html">GLM_GTX_perpendicular</a></td></tr>
+<tr class="memdesc:a00217"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perpendicular of a vector from other one. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00218"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a></td></tr>
+<tr class="memdesc:a00218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversion from Euclidean space to polar space and revert. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00219"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00219.html">GLM_GTX_projection</a></td></tr>
+<tr class="memdesc:a00219"><td class="mdescLeft">&#160;</td><td class="mdescRight">Projection of a vector to other one. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00220"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00220.html">GLM_GTX_quaternion</a></td></tr>
+<tr class="memdesc:a00220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extented quaternion types and functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00221.html">GLM_GTX_range</a></td></tr>
+<tr class="memdesc:a00221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines begin and end for vectors and matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00222"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">GLM_GTX_raw_data</a></td></tr>
+<tr class="memdesc:a00222"><td class="mdescLeft">&#160;</td><td class="mdescRight">Projection of a vector to other one. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00223"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a></td></tr>
+<tr class="memdesc:a00223"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternions and matrices rotations around normalized axis. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00224"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a></td></tr>
+<tr class="memdesc:a00224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to directly rotate a vector. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00225"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a></td></tr>
+<tr class="memdesc:a00225"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extend a position from a source to a position at a defined length. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00226"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html">GLM_GTX_spline</a></td></tr>
+<tr class="memdesc:a00226"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spline functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00227"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html">GLM_GTX_std_based_type</a></td></tr>
+<tr class="memdesc:a00227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds vector types based on STL value types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00228"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00228.html">GLM_GTX_string_cast</a></td></tr>
+<tr class="memdesc:a00228"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup strings for GLM type values. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00229"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00229.html">GLM_GTX_transform</a></td></tr>
+<tr class="memdesc:a00229"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add transformation matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00230"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html">GLM_GTX_transform2</a></td></tr>
+<tr class="memdesc:a00230"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add extra transformation matrices. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00231"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html">GLM_GTX_type_aligned</a></td></tr>
+<tr class="memdesc:a00231"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines aligned types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00232"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00232.html">GLM_GTX_type_trait</a></td></tr>
+<tr class="memdesc:a00232"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines traits for each type. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00233"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00233.html">GLM_GTX_vec_swizzle</a></td></tr>
+<tr class="memdesc:a00233"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions to perform swizzle operation. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00234"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html">GLM_GTX_vector_angle</a></td></tr>
+<tr class="memdesc:a00234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute angle between vectors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00235"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html">GLM_GTX_vector_query</a></td></tr>
+<tr class="memdesc:a00235"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query informations of vector types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00236"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html">GLM_GTX_wrap</a></td></tr>
+<tr class="memdesc:a00236"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapping mode of texture coordinates. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These all operate component-wise. </p>
-<p>The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga44abfe3379e11cbd29425a843420d0d6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::bitCount </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the number of bits set to 1 in the binary representation of value. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1f29640969a3c54564da06ac67a5392e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::bitCount </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the number of bits set to 1 in the binary representation of value. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab84b88f3a8e367774e5dd1c618c353cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldExtract </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Offset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Bits</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. </p>
-<p>For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.</p>
-<p>If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldExtract.xml">GLSL bitfieldExtract man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5681dfac9239beb1b8bd995e3c6496d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldInsert </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Base</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Insert</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Offset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Bits</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the insertion the bits least-significant bits of insert into base. </p>
-<p>The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldInsert.xml">GLSL bitfieldInsert man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga153e7e8d0c035f83cce50fc3e580930f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldReverse </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the reversal of the bits of value. </p>
-<p>The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldReverse.xml">GLSL bitfieldReverse man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf74c4d969fa34ab8acb9d390f5ca5274"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::findLSB </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
-<p>If value is zero, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga014a72009e68233c34c06a6dc2251b8c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::findLSB </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
-<p>If value is zero, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7e4a794d766861c70bc961630f8ef621"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::findMSB </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the most significant bit in the binary representation of value. </p>
-<p>For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga433104d77ec2ba58888aaefb77e9183f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::findMSB </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the most significant bit in the binary representation of value. </p>
-<p>For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e6e8b29ca40d8ca2df10b58ed17d426"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL void glm::imulExtended </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; int, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; int, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; int, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>msb</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; int, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>lsb</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
-<p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genIType</td><td>Signed integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/imulExtended.xml">GLSL imulExtended man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::uaddCarry </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>carry</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </p>
-<p>The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uaddCarry.xml">GLSL uaddCarry man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga456ff9dcec42f6769a9ae2a2af7f1ce1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL void glm::umulExtended </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>msb</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>lsb</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
-<p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/umulExtended.xml">GLSL umulExtended man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga22a889bf08313b7e547e2cdb8bb15ee4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::usubBorrow </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>borrow</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </p>
-<p>The value borrow is set to 0 if x &gt;= y, or to 1 otherwise.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/usubBorrow.xml">GLSL usubBorrow man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
+<p>Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.</p>
+<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00024.html" title="GLM Core (Dependence) ">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00155.html b/3rdparty/glm/doc/api/a00155.html
index dc7848c4484..4c57b52f3a6 100644
--- a/3rdparty/glm/doc/api/a00155.html
+++ b/3rdparty/glm/doc/api/a00155.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Matrix functions</title>
+<title>0.9.9 API documenation: GLM Core</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,178 +33,99 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> </div>
<div class="headertitle">
-<div class="title">Matrix functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GLM Core</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a> (matType&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType&lt; T, P &gt; const &amp;x, matType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecTypeA, template&lt; typename, precision &gt; class vecTypeB&gt; </td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait&lt; T, P, vecTypeA, vecTypeB &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA&lt; T, P &gt; const &amp;c, vecTypeB&lt; T, P &gt; const &amp;r)</td></tr>
-<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00145"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html">Common functions</a></td></tr>
+<tr class="memdesc:a00145"><td class="mdescLeft">&#160;</td><td class="mdescRight">These all operate component-wise. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00146"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html">Exponential functions</a></td></tr>
+<tr class="memdesc:a00146"><td class="mdescLeft">&#160;</td><td class="mdescRight">These all operate component-wise. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00147"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html">Geometric functions</a></td></tr>
+<tr class="memdesc:a00147"><td class="mdescLeft">&#160;</td><td class="mdescRight">These operate on vectors as vectors, not component-wise. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00148"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html">Integer functions</a></td></tr>
+<tr class="memdesc:a00148"><td class="mdescLeft">&#160;</td><td class="mdescRight">These all operate component-wise. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00149"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html">Matrix functions</a></td></tr>
+<tr class="memdesc:a00149"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00150"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html">Floating-Point Pack and Unpack Functions</a></td></tr>
+<tr class="memdesc:a00150"><td class="mdescLeft">&#160;</td><td class="mdescRight">These functions do not operate component-wise, rather as described in each case. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00151"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html">Angle and Trigonometry Functions</a></td></tr>
+<tr class="memdesc:a00151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function parameters specified as angle are assumed to be in units of radians. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00152"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00152.html">Vector Relational Functions</a></td></tr>
+<tr class="memdesc:a00152"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00156"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html">Types</a></td></tr>
+<tr class="memdesc:a00156"><td class="mdescLeft">&#160;</td><td class="mdescRight">The standard types defined by the specification. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00157"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html">Precision types</a></td></tr>
+<tr class="memdesc:a00157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-GLSL types that are used to define precision-based types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00158"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">Template types</a></td></tr>
+<tr class="memdesc:a00158"><td class="mdescLeft">&#160;</td><td class="mdescRight">The generic template types used as the basis for the core types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision. </p>
-<p>Only the single-precision floating point version is shown. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga26ea77c574802bc6fc193c40478718d2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::determinant </td>
- <td>(</td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the transposed matrix of x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> Return the determinant of a squared matrix.</dd></dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7635d3dbe5aa10ff73a0e6903bf6bea5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL matType&lt;T, P&gt; glm::inverse </td>
- <td>(</td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the inverse of a squared matrix. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4a54992e4741188ee624b21e3ba91814"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL matType&lt;T, P&gt; glm::matrixCompMult </td>
- <td>(</td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae9f513dc8e4f3ceb993669321b6d0f09"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL detail::outerProduct_trait&lt;T, P, vecTypeA, vecTypeB&gt;::type glm::outerProduct </td>
- <td>(</td>
- <td class="paramtype">vecTypeA&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecTypeB&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>r</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible. </p>
+<p>The GLM core consists of <a class="el" href="a00156.html">C++ types that mirror GLSL types</a> and C++ functions that mirror the GLSL functions. It also includes <a class="el" href="a00157.html">a set of precision-based types</a> that can be used in the appropriate functions. The C++ types are all based on a basic set of <a class="el" href="a00158.html">template types</a>.</p>
+<p>The best documentation for GLM Core is the current GLSL specification, <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2 (pdf file)</a>.</p>
+<p>GLM core functionalities require &lt;<a class="el" href="a00041.html" title="GLM Core ">glm/glm.hpp</a>&gt; to be included to be used. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00156.html b/3rdparty/glm/doc/api/a00156.html
index 638a04bffdc..2c071ff3b4e 100644
--- a/3rdparty/glm/doc/api/a00156.html
+++ b/3rdparty/glm/doc/api/a00156.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Noise functions</title>
+<title>0.9.9 API documenation: Types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,146 +33,849 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> &#124;
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">Noise functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Types<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>The standard types defined by the specification.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gadcbf14e3390990f33fda02bb20836960">noise1</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gadcbf14e3390990f33fda02bb20836960"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; typename genType::value_type, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gad88de7f308dc57edb80690373a1380a9">noise2</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gad88de7f308dc57edb80690373a1380a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; typename genType::value_type, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">noise3</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; typename genType::value_type, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">noise4</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gaed96a491dd0c552040d59f9178bc626d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00157"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html">Precision types</a></td></tr>
+<tr class="memdesc:a00157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-GLSL types that are used to define precision-based types. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
+<tr class="memdesc:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of boolean. <a href="a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">More...</a><br /></td></tr>
+<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
+<tr class="memdesc:ga150731e2a148eff8752114a0e450505e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of boolean. <a href="a00156.html#ga150731e2a148eff8752114a0e450505e">More...</a><br /></td></tr>
+<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
+<tr class="memdesc:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of boolean. <a href="a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6">More...</a><br /></td></tr>
+<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
+<tr class="memdesc:gac7f51e23c8802d867f564dfd146bdb44"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#gac7f51e23c8802d867f564dfd146bdb44">More...</a><br /></td></tr>
+<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
+<tr class="memdesc:gacc27b39853a2ecb538c8b3afc20c359e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#gacc27b39853a2ecb538c8b3afc20c359e">More...</a><br /></td></tr>
+<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
+<tr class="memdesc:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7">More...</a><br /></td></tr>
+<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
+<tr class="memdesc:gaddd230c88fbd6ec33242329be3a1b738"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#gaddd230c88fbd6ec33242329be3a1b738">More...</a><br /></td></tr>
+<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
+<tr class="memdesc:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff">More...</a><br /></td></tr>
+<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
+<tr class="memdesc:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8">More...</a><br /></td></tr>
+<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
+<tr class="memdesc:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">More...</a><br /></td></tr>
+<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
+<tr class="memdesc:ga38d9bfca882ec542b1928cf77b5c2091"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#ga38d9bfca882ec542b1928cf77b5c2091">More...</a><br /></td></tr>
+<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
+<tr class="memdesc:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">More...</a><br /></td></tr>
+<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
+<tr class="memdesc:ga6ddab280c735a2139133b4164b99a68a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 2 matrix of double-precision floating-point numbers. <a href="a00156.html#ga6ddab280c735a2139133b4164b99a68a">More...</a><br /></td></tr>
+<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
+<tr class="memdesc:gab6c8974496fc7c72dad09219118ba89e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 3 matrix of double-precision floating-point numbers. <a href="a00156.html#gab6c8974496fc7c72dad09219118ba89e">More...</a><br /></td></tr>
+<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
+<tr class="memdesc:ga41c2da87ca627c1b2da5e895435a508e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 * 4 matrix of double-precision floating-point numbers. <a href="a00156.html#ga41c2da87ca627c1b2da5e895435a508e">More...</a><br /></td></tr>
+<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
+<tr class="memdesc:ga15ade901680b29b78c1f9d1796db6e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of double-precision floating-point numbers. <a href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">More...</a><br /></td></tr>
+<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
+<tr class="memdesc:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of double-precision floating-point numbers. <a href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">More...</a><br /></td></tr>
+<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
+<tr class="memdesc:ga9503f809789bda7e8852a6abde3ae5c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of double-precision floating-point numbers. <a href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">More...</a><br /></td></tr>
+<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
+<tr class="memdesc:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of signed integer numbers. <a href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">More...</a><br /></td></tr>
+<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
+<tr class="memdesc:ga34aee73784bcc247d426250540c1911c"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of signed integer numbers. <a href="a00156.html#ga34aee73784bcc247d426250540c1911c">More...</a><br /></td></tr>
+<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
+<tr class="memdesc:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of signed integer numbers. <a href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">More...</a><br /></td></tr>
+<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
+<tr class="memdesc:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">More...</a><br /></td></tr>
+<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
+<tr class="memdesc:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">More...</a><br /></td></tr>
+<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
+<tr class="memdesc:gafb063d734266e92915d87f8943560471"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#gafb063d734266e92915d87f8943560471">More...</a><br /></td></tr>
+<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
+<tr class="memdesc:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac">More...</a><br /></td></tr>
+<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
+<tr class="memdesc:ga6dd3ec98a548755676267e59142911f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#ga6dd3ec98a548755676267e59142911f8">More...</a><br /></td></tr>
+<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
+<tr class="memdesc:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4">More...</a><br /></td></tr>
+<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
+<tr class="memdesc:ga378921b6a07bcdad946858b340f69ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">More...</a><br /></td></tr>
+<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
+<tr class="memdesc:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">More...</a><br /></td></tr>
+<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
+<tr class="memdesc:gade0eb47c01f79384a6f38017ede17446"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#gade0eb47c01f79384a6f38017ede17446">More...</a><br /></td></tr>
+<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
+<tr class="memdesc:ga1b3f6a5cbc17362141f9781262ed838f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of floating-point numbers. <a href="a00156.html#ga1b3f6a5cbc17362141f9781262ed838f">More...</a><br /></td></tr>
+<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
+<tr class="memdesc:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of floating-point numbers. <a href="a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd">More...</a><br /></td></tr>
+<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
+<tr class="memdesc:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of floating-point numbers. <a href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">More...</a><br /></td></tr>
+<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
+<tr class="memdesc:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of unsigned integer numbers. <a href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">More...</a><br /></td></tr>
+<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
+<tr class="memdesc:gae85537b672ffe0b3218cbdf1823e1c72"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of unsigned integer numbers. <a href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">More...</a><br /></td></tr>
+<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
+<tr class="memdesc:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of unsigned integer numbers. <a href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">More...</a><br /></td></tr>
+<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
+<tr class="memdesc:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of floating-point numbers. <a href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">More...</a><br /></td></tr>
+<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
+<tr class="memdesc:gaa8ea2429bb3cb41a715258a447f39897"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of floating-point numbers. <a href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">More...</a><br /></td></tr>
+<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
+<tr class="memdesc:gafbab23070ca47932487d25332adc7d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of floating-point numbers. <a href="a00156.html#gafbab23070ca47932487d25332adc7d7c">More...</a><br /></td></tr>
+<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Noise functions are stochastic functions that can be used to increase visual complexity. </p>
-<p>Values returned by the following noise functions give the appearance of randomness, but are not truly random. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gadcbf14e3390990f33fda02bb20836960"></a>
+<p>The standard types defined by the specification. </p>
+<p>These types are all typedefs of more generalized, template types. To see the definition of these template types, go to <a class="el" href="a00158.html">Template types</a>. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga0e46aaaccc5e713eac5bfbc8d6885a60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_bvec2 bvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of boolean. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00562">562</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga150731e2a148eff8752114a0e450505e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_bvec3 bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of boolean. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00567">567</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga444e8f61bfb3a6f037d019ac6933f8c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_bvec4 bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of boolean. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00572">572</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac7f51e23c8802d867f564dfd146bdb44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x2 dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00707">707</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacc27b39853a2ecb538c8b3afc20c359e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x2 dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00722">722</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1cb3c561a32f0864733dfaf97c71f0c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x3 dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00727">727</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaddd230c88fbd6ec33242329be3a1b738"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x4 dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00732">732</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae174ff65e148bb7dec4bf10a63cb46ff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::noise1 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_dmat3x3 dmat3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a 1D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise1.xml">GLSL noise1 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
+<p>3 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00712">712</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gad88de7f308dc57edb80690373a1380a9"></a>
+<a class="anchor" id="gaec22f44dddbdadfe5dfca68eb3457ea8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;typename genType::value_type, defaultp&gt; glm::noise2 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_dmat3x2 dmat3x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a 2D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise2.xml">GLSL noise2 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
+<p>3 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00737">737</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga3359a5e2b61cee8cf4498470a63f7283"></a>
+<a class="anchor" id="gac44263f56ff3cbf0a9cc4e2405d5ecb8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;typename genType::value_type, defaultp&gt; glm::noise3 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_dmat3x3 dmat3x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a 3D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise3.xml">GLSL noise3 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
+<p>3 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00742">742</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaed96a491dd0c552040d59f9178bc626d"></a>
+<a class="anchor" id="ga38d9bfca882ec542b1928cf77b5c2091"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;typename genType::value_type, defaultp&gt; glm::noise4 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_dmat3x4 dmat3x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a 4D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise4.xml">GLSL noise4 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
+<p>3 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00747">747</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga97b38ea24e9ebf58eac04a8d99dc3e27"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x4 dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00717">717</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6ddab280c735a2139133b4164b99a68a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x2 dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00752">752</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab6c8974496fc7c72dad09219118ba89e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x3 dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00757">757</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga41c2da87ca627c1b2da5e895435a508e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x4 dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00762">762</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga15ade901680b29b78c1f9d1796db6e0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dvec2 dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00481">481</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabebd0c7e3c5cd337d95c313c5e8b8db4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dvec3 dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00486">486</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9503f809789bda7e8852a6abde3ae5c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dvec4 dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00491">491</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2ab812bd103527e2d6c62c2e2f5ee78f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ivec2 ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00508">508</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga34aee73784bcc247d426250540c1911c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ivec3 ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00513">513</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaa26c41d168dc00be0fe55f4d0a34224"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ivec4 ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00518">518</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6e30cfba068ebc3c71fe1f8b3110e450"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mat2x2 mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00406">406</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c84b211a5730357b63c6d2e4fb696d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat2x2 mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00359">359</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb063d734266e92915d87f8943560471"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat2x3 mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00364">364</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4d2ac1a80c36fb5a1d15914035f792ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat2x4 mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00369">369</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6dd3ec98a548755676267e59142911f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mat3x3 mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00411">411</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3839ca29d011a80ff3ede7f22ba602a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat3x2 mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00374">374</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga378921b6a07bcdad946858b340f69ab1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat3x3 mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00379">379</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7876e0c3e3fcc3e2f4c0462c152e87cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat3x4 mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00384">384</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade0eb47c01f79384a6f38017ede17446"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mat4x4 mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00416">416</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1b3f6a5cbc17362141f9781262ed838f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat4x2 mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00389">389</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacd9ff3b943b3d8bda4f4b388320420fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat4x3 mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00394">394</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga089315d5a0c20ac6eaa17a854bbd2e81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat4x4 mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00399">399</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9bcffa2d49f28d16f680757b5c0e7c84"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_uvec2 uvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00535">535</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae85537b672ffe0b3218cbdf1823e1c72"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_uvec3 uvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00540">540</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7c3a0e7ae50c34c3290415c115f251e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_uvec4 uvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00545">545</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga09d0200e8ff86391d8804b4fefd5f1da"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_vec2 vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00454">454</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa8ea2429bb3cb41a715258a447f39897"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_vec3 vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00459">459</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafbab23070ca47932487d25332adc7d7c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_vec4 vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00464">464</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00157.html b/3rdparty/glm/doc/api/a00157.html
index f433da48f7a..560ae32e07f 100644
--- a/3rdparty/glm/doc/api/a00157.html
+++ b/3rdparty/glm/doc/api/a00157.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Floating-Point Pack and Unpack Functions</title>
+<title>0.9.9 API documenation: Precision types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,329 +33,2955 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">Floating-Point Pack and Unpack Functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Precision types<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a><a class="el" href="a00155.html">GLM Core</a> &raquo; &#124; <a class="el" href="a00156.html">Types</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Non-GLSL types that are used to define precision-based types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &amp;v)</td></tr>
-<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
-<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
-<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
-<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
-<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
-<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
-<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
+<tr class="memdesc:ga829f39950549881a08c534946c0487e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision bool numbers. <a href="a00157.html#ga829f39950549881a08c534946c0487e1">More...</a><br /></td></tr>
+<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
+<tr class="memdesc:gaca7c2a58eb926799c30ad547a290fccf"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision bool numbers. <a href="a00157.html#gaca7c2a58eb926799c30ad547a290fccf">More...</a><br /></td></tr>
+<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
+<tr class="memdesc:gae5f9c57d04b338c9a51a9af39e50795b"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision bool numbers. <a href="a00157.html#gae5f9c57d04b338c9a51a9af39e50795b">More...</a><br /></td></tr>
+<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
+<tr class="memdesc:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8">More...</a><br /></td></tr>
+<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
+<tr class="memdesc:ga518f28c64881fafaaf14ec0d867a9bba"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga518f28c64881fafaaf14ec0d867a9bba">More...</a><br /></td></tr>
+<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
+<tr class="memdesc:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">More...</a><br /></td></tr>
+<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
+<tr class="memdesc:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">More...</a><br /></td></tr>
+<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
+<tr class="memdesc:ga605c7863807ac2e9c2db4cf13405f34d"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga605c7863807ac2e9c2db4cf13405f34d">More...</a><br /></td></tr>
+<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
+<tr class="memdesc:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21">More...</a><br /></td></tr>
+<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
+<tr class="memdesc:ga2d7911a43241a5ce2472421255e5930f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga2d7911a43241a5ce2472421255e5930f">More...</a><br /></td></tr>
+<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
+<tr class="memdesc:ga51bfd2f3f5a12464d5934323db9116e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga51bfd2f3f5a12464d5934323db9116e7">More...</a><br /></td></tr>
+<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
+<tr class="memdesc:ga4607e33c40a3c03256e0bf9c586b456a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga4607e33c40a3c03256e0bf9c586b456a">More...</a><br /></td></tr>
+<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
+<tr class="memdesc:ga5ee028f50629bf451973b3a910973357"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga5ee028f50629bf451973b3a910973357">More...</a><br /></td></tr>
+<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
+<tr class="memdesc:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a">More...</a><br /></td></tr>
+<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
+<tr class="memdesc:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432">More...</a><br /></td></tr>
+<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
+<tr class="memdesc:ga435eb408e8dfa4f7185368109d432c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high double-precision floating-point numbers. <a href="a00157.html#ga435eb408e8dfa4f7185368109d432c14">More...</a><br /></td></tr>
+<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
+<tr class="memdesc:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high double-precision floating-point numbers. <a href="a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa">More...</a><br /></td></tr>
+<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
+<tr class="memdesc:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high double-precision floating-point numbers. <a href="a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">More...</a><br /></td></tr>
+<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
+<tr class="memdesc:ga6e95694987ba35af6f736638be39626a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision floating-point numbers. <a href="a00157.html#ga6e95694987ba35af6f736638be39626a">More...</a><br /></td></tr>
+<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
+<tr class="memdesc:gaaabe7eb044941ebf308b53a447d692dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision signed integer. <a href="a00157.html#gaaabe7eb044941ebf308b53a447d692dc">More...</a><br /></td></tr>
+<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
+<tr class="memdesc:gaa015a3707413de20c03948308dba2f2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision signed integer numbers. <a href="a00157.html#gaa015a3707413de20c03948308dba2f2e">More...</a><br /></td></tr>
+<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
+<tr class="memdesc:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision signed integer numbers. <a href="a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">More...</a><br /></td></tr>
+<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
+<tr class="memdesc:ga0424a75bb400571489b8528897f35258"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision signed integer numbers. <a href="a00157.html#ga0424a75bb400571489b8528897f35258">More...</a><br /></td></tr>
+<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
+<tr class="memdesc:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">More...</a><br /></td></tr>
+<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
+<tr class="memdesc:gae6a747cfc33928652abcb1347712b231"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#gae6a747cfc33928652abcb1347712b231">More...</a><br /></td></tr>
+<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
+<tr class="memdesc:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">More...</a><br /></td></tr>
+<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
+<tr class="memdesc:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493">More...</a><br /></td></tr>
+<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
+<tr class="memdesc:gaac1bde847d053902c27bad811b76e9fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#gaac1bde847d053902c27bad811b76e9fd">More...</a><br /></td></tr>
+<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
+<tr class="memdesc:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">More...</a><br /></td></tr>
+<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
+<tr class="memdesc:ga223de5d0549b215566dfb977d4bb45bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga223de5d0549b215566dfb977d4bb45bd">More...</a><br /></td></tr>
+<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
+<tr class="memdesc:ga117d8a040e738396a3d60368605623d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#ga117d8a040e738396a3d60368605623d2">More...</a><br /></td></tr>
+<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
+<tr class="memdesc:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0">More...</a><br /></td></tr>
+<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
+<tr class="memdesc:gaeea75c96b308be4114e0badf49f58075"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of high precision floating-point numbers. <a href="a00157.html#gaeea75c96b308be4114e0badf49f58075">More...</a><br /></td></tr>
+<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
+<tr class="memdesc:ga046e59c57aaa185a8b0b012164ce707f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of high precision floating-point numbers. <a href="a00157.html#ga046e59c57aaa185a8b0b012164ce707f">More...</a><br /></td></tr>
+<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
+<tr class="memdesc:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of high precision floating-point numbers. <a href="a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead">More...</a><br /></td></tr>
+<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
+<tr class="memdesc:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision unsigned integer. <a href="a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf">More...</a><br /></td></tr>
+<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
+<tr class="memdesc:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision unsigned integer numbers. <a href="a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad">More...</a><br /></td></tr>
+<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
+<tr class="memdesc:gaf564d5be1e65bd2204754043b218c9a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision unsigned integer numbers. <a href="a00157.html#gaf564d5be1e65bd2204754043b218c9a4">More...</a><br /></td></tr>
+<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
+<tr class="memdesc:ga61359f5531550e45871a97589d8dcce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision unsigned integer numbers. <a href="a00157.html#ga61359f5531550e45871a97589d8dcce1">More...</a><br /></td></tr>
+<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
+<tr class="memdesc:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high single-precision floating-point numbers. <a href="a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997">More...</a><br /></td></tr>
+<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
+<tr class="memdesc:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high single-precision floating-point numbers. <a href="a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">More...</a><br /></td></tr>
+<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
+<tr class="memdesc:gade7cb496ed3d78b2a11f1651cce77239"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high single-precision floating-point numbers. <a href="a00157.html#gade7cb496ed3d78b2a11f1651cce77239">More...</a><br /></td></tr>
+<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
+<tr class="memdesc:ga28dcda102dd8c94ec500ee786af7a30a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision bool numbers. <a href="a00157.html#ga28dcda102dd8c94ec500ee786af7a30a">More...</a><br /></td></tr>
+<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
+<tr class="memdesc:ga76c0948546deeeb18bfda36f18b3e673"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision bool numbers. <a href="a00157.html#ga76c0948546deeeb18bfda36f18b3e673">More...</a><br /></td></tr>
+<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
+<tr class="memdesc:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision bool numbers. <a href="a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">More...</a><br /></td></tr>
+<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
+<tr class="memdesc:gae0a526a0143fc69d7b317c078d591654"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gae0a526a0143fc69d7b317c078d591654">More...</a><br /></td></tr>
+<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
+<tr class="memdesc:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd">More...</a><br /></td></tr>
+<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
+<tr class="memdesc:gaaf2d7cf98b74a43fc432725887685dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gaaf2d7cf98b74a43fc432725887685dc0">More...</a><br /></td></tr>
+<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
+<tr class="memdesc:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3">More...</a><br /></td></tr>
+<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
+<tr class="memdesc:ga19b0c9580b447443cf3fe589bd661e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#ga19b0c9580b447443cf3fe589bd661e03">More...</a><br /></td></tr>
+<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
+<tr class="memdesc:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab">More...</a><br /></td></tr>
+<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
+<tr class="memdesc:gae37a4275ffa68d0c3527a345e76598c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gae37a4275ffa68d0c3527a345e76598c0">More...</a><br /></td></tr>
+<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
+<tr class="memdesc:ga813bff547772bcefebc026e5deba0fe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#ga813bff547772bcefebc026e5deba0fe3">More...</a><br /></td></tr>
+<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
+<tr class="memdesc:gaac3aee10bee5fa5206de8bf024a8b301"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gaac3aee10bee5fa5206de8bf024a8b301">More...</a><br /></td></tr>
+<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
+<tr class="memdesc:ga05c2d27aeca091e369fca027e72177e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga05c2d27aeca091e369fca027e72177e8">More...</a><br /></td></tr>
+<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
+<tr class="memdesc:ga2b5b1b810f3b9988f49f985387e35e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#ga2b5b1b810f3b9988f49f985387e35e03">More...</a><br /></td></tr>
+<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
+<tr class="memdesc:gaea9e20c3668305cf0de5334d217408d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gaea9e20c3668305cf0de5334d217408d9">More...</a><br /></td></tr>
+<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
+<tr class="memdesc:ga96eb13864627c7c832b5af36aa73bda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low double-precision floating-point numbers. <a href="a00157.html#ga96eb13864627c7c832b5af36aa73bda6">More...</a><br /></td></tr>
+<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
+<tr class="memdesc:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low double-precision floating-point numbers. <a href="a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">More...</a><br /></td></tr>
+<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
+<tr class="memdesc:gab5d6a45e1bbb13314b47793865a4c072"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low double-precision floating-point numbers. <a href="a00157.html#gab5d6a45e1bbb13314b47793865a4c072">More...</a><br /></td></tr>
+<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
+<tr class="memdesc:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision floating-point numbers. <a href="a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">More...</a><br /></td></tr>
+<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
+<tr class="memdesc:gad0fa1e32e8b3552ed63556eca51c620e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision signed integer. <a href="a00157.html#gad0fa1e32e8b3552ed63556eca51c620e">More...</a><br /></td></tr>
+<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
+<tr class="memdesc:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision signed integer numbers. <a href="a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">More...</a><br /></td></tr>
+<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
+<tr class="memdesc:gaa040f25233c314adc9560dcdb9dadac2"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision signed integer numbers. <a href="a00157.html#gaa040f25233c314adc9560dcdb9dadac2">More...</a><br /></td></tr>
+<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
+<tr class="memdesc:ga8b7483dc67dc332f9d874c6cf7172203"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision signed integer numbers. <a href="a00157.html#ga8b7483dc67dc332f9d874c6cf7172203">More...</a><br /></td></tr>
+<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
+<tr class="memdesc:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">More...</a><br /></td></tr>
+<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
+<tr class="memdesc:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">More...</a><br /></td></tr>
+<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
+<tr class="memdesc:gae8fe30d421bc141fa84ad414b803947d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gae8fe30d421bc141fa84ad414b803947d">More...</a><br /></td></tr>
+<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
+<tr class="memdesc:gad64a0179b75508142a72917854034b9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gad64a0179b75508142a72917854034b9b">More...</a><br /></td></tr>
+<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
+<tr class="memdesc:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783">More...</a><br /></td></tr>
+<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
+<tr class="memdesc:gaa2542e884ac7d05ada8ebb078b721924"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gaa2542e884ac7d05ada8ebb078b721924">More...</a><br /></td></tr>
+<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
+<tr class="memdesc:gab7ca36023fa56d8006341a192ee09260"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gab7ca36023fa56d8006341a192ee09260">More...</a><br /></td></tr>
+<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
+<tr class="memdesc:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e">More...</a><br /></td></tr>
+<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
+<tr class="memdesc:gabb754302a1ff8736ec7814d860c9a3c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gabb754302a1ff8736ec7814d860c9a3c0">More...</a><br /></td></tr>
+<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
+<tr class="memdesc:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of low precision floating-point numbers. <a href="a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93">More...</a><br /></td></tr>
+<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
+<tr class="memdesc:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of low precision floating-point numbers. <a href="a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f">More...</a><br /></td></tr>
+<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
+<tr class="memdesc:gafff11cbd0abc762e8a340870a31d5bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of low precision floating-point numbers. <a href="a00157.html#gafff11cbd0abc762e8a340870a31d5bfa">More...</a><br /></td></tr>
+<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
+<tr class="memdesc:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision unsigned integer. <a href="a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97">More...</a><br /></td></tr>
+<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
+<tr class="memdesc:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision unsigned integer numbers. <a href="a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309">More...</a><br /></td></tr>
+<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
+<tr class="memdesc:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision unsigned integer numbers. <a href="a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820">More...</a><br /></td></tr>
+<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
+<tr class="memdesc:ga6efcd4574e112cfcda320db58e649ee3"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision unsigned integer numbers. <a href="a00157.html#ga6efcd4574e112cfcda320db58e649ee3">More...</a><br /></td></tr>
+<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
+<tr class="memdesc:ga51e835b2aa735782f0174328acffa521"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low single-precision floating-point numbers. <a href="a00157.html#ga51e835b2aa735782f0174328acffa521">More...</a><br /></td></tr>
+<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
+<tr class="memdesc:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low single-precision floating-point numbers. <a href="a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e">More...</a><br /></td></tr>
+<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
+<tr class="memdesc:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low single-precision floating-point numbers. <a href="a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395">More...</a><br /></td></tr>
+<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
+<tr class="memdesc:gae1f4f68346474246eb4a9952af49e72b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision bool numbers. <a href="a00157.html#gae1f4f68346474246eb4a9952af49e72b">More...</a><br /></td></tr>
+<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
+<tr class="memdesc:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision bool numbers. <a href="a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0">More...</a><br /></td></tr>
+<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
+<tr class="memdesc:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision bool numbers. <a href="a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57">More...</a><br /></td></tr>
+<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
+<tr class="memdesc:ga330077a4cb3707329120b5bddcd7db2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga330077a4cb3707329120b5bddcd7db2d">More...</a><br /></td></tr>
+<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
+<tr class="memdesc:ga78987759d40d7cb03ebe948fb1dcd879"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga78987759d40d7cb03ebe948fb1dcd879">More...</a><br /></td></tr>
+<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
+<tr class="memdesc:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246">More...</a><br /></td></tr>
+<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
+<tr class="memdesc:gaccf963b117beeadf8c5c057000762dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#gaccf963b117beeadf8c5c057000762dd3">More...</a><br /></td></tr>
+<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
+<tr class="memdesc:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5">More...</a><br /></td></tr>
+<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
+<tr class="memdesc:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b">More...</a><br /></td></tr>
+<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
+<tr class="memdesc:ga5e5de055b7af150796e1c017de84cdb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga5e5de055b7af150796e1c017de84cdb1">More...</a><br /></td></tr>
+<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
+<tr class="memdesc:ga187d10ddab0492545b78ea1dd108f28d"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga187d10ddab0492545b78ea1dd108f28d">More...</a><br /></td></tr>
+<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
+<tr class="memdesc:ga27be34d618d20fbd70d4c62c21256b0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga27be34d618d20fbd70d4c62c21256b0c">More...</a><br /></td></tr>
+<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
+<tr class="memdesc:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9">More...</a><br /></td></tr>
+<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
+<tr class="memdesc:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc">More...</a><br /></td></tr>
+<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
+<tr class="memdesc:ga857947b2eef2c9144c34b8e3031f2f12"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga857947b2eef2c9144c34b8e3031f2f12">More...</a><br /></td></tr>
+<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
+<tr class="memdesc:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium double-precision floating-point numbers. <a href="a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">More...</a><br /></td></tr>
+<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
+<tr class="memdesc:ga0b4741d444b131ef1fc54b19c37f72be"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium double-precision floating-point numbers. <a href="a00157.html#ga0b4741d444b131ef1fc54b19c37f72be">More...</a><br /></td></tr>
+<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
+<tr class="memdesc:ga3e804226444dfe246133fc6ec4a3912f"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium double-precision floating-point numbers. <a href="a00157.html#ga3e804226444dfe246133fc6ec4a3912f">More...</a><br /></td></tr>
+<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
+<tr class="memdesc:ga280c68f537f4b1e03a00b23e62573b98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision floating-point numbers. <a href="a00157.html#ga280c68f537f4b1e03a00b23e62573b98">More...</a><br /></td></tr>
+<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
+<tr class="memdesc:ga212ef8f883878cb7430228a279a7d866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision signed integer. <a href="a00157.html#ga212ef8f883878cb7430228a279a7d866">More...</a><br /></td></tr>
+<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
+<tr class="memdesc:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision signed integer numbers. <a href="a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">More...</a><br /></td></tr>
+<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
+<tr class="memdesc:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision signed integer numbers. <a href="a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">More...</a><br /></td></tr>
+<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
+<tr class="memdesc:ga14614613c8e79772c8a6d25dd1c45995"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision signed integer numbers. <a href="a00157.html#ga14614613c8e79772c8a6d25dd1c45995">More...</a><br /></td></tr>
+<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
+<tr class="memdesc:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47">More...</a><br /></td></tr>
+<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
+<tr class="memdesc:ga1b77963ca2812ac2653624fa0f81ba74"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga1b77963ca2812ac2653624fa0f81ba74">More...</a><br /></td></tr>
+<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
+<tr class="memdesc:ga8c17198123baf6bfb59582ec42a3ca09"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga8c17198123baf6bfb59582ec42a3ca09">More...</a><br /></td></tr>
+<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
+<tr class="memdesc:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe">More...</a><br /></td></tr>
+<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
+<tr class="memdesc:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b">More...</a><br /></td></tr>
+<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
+<tr class="memdesc:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9">More...</a><br /></td></tr>
+<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
+<tr class="memdesc:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec">More...</a><br /></td></tr>
+<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
+<tr class="memdesc:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24">More...</a><br /></td></tr>
+<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
+<tr class="memdesc:ga6259813853e4253f80c2a08672e9fb6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga6259813853e4253f80c2a08672e9fb6a">More...</a><br /></td></tr>
+<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
+<tr class="memdesc:ga22194c68bc3d798bb68a22f635558c8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 2 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga22194c68bc3d798bb68a22f635558c8d">More...</a><br /></td></tr>
+<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
+<tr class="memdesc:ga38a01cba69e3db9b1a1056b362519acb"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 3 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga38a01cba69e3db9b1a1056b362519acb">More...</a><br /></td></tr>
+<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
+<tr class="memdesc:ga535614d97234065ab44b2513667c8563"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 columns of 4 components matrix of medium precision floating-point numbers. <a href="a00157.html#ga535614d97234065ab44b2513667c8563">More...</a><br /></td></tr>
+<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
+<tr class="memdesc:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision unsigned integer. <a href="a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">More...</a><br /></td></tr>
+<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
+<tr class="memdesc:ga392c0761c8bef616801e0d81a6867ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision unsigned integer numbers. <a href="a00157.html#ga392c0761c8bef616801e0d81a6867ed7">More...</a><br /></td></tr>
+<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
+<tr class="memdesc:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision unsigned integer numbers. <a href="a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e">More...</a><br /></td></tr>
+<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
+<tr class="memdesc:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision unsigned integer numbers. <a href="a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">More...</a><br /></td></tr>
+<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
+<tr class="memdesc:gac37a3fd0ecdcab044853c039409c9af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium single-precision floating-point numbers. <a href="a00157.html#gac37a3fd0ecdcab044853c039409c9af7">More...</a><br /></td></tr>
+<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
+<tr class="memdesc:ga591478a77e4324e0836abc17cbb13e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium single-precision floating-point numbers. <a href="a00157.html#ga591478a77e4324e0836abc17cbb13e83">More...</a><br /></td></tr>
+<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
+<tr class="memdesc:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium single-precision floating-point numbers. <a href="a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae">More...</a><br /></td></tr>
+<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
+<tr class="memdesc:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <a href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">More...</a><br /></td></tr>
+<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These functions do not operate component-wise, rather as described in each case. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaa916ca426b2bb0343ba17e3753e245c2"></a>
+<p>Non-GLSL types that are used to define precision-based types. </p>
+<p>The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they <em>do</em> have an effect.</p>
+<p>C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the <a class="el" href="a00158.html">Template types</a> that use a particular precision.</p>
+<p>None of these types make any guarantees about the actual precision used. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga829f39950549881a08c534946c0487e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;bool, highp&gt; highp_bvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high precision bool numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00217">217</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaca7c2a58eb926799c30ad547a290fccf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;bool, highp&gt; highp_bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00326">326</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae5f9c57d04b338c9a51a9af39e50795b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;bool, highp&gt; highp_bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00421">421</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga65ae7d3b23155712ed8cbd3300be4ec8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;double, highp&gt; highp_dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00440">440</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga518f28c64881fafaaf14ec0d867a9bba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;double, highp&gt; highp_dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00458">458</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf98afd25f7e3e8f1d73bca020d0d8ea6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;double, highp&gt; highp_dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00481">481</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac1c87c16d6dcb7449bc3c779ccdc5c30"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;double, highp&gt; highp_dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00504">504</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga605c7863807ac2e9c2db4cf13405f34d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;double, highp&gt; highp_dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00550">550</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab2d4fd5cd286baff8364a7a3f60c8a21"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;double, highp&gt; highp_dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00527">527</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2d7911a43241a5ce2472421255e5930f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;double, highp&gt; highp_dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00568">568</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga51bfd2f3f5a12464d5934323db9116e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;double, highp&gt; highp_dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00591">591</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4607e33c40a3c03256e0bf9c586b456a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;double, highp&gt; highp_dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00660">660</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5ee028f50629bf451973b3a910973357"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;double, highp&gt; highp_dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00614">614</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafe7eea5b2a20477b5634e340ea5ec28a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;double, highp&gt; highp_dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00637">637</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga83ab0b8b8b50cbf945237dc8f5322432"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;double, highp&gt; highp_dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00678">678</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga435eb408e8dfa4f7185368109d432c14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;double, highp&gt; highp_dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00154">154</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga01d2c9b292e27518e4d6f8442607e8aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;double, highp&gt; highp_dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00264">264</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5d454f34d819d90b9bbb30dcb9ed7b39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;double, highp&gt; highp_dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00367">367</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6e95694987ba35af6f736638be39626a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_float_t highp_float</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00041">41</a> of file <a class="el" href="a00108_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaabe7eb044941ebf308b53a447d692dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::highp_int_t highp_int</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision signed integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00238">238</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa015a3707413de20c03948308dba2f2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;int, highp&gt; highp_ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00175">175</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8330bf0d7e6d03ca12ee2b1334c2c30f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;int, highp&gt; highp_ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00285">285</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0424a75bb400571489b8528897f35258"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;int, highp&gt; highp_ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high precision signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00385">385</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga11c1eb1d307846d5bee7d7c0d8c386f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt; float, highp &gt; highp_mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00053">53</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae6a747cfc33928652abcb1347712b231"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt; float, highp &gt; highp_mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00074">74</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9dfd75b5b17b89ccbecbdd6201efc74b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt; float, highp &gt; highp_mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00100">100</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga03fe2f9a84c61cc0f08b324a27d9b493"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt; float, highp &gt; highp_mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00126">126</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaac1bde847d053902c27bad811b76e9fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt; float, highp &gt; highp_mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00178">178</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b00cd7956ac2ee3d4f3ab3b549b564a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt; float, highp &gt; highp_mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00152">152</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga223de5d0549b215566dfb977d4bb45bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt; float, highp &gt; highp_mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00199">199</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga117d8a040e738396a3d60368605623d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt; float, highp &gt; highp_mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00225">225</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabace1eeb2fac7d73a7faaecf33f352d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; float, highp &gt; highp_mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00304">304</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaeea75c96b308be4114e0badf49f58075"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt; float, highp &gt; highp_mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00251">251</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga046e59c57aaa185a8b0b012164ce707f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt; float, highp &gt; highp_mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00277">277</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa72822d91f0dceb4dcaaec550cbfeead"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; float, highp &gt; highp_mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00325">325</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga73e8a694d7fc69143cf25161d18d1dcf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::highp_uint_t highp_uint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision unsigned integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00259">259</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa0eed70387a998c3eca2f4e45f3efaad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;uint, highp&gt; highp_uvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00196">196</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf564d5be1e65bd2204754043b218c9a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;uint, highp&gt; highp_uvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00306">306</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga61359f5531550e45871a97589d8dcce1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;uint, highp&gt; highp_uvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high precision unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00403">403</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabfc3e9f63cc3e2ee0521405277ef3997"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; float, highp &gt; highp_vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high single-precision floating-point numbers. </p>
+<p>High Single-precision floating-point vector of 2 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00133">133</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b31b02c5558e2f8e5d8439ae3803d3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; float, highp &gt; highp_vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high single-precision floating-point numbers. </p>
+<p>High Single-precision floating-point vector of 3 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00243">243</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade7cb496ed3d78b2a11f1651cce77239"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; float, highp &gt; highp_vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high single-precision floating-point numbers. </p>
+<p>High Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00349">349</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga28dcda102dd8c94ec500ee786af7a30a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;bool, lowp&gt; lowp_bvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low precision bool numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00231">231</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga76c0948546deeeb18bfda36f18b3e673"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;bool, lowp&gt; lowp_bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00338">338</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafa2087ead0d0e2a3c907e3fbd99f4d85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;bool, lowp&gt; lowp_bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00433">433</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae0a526a0143fc69d7b317c078d591654"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;double, lowp&gt; lowp_dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00428">428</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga000c064e4eba15bf83f8e1e393a8e7fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;double, lowp&gt; lowp_dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00446">446</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaf2d7cf98b74a43fc432725887685dc0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;double, lowp&gt; lowp_dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00469">469</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ac69e9ed1addf122f51396f73cdbbf3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;double, lowp&gt; lowp_dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00492">492</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga19b0c9580b447443cf3fe589bd661e03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;float, lowp&gt; lowp_dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00538">538</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27ccd1bcb24920508a7b6a24bd9265ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;double, lowp&gt; lowp_dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00515">515</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae37a4275ffa68d0c3527a345e76598c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;double, lowp&gt; lowp_dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00556">556</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga813bff547772bcefebc026e5deba0fe3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;double, lowp&gt; lowp_dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00579">579</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaac3aee10bee5fa5206de8bf024a8b301"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;double, lowp&gt; lowp_dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00648">648</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga05c2d27aeca091e369fca027e72177e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;double, lowp&gt; lowp_dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00602">602</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2b5b1b810f3b9988f49f985387e35e03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;double, lowp&gt; lowp_dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00625">625</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaea9e20c3668305cf0de5334d217408d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;double, lowp&gt; lowp_dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00666">666</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga96eb13864627c7c832b5af36aa73bda6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;double, lowp&gt; lowp_dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00168">168</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf7ec7b1cefeeaf63659460ef52fd06a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;double, lowp&gt; lowp_dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00278">278</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab5d6a45e1bbb13314b47793865a4c072"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;double, lowp&gt; lowp_dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00379">379</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga358d69e11b1c0f6c7c469e0d39ab7fd1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef lowp_float_t lowp_float</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00027">27</a> of file <a class="el" href="a00108_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad0fa1e32e8b3552ed63556eca51c620e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::lowp_int_t lowp_int</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision signed integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00224">224</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;int, lowp&gt; lowp_ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00189">189</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa040f25233c314adc9560dcdb9dadac2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;int, lowp&gt; lowp_ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00299">299</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8b7483dc67dc332f9d874c6cf7172203"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;int, lowp&gt; lowp_ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low precision signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00397">397</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ed94bfb5f4e0b2c3b0d49c5be478c85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt; float, lowp &gt; lowp_mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00039">39</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab1a0d4d8fd3bb85f6616dac9dbef2981"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt; float, lowp &gt; lowp_mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00060">60</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae8fe30d421bc141fa84ad414b803947d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt; float, lowp &gt; lowp_mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00086">86</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad64a0179b75508142a72917854034b9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt; float, lowp &gt; lowp_mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00112">112</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6a66118df7e2398a36ca4a8e98ce6783"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt; float, lowp &gt; lowp_mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00164">164</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa2542e884ac7d05ada8ebb078b721924"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt; float, lowp &gt; lowp_mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00138">138</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab7ca36023fa56d8006341a192ee09260"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt; float, lowp &gt; lowp_mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00185">185</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2938621d14e70bc3dc576b4fc1547a7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt; float, lowp &gt; lowp_mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00211">211</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabb754302a1ff8736ec7814d860c9a3c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; float, lowp &gt; lowp_mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00290">290</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac6d04a9590cb7ab62cbe29203dbb9b93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt; float, lowp &gt; lowp_mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00237">237</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb3dbbc82f8b166867fd21c76eb8db4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt; float, lowp &gt; lowp_mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00263">263</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafff11cbd0abc762e8a340870a31d5bfa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; float, lowp &gt; lowp_mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00311">311</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga25ebc60727fc8b4a1167665f9ecdca97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::lowp_uint_t lowp_uint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision unsigned integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00245">245</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6bfb90b936bbbc67e438bb9ac6910309"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;uint, lowp&gt; lowp_uvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00210">210</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf0049c860a612da9bd3ba9ac9e49e820"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;uint, lowp&gt; lowp_uvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00320">320</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6efcd4574e112cfcda320db58e649ee3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;uint, lowp&gt; lowp_uvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low precision unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00415">415</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga51e835b2aa735782f0174328acffa521"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; float, lowp &gt; lowp_vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low single-precision floating-point numbers. </p>
+<p>Low single-precision floating-point vector of 2 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00147">147</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf89f8fb5a06848ea4ec1c3a02813454e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; float, lowp &gt; lowp_vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low single-precision floating-point numbers. </p>
+<p>Low single-precision floating-point vector of 3 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00257">257</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8f9002d3ab660e3171f5cdea1aab8395"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; float, lowp &gt; lowp_vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low single-precision floating-point numbers. </p>
+<p>Low single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00361">361</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae1f4f68346474246eb4a9952af49e72b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;bool, mediump&gt; mediump_bvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of medium precision bool numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00224">224</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0d1778766f17c4329a8c3f2b37f5fab0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;bool, mediump&gt; mediump_bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00332">332</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f0c27f7ab42f004054a247c93a7bf57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;bool, mediump&gt; mediump_bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00427">427</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga330077a4cb3707329120b5bddcd7db2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;double, mediump&gt; mediump_dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00434">434</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga78987759d40d7cb03ebe948fb1dcd879"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;double, mediump&gt; mediump_dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00452">452</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2569a68be3f1cf56e7e5e0920fe5a246"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;double, mediump&gt; mediump_dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00475">475</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaccf963b117beeadf8c5c057000762dd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;double, mediump&gt; mediump_dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00498">498</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8091edef9fdf54b1996ae5bd00f847e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;double, mediump&gt; mediump_dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00544">544</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b81830ed1ce3862bcbbf41eccc3890b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;double, mediump&gt; mediump_dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00521">521</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5e5de055b7af150796e1c017de84cdb1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;double, mediump&gt; mediump_dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00562">562</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga187d10ddab0492545b78ea1dd108f28d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;double, mediump&gt; mediump_dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00585">585</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27be34d618d20fbd70d4c62c21256b0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;double, mediump&gt; mediump_dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00654">654</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad4a5b294c54702b7c8e9ee32a451dea9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;double, mediump&gt; mediump_dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00608">608</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27b55deeb16fda7262d64dc1fd1a56bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;double, mediump&gt; mediump_dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00631">631</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga857947b2eef2c9144c34b8e3031f2f12"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;double, mediump&gt; mediump_dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00672">672</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga388fd99d9ffc7190a4732c35b0c7bfc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;double, mediump&gt; mediump_dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00161">161</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0b4741d444b131ef1fc54b19c37f72be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;double, mediump&gt; mediump_dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00271">271</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3e804226444dfe246133fc6ec4a3912f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;double, mediump&gt; mediump_dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00373">373</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga280c68f537f4b1e03a00b23e62573b98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_float_t mediump_float</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00034">34</a> of file <a class="el" href="a00108_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga212ef8f883878cb7430228a279a7d866"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::mediump_int_t mediump_int</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision signed integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00231">231</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga199cc7c4cfa7c7cadad0c74d2f059aef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt;int, mediump&gt; mediump_ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00182">182</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b7843453f7ad6ebfa26e50408b8dcf0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt;int, mediump&gt; mediump_ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00292">292</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga14614613c8e79772c8a6d25dd1c45995"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt;int, mediump&gt; mediump_ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium precision signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00391">391</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga57b1e6c49a1432cefa518f13a56c5d47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt; float, mediump &gt; mediump_mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00046">46</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1b77963ca2812ac2653624fa0f81ba74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt; float, mediump &gt; mediump_mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00067">67</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8c17198123baf6bfb59582ec42a3ca09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt; float, mediump &gt; mediump_mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00093">93</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7e95e348c99ef3d56b87ede14bc90bfe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt; float, mediump &gt; mediump_mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00119">119</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga29d313adfc82fd4179d29a9fd98b1b5b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL double glm::packDouble2x32 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x3&lt; float, mediump &gt; mediump_mat3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a double-precision value obtained by packing the components of v into a 64-bit value. </p>
-<p>If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packDouble2x32.xml">GLSL packDouble2x32 man page</a> </dd>
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00171">171</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga20f134b07db3a3d3a38efb2617388c92"></a>
+<a class="anchor" id="ga9fa569295a9bd6ce0825ccb832c8aac9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packHalf2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x2&lt; float, mediump &gt; mediump_mat3x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. </p>
-<p>The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
+<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00145">145</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga977ab172da5494e5ac63e952afacfbe2"></a>
+<a class="anchor" id="ga2f02cb49e386f65817c10ead9bbe7dec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packSnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x3&lt; float, mediump &gt; mediump_mat3x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm2x16.xml">GLSL packSnorm2x16 man page</a> </dd>
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00192">192</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga85e8f17627516445026ab7a9c2e3531a"></a>
+<a class="anchor" id="gac7afc5b81d320dbd7bd6a6f07d587e24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packSnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x4&lt; float, mediump &gt; mediump_mat3x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00218">218</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0e2d107039fe608a209497af867b85fb"></a>
+<a class="anchor" id="ga6259813853e4253f80c2a08672e9fb6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packUnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x4&lt; float, mediump &gt; mediump_mat4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm2x16.xml">GLSL packUnorm2x16 man page</a> </dd>
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00297">297</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaf7d2f7341a9eeb4a436929d6f9ad08f2"></a>
+<a class="anchor" id="ga22194c68bc3d798bb68a22f635558c8d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packUnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x2&lt; float, mediump &gt; mediump_mat4x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00244">244</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5f4296dc5f12f0aa67ac05b8bb322483"></a>
+<a class="anchor" id="ga38a01cba69e3db9b1a1056b362519acb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 </td>
- <td>(</td>
- <td class="paramtype">double&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x3&lt; float, mediump &gt; mediump_mat4x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a two-component unsigned integer vector representation of v. </p>
-<p>The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackDouble2x32.xml">GLSL unpackDouble2x32 man page</a> </dd>
+<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00270">270</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaf59b52e6b28da9335322c4ae19b5d745"></a>
+<a class="anchor" id="ga535614d97234065ab44b2513667c8563"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackHalf2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x4&lt; float, mediump &gt; mediump_mat4x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
-<p>The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00112_source.html#l00318">318</a> of file <a class="el" href="a00112_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gacd8f8971a3fe28418be0d0fa1f786b38"></a>
+<a class="anchor" id="ga0b7e01c52b9e5bf3369761b79b5f4f8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::mediump_uint_t mediump_uint</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm2x16 man page</a> </dd>
+<p>Medium precision unsigned integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00252">252</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2db488646d48b7c43d3218954523fe82"></a>
+<a class="anchor" id="ga392c0761c8bef616801e0d81a6867ed7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;uint, mediump&gt; mediump_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<p>2 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00203">203</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga1f66188e5d65afeb9ffba1ad971e4007"></a>
+<a class="anchor" id="ga54ae0b7b207b8e7e88841d146d2de12e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;uint, mediump&gt; mediump_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
+<p>3 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00313">313</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga7f903259150b67e9466f5f8edffcd197"></a>
+<a class="anchor" id="ga631f5767b9d45c5cd3d0bcd67565b3f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec4&lt;uint, mediump&gt; mediump_uvec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
+<p>4 components vector of medium precision unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00409">409</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac37a3fd0ecdcab044853c039409c9af7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; float, mediump &gt; mediump_vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of medium single-precision floating-point numbers. </p>
+<p>Medium Single-precision floating-point vector of 2 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00140">140</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga591478a77e4324e0836abc17cbb13e83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; float, mediump &gt; mediump_vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium single-precision floating-point numbers. </p>
+<p>Medium Single-precision floating-point vector of 3 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00250">250</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaae72e97529b8fa4e0341b425d4fe03ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; float, mediump &gt; mediump_vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium single-precision floating-point numbers. </p>
+<p>Medium Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00157.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00125_source.html#l00355">355</a> of file <a class="el" href="a00125_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga91ad9478d81a7aaf2593e8d9c3d06a14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unsigned int uint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00288">288</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00158.html b/3rdparty/glm/doc/api/a00158.html
index 7869615337d..8c45d3aaaa4 100644
--- a/3rdparty/glm/doc/api/a00158.html
+++ b/3rdparty/glm/doc/api/a00158.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Angle and Trigonometry Functions</title>
+<title>0.9.9 API documenation: Template types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,500 +33,57 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">Angle and Trigonometry Functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType&lt; T, P &gt; const &amp;y_over_x)</td></tr>
-<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
-<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
-<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a> (vecType&lt; T, P &gt; const &amp;radians)</td></tr>
-<tr class="separator:ga402144a18234e642b702bf585599b46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a> (vecType&lt; T, P &gt; const &amp;degrees)</td></tr>
-<tr class="separator:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
-<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
-<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
-<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType&lt; T, P &gt; const &amp;angle)</td></tr>
-<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Function parameters specified as angle are assumed to be in units of radians. </p>
-<p>In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.</p>
-<p>These all operate component-wise. The description is per component. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga58ad259b788528fe0a4bd2eeb5e381cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::acos </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc cosine. </p>
-<p>Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| &gt; 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
-</div>
-<a class="anchor" id="ga3f368ad3e1883b60748ca2634d816104"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::acosh </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc hyperbolic cosine; returns the non-negative inverse of cosh. </p>
-<p>Results are undefined if x &lt; 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
</div>
-</div>
-<a class="anchor" id="ga88e29b8289e882859d76a25798dd9490"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::asin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc sine. </p>
-<p>Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| &gt; 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga72bf44c1984e1afb63acf821ba33cac7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::asinh </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc hyperbolic sine; returns the inverse of sinh. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-</div>
-</div>
-<a class="anchor" id="ga461e769acb8b8cb695a5a89334546611"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::atan </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc tangent. </p>
-<p>Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-<p>Referenced by <a class="el" href="a00016_source.html#l00081">glm::atan2()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae8f22458bba8f2321ceb1bfc4a543216"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::atan </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y_over_x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc tangent. </p>
-<p>Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaffa8decdd8620759f4e6fe4834768b87"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::atanh </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Arc hyperbolic tangent; returns the inverse of tanh. </p>
-<p>Results are undefined if abs(x) &gt;= 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga728fd86f14609e37d83f82429995b7b3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::cos </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>The standard trigonometric cosine function. </p>
-<p>The values returned by this function will range from [-1, 1].</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga660582a4e5e843b6c1cd535777e8c295"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::cosh </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga402144a18234e642b702bf585599b46d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::degrees </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>radians</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts radians to degrees and returns the result. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0fd3ad793538521f76fa30db7f6edfed"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::radians </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>degrees</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts degrees to radians and returns the result. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4a0ddceb6b1e64ce0e4da209dcb021d5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>The standard trigonometric sine function. </p>
-<p>The values returned by this function will range from [-1, 1].</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad8f89c12efe6f8d3ae8046625b266254"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sinh </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3ae890c38b7d3aa4d5e00998fd296b2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::tan </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>The standard trigonometric tangent function. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga234e904a0075f88654a594b5f837711f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::tanh </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Template types<div class="ingroups"><a class="el" href="a00155.html">GLM Core</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
-</div>
-</div>
+<p>The generic template types used as the basis for the core types.
+<a href="#details">More...</a></p>
+<p>The generic template types used as the basis for the core types. </p>
+<p>These types are all templates used to define the actual <a class="el" href="a00156.html">Types</a>. These templetes are implementation details of GLM types and should not be used explicitly. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00159.html b/3rdparty/glm/doc/api/a00159.html
index d265ff0cc81..ac78c61744a 100644
--- a/3rdparty/glm/doc/api/a00159.html
+++ b/3rdparty/glm/doc/api/a00159.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Vector Relational Functions</title>
+<title>0.9.9 API documenation: GLM_GTC_bitfield</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,125 +33,307 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Vector Relational Functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GLM_GTC_bitfield<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Allow to perform bit operations on integer values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType&lt; bool, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 1 a range of bits. <a href="a00159.html#ga46f9295abe3b5c7658f5b13c7f819f0a">More...</a><br /></td></tr>
+<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:gad789042e84e8292ae95dc1af856f2ad5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 1 a range of bits. <a href="a00159.html#gad789042e84e8292ae95dc1af856f2ad5">More...</a><br /></td></tr>
+<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 0 a range of bits. <a href="a00159.html#ga697b86998b7d74ee0a69d8e9f8819fee">More...</a><br /></td></tr>
+<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memdesc:gaddba3196316b0bd240295b09b43c2958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 0 a range of bits. <a href="a00159.html#gaddba3196316b0bd240295b09b43c2958">More...</a><br /></td></tr>
+<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
+<tr class="memdesc:ga24cad0069f9a0450abd80b3e89501adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga24cad0069f9a0450abd80b3e89501adf">More...</a><br /></td></tr>
+<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
+<tr class="memdesc:ga9a4976a529aec2cee56525e1165da484"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga9a4976a529aec2cee56525e1165da484">More...</a><br /></td></tr>
+<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
+<tr class="memdesc:gac51c33a394593f0631fa3aa5bb778809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#gac51c33a394593f0631fa3aa5bb778809">More...</a><br /></td></tr>
+<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
+<tr class="memdesc:ga94f3646a5667f4be56f8dcf3310e963f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga94f3646a5667f4be56f8dcf3310e963f">More...</a><br /></td></tr>
+<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
+<tr class="memdesc:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#gaebb756a24a0784e3d6fba8bd011ab77a">More...</a><br /></td></tr>
+<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
+<tr class="memdesc:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00159.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">More...</a><br /></td></tr>
+<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
+<tr class="memdesc:ga8fdb724dccd4a07d57efc01147102137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#ga8fdb724dccd4a07d57efc01147102137">More...</a><br /></td></tr>
+<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
+<tr class="memdesc:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">More...</a><br /></td></tr>
+<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
+<tr class="memdesc:gaa901c36a842fa5d126ea650549f17b24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#gaa901c36a842fa5d126ea650549f17b24">More...</a><br /></td></tr>
+<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
+<tr class="memdesc:ga3afd6d38881fe3948c53d4214d2197fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#ga3afd6d38881fe3948c53d4214d2197fd">More...</a><br /></td></tr>
+<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
+<tr class="memdesc:gad2075d96a6640121edaa98ea534102ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#gad2075d96a6640121edaa98ea534102ca">More...</a><br /></td></tr>
+<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
+<tr class="memdesc:gab19fbc739fc0cf7247978602c36f7da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00159.html#gab19fbc739fc0cf7247978602c36f7da8">More...</a><br /></td></tr>
+<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
+<tr class="memdesc:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#ga8a44ae22f5c953b296c42d067dccbe6d">More...</a><br /></td></tr>
+<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
+<tr class="memdesc:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">More...</a><br /></td></tr>
+<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
+<tr class="memdesc:ga180a63161e1319fbd5a53c84d0429c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#ga180a63161e1319fbd5a53c84d0429c7a">More...</a><br /></td></tr>
+<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
+<tr class="memdesc:gafca8768671a14c8016facccb66a89f26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00159.html#gafca8768671a14c8016facccb66a89f26">More...</a><br /></td></tr>
+<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
+<tr class="memdesc:ga2eb49678a344ce1495bdb5586d9896b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the left. <a href="a00159.html#ga2eb49678a344ce1495bdb5586d9896b9">More...</a><br /></td></tr>
+<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
+<tr class="memdesc:ga410d130917d85b865718e3ebc32cf0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the left. <a href="a00159.html#ga410d130917d85b865718e3ebc32cf0ef">More...</a><br /></td></tr>
+<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
+<tr class="memdesc:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the right. <a href="a00159.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">More...</a><br /></td></tr>
+<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
+<tr class="memdesc:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the right. <a href="a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba">More...</a><br /></td></tr>
+<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
+<tr class="memdesc:gad7eba518a0b71662114571ee76939f8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a mask of 'count' bits. <a href="a00159.html#gad7eba518a0b71662114571ee76939f8a">More...</a><br /></td></tr>
+<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecIUType&gt; </td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga073dbd8642f550b51da3572541431c1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a mask of 'count' bits. <a href="a00159.html#ga073dbd8642f550b51da3572541431c1c">More...</a><br /></td></tr>
+<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. </p>
-<p>For vector results, use the following built-in functions.</p>
-<p>In all cases, the sizes of all the input and return vectors for any particular call must match. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p>&lt;<a class="el" href="a00009.html" title="GLM_GTC_bitfield ">glm/gtc/bitfield.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga14bbc94f2ae2774a1d64d91f8767773e"></a>
+<a class="anchor" id="ga46f9295abe3b5c7658f5b13c7f819f0a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::all </td>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillOne </td>
<td>(</td>
- <td class="paramtype">vecType&lt; bool, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>BitCount</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns true if all components of x are true. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Set to 1 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga632a2644532d9332011c8860400d30b2"></a>
+<a class="anchor" id="gad789042e84e8292ae95dc1af856f2ad5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::any </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldFillOne </td>
<td>(</td>
- <td class="paramtype">vecType&lt; bool, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>BitCount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns true if any component of x is true. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Set to 1 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga39c80d8baf49b0ce69f2bb22d45b3801"></a>
+<a class="anchor" id="ga697b86998b7d74ee0a69d8e9f8819fee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::equal </td>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillZero </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>BitCount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set to 0 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaddba3196316b0bd240295b09b43c2958"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldFillZero </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>BitCount</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set to 0 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga24cad0069f9a0450abd80b3e89501adf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int16 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -156,33 +344,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x == y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gadd80263161a308462d3e3e287e79cccd"></a>
+<a class="anchor" id="ga9a4976a529aec2cee56525e1165da484"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::greaterThan </td>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::bitfieldInterleave </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -193,33 +374,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x &gt; y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaee7e101f8cc4ea43924f14dcdeb2ef26"></a>
+<a class="anchor" id="gac51c33a394593f0631fa3aa5bb778809"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::greaterThanEqual </td>
+ <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -230,33 +404,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x &gt;= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6261970937a70b0b747ae0d3ade1c188"></a>
+<a class="anchor" id="ga94f3646a5667f4be56f8dcf3310e963f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::lessThan </td>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -267,33 +434,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison result of x &lt; y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaaf1d88119f11200c32011de7c5ec0102"></a>
+<a class="anchor" id="gaebb756a24a0784e3d6fba8bd011ab77a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::lessThanEqual </td>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -304,62 +464,471 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x &lt;= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4329ecbc2ef012c9ec704bd09da1f177"></a>
+<a class="anchor" id="ga2f1e2b3fe699e7d897ae38b2115ddcbd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::not_ </td>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
<td>(</td>
- <td class="paramtype">vecType&lt; bool, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise logical complement of x. </p>
-<p>/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5aca2b745e5eb0096716bbc394846309"></a>
+<a class="anchor" id="ga8fdb724dccd4a07d57efc01147102137"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::notEqual </td>
+ <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9fc2a0dd5dcf8b00e113f272a5feca93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa901c36a842fa5d126ea650549f17b24"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3afd6d38881fe3948c53d4214d2197fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad2075d96a6640121edaa98ea534102ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab19fbc739fc0cf7247978602c36f7da8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8a44ae22f5c953b296c42d067dccbe6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga14bb274d54a3c26f4919dd7ed0dd0c36"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga180a63161e1319fbd5a53c84d0429c7a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafca8768671a14c8016facccb66a89f26"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2eb49678a344ce1495bdb5586d9896b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Shift</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the left. </p>
+<p>All the bits dropped in the left side are inserted back on the right side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga410d130917d85b865718e3ebc32cf0ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldRotateLeft </td>
+ <td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Shift</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -369,16 +938,107 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x != y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<p>Rotate all bits to the left. </p>
+<p>All the bits dropped in the left side are inserted back on the right side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1c33d075c5fb8bd8dbfd5092bfc851ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateRight </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Shift</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the right. </p>
+<p>All the bits dropped in the right side are inserted back on the left side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96b56fd2adad1eeaee9e10dfe83904ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldRotateRight </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>Shift</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the right. </p>
+<p>All the bits dropped in the right side are inserted back on the left side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad7eba518a0b71662114571ee76939f8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::mask </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Bits</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a mask of 'count' bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga073dbd8642f550b51da3572541431c1c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecIUType&lt;T, P&gt; glm::mask </td>
+ <td>(</td>
+ <td class="paramtype">vecIUType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a mask of 'count' bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00159.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00160.html b/3rdparty/glm/doc/api/a00160.html
index 5928a18f87f..a3f1bf8c212 100644
--- a/3rdparty/glm/doc/api/a00160.html
+++ b/3rdparty/glm/doc/api/a00160.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GTC Extensions (Stable)</title>
+<title>0.9.9 API documenation: GLM_GTC_color_encoding</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,67 +33,84 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GTC Extensions (Stable)</div> </div>
+<div class="title">GLM_GTC_color_encoding<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Allow to perform bit operations on integer values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00166"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html">GLM_GTC_bitfield</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00167"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html">GLM_GTC_color_space</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00168"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00168.html">GLM_GTC_constants</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00169"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00169.html">GLM_GTC_epsilon</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00170"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00170.html">GLM_GTC_integer</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00171"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html">GLM_GTC_matrix_access</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00172"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html">GLM_GTC_matrix_integer</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00173"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00173.html">GLM_GTC_matrix_inverse</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00174"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00174.html">GLM_GTC_matrix_transform</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00175"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html">GLM_GTC_noise</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00176"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html">GLM_GTC_packing</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00177"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html">GLM_GTC_quaternion</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00178"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00178.html">GLM_GTC_random</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00179"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00179.html">GLM_GTC_reciprocal</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00180"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00180.html">GLM_GTC_round</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00181"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html">GLM_GTC_type_precision</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00182"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00182.html">GLM_GTC_type_ptr</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00183"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00183.html">GLM_GTC_ulp</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00184"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00184.html">GLM_GTC_vec1</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf2829bca5bbbd99da0cb1d20170f0096"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaf2829bca5bbbd99da0cb1d20170f0096">convertD50XYZToD65XYZ</a> (tvec3&lt; T, P &gt; const &amp;ColorD50XYZ)</td></tr>
+<tr class="memdesc:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D50 YUV color to D65 YUV. <br /></td></tr>
+<tr class="separator:gaf2829bca5bbbd99da0cb1d20170f0096"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee1990d4fdb1088c433e9ae4977795d2"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaee1990d4fdb1088c433e9ae4977795d2"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaee1990d4fdb1088c433e9ae4977795d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaee1990d4fdb1088c433e9ae4977795d2">convertD65XYZToD50XYZ</a> (tvec3&lt; T, P &gt; const &amp;ColorD65XYZ)</td></tr>
+<tr class="memdesc:gaee1990d4fdb1088c433e9ae4977795d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D65 YUV color to D50 YUV. <br /></td></tr>
+<tr class="separator:gaee1990d4fdb1088c433e9ae4977795d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga395041b0447f08dd581496720a0a1eac"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga395041b0447f08dd581496720a0a1eac"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga395041b0447f08dd581496720a0a1eac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga395041b0447f08dd581496720a0a1eac">convertD65XYZToLinearSRGB</a> (tvec3&lt; T, P &gt; const &amp;ColorD65XYZ)</td></tr>
+<tr class="memdesc:ga395041b0447f08dd581496720a0a1eac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D65 YUV color to linear sRGB. <br /></td></tr>
+<tr class="separator:ga395041b0447f08dd581496720a0a1eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa367a13bbf5d9775d6a96a4c2a398fb7"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaa367a13bbf5d9775d6a96a4c2a398fb7">convertLinearSRGBToD65XYZ</a> (tvec3&lt; T, P &gt; const &amp;ColorLinearSRGB)</td></tr>
+<tr class="memdesc:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear sRGB color to D65 YUV. <br /></td></tr>
+<tr class="separator:gaa367a13bbf5d9775d6a96a4c2a398fb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
-<p>GTC extensions aim to be stable.</p>
-<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00023_source.html">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p>&lt;<a class="el" href="a00011.html" title="GLM_GTC_color_encoding ">glm/gtc/color_encoding.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00161.html b/3rdparty/glm/doc/api/a00161.html
index c123718c607..564d3824ddc 100644
--- a/3rdparty/glm/doc/api/a00161.html
+++ b/3rdparty/glm/doc/api/a00161.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GTX Extensions (Experimental)</title>
+<title>0.9.9 API documenation: GLM_GTC_color_space</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,143 +33,149 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GTX Extensions (Experimental)</div> </div>
+<div class="title">GLM_GTC_color_space<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Allow to perform bit operations on integer values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00185"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00185.html">GLM_GTX_associated_min_max</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00186"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00186.html">GLM_GTX_bit</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html">GLM_GTX_closest_point</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00188"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00188.html">GLM_GTX_color_space</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00189"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html">GLM_GTX_color_space_YCoCg</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00190"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00190.html">GLM_GTX_common</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00191"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html">GLM_GTX_compatibility</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00192"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00192.html">GLM_GTX_component_wise</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00193"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html">GLM_GTX_dual_quaternion</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00194"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00194.html">GLM_GTX_euler_angles</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00195"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html">GLM_GTX_extend</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00196"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00196.html">GLM_GTX_extented_min_max</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00197"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00197.html">GLM_GTX_fast_exponential</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00198.html">GLM_GTX_fast_square_root</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00199"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html">GLM_GTX_fast_trigonometry</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00200"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00200.html">GLM_GTX_gradient_paint</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00201"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00201.html">GLM_GTX_handed_coordinate_space</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00202"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00202.html">GLM_GTX_hash</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00203"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html">GLM_GTX_integer</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00204"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00204.html">GLM_GTX_intersect</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00205"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00205.html">GLM_GTX_io</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00206"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00206.html">GLM_GTX_log_base</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00207"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00207.html">GLM_GTX_matrix_cross_product</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00208"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html">GLM_GTX_matrix_decompose</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00209"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00209.html">GLM_GTX_matrix_interpolation</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00210"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00210.html">GLM_GTX_matrix_major_storage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00211"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html">GLM_GTX_matrix_operation</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00212"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00212.html">GLM_GTX_matrix_query</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00213"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00213.html">GLM_GTX_matrix_transform_2d</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00214"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html">GLM_GTX_mixed_producte</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00215"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00215.html">GLM_GTX_norm</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00216"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html">GLM_GTX_normal</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00217"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00217.html">GLM_GTX_normalize_dot</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00218"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html">GLM_GTX_number_precision</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00219"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00219.html">GLM_GTX_optimum_pow</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00220"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00220.html">GLM_GTX_orthonormalize</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00221.html">GLM_GTX_perpendicular</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00222"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">GLM_GTX_polar_coordinates</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00223"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html">GLM_GTX_projection</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00224"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html">GLM_GTX_quaternion</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00225"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00225.html">GLM_GTX_range</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00226"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html">GLM_GTX_raw_data</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00227"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html">GLM_GTX_rotate_normalized_axis</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00228"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00228.html">GLM_GTX_rotate_vector</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00229"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00229.html">GLM_GTX_scalar_relational</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00230"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html">GLM_GTX_simd_mat4</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00231"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html">GLM_GTX_simd_quat</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00232"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00232.html">GLM_GTX_simd_vec4</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00233"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00233.html">GLM_GTX_spline</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00234"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html">GLM_GTX_std_based_type</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00235"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html">GLM_GTX_string_cast</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00236"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html">GLM_GTX_transform</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00237"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html">GLM_GTX_transform2</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00238"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html">GLM_GTX_type_aligned</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00239"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html">GLM_GTX_vector_angle</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00240"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html">GLM_GTX_vector_query</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00241"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html">GLM_GTX_wrap</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear)</td></tr>
+<tr class="memdesc:gad813dcd99644cafc775e83d6504ccb93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear color to sRGB color using a standard gamma correction. <a href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">More...</a><br /></td></tr>
+<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)</td></tr>
+<tr class="memdesc:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear color to sRGB color using a custom gamma correction. <a href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">More...</a><br /></td></tr>
+<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB)</td></tr>
+<tr class="memdesc:ga28e98e64347cf385cadc1ceb4def55c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sRGB color to linear color using a standard gamma correction. <a href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">More...</a><br /></td></tr>
+<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
+template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)</td></tr>
+<tr class="memdesc:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sRGB color to linear color using a custom gamma correction. <br /></td></tr>
+<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
-<p>Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.</p>
-<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including &lt;<a class="el" href="a00023_source.html">glm/ext.hpp</a>&gt;. Otherwise, each extension needs to be included a specific file. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p>&lt;<a class="el" href="a00012.html" title="GLM_GTC_color_space ">glm/gtc/color_space.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gad813dcd99644cafc775e83d6504ccb93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::convertLinearToSRGB </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>ColorLinear</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a linear color to sRGB color using a standard gamma correction. </p>
+<p>IEC 61966-2-1:1999 / Rec. 709 specification <a href="https://www.w3.org/Graphics/Color/srgb">https://www.w3.org/Graphics/Color/srgb</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga63f8b003da7acf44370eb47bfb8b3d42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::convertLinearToSRGB </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>ColorLinear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>Gamma</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a linear color to sRGB color using a custom gamma correction. </p>
+<p>IEC 61966-2-1:1999 / Rec. 709 specification <a href="https://www.w3.org/Graphics/Color/srgb">https://www.w3.org/Graphics/Color/srgb</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga28e98e64347cf385cadc1ceb4def55c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::convertSRGBToLinear </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>ColorSRGB</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a sRGB color to linear color using a standard gamma correction. </p>
+<p>IEC 61966-2-1:1999 / Rec. 709 specification <a href="https://www.w3.org/Graphics/Color/srgb">https://www.w3.org/Graphics/Color/srgb</a> </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00162.html b/3rdparty/glm/doc/api/a00162.html
index 40b6991188c..72b7826c8f1 100644
--- a/3rdparty/glm/doc/api/a00162.html
+++ b/3rdparty/glm/doc/api/a00162.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM Core</title>
+<title>0.9.9 API documenation: GLM_GTC_constants</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,54 +33,703 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM Core</div> </div>
+<div class="title">GLM_GTC_constants<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Provide a list of constants and precomputed useful values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00151"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html">Common functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00152"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00152.html">Exponential functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00153"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html">Geometric functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00154"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00154.html">Integer functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00155"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00155.html">Matrix functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00156"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html">Noise functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00157"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html">Floating-Point Pack and Unpack Functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00158"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">Angle and Trigonometry Functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00159"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html">Vector Relational Functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00163"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html">Types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00164"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html">Precision types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00165"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00165.html">Template types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> ()</td></tr>
+<tr class="memdesc:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return e constant. <a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">More...</a><br /></td></tr>
+<tr class="separator:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a> ()</td></tr>
+<tr class="memdesc:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the epsilon constant for floating point types. <a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">More...</a><br /></td></tr>
+<tr class="separator:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a> ()</td></tr>
+<tr class="memdesc:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return Euler's constant. <a href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">More...</a><br /></td></tr>
+<tr class="separator:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a> ()</td></tr>
+<tr class="memdesc:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 4 / pi. <a href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">More...</a><br /></td></tr>
+<tr class="separator:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a> ()</td></tr>
+<tr class="memdesc:ga748cf8642830657c5b7eae04d0a80899"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the golden ratio constant. <a href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">More...</a><br /></td></tr>
+<tr class="separator:ga748cf8642830657c5b7eae04d0a80899"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a> ()</td></tr>
+<tr class="memdesc:ga0c36b41d462e45641faf7d7938948bac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi / 2. <a href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">More...</a><br /></td></tr>
+<tr class="separator:ga0c36b41d462e45641faf7d7938948bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a> ()</td></tr>
+<tr class="memdesc:gaca94292c839ed31a405ab7a81ae7e850"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return ln(ln(2)). <a href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">More...</a><br /></td></tr>
+<tr class="separator:gaca94292c839ed31a405ab7a81ae7e850"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a> ()</td></tr>
+<tr class="memdesc:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return ln(10). <a href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">More...</a><br /></td></tr>
+<tr class="separator:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a> ()</td></tr>
+<tr class="memdesc:ga24f4d27765678116f41a2f336ab7975c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return ln(2). <a href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">More...</a><br /></td></tr>
+<tr class="separator:ga24f4d27765678116f41a2f336ab7975c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a> ()</td></tr>
+<tr class="memdesc:ga39c2fb227631ca25894326529bdd1ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1. <a href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">More...</a><br /></td></tr>
+<tr class="separator:ga39c2fb227631ca25894326529bdd1ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a> ()</td></tr>
+<tr class="memdesc:ga555150da2b06d23c8738981d5013e0eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / pi. <a href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">More...</a><br /></td></tr>
+<tr class="separator:ga555150da2b06d23c8738981d5013e0eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a> ()</td></tr>
+<tr class="memdesc:ga788fa23a0939bac4d1d0205fb4f35818"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / sqrt(2). <a href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">More...</a><br /></td></tr>
+<tr class="separator:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a> ()</td></tr>
+<tr class="memdesc:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / (pi * 2). <a href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">More...</a><br /></td></tr>
+<tr class="separator:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a> ()</td></tr>
+<tr class="memdesc:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the pi constant. <a href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">More...</a><br /></td></tr>
+<tr class="separator:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a> ()</td></tr>
+<tr class="memdesc:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi / 4. <a href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">More...</a><br /></td></tr>
+<tr class="separator:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a> ()</td></tr>
+<tr class="memdesc:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(5). <a href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">More...</a><br /></td></tr>
+<tr class="separator:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a> ()</td></tr>
+<tr class="memdesc:ga4e276cb823cc5e612d4f89ed99c75039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(pi / 2). <a href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">More...</a><br /></td></tr>
+<tr class="separator:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a> ()</td></tr>
+<tr class="memdesc:ga4129412e96b33707a77c1a07652e23e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(ln(4)). <a href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">More...</a><br /></td></tr>
+<tr class="separator:ga4129412e96b33707a77c1a07652e23e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a> ()</td></tr>
+<tr class="memdesc:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return square root of pi. <a href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">More...</a><br /></td></tr>
+<tr class="separator:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a> ()</td></tr>
+<tr class="memdesc:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(3). <a href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">More...</a><br /></td></tr>
+<tr class="separator:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a> ()</td></tr>
+<tr class="memdesc:ga74e607d29020f100c0d0dc46ce2ca950"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(2). <a href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">More...</a><br /></td></tr>
+<tr class="separator:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a> ()</td></tr>
+<tr class="memdesc:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return sqrt(2 * pi). <a href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">More...</a><br /></td></tr>
+<tr class="separator:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a> ()</td></tr>
+<tr class="memdesc:ga3077c6311010a214b69ddc8214ec13b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 1 / 3. <a href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">More...</a><br /></td></tr>
+<tr class="separator:ga3077c6311010a214b69ddc8214ec13b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a> ()</td></tr>
+<tr class="memdesc:gae94950df74b0ce382b1fc1d978ef7394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi / 2 * 3. <a href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">More...</a><br /></td></tr>
+<tr class="separator:gae94950df74b0ce382b1fc1d978ef7394"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a> ()</td></tr>
+<tr class="memdesc:ga74eadc8a211253079683219a3ea0462a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 2 / pi. <a href="a00162.html#ga74eadc8a211253079683219a3ea0462a">More...</a><br /></td></tr>
+<tr class="separator:ga74eadc8a211253079683219a3ea0462a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a> ()</td></tr>
+<tr class="memdesc:ga5827301817640843cf02026a8d493894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 2 / sqrt(pi). <a href="a00162.html#ga5827301817640843cf02026a8d493894">More...</a><br /></td></tr>
+<tr class="separator:ga5827301817640843cf02026a8d493894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a> ()</td></tr>
+<tr class="memdesc:gaa5276a4617566abcfe49286f40e3a256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pi * 2. <a href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">More...</a><br /></td></tr>
+<tr class="separator:gaa5276a4617566abcfe49286f40e3a256"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a> ()</td></tr>
+<tr class="memdesc:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 2 / 3. <a href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">More...</a><br /></td></tr>
+<tr class="separator:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a> ()</td></tr>
+<tr class="memdesc:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return 0. <a href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">More...</a><br /></td></tr>
+<tr class="separator:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible. </p>
-<p>The GLM core consists of <a class="el" href="a00163.html">C++ types that mirror GLSL types</a> and C++ functions that mirror the GLSL functions. It also includes <a class="el" href="a00164.html">a set of precision-based types</a> that can be used in the appropriate functions. The C++ types are all based on a basic set of <a class="el" href="a00165.html">template types</a>.</p>
-<p>The best documentation for GLM Core is the current GLSL specification, <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2 (pdf file)</a>.</p>
-<p>GLM core functionnalities require &lt;<a class="el" href="a00040.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/glm.hpp</a>&gt; to be included to be used. </p>
+<p>Provide a list of constants and precomputed useful values. </p>
+<p>&lt;<a class="el" href="a00019.html" title="GLM_GTC_constants ">glm/gtc/constants.hpp</a>&gt; need to be included to use these features. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga4b7956eb6e2fbedfc7cf2e46e85c5139"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::e </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return e constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2a1e57fc5592b69cfae84174cbfc9429"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::epsilon </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the epsilon constant for floating point types. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad8fe2e6f90bce9d829e9723b649fbd42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::euler </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return Euler's constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga753950e5140e4ea6a88e4a18ba61dc09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::four_over_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 4 / pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga748cf8642830657c5b7eae04d0a80899"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::golden_ratio </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the golden ratio constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0c36b41d462e45641faf7d7938948bac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::half_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi / 2. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaca94292c839ed31a405ab7a81ae7e850"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ln_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return ln(ln(2)). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf97ebc6c059ffd788e6c4946f71ef66c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ten </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return ln(10). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga24f4d27765678116f41a2f336ab7975c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return ln(2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga39c2fb227631ca25894326529bdd1ee5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga555150da2b06d23c8738981d5013e0eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga788fa23a0939bac4d1d0205fb4f35818"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_root_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / sqrt(2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7c922b427986cbb2e4c6ac69874eefbc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / (pi * 2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga94bafeb2a0f23ab6450fed1f98ee4e45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the pi constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3c9df42bd73c519a995c43f0f99e77e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::quarter_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi / 4. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae9ebbded75b53d4faeb1e4ef8b3347a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_five </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(5). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4e276cb823cc5e612d4f89ed99c75039"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_half_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(pi / 2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4129412e96b33707a77c1a07652e23e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_ln_four </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(ln(4)). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga261380796b2cd496f68d2cf1d08b8eb9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return square root of pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4f286be4abe88be1eed7d2a9f6cb193e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_three </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(3). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga74e607d29020f100c0d0dc46ce2ca950"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2bcedc575039fe0cd765742f8bbb0bd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(2 * pi). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3077c6311010a214b69ddc8214ec13b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::third </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae94950df74b0ce382b1fc1d978ef7394"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::three_over_two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi / 2 * 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga74eadc8a211253079683219a3ea0462a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 2 / pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5827301817640843cf02026a8d493894"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_root_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 2 / sqrt(pi). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa5276a4617566abcfe49286f40e3a256"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi * 2. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9b4d2f4322edcf63a6737b92a29dd1f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_thirds </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 2 / 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga788f5a421fc0f40a1296ebc094cbaa8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::zero </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 0. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00163.html b/3rdparty/glm/doc/api/a00163.html
index 74a423598dd..bb368126da7 100644
--- a/3rdparty/glm/doc/api/a00163.html
+++ b/3rdparty/glm/doc/api/a00163.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Types</title>
+<title>0.9.9 API documenation: GLM_GTC_epsilon</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,773 +33,222 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> &#124;
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Types<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GLM_GTC_epsilon<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Comparison functions for a user defined epsilon values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00164"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html">Precision types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
-<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
-<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
-<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
-<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
-<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
-<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
-<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
-<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
-<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
-<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
-<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
-<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
-<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
-<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
-<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
-<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
-<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
-<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
-<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
-<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
-<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
-<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
-<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
-<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
-<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
-<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
-<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
-<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
-<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
-<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
-<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
-<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
-<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
-<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
-<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
-<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
-<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
-<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
-<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gaca9443f217dc36587624247245522331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &lt; epsilon. <a href="a00163.html#gaca9443f217dc36587624247245522331">More...</a><br /></td></tr>
+<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
+<tr class="memdesc:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &lt; epsilon. <a href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">More...</a><br /></td></tr>
+<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, typename genType::value_type const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga14e2888a304654ade8a3996024e2739c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &lt; epsilon. <a href="a00163.html#ga14e2888a304654ade8a3996024e2739c">More...</a><br /></td></tr>
+<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of |x - y| &gt;= epsilon. <a href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">More...</a><br /></td></tr>
+<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>The standard types defined by the specification. </p>
-<p>These types are all typedefs of more generalized, template types. To see the definition of these template types, go to <a class="el" href="a00165.html">Template types</a>. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga0e46aaaccc5e713eac5bfbc8d6885a60"></a>
+<p>Comparison functions for a user defined epsilon values. </p>
+<p>&lt;<a class="el" href="a00021.html" title="GLM_GTC_epsilon ">glm/gtc/epsilon.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaca9443f217dc36587624247245522331"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef highp_bvec2 bvec2</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::epsilonEqual </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of boolean. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00498">498</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga150731e2a148eff8752114a0e450505e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_bvec3 bvec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of boolean. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00503">503</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga444e8f61bfb3a6f037d019ac6933f8c6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_bvec4 bvec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of boolean. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00508">508</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac7f51e23c8802d867f564dfd146bdb44"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat2x2 dmat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>2 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00733">733</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
+<p>Returns the component-wise comparison of |x - y| &lt; epsilon. </p>
+<p>True if this expression is satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gacc27b39853a2ecb538c8b3afc20c359e"></a>
+<a class="anchor" id="gaa7f227999ca09e7ca994e8b35aba47bb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef highp_dmat2x2 dmat2x2</td>
+ <td class="memname">GLM_FUNC_DECL bool glm::epsilonEqual </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00748">748</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1cb3c561a32f0864733dfaf97c71f0c7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat2x3 dmat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00753">753</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaddd230c88fbd6ec33242329be3a1b738"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat2x4 dmat2x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00758">758</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae174ff65e148bb7dec4bf10a63cb46ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat3x3 dmat3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>3 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00738">738</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
+<p>Returns the component-wise comparison of |x - y| &lt; epsilon. </p>
+<p>True if this expression is satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaec22f44dddbdadfe5dfca68eb3457ea8"></a>
+<a class="anchor" id="ga14e2888a304654ade8a3996024e2739c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef highp_dmat3x2 dmat3x2</td>
+ <td class="memname">GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00763">763</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac44263f56ff3cbf0a9cc4e2405d5ecb8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat3x3 dmat3x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00768">768</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga38d9bfca882ec542b1928cf77b5c2091"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat3x4 dmat3x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00773">773</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga97b38ea24e9ebf58eac04a8d99dc3e27"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat4x4 dmat4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>4 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00743">743</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
+<p>Returns the component-wise comparison of |x - y| &lt; epsilon. </p>
+<p>True if this expression is not satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6ddab280c735a2139133b4164b99a68a"></a>
+<a class="anchor" id="ga50a92103fb0cbd796908e1bf20c79aaf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef highp_dmat4x2 dmat4x2</td>
+ <td class="memname">GLM_FUNC_DECL bool glm::epsilonNotEqual </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00778">778</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab6c8974496fc7c72dad09219118ba89e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat4x3 dmat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00783">783</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga41c2da87ca627c1b2da5e895435a508e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dmat4x4 dmat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00788">788</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga15ade901680b29b78c1f9d1796db6e0e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef highp_dvec2 dvec2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>2 components vector of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00417">417</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabebd0c7e3c5cd337d95c313c5e8b8db4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dvec3 dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00422">422</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9503f809789bda7e8852a6abde3ae5c1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dvec4 dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00427">427</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2ab812bd103527e2d6c62c2e2f5ee78f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ivec2 ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00444">444</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga34aee73784bcc247d426250540c1911c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ivec3 ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00449">449</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaa26c41d168dc00be0fe55f4d0a34224"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ivec4 ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00454">454</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6e30cfba068ebc3c71fe1f8b3110e450"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mat2x2 mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00432">432</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c84b211a5730357b63c6d2e4fb696d5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat2x2 mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00385">385</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb063d734266e92915d87f8943560471"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat2x3 mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00390">390</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4d2ac1a80c36fb5a1d15914035f792ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat2x4 mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00395">395</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6dd3ec98a548755676267e59142911f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mat3x3 mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00437">437</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3839ca29d011a80ff3ede7f22ba602a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat3x2 mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00400">400</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga378921b6a07bcdad946858b340f69ab1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat3x3 mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00405">405</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7876e0c3e3fcc3e2f4c0462c152e87cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat3x4 mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00410">410</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gade0eb47c01f79384a6f38017ede17446"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mat4x4 mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00442">442</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1b3f6a5cbc17362141f9781262ed838f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat4x2 mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00415">415</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacd9ff3b943b3d8bda4f4b388320420fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat4x3 mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00420">420</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga089315d5a0c20ac6eaa17a854bbd2e81"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat4x4 mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00425">425</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9bcffa2d49f28d16f680757b5c0e7c84"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_uvec2 uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00471">471</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae85537b672ffe0b3218cbdf1823e1c72"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_uvec3 uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00476">476</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa7c3a0e7ae50c34c3290415c115f251e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_uvec4 uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00481">481</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga09d0200e8ff86391d8804b4fefd5f1da"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_vec2 vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00390">390</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa8ea2429bb3cb41a715258a447f39897"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_vec3 vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00395">395</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafbab23070ca47932487d25332adc7d7c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_vec4 vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00400">400</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
+<p>Returns the component-wise comparison of |x - y| &gt;= epsilon. </p>
+<p>True if this expression is not satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00164.html b/3rdparty/glm/doc/api/a00164.html
index 46fc1361314..8f49bad6a12 100644
--- a/3rdparty/glm/doc/api/a00164.html
+++ b/3rdparty/glm/doc/api/a00164.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Precision types</title>
+<title>0.9.9 API documenation: GLM_GTC_functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,2792 +33,140 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Precision types<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a><a class="el" href="a00162.html">GLM Core</a> &raquo; &#124; <a class="el" href="a00163.html">Types</a></div></div> </div>
+<div class="title">GLM_GTC_functions<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>List of useful common functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
-<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
-<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
-<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
-<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
-<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
-<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
-<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
-<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
-<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
-<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
-<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
-<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
-<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
-<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
-<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
-<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
-<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
-<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
-<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
-<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
-<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
-<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
-<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
-<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
-<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
-<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
-<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
-<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
-<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
-<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
-<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
-<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
-<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
-<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
-<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
-<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
-<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
-<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
-<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
-<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
-<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
-<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
-<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
-<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
-<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
-<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
-<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
-<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
-<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
-<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
-<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
-<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
-<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
-<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
-<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
-<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
-<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
-<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
-<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
-<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
-<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
-<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
-<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
-<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
-<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
-<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
-<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
-<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
-<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
-<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
-<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
-<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
-<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
-<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
-<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
-<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
-<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
-<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
-<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
-<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
-<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
-<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
-<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
-<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
-<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
-<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; bool, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
-<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
-<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
-<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
-<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
-<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
-<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
-<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
-<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
-<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
-<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
-<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
-<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
-<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
-<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
-<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
-<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
-<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
-<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
-<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
-<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
-<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
-<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
-<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
-<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
-<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
-<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
-<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
-<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
-<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
-<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
-<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
-<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
-<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
-<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
-<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
-<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
-<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
-<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
-<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
-<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
-<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">gauss</a> (T x, T ExpectedValue, T StandardDeviation)</td></tr>
+<tr class="memdesc:ga0b50b197ff74261a0fad90f4b8d24702"><td class="mdescLeft">&#160;</td><td class="mdescRight">1D gauss function <a href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">More...</a><br /></td></tr>
+<tr class="separator:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a> (tvec2&lt; T, P &gt; const &amp;Coord, tvec2&lt; T, P &gt; const &amp;ExpectedValue, tvec2&lt; T, P &gt; const &amp;StandardDeviation)</td></tr>
+<tr class="memdesc:ga7448f9eb74bb5924f6330ab532f2899c"><td class="mdescLeft">&#160;</td><td class="mdescRight">2D gauss function <a href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">More...</a><br /></td></tr>
+<tr class="separator:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Non-GLSL types that are used to define precision-based types. </p>
-<p>The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they <em>do</em> have an effect.</p>
-<p>C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the <a class="el" href="a00165.html">Template types</a> that use a particular precision.</p>
-<p>None of these types make any guarantees about the actual precision used. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga829f39950549881a08c534946c0487e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;bool, highp&gt; highp_bvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high precision bool numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00153">153</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaca7c2a58eb926799c30ad547a290fccf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;bool, highp&gt; highp_bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00262">262</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae5f9c57d04b338c9a51a9af39e50795b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;bool, highp&gt; highp_bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00357">357</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga65ae7d3b23155712ed8cbd3300be4ec8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;double, highp&gt; highp_dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00466">466</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga518f28c64881fafaaf14ec0d867a9bba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;double, highp&gt; highp_dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00484">484</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf98afd25f7e3e8f1d73bca020d0d8ea6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt;double, highp&gt; highp_dmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00507">507</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac1c87c16d6dcb7449bc3c779ccdc5c30"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt;double, highp&gt; highp_dmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00530">530</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga605c7863807ac2e9c2db4cf13405f34d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;double, highp&gt; highp_dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00576">576</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab2d4fd5cd286baff8364a7a3f60c8a21"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt;double, highp&gt; highp_dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00553">553</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2d7911a43241a5ce2472421255e5930f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;double, highp&gt; highp_dmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00594">594</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga51bfd2f3f5a12464d5934323db9116e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt;double, highp&gt; highp_dmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00617">617</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4607e33c40a3c03256e0bf9c586b456a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;double, highp&gt; highp_dmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00686">686</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5ee028f50629bf451973b3a910973357"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt;double, highp&gt; highp_dmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00640">640</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafe7eea5b2a20477b5634e340ea5ec28a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt;double, highp&gt; highp_dmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00663">663</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga83ab0b8b8b50cbf945237dc8f5322432"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;double, highp&gt; highp_dmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00704">704</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga435eb408e8dfa4f7185368109d432c14"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;double, highp&gt; highp_dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00090">90</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga01d2c9b292e27518e4d6f8442607e8aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;double, highp&gt; highp_dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00200">200</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5d454f34d819d90b9bbb30dcb9ed7b39"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;double, highp&gt; highp_dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00303">303</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6e95694987ba35af6f736638be39626a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_float_t highp_float</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00070">70</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaabe7eb044941ebf308b53a447d692dc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::highp_int_t highp_int</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision signed integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00258">258</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa015a3707413de20c03948308dba2f2e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;int, highp&gt; highp_ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00111">111</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8330bf0d7e6d03ca12ee2b1334c2c30f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;int, highp&gt; highp_ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00221">221</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0424a75bb400571489b8528897f35258"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;int, highp&gt; highp_ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high precision signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00321">321</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga11c1eb1d307846d5bee7d7c0d8c386f0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt; float, highp &gt; highp_mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00079">79</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae6a747cfc33928652abcb1347712b231"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt; float, highp &gt; highp_mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00100">100</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9dfd75b5b17b89ccbecbdd6201efc74b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt; float, highp &gt; highp_mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00126">126</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga03fe2f9a84c61cc0f08b324a27d9b493"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt; float, highp &gt; highp_mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00152">152</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaac1bde847d053902c27bad811b76e9fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt; float, highp &gt; highp_mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00204">204</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6b00cd7956ac2ee3d4f3ab3b549b564a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt; float, highp &gt; highp_mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00178">178</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga223de5d0549b215566dfb977d4bb45bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt; float, highp &gt; highp_mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00225">225</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga117d8a040e738396a3d60368605623d2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt; float, highp &gt; highp_mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00251">251</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabace1eeb2fac7d73a7faaecf33f352d0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt; float, highp &gt; highp_mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00330">330</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaeea75c96b308be4114e0badf49f58075"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt; float, highp &gt; highp_mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00277">277</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga046e59c57aaa185a8b0b012164ce707f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt; float, highp &gt; highp_mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00303">303</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa72822d91f0dceb4dcaaec550cbfeead"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt; float, highp &gt; highp_mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00351">351</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga73e8a694d7fc69143cf25161d18d1dcf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::highp_uint_t highp_uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision unsigned integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00279">279</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa0eed70387a998c3eca2f4e45f3efaad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;uint, highp&gt; highp_uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00132">132</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf564d5be1e65bd2204754043b218c9a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;uint, highp&gt; highp_uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00242">242</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga61359f5531550e45871a97589d8dcce1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;uint, highp&gt; highp_uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high precision unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00339">339</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabfc3e9f63cc3e2ee0521405277ef3997"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt; float, highp &gt; highp_vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high single-precision floating-point numbers. </p>
-<p>High Single-precision floating-point vector of 2 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00069">69</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b31b02c5558e2f8e5d8439ae3803d3a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt; float, highp &gt; highp_vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high single-precision floating-point numbers. </p>
-<p>High Single-precision floating-point vector of 3 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00179">179</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gade7cb496ed3d78b2a11f1651cce77239"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt; float, highp &gt; highp_vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high single-precision floating-point numbers. </p>
-<p>High Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00285">285</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga28dcda102dd8c94ec500ee786af7a30a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;bool, lowp&gt; lowp_bvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low precision bool numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00167">167</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga76c0948546deeeb18bfda36f18b3e673"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;bool, lowp&gt; lowp_bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00274">274</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafa2087ead0d0e2a3c907e3fbd99f4d85"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;bool, lowp&gt; lowp_bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00369">369</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae0a526a0143fc69d7b317c078d591654"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;double, lowp&gt; lowp_dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00454">454</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga000c064e4eba15bf83f8e1e393a8e7fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;double, lowp&gt; lowp_dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00472">472</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaf2d7cf98b74a43fc432725887685dc0"></a>
+<p>List of useful common functions. </p>
+<p>&lt;<a class="el" href="a00038.html" title="GLM_GTC_functions ">glm/gtc/functions.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga0b50b197ff74261a0fad90f4b8d24702"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt;double, lowp&gt; lowp_dmat2x3</td>
+ <td class="memname">GLM_FUNC_DECL T glm::gauss </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00495">495</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ac69e9ed1addf122f51396f73cdbbf3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt;double, lowp&gt; lowp_dmat2x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>ExpectedValue</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00518">518</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga19b0c9580b447443cf3fe589bd661e03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;float, lowp&gt; lowp_dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00564">564</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga27ccd1bcb24920508a7b6a24bd9265ab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt;double, lowp&gt; lowp_dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00541">541</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae37a4275ffa68d0c3527a345e76598c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;double, lowp&gt; lowp_dmat3x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>StandardDeviation</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00582">582</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga813bff547772bcefebc026e5deba0fe3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt;double, lowp&gt; lowp_dmat3x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00605">605</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
+<p>1D gauss function </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaac3aee10bee5fa5206de8bf024a8b301"></a>
+<a class="anchor" id="ga7448f9eb74bb5924f6330ab532f2899c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;double, lowp&gt; lowp_dmat4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::gauss </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Coord</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00674">674</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga05c2d27aeca091e369fca027e72177e8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt;double, lowp&gt; lowp_dmat4x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>ExpectedValue</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00628">628</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2b5b1b810f3b9988f49f985387e35e03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt;double, lowp&gt; lowp_dmat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>StandardDeviation</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00651">651</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaea9e20c3668305cf0de5334d217408d9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;double, lowp&gt; lowp_dmat4x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00692">692</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga96eb13864627c7c832b5af36aa73bda6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;double, lowp&gt; lowp_dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00104">104</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf7ec7b1cefeeaf63659460ef52fd06a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;double, lowp&gt; lowp_dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00214">214</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab5d6a45e1bbb13314b47793865a4c072"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;double, lowp&gt; lowp_dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00315">315</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga358d69e11b1c0f6c7c469e0d39ab7fd1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef lowp_float_t lowp_float</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00056">56</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad0fa1e32e8b3552ed63556eca51c620e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::lowp_int_t lowp_int</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision signed integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00244">244</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;int, lowp&gt; lowp_ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00125">125</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa040f25233c314adc9560dcdb9dadac2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;int, lowp&gt; lowp_ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00235">235</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8b7483dc67dc332f9d874c6cf7172203"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;int, lowp&gt; lowp_ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low precision signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00333">333</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ed94bfb5f4e0b2c3b0d49c5be478c85"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt; float, lowp &gt; lowp_mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00065">65</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab1a0d4d8fd3bb85f6616dac9dbef2981"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt; float, lowp &gt; lowp_mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00086">86</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae8fe30d421bc141fa84ad414b803947d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt; float, lowp &gt; lowp_mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00112">112</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad64a0179b75508142a72917854034b9b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt; float, lowp &gt; lowp_mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00138">138</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6a66118df7e2398a36ca4a8e98ce6783"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt; float, lowp &gt; lowp_mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00190">190</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa2542e884ac7d05ada8ebb078b721924"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt; float, lowp &gt; lowp_mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00164">164</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab7ca36023fa56d8006341a192ee09260"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt; float, lowp &gt; lowp_mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00211">211</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2938621d14e70bc3dc576b4fc1547a7e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt; float, lowp &gt; lowp_mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00237">237</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabb754302a1ff8736ec7814d860c9a3c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt; float, lowp &gt; lowp_mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00316">316</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac6d04a9590cb7ab62cbe29203dbb9b93"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt; float, lowp &gt; lowp_mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00263">263</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb3dbbc82f8b166867fd21c76eb8db4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt; float, lowp &gt; lowp_mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00289">289</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafff11cbd0abc762e8a340870a31d5bfa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt; float, lowp &gt; lowp_mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00337">337</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga25ebc60727fc8b4a1167665f9ecdca97"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::lowp_uint_t lowp_uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision unsigned integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00265">265</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6bfb90b936bbbc67e438bb9ac6910309"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;uint, lowp&gt; lowp_uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00146">146</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf0049c860a612da9bd3ba9ac9e49e820"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;uint, lowp&gt; lowp_uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00256">256</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6efcd4574e112cfcda320db58e649ee3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;uint, lowp&gt; lowp_uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low precision unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00351">351</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga51e835b2aa735782f0174328acffa521"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt; float, lowp &gt; lowp_vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low single-precision floating-point numbers. </p>
-<p>Low single-precision floating-point vector of 2 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00083">83</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf89f8fb5a06848ea4ec1c3a02813454e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt; float, lowp &gt; lowp_vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low single-precision floating-point numbers. </p>
-<p>Low single-precision floating-point vector of 3 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00193">193</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8f9002d3ab660e3171f5cdea1aab8395"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt; float, lowp &gt; lowp_vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low single-precision floating-point numbers. </p>
-<p>Low single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00297">297</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae1f4f68346474246eb4a9952af49e72b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;bool, mediump&gt; mediump_bvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium precision bool numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00160">160</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0d1778766f17c4329a8c3f2b37f5fab0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;bool, mediump&gt; mediump_bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00268">268</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3f0c27f7ab42f004054a247c93a7bf57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;bool, mediump&gt; mediump_bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00363">363</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga330077a4cb3707329120b5bddcd7db2d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;double, mediump&gt; mediump_dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00460">460</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga78987759d40d7cb03ebe948fb1dcd879"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;double, mediump&gt; mediump_dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00478">478</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2569a68be3f1cf56e7e5e0920fe5a246"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt;double, mediump&gt; mediump_dmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00501">501</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaccf963b117beeadf8c5c057000762dd3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt;double, mediump&gt; mediump_dmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00524">524</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8091edef9fdf54b1996ae5bd00f847e5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;double, mediump&gt; mediump_dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00570">570</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6b81830ed1ce3862bcbbf41eccc3890b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt;double, mediump&gt; mediump_dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00547">547</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5e5de055b7af150796e1c017de84cdb1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;double, mediump&gt; mediump_dmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00588">588</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga187d10ddab0492545b78ea1dd108f28d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt;double, mediump&gt; mediump_dmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00611">611</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga27be34d618d20fbd70d4c62c21256b0c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;double, mediump&gt; mediump_dmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00680">680</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad4a5b294c54702b7c8e9ee32a451dea9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt;double, mediump&gt; mediump_dmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00634">634</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga27b55deeb16fda7262d64dc1fd1a56bc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt;double, mediump&gt; mediump_dmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00657">657</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga857947b2eef2c9144c34b8e3031f2f12"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;double, mediump&gt; mediump_dmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00698">698</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga388fd99d9ffc7190a4732c35b0c7bfc9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;double, mediump&gt; mediump_dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00097">97</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0b4741d444b131ef1fc54b19c37f72be"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;double, mediump&gt; mediump_dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00207">207</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3e804226444dfe246133fc6ec4a3912f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;double, mediump&gt; mediump_dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00309">309</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga280c68f537f4b1e03a00b23e62573b98"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_float_t mediump_float</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00063">63</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga212ef8f883878cb7430228a279a7d866"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::mediump_int_t mediump_int</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision signed integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00251">251</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga199cc7c4cfa7c7cadad0c74d2f059aef"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;int, mediump&gt; mediump_ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00118">118</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9b7843453f7ad6ebfa26e50408b8dcf0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;int, mediump&gt; mediump_ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00228">228</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga14614613c8e79772c8a6d25dd1c45995"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;int, mediump&gt; mediump_ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium precision signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00327">327</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga57b1e6c49a1432cefa518f13a56c5d47"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt; float, mediump &gt; mediump_mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00072">72</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1b77963ca2812ac2653624fa0f81ba74"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt; float, mediump &gt; mediump_mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00093">93</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8c17198123baf6bfb59582ec42a3ca09"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt; float, mediump &gt; mediump_mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00119">119</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7e95e348c99ef3d56b87ede14bc90bfe"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt; float, mediump &gt; mediump_mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00145">145</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga29d313adfc82fd4179d29a9fd98b1b5b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt; float, mediump &gt; mediump_mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00197">197</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9fa569295a9bd6ce0825ccb832c8aac9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt; float, mediump &gt; mediump_mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00171">171</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2f02cb49e386f65817c10ead9bbe7dec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt; float, mediump &gt; mediump_mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00218">218</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac7afc5b81d320dbd7bd6a6f07d587e24"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt; float, mediump &gt; mediump_mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00244">244</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6259813853e4253f80c2a08672e9fb6a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt; float, mediump &gt; mediump_mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00323">323</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga22194c68bc3d798bb68a22f635558c8d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt; float, mediump &gt; mediump_mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00270">270</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga38a01cba69e3db9b1a1056b362519acb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt; float, mediump &gt; mediump_mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00296">296</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga535614d97234065ab44b2513667c8563"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt; float, mediump &gt; mediump_mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00344">344</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0b7e01c52b9e5bf3369761b79b5f4f8e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::mediump_uint_t mediump_uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision unsigned integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00272">272</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga392c0761c8bef616801e0d81a6867ed7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt;uint, mediump&gt; mediump_uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00139">139</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga54ae0b7b207b8e7e88841d146d2de12e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt;uint, mediump&gt; mediump_uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00249">249</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga631f5767b9d45c5cd3d0bcd67565b3f7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt;uint, mediump&gt; mediump_uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium precision unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00345">345</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac37a3fd0ecdcab044853c039409c9af7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt; float, mediump &gt; mediump_vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium single-precision floating-point numbers. </p>
-<p>Medium Single-precision floating-point vector of 2 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00076">76</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga591478a77e4324e0836abc17cbb13e83"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt; float, mediump &gt; mediump_vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium single-precision floating-point numbers. </p>
-<p>Medium Single-precision floating-point vector of 3 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00186">186</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaae72e97529b8fa4e0341b425d4fe03ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt; float, mediump &gt; mediump_vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium single-precision floating-point numbers. </p>
-<p>Medium Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00291">291</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga91ad9478d81a7aaf2593e8d9c3d06a14"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned int uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00308">308</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
+<p>2D gauss function </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00165.html b/3rdparty/glm/doc/api/a00165.html
index 923fb4cc1d9..f28009c3529 100644
--- a/3rdparty/glm/doc/api/a00165.html
+++ b/3rdparty/glm/doc/api/a00165.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Template types</title>
+<title>0.9.9 API documenation: GLM_GTC_integer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,300 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Template types<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GLM_GTC_integer<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>The generic template types used as the basis for the core types. </p>
-<p>These types are all templates used to define the actual <a class="el" href="a00163.html">Types</a>. These templetes are implementation details of GLM types and should not be used explicitly. </p>
+
+<p>Allow to perform bit operations on integer values.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; int, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0a42ffb863cc980e91f98d2f5766de20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">More...</a><br /></td></tr>
+<tr class="separator:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
+<tr class="memdesc:ga9bd682e74bfacb005c735305207ec417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the log2 of x for integer values. <a href="a00165.html#ga9bd682e74bfacb005c735305207ec417">More...</a><br /></td></tr>
+<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
+<tr class="memdesc:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">More...</a><br /></td></tr>
+<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType&lt; T, P &gt; const &amp;x, T y)</td></tr>
+<tr class="memdesc:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">More...</a><br /></td></tr>
+<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">More...</a><br /></td></tr>
+<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gab61b8546aafdf58f119eb892b212607c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00165.html#gab61b8546aafdf58f119eb892b212607c">More...</a><br /></td></tr>
+<tr class="separator:gab61b8546aafdf58f119eb892b212607c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Allow to perform bit operations on integer values. </p>
+<p>&lt;<a class="el" href="a00045.html" title="GLM_GTC_integer ">glm/gtc/integer.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga0a42ffb863cc980e91f98d2f5766de20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;int, P&gt; glm::iround </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x. </p>
+<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>The values of the argument must be greater or equal to zero. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>floating point scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
+<dd>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9bd682e74bfacb005c735305207ec417"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::log2 </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the log2 of x for integer values. </p>
+<p>Can be reliably using to compute mipmap count from the texture size. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga75c6fd2a143fc44e5f7b871abad539e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::mod </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x % y for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genIUType</td><td>Integer-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac76ae7d82ff22526bcf6d6a1b51af6c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt; T, P &gt; mod </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x % y for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf5ae5330f6b30b4a35fb95f9a73d6134"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt; T, P &gt; mod </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x % y for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab61b8546aafdf58f119eb892b212607c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uint, P&gt; glm::uround </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x. </p>
+<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>The values of the argument must be greater or equal to zero. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>floating point scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
+<dd>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00166.html b/3rdparty/glm/doc/api/a00166.html
index 9b847ecf2b1..46fb471ef00 100644
--- a/3rdparty/glm/doc/api/a00166.html
+++ b/3rdparty/glm/doc/api/a00166.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_bitfield</title>
+<title>0.9.9 API documenation: GLM_GTC_matrix_access</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,306 +33,96 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_bitfield<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_access<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines functions to access rows or columns of a matrix easily.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
-<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
-<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
-<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
-<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
-<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
-<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
-<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
-<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
-<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
-<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
-<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
-<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
-<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
-<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
-<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
-<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
-<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
-<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
-<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType&lt; T, P &gt; const &amp;In, int Shift)</td></tr>
-<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
-<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecIUType&gt; </td></tr>
-<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &amp;m, length_t index)</td></tr>
+<tr class="memdesc:ga96022eb0d3fae39d89fc7a954e59b374"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a specific column of a matrix. <a href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">More...</a><br /></td></tr>
+<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &amp;m, length_t index, typename genType::col_type const &amp;x)</td></tr>
+<tr class="memdesc:ga9e757377523890e8b80c5843dbe4dd15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a specific column to a matrix. <a href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">More...</a><br /></td></tr>
+<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &amp;m, length_t index)</td></tr>
+<tr class="memdesc:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a specific row of a matrix. <a href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">More...</a><br /></td></tr>
+<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &amp;m, length_t index, typename genType::row_type const &amp;x)</td></tr>
+<tr class="memdesc:gaadcc64829aadf4103477679e48c7594f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a specific row to a matrix. <a href="a00166.html#gaadcc64829aadf4103477679e48c7594f">More...</a><br /></td></tr>
+<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p>&lt;<a class="el" href="a00009.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/bitfield.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Defines functions to access rows or columns of a matrix easily. </p>
+<p>&lt;<a class="el" href="a00062.html" title="GLM_GTC_matrix_access ">glm/gtc/matrix_access.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga46f9295abe3b5c7658f5b13c7f819f0a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillOne </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>BitCount</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 1 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad789042e84e8292ae95dc1af856f2ad5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldFillOne </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>BitCount</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 1 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga697b86998b7d74ee0a69d8e9f8819fee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillZero </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>BitCount</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 0 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaddba3196316b0bd240295b09b43c2958"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldFillZero </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>BitCount</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 0 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga24cad0069f9a0450abd80b3e89501adf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int16 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9a4976a529aec2cee56525e1165da484"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac51c33a394593f0631fa3aa5bb778809"></a>
+<a class="anchor" id="ga96022eb0d3fae39d89fc7a954e59b374"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType::col_type glm::column </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramtype">length_t&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -336,87 +132,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Get a specific column of a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga94f3646a5667f4be56f8dcf3310e963f"></a>
+<a class="anchor" id="ga9e757377523890e8b80c5843dbe4dd15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::column </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaebb756a24a0784e3d6fba8bd011ab77a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2f1e2b3fe699e7d897ae38b2115ddcbd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">length_t&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramtype">typename genType::col_type const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -426,33 +167,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Set a specific column to a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8fdb724dccd4a07d57efc01147102137"></a>
+<a class="anchor" id="ga259e5ebd0f31ec3f83440f8cae7f5dba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType::row_type glm::row </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
+ <td class="paramtype">length_t&#160;</td>
+ <td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -462,33 +196,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Get a specific row of a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga9fc2a0dd5dcf8b00e113f272a5feca93"></a>
+<a class="anchor" id="gaadcc64829aadf4103477679e48c7594f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::row </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">length_t&#160;</td>
+ <td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
+ <td class="paramtype">typename genType::row_type const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -498,479 +231,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa901c36a842fa5d126ea650549f17b24"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3afd6d38881fe3948c53d4214d2197fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad2075d96a6640121edaa98ea534102ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab19fbc739fc0cf7247978602c36f7da8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8a44ae22f5c953b296c42d067dccbe6d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga14bb274d54a3c26f4919dd7ed0dd0c36"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga180a63161e1319fbd5a53c84d0429c7a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafca8768671a14c8016facccb66a89f26"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2eb49678a344ce1495bdb5586d9896b9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Shift</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the left. </p>
-<p>All the bits dropped in the left side are inserted back on the right side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga410d130917d85b865718e3ebc32cf0ef"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldRotateLeft </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Shift</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the left. </p>
-<p>All the bits dropped in the left side are inserted back on the right side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1c33d075c5fb8bd8dbfd5092bfc851ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateRight </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Shift</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the right. </p>
-<p>All the bits dropped in the right side are inserted back on the left side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga96b56fd2adad1eeaee9e10dfe83904ba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::bitfieldRotateRight </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>Shift</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the right. </p>
-<p>All the bits dropped in the right side are inserted back on the left side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad7eba518a0b71662114571ee76939f8a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::mask </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Bits</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a mask of 'count' bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga073dbd8642f550b51da3572541431c1c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecIUType&lt;T, P&gt; glm::mask </td>
- <td>(</td>
- <td class="paramtype">vecIUType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a mask of 'count' bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Set a specific row to a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00167.html b/3rdparty/glm/doc/api/a00167.html
index 56226c3ea8c..1f01a9bf987 100644
--- a/3rdparty/glm/doc/api/a00167.html
+++ b/3rdparty/glm/doc/api/a00167.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_color_space</title>
+<title>0.9.9 API documenation: GLM_GTC_matrix_integer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,44 +33,1985 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_color_space<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_integer<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines a number of matrices with integer types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad813dcd99644cafc775e83d6504ccb93"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear)</td></tr>
-<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63f8b003da7acf44370eb47bfb8b3d42"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)</td></tr>
-<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga28e98e64347cf385cadc1ceb4def55c9"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB)</td></tr>
-<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
-template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)</td></tr>
-<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
+<tr class="memdesc:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x2 matrix. <a href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">More...</a><br /></td></tr>
+<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
+<tr class="memdesc:gac455e55e7cb32e31396a9d4613da046a"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x2 matrix. <a href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">More...</a><br /></td></tr>
+<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
+<tr class="memdesc:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x3 matrix. <a href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">More...</a><br /></td></tr>
+<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
+<tr class="memdesc:ga73b855cc40e5d8202b7ab38461326d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 2x4 matrix. <a href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">More...</a><br /></td></tr>
+<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
+<tr class="memdesc:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x3 matrix. <a href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">More...</a><br /></td></tr>
+<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
+<tr class="memdesc:ga0413bf87605b9247be2533c439127a1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x2 matrix. <a href="a00167.html#ga0413bf87605b9247be2533c439127a1c">More...</a><br /></td></tr>
+<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
+<tr class="memdesc:gacce460d54216438bb577bf8c9d68299c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x3 matrix. <a href="a00167.html#gacce460d54216438bb577bf8c9d68299c">More...</a><br /></td></tr>
+<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
+<tr class="memdesc:gad4fea24b4100e21ed7742c91e5458d49"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 3x4 matrix. <a href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">More...</a><br /></td></tr>
+<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
+<tr class="memdesc:ga159ce04cc638ff4db755542cd8f758cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x4 matrix. <a href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">More...</a><br /></td></tr>
+<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
+<tr class="memdesc:ga7d43dd8332000f7f19379efa1b303599"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x2 matrix. <a href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">More...</a><br /></td></tr>
+<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
+<tr class="memdesc:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x3 matrix. <a href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">More...</a><br /></td></tr>
+<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
+<tr class="memdesc:gae53db595d36f49a299e180302795e3c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision signed integer 4x4 matrix. <a href="a00167.html#gae53db595d36f49a299e180302795e3c9">More...</a><br /></td></tr>
+<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
+<tr class="memdesc:gae7b96c808a36fbe87f41af1c77b7941c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x2 matrix. <a href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">More...</a><br /></td></tr>
+<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
+<tr class="memdesc:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">More...</a><br /></td></tr>
+<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
+<tr class="memdesc:gac351446661e5a8168473ff7b3b5ac3b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x3 matrix. <a href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">More...</a><br /></td></tr>
+<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
+<tr class="memdesc:ga815eb9fdf70edc45687cbcda07e97213"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 2x4 matrix. <a href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">More...</a><br /></td></tr>
+<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
+<tr class="memdesc:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x3 matrix. <a href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">More...</a><br /></td></tr>
+<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
+<tr class="memdesc:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x2 matrix. <a href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">More...</a><br /></td></tr>
+<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
+<tr class="memdesc:gacf71e9abe57bcfd18b4b003421e306aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x3 matrix. <a href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">More...</a><br /></td></tr>
+<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
+<tr class="memdesc:ga6edbf193ad6c4309e31262165f2655e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 3x4 matrix. <a href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">More...</a><br /></td></tr>
+<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
+<tr class="memdesc:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x4 matrix. <a href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">More...</a><br /></td></tr>
+<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
+<tr class="memdesc:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x2 matrix. <a href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">More...</a><br /></td></tr>
+<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
+<tr class="memdesc:ga899a376888652fe3c03718641812bb27"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x3 matrix. <a href="a00167.html#ga899a376888652fe3c03718641812bb27">More...</a><br /></td></tr>
+<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
+<tr class="memdesc:gab8068521c0ad6990373d27d87d333084"><td class="mdescLeft">&#160;</td><td class="mdescRight">High-precision unsigned integer 4x4 matrix. <a href="a00167.html#gab8068521c0ad6990373d27d87d333084">More...</a><br /></td></tr>
+<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
+<tr class="memdesc:gaabe04f9948d4a213bb1c20137de03e01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x2 matrix. <a href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">More...</a><br /></td></tr>
+<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
+<tr class="memdesc:gaa4732a240522ad9bc28144fda2fc14ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x2 matrix. <a href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">More...</a><br /></td></tr>
+<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
+<tr class="memdesc:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x3 matrix. <a href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">More...</a><br /></td></tr>
+<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
+<tr class="memdesc:ga9d8faafdca42583d67e792dd038fc668"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 2x4 matrix. <a href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">More...</a><br /></td></tr>
+<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
+<tr class="memdesc:ga038f68437155ffa3c2583a15264a8195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x3 matrix. <a href="a00167.html#ga038f68437155ffa3c2583a15264a8195">More...</a><br /></td></tr>
+<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
+<tr class="memdesc:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x2 matrix. <a href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">More...</a><br /></td></tr>
+<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
+<tr class="memdesc:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x3 matrix. <a href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">More...</a><br /></td></tr>
+<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
+<tr class="memdesc:ga6e9ce23496d8b08dfc302d4039694b58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 3x4 matrix. <a href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">More...</a><br /></td></tr>
+<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
+<tr class="memdesc:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x4 matrix. <a href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">More...</a><br /></td></tr>
+<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
+<tr class="memdesc:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x2 matrix. <a href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">More...</a><br /></td></tr>
+<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
+<tr class="memdesc:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x3 matrix. <a href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">More...</a><br /></td></tr>
+<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
+<tr class="memdesc:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed integer 4x4 matrix. <a href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">More...</a><br /></td></tr>
+<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
+<tr class="memdesc:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x2 matrix. <a href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">More...</a><br /></td></tr>
+<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
+<tr class="memdesc:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x2 matrix. <a href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">More...</a><br /></td></tr>
+<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
+<tr class="memdesc:ga3f8fb92b62e31528886cc728d3404ecc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x3 matrix. <a href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">More...</a><br /></td></tr>
+<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
+<tr class="memdesc:ga892b53e26d36763f380b08a5768dee6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 2x4 matrix. <a href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">More...</a><br /></td></tr>
+<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
+<tr class="memdesc:ga148f3a81d15a570b9460158e6964f41c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x3 matrix. <a href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">More...</a><br /></td></tr>
+<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
+<tr class="memdesc:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x2 matrix. <a href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">More...</a><br /></td></tr>
+<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
+<tr class="memdesc:gab3d5c6aaeb5815f8f080305888f6828f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x3 matrix. <a href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">More...</a><br /></td></tr>
+<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
+<tr class="memdesc:ga3d913d70c629aa7ad504739286328f1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 3x4 matrix. <a href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">More...</a><br /></td></tr>
+<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
+<tr class="memdesc:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x4 matrix. <a href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">More...</a><br /></td></tr>
+<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
+<tr class="memdesc:ga3fdfce509d30bdd7778b8b156cb968df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x2 matrix. <a href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">More...</a><br /></td></tr>
+<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
+<tr class="memdesc:ga6a9945878f99294cfde40c6c3a867d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x3 matrix. <a href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">More...</a><br /></td></tr>
+<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
+<tr class="memdesc:ga330140b22a9449caab308f2c69bf4c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision signed integer 4x4 matrix. <a href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">More...</a><br /></td></tr>
+<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
+<tr class="memdesc:ga1406406e396b56bde3c7c0722f657064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga1406406e396b56bde3c7c0722f657064">More...</a><br /></td></tr>
+<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
+<tr class="memdesc:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">More...</a><br /></td></tr>
+<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
+<tr class="memdesc:gaa86bd9dc8463b46a46ee944948111676"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x3 matrix. <a href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">More...</a><br /></td></tr>
+<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
+<tr class="memdesc:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 2x4 matrix. <a href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">More...</a><br /></td></tr>
+<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
+<tr class="memdesc:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x3 matrix. <a href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">More...</a><br /></td></tr>
+<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
+<tr class="memdesc:gad73943020bb49a072317ecfc52d587f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x2 matrix. <a href="a00167.html#gad73943020bb49a072317ecfc52d587f0">More...</a><br /></td></tr>
+<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
+<tr class="memdesc:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x3 matrix. <a href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">More...</a><br /></td></tr>
+<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
+<tr class="memdesc:ga2dce1c00ed50fd09fe349de3713d96db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 3x4 matrix. <a href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">More...</a><br /></td></tr>
+<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
+<tr class="memdesc:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x4 matrix. <a href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">More...</a><br /></td></tr>
+<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
+<tr class="memdesc:ga76cab31d492ea214c693ab9132b4de95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x2 matrix. <a href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">More...</a><br /></td></tr>
+<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
+<tr class="memdesc:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x3 matrix. <a href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">More...</a><br /></td></tr>
+<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
+<tr class="memdesc:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-precision unsigned integer 4x4 matrix. <a href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">More...</a><br /></td></tr>
+<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
+<tr class="memdesc:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x2 matrix. <a href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">More...</a><br /></td></tr>
+<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
+<tr class="memdesc:gabc572d47b60f7e595d7aad945f5d13a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x2 matrix. <a href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">More...</a><br /></td></tr>
+<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
+<tr class="memdesc:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x3 matrix. <a href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">More...</a><br /></td></tr>
+<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
+<tr class="memdesc:gaa08e27efc514088315ccbaf818f01880"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 2x4 matrix. <a href="a00167.html#gaa08e27efc514088315ccbaf818f01880">More...</a><br /></td></tr>
+<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
+<tr class="memdesc:gac2b0985b576fe0eba47227499aed2b3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x3 matrix. <a href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">More...</a><br /></td></tr>
+<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
+<tr class="memdesc:ga1a61c706b31aa60fd7012b2b27765983"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x2 matrix. <a href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">More...</a><br /></td></tr>
+<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
+<tr class="memdesc:ga05064e28b911be1af0503ddf6e6204a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x3 matrix. <a href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">More...</a><br /></td></tr>
+<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
+<tr class="memdesc:ga8e0f797a57fec255f0eec7da1511bc38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 3x4 matrix. <a href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">More...</a><br /></td></tr>
+<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
+<tr class="memdesc:ga551ad2e4e0304c67451ffbadeef0d615"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x4 matrix. <a href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">More...</a><br /></td></tr>
+<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
+<tr class="memdesc:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x2 matrix. <a href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">More...</a><br /></td></tr>
+<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
+<tr class="memdesc:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x3 matrix. <a href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">More...</a><br /></td></tr>
+<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
+<tr class="memdesc:ga655bfcca624f422aff308dcc99688ce8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision signed integer 4x4 matrix. <a href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">More...</a><br /></td></tr>
+<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
+<tr class="memdesc:ga7322b97f1be10c83290ab57ef784d493"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">More...</a><br /></td></tr>
+<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
+<tr class="memdesc:ga0ffed083b64e4f764db0f446d2c49163"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x2 matrix. <a href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">More...</a><br /></td></tr>
+<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
+<tr class="memdesc:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x3 matrix. <a href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">More...</a><br /></td></tr>
+<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
+<tr class="memdesc:gac4abd549f2e521c7f40f53b6235c450e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 2x4 matrix. <a href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">More...</a><br /></td></tr>
+<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
+<tr class="memdesc:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x3 matrix. <a href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">More...</a><br /></td></tr>
+<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
+<tr class="memdesc:ga3fb358a947f8ceaefddd75bce22cd947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x2 matrix. <a href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">More...</a><br /></td></tr>
+<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
+<tr class="memdesc:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x3 matrix. <a href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">More...</a><br /></td></tr>
+<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
+<tr class="memdesc:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 3x4 matrix. <a href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">More...</a><br /></td></tr>
+<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
+<tr class="memdesc:gac23667a99ae1ec649b5e55cd5a05b833"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x4 matrix. <a href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">More...</a><br /></td></tr>
+<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
+<tr class="memdesc:gac8d1db85d62244fd90d240227c7f51ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x2 matrix. <a href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">More...</a><br /></td></tr>
+<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
+<tr class="memdesc:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x3 matrix. <a href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">More...</a><br /></td></tr>
+<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
+<tr class="memdesc:ga24716579cf155f4e042542808f83978c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium-precision unsigned integer 4x4 matrix. <a href="a00167.html#ga24716579cf155f4e042542808f83978c">More...</a><br /></td></tr>
+<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
+<tr class="memdesc:ga4cae85566f900debf930c41944b64691"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x2 matrix. <a href="a00167.html#ga4cae85566f900debf930c41944b64691">More...</a><br /></td></tr>
+<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
+<tr class="memdesc:gabf8acdd33ce8951051edbca5200898aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x2 matrix. <a href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">More...</a><br /></td></tr>
+<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
+<tr class="memdesc:ga1870da7578d5022b973a83155d386ab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x3 matrix. <a href="a00167.html#ga1870da7578d5022b973a83155d386ab3">More...</a><br /></td></tr>
+<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
+<tr class="memdesc:ga57936a3998e992370e59a223e0ee4fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 2x4 matrix. <a href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">More...</a><br /></td></tr>
+<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
+<tr class="memdesc:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x3 matrix. <a href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">More...</a><br /></td></tr>
+<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
+<tr class="memdesc:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x2 matrix. <a href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">More...</a><br /></td></tr>
+<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
+<tr class="memdesc:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x3 matrix. <a href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">More...</a><br /></td></tr>
+<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
+<tr class="memdesc:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 3x4 matrix. <a href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">More...</a><br /></td></tr>
+<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
+<tr class="memdesc:ga38bc7bb6494e344185df596deeb4544c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x4 matrix. <a href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">More...</a><br /></td></tr>
+<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
+<tr class="memdesc:ga70fa2d05896aa83cbc8c07672a429b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x2 matrix. <a href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">More...</a><br /></td></tr>
+<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
+<tr class="memdesc:ga87581417945411f75cb31dd6ca1dba98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x3 matrix. <a href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">More...</a><br /></td></tr>
+<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
+<tr class="memdesc:gaf72e6d399c42985db6872c50f53d7eb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer 4x4 matrix. <a href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">More...</a><br /></td></tr>
+<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p>&lt;glm/gtc/color.hpp&gt; need to be included to use these functionalities. </p>
+<p>Defines a number of matrices with integer types. </p>
+<p>&lt;<a class="el" href="a00065.html" title="GLM_GTC_matrix_integer ">glm/gtc/matrix_integer.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gaa9f8144beebdefd85e2a9ac480e7608a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;int, highp&gt; highp_imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00036">36</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac455e55e7cb32e31396a9d4613da046a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;int, highp&gt; highp_imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00048">48</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5f5f1e6dc06b72216463a425b2f7613e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;int, highp&gt; highp_imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00052">52</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga73b855cc40e5d8202b7ab38461326d65"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;int, highp&gt; highp_imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00056">56</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4efd6470c0edf9704d2244fc92dbc2a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;int, highp&gt; highp_imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00040">40</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0413bf87605b9247be2533c439127a1c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;int, highp&gt; highp_imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00060">60</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacce460d54216438bb577bf8c9d68299c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;int, highp&gt; highp_imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00064">64</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad4fea24b4100e21ed7742c91e5458d49"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;int, highp&gt; highp_imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00068">68</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga159ce04cc638ff4db755542cd8f758cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;int, highp&gt; highp_imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00044">44</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7d43dd8332000f7f19379efa1b303599"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;int, highp&gt; highp_imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00072">72</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c66b9b7c10a6017a58a03489c8d4c73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;int, highp&gt; highp_imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00076">76</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae53db595d36f49a299e180302795e3c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;int, highp&gt; highp_imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00080">80</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae7b96c808a36fbe87f41af1c77b7941c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;uint, highp&gt; highp_umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00185">185</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4860b4b01430bdb70643808c8d3bf5cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;uint, highp&gt; highp_umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00197">197</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac351446661e5a8168473ff7b3b5ac3b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;uint, highp&gt; highp_umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00201">201</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga815eb9fdf70edc45687cbcda07e97213"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;uint, highp&gt; highp_umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00205">205</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa60b19d7cadbaa56bed1e6e0047af147"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;uint, highp&gt; highp_umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00189">189</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab1d8e627b6a0b21c9b5e599a89132d8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;uint, highp&gt; highp_umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00209">209</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacf71e9abe57bcfd18b4b003421e306aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;uint, highp&gt; highp_umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00213">213</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6edbf193ad6c4309e31262165f2655e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;uint, highp&gt; highp_umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00217">217</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8368cb49cb0bd5ac682a71d1eccc9a8c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;uint, highp&gt; highp_umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00193">193</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaba8a59eac3e5c0b3aaa9b35c1f10292"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;uint, highp&gt; highp_umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00221">221</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga899a376888652fe3c03718641812bb27"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;uint, highp&gt; highp_umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00225">225</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab8068521c0ad6990373d27d87d333084"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;uint, highp&gt; highp_umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00229">229</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2 imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00361">361</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2x2 imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00373">373</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2x3 imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00377">377</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2x4 imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00381">381</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3 imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00365">365</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3x2 imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00385">385</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3x3 imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00389">389</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3x4 imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00393">393</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4 imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00369">369</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4x2 imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00397">397</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4x3 imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00401">401</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4x4 imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00405">405</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3c035fec7db0d671ec8f9f1f0d05bed0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;int, lowp&gt; lowp_imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00135">135</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5bfe58853451fbc1f1ef6ce1f93c5e31"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;int, lowp&gt; lowp_imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00148">148</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f8fb92b62e31528886cc728d3404ecc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;int, lowp&gt; lowp_imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00152">152</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga892b53e26d36763f380b08a5768dee6b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;int, lowp&gt; lowp_imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00156">156</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga148f3a81d15a570b9460158e6964f41c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;int, lowp&gt; lowp_imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00139">139</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7655dfee0d726e80d7a3b72f46d5fd35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;int, lowp&gt; lowp_imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00160">160</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab3d5c6aaeb5815f8f080305888f6828f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;int, lowp&gt; lowp_imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00164">164</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3d913d70c629aa7ad504739286328f1b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;int, lowp&gt; lowp_imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00168">168</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad3d7b23bdb4ed9b7d53c9db792db9bb4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;int, lowp&gt; lowp_imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00143">143</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3fdfce509d30bdd7778b8b156cb968df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;int, lowp&gt; lowp_imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00172">172</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6a9945878f99294cfde40c6c3a867d69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;int, lowp&gt; lowp_imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00176">176</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga330140b22a9449caab308f2c69bf4c80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;int, lowp&gt; lowp_imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00180">180</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1406406e396b56bde3c7c0722f657064"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;uint, lowp&gt; lowp_umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00284">284</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1f0cea730f6c13b16e511bd2d63507a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;uint, lowp&gt; lowp_umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00297">297</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa86bd9dc8463b46a46ee944948111676"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;uint, lowp&gt; lowp_umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00301">301</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b6c64600bad79d735fa6bec843b2bb4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;uint, lowp&gt; lowp_umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00305">305</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7fc1f795f2abd0020c7b5204f4c83033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;uint, lowp&gt; lowp_umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00288">288</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad73943020bb49a072317ecfc52d587f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;uint, lowp&gt; lowp_umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00309">309</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga402d169fc3cdca5f3ea47a358a7b7c67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;uint, lowp&gt; lowp_umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00313">313</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2dce1c00ed50fd09fe349de3713d96db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;uint, lowp&gt; lowp_umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00317">317</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafe68c1cf2b379a9a11d1a11c9c2f8884"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;uint, lowp&gt; lowp_umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00292">292</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga76cab31d492ea214c693ab9132b4de95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;uint, lowp&gt; lowp_umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00321">321</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae3ca9e28a9d2e5fce5e28593d27e370d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;uint, lowp&gt; lowp_umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00325">325</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga742be484e56e08ef637f8ec4ab7c8bb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;uint, lowp&gt; lowp_umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00329">329</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f8e55e14a6fc61850f8c0df9b4ff655"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;int, mediump&gt; mediump_imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00085">85</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabc572d47b60f7e595d7aad945f5d13a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;int, mediump&gt; mediump_imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00098">98</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5b7e9af5024e1a164db6419f67ecfc9a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;int, mediump&gt; mediump_imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00102">102</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa08e27efc514088315ccbaf818f01880"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;int, mediump&gt; mediump_imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00106">106</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac2b0985b576fe0eba47227499aed2b3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;int, mediump&gt; mediump_imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00089">89</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1a61c706b31aa60fd7012b2b27765983"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;int, mediump&gt; mediump_imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00110">110</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga05064e28b911be1af0503ddf6e6204a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;int, mediump&gt; mediump_imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00114">114</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8e0f797a57fec255f0eec7da1511bc38"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;int, mediump&gt; mediump_imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00118">118</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga551ad2e4e0304c67451ffbadeef0d615"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;int, mediump&gt; mediump_imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00093">93</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1582c5dc83e49a7e53bb0b94bef9de54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;int, mediump&gt; mediump_imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00122">122</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1526c62951b04f5cd73f541f7b3b7d8d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;int, mediump&gt; mediump_imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00126">126</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga655bfcca624f422aff308dcc99688ce8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;int, mediump&gt; mediump_imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00130">130</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7322b97f1be10c83290ab57ef784d493"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;uint, mediump&gt; mediump_umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00234">234</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0ffed083b64e4f764db0f446d2c49163"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2&lt;uint, mediump&gt; mediump_umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00247">247</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7ecc585b71766cfa96bd54a595bea1fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt;uint, mediump&gt; mediump_umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00251">251</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac4abd549f2e521c7f40f53b6235c450e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt;uint, mediump&gt; mediump_umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00255">255</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga93961d3aac6efa36dc3f9cfa7e9056e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;uint, mediump&gt; mediump_umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00238">238</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3fb358a947f8ceaefddd75bce22cd947"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt;uint, mediump&gt; mediump_umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00259">259</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad4809dbfb1bfcf222d7b34a97a8eafe5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt;uint, mediump&gt; mediump_umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00263">263</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5a9d62e44668ca2222f0362f9c99d9cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt;uint, mediump&gt; mediump_umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00267">267</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac23667a99ae1ec649b5e55cd5a05b833"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;uint, mediump&gt; mediump_umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00242">242</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac8d1db85d62244fd90d240227c7f51ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt;uint, mediump&gt; mediump_umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00271">271</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7d332d462f2c1ad5a65dc580d3d1aa39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt;uint, mediump&gt; mediump_umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00275">275</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga24716579cf155f4e042542808f83978c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt;uint, mediump&gt; mediump_umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00279">279</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2 umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00438">438</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2x2 umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00450">450</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2x3 umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00454">454</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2x4 umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00458">458</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3 umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00442">442</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3x2 umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00462">462</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3x3 umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00466">466</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3x4 umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00470">470</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4 umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00446">446</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4x2 umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00474">474</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4x3 umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00478">478</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4x4 umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00065_source.html#l00482">482</a> of file <a class="el" href="a00065_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00168.html b/3rdparty/glm/doc/api/a00168.html
index ddf13664907..e8608f22044 100644
--- a/3rdparty/glm/doc/api/a00168.html
+++ b/3rdparty/glm/doc/api/a00168.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_constants</title>
+<title>0.9.9 API documenation: GLM_GTC_matrix_inverse</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,635 +33,132 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_constants<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_inverse<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines additional matrix inverting functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a> ()</td></tr>
-<tr class="separator:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a> ()</td></tr>
-<tr class="separator:gacb41049b8d22c8aa90e362b96c524feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">euler</a> ()</td></tr>
-<tr class="separator:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">four_over_pi</a> ()</td></tr>
-<tr class="separator:gafb68d06c9c9dc234210ce91d6707faac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">golden_ratio</a> ()</td></tr>
-<tr class="separator:gafd53093ef2d756333865d774bea3cdf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">half_pi</a> ()</td></tr>
-<tr class="separator:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga650774609debe4a90bcac449b574de2c">ln_ln_two</a> ()</td></tr>
-<tr class="separator:ga650774609debe4a90bcac449b574de2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">ln_ten</a> ()</td></tr>
-<tr class="separator:ga48addf0cb0980277d208a71a1c59c073"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">ln_two</a> ()</td></tr>
-<tr class="separator:ga22fae798430edc3022766af4fd83e8a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">one</a> ()</td></tr>
-<tr class="separator:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">one_over_pi</a> ()</td></tr>
-<tr class="separator:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">one_over_root_two</a> ()</td></tr>
-<tr class="separator:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">one_over_two_pi</a> ()</td></tr>
-<tr class="separator:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a> ()</td></tr>
-<tr class="separator:gae671930537266a9a650ccb4b88757692"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">quarter_pi</a> ()</td></tr>
-<tr class="separator:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">root_five</a> ()</td></tr>
-<tr class="separator:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">root_half_pi</a> ()</td></tr>
-<tr class="separator:gaec5af85e2148c118aad7e797430fdeb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">root_ln_four</a> ()</td></tr>
-<tr class="separator:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">root_pi</a> ()</td></tr>
-<tr class="separator:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab3183635ac615473e2f95852f491be83">root_three</a> ()</td></tr>
-<tr class="separator:gab3183635ac615473e2f95852f491be83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">root_two</a> ()</td></tr>
-<tr class="separator:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae991b4d39c57b57990054eec3677597c">root_two_pi</a> ()</td></tr>
-<tr class="separator:gae991b4d39c57b57990054eec3677597c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gabf280496105e0ad070287417f840ebd8">third</a> ()</td></tr>
-<tr class="separator:gabf280496105e0ad070287417f840ebd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">three_over_two_pi</a> ()</td></tr>
-<tr class="separator:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga85729d38c47351686e8659f80447a7ea">two_over_pi</a> ()</td></tr>
-<tr class="separator:ga85729d38c47351686e8659f80447a7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">two_over_root_pi</a> ()</td></tr>
-<tr class="separator:ga767e539c20585bf60aa63595b0f0b259"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">two_pi</a> ()</td></tr>
-<tr class="separator:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">two_thirds</a> ()</td></tr>
-<tr class="separator:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">zero</a> ()</td></tr>
-<tr class="separator:ga5cc97dd01d37fc199264ff6030578435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &amp;m)</td></tr>
+<tr class="memdesc:gae0fcc5fc8783291f9702272de428fa0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast matrix inverse for affine matrix. <a href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">More...</a><br /></td></tr>
+<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &amp;m)</td></tr>
+<tr class="memdesc:gab213cd0e3ead5f316d583f99d6312008"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the inverse transpose of a matrix. <a href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">More...</a><br /></td></tr>
+<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Provide a list of constants and precomputed useful values. </p>
-<p>&lt;<a class="el" href="a00018.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/constants.hpp</a>&gt; need to be included to use these features. </p>
+<p>Defines additional matrix inverting functions. </p>
+<p>&lt;<a class="el" href="a00067.html" title="GLM_GTC_matrix_inverse ">glm/gtc/matrix_inverse.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab83fb6de0f05d6c0d11bdf0479f8319e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::e </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return e constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacb41049b8d22c8aa90e362b96c524feb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::epsilon </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the epsilon constant for floating point types. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6f14b46653b7ead1edcbd0fc6c9c5289"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::euler </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return Euler's constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafb68d06c9c9dc234210ce91d6707faac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::four_over_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 4 / pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafd53093ef2d756333865d774bea3cdf9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::golden_ratio </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the golden ratio constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7f7a1050729f3b03b1873a06ba4a472f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::half_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi / 2. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga650774609debe4a90bcac449b574de2c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ln_ln_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return ln(ln(2)). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga48addf0cb0980277d208a71a1c59c073"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ln_ten </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return ln(10). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga22fae798430edc3022766af4fd83e8a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ln_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return ln(2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8186ec2c330457d41d9686c47cd3b2d1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9ba09a027db6d4f4e259b01cf5d6c178"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one_over_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac1a9b3248357fd9e9b740bed90e0b1b7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one_over_root_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / sqrt(2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac1e7dcb42b09c66df7a299c0f007b27d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one_over_two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / (pi * 2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae671930537266a9a650ccb4b88757692"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the pi constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0148d757b4bfda4d86251b8d1ea1dad3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::quarter_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi / 4. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gace2b8dfed1ab9fabbb67dde08e7e5b58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_five </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(5). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaec5af85e2148c118aad7e797430fdeb0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_half_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(pi / 2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9cae3fad9314e34c1d3aab71fcdef05f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_ln_four </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(ln(4)). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1cfeb345f34f72697d14f4db8d5d4c6c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return square root of pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3183635ac615473e2f95852f491be83"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_three </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(3). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab91b7799f88f9f2be33e385dec11b9c2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae991b4d39c57b57990054eec3677597c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(2 * pi). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabf280496105e0ad070287417f840ebd8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::third </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9f3732bc75c0d0892f72e21cfe4f938b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::three_over_two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi / 2 * 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga85729d38c47351686e8659f80447a7ea"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_over_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 2 / pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga767e539c20585bf60aa63595b0f0b259"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_over_root_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 2 / sqrt(pi). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga00c3f7bc750ff62bbf47c8913a53daa5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi * 2. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadde7f2efce3b14c8b26944fbafed4a10"></a>
+<a class="anchor" id="gae0fcc5fc8783291f9702272de428fa0e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_thirds </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::affineInverse </td>
<td>(</td>
- <td class="paramname"></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return 2 / 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+<p>Fast matrix inverse for affine matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix to invert. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5cc97dd01d37fc199264ff6030578435"></a>
+<a class="anchor" id="gab213cd0e3ead5f316d583f99d6312008"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::zero </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::inverseTranspose </td>
<td>(</td>
- <td class="paramname"></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return 0. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+<p>Compute the inverse transpose of a matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix to invert transpose. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00169.html b/3rdparty/glm/doc/api/a00169.html
index 7a39e4a3aeb..8bdac1c266e 100644
--- a/3rdparty/glm/doc/api/a00169.html
+++ b/3rdparty/glm/doc/api/a00169.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_epsilon</title>
+<title>0.9.9 API documenation: GLM_GTC_matrix_transform</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,62 +33,1374 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_epsilon<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_transform<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines functions that generate common transformation matrices.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, T const &amp;epsilon)</td></tr>
-<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
-<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, typename genType::value_type const &amp;epsilon)</td></tr>
-<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)</td></tr>
-<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gada6deb989d4b553fe0f7e3279f3afae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a frustum matrix with default handedness. <a href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">More...</a><br /></td></tr>
+<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">frustumLH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a left handed frustum matrix. <a href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">More...</a><br /></td></tr>
+<tr class="separator:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">frustumRH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="memdesc:gad0e184273bdacbe769e5cd81069e48ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a right handed frustum matrix. <a href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">More...</a><br /></td></tr>
+<tr class="separator:gad0e184273bdacbe769e5cd81069e48ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. <a href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">More...</a><br /></td></tr>
+<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">infinitePerspectiveLH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga47af534da2b28effa4c7945ec82ccd9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. <a href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">More...</a><br /></td></tr>
+<tr class="separator:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79575023763df88dff1bf8255a42d0be">infinitePerspectiveRH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:ga79575023763df88dff1bf8255a42d0be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. <a href="a00169.html#ga79575023763df88dff1bf8255a42d0be">More...</a><br /></td></tr>
+<tr class="separator:ga79575023763df88dff1bf8255a42d0be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
+<tr class="memdesc:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a look at view matrix based on the default handedness. <a href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">More...</a><br /></td></tr>
+<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
+<tr class="memdesc:gacd0c077ec7b58a575855e29cb5fb586d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a left handed look at view matrix. <a href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">More...</a><br /></td></tr>
+<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
+<tr class="memdesc:ga2876d9313334980b94292d2ec169088e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a right handed look at view matrix. <a href="a00169.html#ga2876d9313334980b94292d2ec169088e">More...</a><br /></td></tr>
+<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga65280251de6e38580110a0577a43d8f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using the default handedness. <a href="a00169.html#ga65280251de6e38580110a0577a43d8f8">More...</a><br /></td></tr>
+<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
+<tr class="memdesc:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for projecting two-dimensional coordinates onto the screen. <a href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">More...</a><br /></td></tr>
+<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">orthoLH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:ga71503df1e691b12cc2d45e64fd0628fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using left-handedness. <a href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">More...</a><br /></td></tr>
+<tr class="separator:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">orthoRH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="memdesc:gada0aaaee76f1fd3c272698c8eca735a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for an orthographic parallel viewing volume, using right-handedness. <a href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">More...</a><br /></td></tr>
+<tr class="separator:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:gac3613dcb6c6916465ad5b7ad5a786175"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symetric perspective-view frustum based on the default handedness. <a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">More...</a><br /></td></tr>
+<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gae9146e2c550fc8646299e4b900238145"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a perspective projection matrix based on a field of view and the default handedness. <a href="a00169.html#gae9146e2c550fc8646299e4b900238145">More...</a><br /></td></tr>
+<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a left handed perspective projection matrix based on a field of view. <a href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">More...</a><br /></td></tr>
+<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="memdesc:ga07cd8df791bf90dcb782645fe0b21261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a right handed perspective projection matrix based on a field of view. <a href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">More...</a><br /></td></tr>
+<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga34048da27c559f1ac8e9550d169dd6f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a left handed, symetric perspective-view frustum. <a href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">More...</a><br /></td></tr>
+<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="memdesc:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a right handed, symetric perspective-view frustum. <a href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">More...</a><br /></td></tr>
+<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, typename U &gt; </td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2&lt; T, P &gt; const &amp;center, tvec2&lt; T, P &gt; const &amp;delta, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
+<tr class="memdesc:ga9026c77505b99990f68826f27c267dc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a picking region. <a href="a00169.html#ga9026c77505b99990f68826f27c267dc5">More...</a><br /></td></tr>
+<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3&lt; T, P &gt; const &amp;obj, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
+<tr class="memdesc:gad743556abd138264d4f06f4ca27f1d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. <a href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">More...</a><br /></td></tr>
+<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:ga161b1df124348f232d994ba7958e4815"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 4 * 4 matrix created from an axis vector and an angle. <a href="a00169.html#ga161b1df124348f232d994ba7958e4815">More...</a><br /></td></tr>
+<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga8f062fcc07e2445500793f2803afebb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a scale 4 * 4 matrix created from 3 scalars. <a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">More...</a><br /></td></tr>
+<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a translation 4 * 4 matrix created from a vector of 3 components. <a href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">More...</a><br /></td></tr>
+<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="memdesc:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. <a href="a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194">More...</a><br /></td></tr>
+<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
+<tr class="memdesc:gaa50fce7f50b5d5da881ed30f5532a921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. <a href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">More...</a><br /></td></tr>
+<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3&lt; T, P &gt; const &amp;win, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
+<tr class="memdesc:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. <a href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">More...</a><br /></td></tr>
+<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Comparison functions for a user defined epsilon values. </p>
-<p>&lt;<a class="el" href="a00020.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/epsilon.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Defines functions that generate common transformation matrices. </p>
+<p>The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.</p>
+<p>&lt;<a class="el" href="a00071.html" title="GLM_GTC_matrix_transform ">glm/gtc/matrix_transform.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaca9443f217dc36587624247245522331"></a>
+<a class="anchor" id="gada6deb989d4b553fe0f7e3279f3afae1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::frustum </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a frustum matrix with default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">near</td><td></td></tr>
+ <tr><td class="paramname">far</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga75b1c1d0ee1f80c1e873605adeb1838c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::frustumLH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a left handed frustum matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">near</td><td></td></tr>
+ <tr><td class="paramname">far</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad0e184273bdacbe769e5cd81069e48ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::frustumRH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a right handed frustum matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">near</td><td></td></tr>
+ <tr><td class="paramname">far</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga79f704ad91a5f0d68abd88c66c8186e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::infinitePerspective </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga47af534da2b28effa4c7945ec82ccd9d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::infinitePerspectiveLH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga79575023763df88dff1bf8255a42d0be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::infinitePerspectiveRH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf8eef81da1ad09f6a8920101c01eaae4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::lookAt </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>up</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a look at view matrix based on the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
+ <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
+ <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacd0c077ec7b58a575855e29cb5fb586d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::lookAtLH </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>up</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a left handed look at view matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
+ <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
+ <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2876d9313334980b94292d2ec169088e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::lookAtRH </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>up</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a right handed look at view matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
+ <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
+ <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga65280251de6e38580110a0577a43d8f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::ortho </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>zNear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>zFar</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for an orthographic parallel viewing volume, using the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">zNear</td><td></td></tr>
+ <tr><td class="paramname">zFar</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga45b1b64f99255c07119b4f1aaed04dd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::ortho </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for projecting two-dimensional coordinates onto the screen. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; zNear, T const &amp; zFar) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga71503df1e691b12cc2d45e64fd0628fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::orthoLH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>zNear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>zFar</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for an orthographic parallel viewing volume, using left-handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">zNear</td><td></td></tr>
+ <tr><td class="paramname">zFar</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada0aaaee76f1fd3c272698c8eca735a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::orthoRH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>zNear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>zFar</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for an orthographic parallel viewing volume, using right-handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">zNear</td><td></td></tr>
+ <tr><td class="paramname">zFar</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac3613dcb6c6916465ad5b7ad5a786175"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspective </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a symetric perspective-view frustum based on the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae9146e2c550fc8646299e4b900238145"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveFov </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fov</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a perspective projection matrix based on a field of view and the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
+ <tr><td class="paramname">width</td><td></td></tr>
+ <tr><td class="paramname">height</td><td></td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae705a2f19c3ef5ef880bd6c92759cf2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveFovLH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fov</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a left handed perspective projection matrix based on a field of view. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
+ <tr><td class="paramname">width</td><td></td></tr>
+ <tr><td class="paramname">height</td><td></td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga07cd8df791bf90dcb782645fe0b21261"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveFovRH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fov</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a right handed perspective projection matrix based on a field of view. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
+ <tr><td class="paramname">width</td><td></td></tr>
+ <tr><td class="paramname">height</td><td></td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga34048da27c559f1ac8e9550d169dd6f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveLH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a left handed, symetric perspective-view frustum. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveRH </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>far</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a right handed, symetric perspective-view frustum. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9026c77505b99990f68826f27c267dc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::pickMatrix </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>delta</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>viewport</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Define a picking region. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">center</td><td></td></tr>
+ <tr><td class="paramname">delta</td><td></td></tr>
+ <tr><td class="paramname">viewport</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad743556abd138264d4f06f4ca27f1d7e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::epsilonEqual </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::project </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>obj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>proj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
+ <td class="paramtype">tvec4&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>viewport</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -92,33 +1410,49 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| &lt; epsilon. </p>
-<p>True if this expression is satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">obj</td><td>Specify the object coordinates. </td></tr>
+ <tr><td class="paramname">model</td><td>Specifies the current modelview matrix </td></tr>
+ <tr><td class="paramname">proj</td><td>Specifies the current projection matrix </td></tr>
+ <tr><td class="paramname">viewport</td><td>Specifies the current viewport </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Return the computed window coordinates. </dd></dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa7f227999ca09e7ca994e8b35aba47bb"></a>
+<a class="anchor" id="ga161b1df124348f232d994ba7958e4815"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::epsilonEqual </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rotate </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -128,33 +1462,90 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| &lt; epsilon. </p>
-<p>True if this expression is satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
+ <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians. </td></tr>
+ <tr><td class="paramname">axis</td><td>Rotation axis, recommended to be normalized. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- rotate(tmat4x4&lt;T, P&gt; const &amp; m, T angle, T x, T y, T z) </dd>
+<dd>
+- rotate(T angle, tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
</div>
</div>
-<a class="anchor" id="ga14e2888a304654ade8a3996024e2739c"></a>
+<a class="anchor" id="ga8f062fcc07e2445500793f2803afebb0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::scale </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this scale matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Ratio of scaling for each axis. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- scale(tmat4x4&lt;T, P&gt; const &amp; m, T x, T y, T z) </dd>
+<dd>
+- scale(tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaee134ab77c6c5548a6ebf4e8e476c6ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::translate </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -164,33 +1555,168 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| &lt; epsilon. </p>
-<p>True if this expression is not satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Builds a translation 4 * 4 matrix created from a vector of 3 components. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00041.html">glm/glm.hpp</a>&gt;</span></div>
+<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00071.html">glm/gtc/matrix_transform.hpp</a>&gt;</span></div>
+<div class="line">...</div>
+<div class="line">glm::mat4 m = <a class="code" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a>(<a class="code" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a>(1.0f), <a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a>(1.0f));</div>
+<div class="line"><span class="comment">// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f</span></div>
+<div class="line"><span class="comment">// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f</span></div>
+<div class="line"><span class="comment">// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f</span></div>
+<div class="line"><span class="comment">// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f</span></div>
+</div><!-- fragment --> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- translate(tmat4x4&lt;T, P&gt; const &amp; m, T x, T y, T z) </dd>
+<dd>
+- translate(tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
</div>
</div>
-<a class="anchor" id="ga50a92103fb0cbd796908e1bf20c79aaf"></a>
+<a class="anchor" id="gaed64bd81f5ecdab52fecbdf7f6b58194"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::epsilonNotEqual </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::tweakedInfinitePerspective </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa50fce7f50b5d5da881ed30f5532a921"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::tweakedInfinitePerspective </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>ep</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">ep</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga82a558de3ce42cbeed0f6ec292a4e1b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::unProject </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>win</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>proj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
+ <td class="paramtype">tvec4&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>viewport</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -200,9 +1726,25 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| &gt;= epsilon. </p>
-<p>True if this expression is not satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">win</td><td>Specify the window coordinates to be mapped. </td></tr>
+ <tr><td class="paramname">model</td><td>Specifies the modelview matrix </td></tr>
+ <tr><td class="paramname">proj</td><td>Specifies the projection matrix </td></tr>
+ <tr><td class="paramname">viewport</td><td>Specifies the viewport </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns the computed object coordinates. </dd></dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00170.html b/3rdparty/glm/doc/api/a00170.html
index d24fc5e8c10..cc438965971 100644
--- a/3rdparty/glm/doc/api/a00170.html
+++ b/3rdparty/glm/doc/api/a00170.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_integer</title>
+<title>0.9.9 API documenation: GLM_GTC_noise</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,115 +33,110 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_integer<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_noise<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> &lt;<a class="el" href="a00074.html" title="GLM_GTC_noise ">glm/gtc/noise.hpp</a>&gt; need to be included to use these functionalities.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
-<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
-<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType&lt; T, P &gt; const &amp;x, T y)</td></tr>
-<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
+<tr class="memdesc:ga14e5975486b2b36e747861d3c65b16c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Classic perlin noise. <a href="a00170.html#ga14e5975486b2b36e747861d3c65b16c1">More...</a><br /></td></tr>
+<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)</td></tr>
+<tr class="memdesc:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Periodic perlin noise. <a href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">More...</a><br /></td></tr>
+<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
+<tr class="memdesc:ga05f5ab240c9a3fdeee353636e464c285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplex noise. <a href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">More...</a><br /></td></tr>
+<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p>&lt;<a class="el" href="a00044.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/integer.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> &lt;<a class="el" href="a00074.html" title="GLM_GTC_noise ">glm/gtc/noise.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9bd682e74bfacb005c735305207ec417"></a>
+<a class="anchor" id="ga14e5975486b2b36e747861d3c65b16c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::log2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
<td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the log2 of x for integer values. </p>
-<p>Can be reliably using to compute mipmap count from the texture size. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga75c6fd2a143fc44e5f7b871abad539e0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::mod </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modulus. </p>
-<p>Returns x % y for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genIUType</td><td>Integer-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Classic perlin noise. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac76ae7d82ff22526bcf6d6a1b51af6c3"></a>
+<a class="anchor" id="ga7e103ffffacb322fe2d4863c372ae2fd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt; T, P &gt; mod </td>
+ <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>rep</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -145,61 +146,27 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Modulus. </p>
-<p>Returns x % y for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
- <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Periodic perlin noise. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf5ae5330f6b30b4a35fb95f9a73d6134"></a>
+<a class="anchor" id="ga05f5ab240c9a3fdeee353636e464c285"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt; T, P &gt; mod </td>
+ <td class="memname">GLM_FUNC_DECL T glm::simplex </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modulus. </p>
-<p>Returns x % y for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
- <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Simplex noise. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00171.html b/3rdparty/glm/doc/api/a00171.html
index 78433c8e197..61412a59dd9 100644
--- a/3rdparty/glm/doc/api/a00171.html
+++ b/3rdparty/glm/doc/api/a00171.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_access</title>
+<title>0.9.9 API documenation: GLM_GTC_packing</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,166 +33,1513 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_access<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_packing<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This extension provides a set of function to convert vertors to packed formats.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &amp;m, length_t index)</td></tr>
-<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &amp;m, length_t index, typename genType::col_type const &amp;x)</td></tr>
-<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &amp;m, length_t index)</td></tr>
-<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &amp;m, length_t index, typename genType::row_type const &amp;x)</td></tr>
-<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga4944ad465ff950e926d49621f916c78d"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. <a href="a00171.html#ga4944ad465ff950e926d49621f916c78d">More...</a><br /></td></tr>
+<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">packF3x9_E1x5</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga3f648fc205467792dc6d8c59c748f8a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. <a href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">More...</a><br /></td></tr>
+<tr class="separator:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint16, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga896d806b72e390eb953786cca3632ec9">packHalf</a> (vecType&lt; float, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga896d806b72e390eb953786cca3632ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. <a href="a00171.html#ga896d806b72e390eb953786cca3632ec9">More...</a><br /></td></tr>
+<tr class="separator:ga896d806b72e390eb953786cca3632ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
+<tr class="memdesc:ga43f2093b6ff192a79058ff7834fc3528"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">More...</a><br /></td></tr>
+<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">More...</a><br /></td></tr>
+<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga06ecb6afb902dba45419008171db9023"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#ga06ecb6afb902dba45419008171db9023">More...</a><br /></td></tr>
+<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1">packRGBM</a> (tvec3&lt; T, P &gt; const &amp;rgb)</td></tr>
+<tr class="memdesc:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. <a href="a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1">More...</a><br /></td></tr>
+<tr class="separator:ga540fc5d8654b7bcfe207ac2491f161d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplParams" colspan="2">template&lt;typename intType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; intType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga1be760860697db386b36513aeafe9d5e">packSnorm</a> (vecType&lt; floatType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1be760860697db386b36513aeafe9d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into signed integer values. <a href="a00171.html#ga1be760860697db386b36513aeafe9d5e">More...</a><br /></td></tr>
+<tr class="separator:ga1be760860697db386b36513aeafe9d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
+<tr class="memdesc:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into 16-bit integer value. <a href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">More...</a><br /></td></tr>
+<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
+<tr class="memdesc:gae3592e0795e62aaa1865b3a10496a7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into 8-bit integer value. <a href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">More...</a><br /></td></tr>
+<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8-bit integer values. <a href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">More...</a><br /></td></tr>
+<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gab997545661877d2c7362a5084d3897d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. <a href="a00171.html#gab997545661877d2c7362a5084d3897d3">More...</a><br /></td></tr>
+<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga358943934d21da947d5bcc88c2ab7832"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 16-bit integer values. <a href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">More...</a><br /></td></tr>
+<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &amp;v)</td></tr>
+<tr class="memdesc:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">More...</a><br /></td></tr>
+<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplParams" colspan="2">template&lt;typename uintType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uintType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">packUnorm</a> (vecType&lt; floatType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">More...</a><br /></td></tr>
+<tr class="separator:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
+<tr class="memdesc:ga9f82737bf2a44bedff1d286b76837886"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into a 16-bit integer value. <a href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">More...</a><br /></td></tr>
+<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">packUnorm1x5_1x6_1x5</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga768e0337dd6246773f14aa0a421fe9a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">More...</a><br /></td></tr>
+<tr class="separator:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
+<tr class="memdesc:ga4b2fa60df3460403817d28b082ee0736"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the normalized floating-point value v into a 8-bit integer value. <a href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">More...</a><br /></td></tr>
+<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">packUnorm2x3_1x2</a> (vec3 const &amp;v)</td></tr>
+<tr class="memdesc:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">More...</a><br /></td></tr>
+<tr class="separator:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">packUnorm2x4</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">More...</a><br /></td></tr>
+<tr class="separator:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &amp;v)</td></tr>
+<tr class="memdesc:ga9a666b1c688ab54100061ed06526de6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 8-bit integer values. <a href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">More...</a><br /></td></tr>
+<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga8a1ee625d2707c60530fb3fca2980b19"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. <a href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">More...</a><br /></td></tr>
+<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec4112086d7fb133bea104a7c237de52"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaec4112086d7fb133bea104a7c237de52">packUnorm3x5_1x1</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gaec4112086d7fb133bea104a7c237de52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gaec4112086d7fb133bea104a7c237de52">More...</a><br /></td></tr>
+<tr class="separator:gaec4112086d7fb133bea104a7c237de52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:ga1f63c264e7ab63264e2b2a99fd393897"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, converts each component of the normalized floating-point value v into 16-bit integer values. <a href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">More...</a><br /></td></tr>
+<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">packUnorm4x4</a> (vec4 const &amp;v)</td></tr>
+<tr class="memdesc:gad3e7e3ce521513584a53aedc5f9765c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each component of the normalized floating-point vector into unsigned integer values. <a href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">More...</a><br /></td></tr>
+<tr class="separator:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga2b1fd1e854705b1345e98409e0a25e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">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 . <a href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">More...</a><br /></td></tr>
+<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">unpackF3x9_E1x5</a> (uint32 p)</td></tr>
+<tr class="memdesc:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="mdescLeft">&#160;</td><td class="mdescRight">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 . <a href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">More...</a><br /></td></tr>
+<tr class="separator:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplParams" colspan="2">template&lt;precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; float, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">unpackHalf</a> (vecType&lt; uint16, P &gt; const &amp;p)</td></tr>
+<tr class="memdesc:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. <a href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">More...</a><br /></td></tr>
+<tr class="separator:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
+<tr class="memdesc:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">More...</a><br /></td></tr>
+<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
+<tr class="memdesc:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">More...</a><br /></td></tr>
+<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga9a05330e5490be0908d3b117d82aff56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. <a href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">More...</a><br /></td></tr>
+<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga44274002723e379ad5c4ece8300a9308"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga44274002723e379ad5c4ece8300a9308"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga44274002723e379ad5c4ece8300a9308">unpackRGBM</a> (tvec4&lt; T, P &gt; const &amp;rgbm)</td></tr>
+<tr class="memdesc:ga44274002723e379ad5c4ece8300a9308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. <a href="a00171.html#ga44274002723e379ad5c4ece8300a9308">More...</a><br /></td></tr>
+<tr class="separator:ga44274002723e379ad5c4ece8300a9308"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplParams" colspan="2">template&lt;typename intType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; floatType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">unpackSnorm</a> (vecType&lt; intType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each signed integer components of a vector to normalized floating-point values. <a href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">More...</a><br /></td></tr>
+<tr class="separator:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga96dd15002370627a443c835ab03a766c"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. <a href="a00171.html#ga96dd15002370627a443c835ab03a766c">More...</a><br /></td></tr>
+<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga4851ff86678aa1c7ace9d67846894285"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. <a href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">More...</a><br /></td></tr>
+<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga8b128e89be449fc71336968a66bf6e1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. <a href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">More...</a><br /></td></tr>
+<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. <a href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">More...</a><br /></td></tr>
+<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
+<tr class="memdesc:gaaddf9c353528fe896106f7181219c7f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. <a href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">More...</a><br /></td></tr>
+<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga48df3042a7d079767f5891a1bfd8a60a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. <a href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">More...</a><br /></td></tr>
+<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplParams" colspan="2">template&lt;typename uintType , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; floatType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">unpackUnorm</a> (vecType&lt; uintType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">More...</a><br /></td></tr>
+<tr class="separator:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga83d34160a5cb7bcb5339823210fc7501"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. <a href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">More...</a><br /></td></tr>
+<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">unpackUnorm1x5_1x6_1x5</a> (uint16 p)</td></tr>
+<tr class="memdesc:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">More...</a><br /></td></tr>
+<tr class="separator:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga1319207e30874fb4931a9ee913983ee1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a single 8-bit integer to a normalized floating-point value. <a href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">More...</a><br /></td></tr>
+<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6abd5a9014df3b5ce4059008d2491260"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">unpackUnorm2x3_1x2</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga6abd5a9014df3b5ce4059008d2491260"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">More...</a><br /></td></tr>
+<tr class="separator:ga6abd5a9014df3b5ce4059008d2491260"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">unpackUnorm2x4</a> (uint8 p)</td></tr>
+<tr class="memdesc:ga2e50476132fe5f27f08e273d9c70d85b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">More...</a><br /></td></tr>
+<tr class="separator:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. <a href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">More...</a><br /></td></tr>
+<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="memdesc:ga5156d3060355fe332865da2c7f78815f"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. <a href="a00171.html#ga5156d3060355fe332865da2c7f78815f">More...</a><br /></td></tr>
+<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">unpackUnorm3x5_1x1</a> (uint16 p)</td></tr>
+<tr class="memdesc:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">More...</a><br /></td></tr>
+<tr class="separator:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
+<tr class="memdesc:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="mdescLeft">&#160;</td><td class="mdescRight">First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. <a href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">More...</a><br /></td></tr>
+<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">unpackUnorm4x4</a> (uint16 p)</td></tr>
+<tr class="memdesc:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert each unsigned integer components of a vector to normalized floating-point values. <a href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">More...</a><br /></td></tr>
+<tr class="separator:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines functions to access rows or columns of a matrix easily. </p>
-<p>&lt;<a class="el" href="a00068.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_access.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>This extension provides a set of function to convert vertors to packed formats. </p>
+<p>&lt;<a class="el" href="a00081.html" title="GLM_GTC_packing ">glm/gtc/packing.hpp</a>&gt; need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga96022eb0d3fae39d89fc7a954e59b374"></a>
+<a class="anchor" id="ga4944ad465ff950e926d49621f916c78d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::col_type glm::column </td>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packF2x11_1x10 </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. </p>
+<p>Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackF2x11_1x10(uint32 const &amp; p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3f648fc205467792dc6d8c59c748f8a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packF3x9_E1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t&#160;</td>
- <td class="paramname"><em>index</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. </p>
+<p>Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.</p>
+<p>packF3x9_E1x5 allows encoding into RGBE / RGB9E5 format</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackF3x9_E1x5(uint32 const &amp; p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga896d806b72e390eb953786cca3632ec9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uint16, P&gt; glm::packHalf </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; float, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Get a specific column of a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType&lt;float, P&gt; unpackHalf(vecType&lt;uint16, P&gt; const &amp; p) </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga9e757377523890e8b80c5843dbe4dd15"></a>
+<a class="anchor" id="ga43f2093b6ff192a79058ff7834fc3528"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::column </td>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packHalf1x16 </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packHalf2x16(vec2 const &amp; v) </dd>
+<dd>
+uint64 packHalf4x16(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafe2f7b39caf8f5ec555e1c059ec530e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::packHalf4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t&#160;</td>
- <td class="paramname"><em>index</em>, </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packHalf1x16(float const &amp; v) </dd>
+<dd>
+uint32 packHalf2x16(vec2 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga06ecb6afb902dba45419008171db9023"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packI3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">typename genType::col_type const &amp;&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packI3x10_1x2(uvec4 const &amp; v) </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+ivec4 unpackI3x10_1x2(uint32 const &amp; p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga540fc5d8654b7bcfe207ac2491f161d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::packRGBM </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>rgb</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Set a specific column to a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+tvec3&lt;T, P&gt; unpackRGBM(tvec4&lt;T, P&gt; const &amp; p) </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga259e5ebd0f31ec3f83440f8cae7f5dba"></a>
+<a class="anchor" id="ga1be760860697db386b36513aeafe9d5e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::row_type glm::row </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;intType, P&gt; glm::packSnorm </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType&lt; floatType, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into signed integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType&lt;floatType, P&gt; unpackSnorm(vecType&lt;intType, P&gt; const &amp; p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab22f8bcfdb5fc65af4701b25f143c1af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t&#160;</td>
- <td class="paramname"><em>index</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into 16-bit integer value. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packSnorm2x16(vec2 const &amp; v) </dd>
+<dd>
+uint64 packSnorm4x16(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae3592e0795e62aaa1865b3a10496a7a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packSnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into 8-bit integer value. </p>
+<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
+<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packSnorm2x8(vec2 const &amp; v) </dd>
+<dd>
+uint32 packSnorm4x8(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6be3cfb2cce3702f03e91bbeb5286d7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packSnorm1x8(float const &amp; v) </dd>
+<dd>
+uint32 packSnorm4x8(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab997545661877d2c7362a5084d3897d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Get a specific row of a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. </p>
+<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)</p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackSnorm3x10_1x2(uint32 const &amp; p) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
+<dd>
+uint32 packI3x10_1x2(ivec4 const &amp; v) </dd></dl>
</div>
</div>
-<a class="anchor" id="gaadcc64829aadf4103477679e48c7594f"></a>
+<a class="anchor" id="ga358943934d21da947d5bcc88c2ab7832"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::row </td>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::packSnorm4x16 </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packSnorm1x16(float const &amp; v) </dd>
+<dd>
+uint32 packSnorm2x16(vec2 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada3d88d59f0f458f9c51a9fd359a4bc0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packU3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t&#160;</td>
- <td class="paramname"><em>index</em>, </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packI3x10_1x2(ivec4 const &amp; v) </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+ivec4 unpackU3x10_1x2(uint32 const &amp; p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacb9a3df68172c1193c9d701a3fa4d88b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uintType, P&gt; glm::packUnorm </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; floatType, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">typename genType::row_type const &amp;&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType&lt;floatType, P&gt; unpackUnorm(vecType&lt;intType, P&gt; const &amp; p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9f82737bf2a44bedff1d286b76837886"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into a 16-bit integer value. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packSnorm1x16(float const &amp; v) </dd>
+<dd>
+uint64 packSnorm4x16(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga768e0337dd6246773f14aa0a421fe9a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm1x5_1x6_1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackUnorm1x5_1x6_1x5(uint16 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4b2fa60df3460403817d28b082ee0736"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into a 8-bit integer value. </p>
+<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm2x8(vec2 const &amp; v) </dd>
+<dd>
+uint32 packUnorm4x8(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7f9abdb50f9be1aa1c14912504a0d98d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm2x3_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackUnorm2x3_1x2(uint8 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab6bbd5be3b8e6db538ecb33a7844481c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm2x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackUnorm2x4(uint8 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9a666b1c688ab54100061ed06526de6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packUnorm1x8(float const &amp; v) </dd>
+<dd>
+uint32 packUnorm4x8(vec4 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8a1ee625d2707c60530fb3fca2980b19"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. </p>
+<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)</p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackUnorm3x10_1x2(uint32 const &amp; p) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
+<dd>
+uint32 packI3x10_1x2(ivec4 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaec4112086d7fb133bea104a7c237de52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm3x5_1x1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackUnorm3x5_1x1(uint16 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1f63c264e7ab63264e2b2a99fd393897"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::packUnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm1x16(float const &amp; v) </dd>
+<dd>
+uint32 packUnorm2x16(vec2 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad3e7e3ce521513584a53aedc5f9765c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm4x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackUnorm4x4(uint16 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2b1fd1e854705b1345e98409e0a25e50"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packF2x11_1x10(vec3 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab9e60ebe3ad3eeced6a9ec6eb876d74e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackF3x9_E1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<p>unpackF3x9_E1x5 allows decoding RGBE / RGB9E5 data</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packF3x9_E1x5(vec3 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf3f9387834f8d8beadfe723c1dd247a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;float, P&gt; glm::unpackHalf </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; <a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType&lt;uint16, P&gt; packHalf(vecType&lt;float, P&gt; const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac37dedaba24b00adb4ec6e8f92c19dbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackHalf1x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackHalf2x16(uint32 const &amp; v) </dd>
+<dd>
+vec4 unpackHalf4x16(uint64 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga57dfc41b2eb20b0ac00efae7d9c49dcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackHalf4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackHalf1x16(uint16 const &amp; v) </dd>
+<dd>
+vec2 unpackHalf2x16(uint32 const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9a05330e5490be0908d3b117d82aff56"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. </p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
+<dd>
+vec4 unpackSnorm3x10_1x2(uint32 const &amp; p); </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const &amp; p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga44274002723e379ad5c4ece8300a9308"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::unpackRGBM </td>
+ <td>(</td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>rgbm</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+tvec4&lt;T, P&gt; packRGBM(tvec3&lt;float, P&gt; const &amp; v) </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga63eeec0d416e48462f341f4a7a9a45fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;floatType, P&gt; glm::unpackSnorm </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; intType, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each signed integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType&lt;intType, P&gt; packSnorm(vecType&lt;floatType, P&gt; const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96dd15002370627a443c835ab03a766c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned scalar.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackSnorm2x16(uint32 p) </dd>
+<dd>
+vec4 unpackSnorm4x16(uint64 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm1x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4851ff86678aa1c7ace9d67846894285"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </p>
+<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackSnorm2x8(uint16 p) </dd>
+<dd>
+vec4 unpackSnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8b128e89be449fc71336968a66bf6e1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackSnorm1x8(uint8 p) </dd>
+<dd>
+vec4 unpackSnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7a4fbf79be9740e3c57737bc2af05e5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+vec4 unpackUnorm3x10_1x2(uint32 const &amp; p)) </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const &amp; p) </dd>
+<dd>
+uvec4 unpackU3x10_1x2(uint32 const &amp; p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaddf9c353528fe896106f7181219c7f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackSnorm1x16(uint16 p) </dd>
+<dd>
+vec2 unpackSnorm2x16(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga48df3042a7d079767f5891a1bfd8a60a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. </p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
+<dd>
+vec4 unpackSnorm3x10_1x2(uint32 const &amp; p); </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const &amp; p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;floatType, P&gt; glm::unpackUnorm </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; uintType, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType&lt;intType, P&gt; packUnorm(vecType&lt;floatType, P&gt; const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga83d34160a5cb7bcb5339823210fc7501"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </p>
+<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackUnorm2x16(uint32 p) </dd>
+<dd>
+vec4 unpackUnorm4x16(uint64 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3bc08ecfc0f3339be93fb2b3b56d88a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackUnorm1x5_1x6_1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm1x5_1x6_1x5(vec3 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1319207e30874fb4931a9ee913983ee1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a single 8-bit integer to a normalized floating-point value. </p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackUnorm2x8(uint16 p) </dd>
+<dd>
+vec4 unpackUnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6abd5a9014df3b5ce4059008d2491260"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackUnorm2x3_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packUnorm2x3_1x2(vec3 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2e50476132fe5f27f08e273d9c70d85b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packUnorm2x4(vec2 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga637cbe3913dd95c6e7b4c99c61bd611f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackUnorm1x8(uint8 v) </dd>
+<dd>
+vec4 unpackUnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5156d3060355fe332865da2c7f78815f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
+<dd>
+vec4 unpackInorm3x10_1x2(uint32 const &amp; p)) </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const &amp; p) </dd>
+<dd>
+uvec4 unpackU3x10_1x2(uint32 const &amp; p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5ff95ff5bc16f396432ab67243dbae4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm3x5_1x1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm3x5_1x1(vec4 const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2ae149c5d2473ac1e5f347bb654a242d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackUnorm1x16(uint16 p) </dd>
+<dd>
+vec2 unpackUnorm2x16(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac58ee89d0e224bb6df5e8bbb18843a2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Set a specific row to a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm4x4(vec4 const &amp; v) </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00172.html b/3rdparty/glm/doc/api/a00172.html
index 43816c7b603..ad26f5c104a 100644
--- a/3rdparty/glm/doc/api/a00172.html
+++ b/3rdparty/glm/doc/api/a00172.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_integer</title>
+<title>0.9.9 API documenation: GLM_GTC_quaternion</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,1850 +33,968 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_integer<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_quaternion<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines a templated quaternion type and several quaternion operations.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
-<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
-<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
-<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
-<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
-<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
-<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
-<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
-<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
-<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
-<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
-<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
-<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
-<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
-<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
-<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
-<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
-<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
-<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
-<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
-<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
-<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
-<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
-<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
-<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
-<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
-<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
-<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
-<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
-<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
-<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
-<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
-<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
-<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
-<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
-<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
-<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
-<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
-<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
-<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
-<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
-<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
-<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
-<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
-<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
-<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
-<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
-<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
-<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
-<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
-<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
-<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
-<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
-<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
-<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
-<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
-<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
-<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
-<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
-<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
-<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
-<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
-<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
-<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
-<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
-<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
-<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
-<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
-<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
-<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
-<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
-<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; int, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
-<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
-<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
-<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
-<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
-<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
-<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
-<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
-<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
-<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
-<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
-<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
-<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4&lt; uint, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
-<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
-<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
-<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
-<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
-<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
-<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
-<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
-<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
-<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
-<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
-<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
-<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
-<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gad4a4448baedb198b2b1e7880d2544dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the quaternion rotation angle. <a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">More...</a><br /></td></tr>
+<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:ga37ae19405f1ccf766f27e4fcd035d859"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a quaternion from an angle and a normalized axis. <a href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">More...</a><br /></td></tr>
+<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0b3e87a13b2708154b72259e50789a19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q rotation axis. <a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">More...</a><br /></td></tr>
+<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:gab1ace864fbf189ffa368950001808a3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q conjugate. <a href="a00172.html#gab1ace864fbf189ffa368950001808a3c">More...</a><br /></td></tr>
+<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class quatType&gt; </td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gac54dfc83de465a2d03e90d342242ab3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... <a href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">More...</a><br /></td></tr>
+<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gac187115710365e0b2902220b9611e7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x == y. <a href="a00172.html#gac187115710365e0b2902220b9611e7b6">More...</a><br /></td></tr>
+<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns euler angles, pitch as x, yaw as y, roll as z. <a href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">More...</a><br /></td></tr>
+<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt; y. <a href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">More...</a><br /></td></tr>
+<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &gt;= y. <a href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">More...</a><br /></td></tr>
+<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga5f47300c024c2d809944e6ac661d6d14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q inverse. <a href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">More...</a><br /></td></tr>
+<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0a850f06736d25887536d0da88e63c70">isinf</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0a850f06736d25887536d0da88e63c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. <a href="a00172.html#ga0a850f06736d25887536d0da88e63c70">More...</a><br /></td></tr>
+<tr class="separator:ga0a850f06736d25887536d0da88e63c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">isnan</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. <a href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">More...</a><br /></td></tr>
+<tr class="separator:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:gac682181783027544c8d251b4d3a60cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the quaternion. <a href="a00172.html#gac682181783027544c8d251b4d3a60cf8">More...</a><br /></td></tr>
+<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
+<tr class="memdesc:ga5692804fa4db9e762a1c19b607e54435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear interpolation of two quaternions. <a href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">More...</a><br /></td></tr>
+<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison result of x &lt; y. <a href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">More...</a><br /></td></tr>
+<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga7c81996ed2724f26fe76faf352c76294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x &lt;= y. <a href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">More...</a><br /></td></tr>
+<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gae04c39422eb4e450ec8c4f45a1057b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 3 * 3 matrix. <a href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">More...</a><br /></td></tr>
+<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 4 * 4 matrix. <a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">More...</a><br /></td></tr>
+<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
+<tr class="memdesc:ga31cc82178742c36450f5662bd4fb30b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spherical linear interpolation of two quaternions. <a href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">More...</a><br /></td></tr>
+<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the normalized quaternion. <a href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">More...</a><br /></td></tr>
+<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga484c4633f7c05d8e29ee8b452350f539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise comparison of result x != y. <a href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">More...</a><br /></td></tr>
+<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2c08b93a4261c10748fd4d2104346f17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pitch value of euler angles expressed in radians. <a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">More...</a><br /></td></tr>
+<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 3 * 3 matrix to a quaternion. <a href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">More...</a><br /></td></tr>
+<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 4 * 4 matrix to a quaternion. <a href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">More...</a><br /></td></tr>
+<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns roll value of euler angles expressed in radians. <a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">More...</a><br /></td></tr>
+<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:gaa8f42979c921e450ff2812fb43c25702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates a quaternion from a vector of 3 components axis and an angle. <a href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">More...</a><br /></td></tr>
+<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
+<tr class="memdesc:ga22b438c7252f3fa5b773c9882471652a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spherical linear interpolation of two quaternions. <a href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">More...</a><br /></td></tr>
+<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns yaw value of euler angles expressed in radians. <a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">More...</a><br /></td></tr>
+<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines a number of matrices with integer types. </p>
-<p>&lt;<a class="el" href="a00071.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_integer.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gaa9f8144beebdefd85e2a9ac480e7608a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;int, highp&gt; highp_imat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00065">65</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac455e55e7cb32e31396a9d4613da046a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;int, highp&gt; highp_imat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00077">77</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5f5f1e6dc06b72216463a425b2f7613e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt;int, highp&gt; highp_imat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00081">81</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga73b855cc40e5d8202b7ab38461326d65"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt;int, highp&gt; highp_imat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00085">85</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4efd6470c0edf9704d2244fc92dbc2a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;int, highp&gt; highp_imat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00069">69</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0413bf87605b9247be2533c439127a1c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt;int, highp&gt; highp_imat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00089">89</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacce460d54216438bb577bf8c9d68299c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;int, highp&gt; highp_imat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00093">93</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad4fea24b4100e21ed7742c91e5458d49"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt;int, highp&gt; highp_imat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00097">97</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga159ce04cc638ff4db755542cd8f758cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;int, highp&gt; highp_imat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00073">73</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7d43dd8332000f7f19379efa1b303599"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt;int, highp&gt; highp_imat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00101">101</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c66b9b7c10a6017a58a03489c8d4c73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt;int, highp&gt; highp_imat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00105">105</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae53db595d36f49a299e180302795e3c9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;int, highp&gt; highp_imat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00109">109</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae7b96c808a36fbe87f41af1c77b7941c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;uint, highp&gt; highp_umat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00214">214</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4860b4b01430bdb70643808c8d3bf5cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2&lt;uint, highp&gt; highp_umat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00226">226</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac351446661e5a8168473ff7b3b5ac3b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3&lt;uint, highp&gt; highp_umat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00230">230</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga815eb9fdf70edc45687cbcda07e97213"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4&lt;uint, highp&gt; highp_umat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00234">234</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa60b19d7cadbaa56bed1e6e0047af147"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;uint, highp&gt; highp_umat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00218">218</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab1d8e627b6a0b21c9b5e599a89132d8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2&lt;uint, highp&gt; highp_umat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00238">238</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacf71e9abe57bcfd18b4b003421e306aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3&lt;uint, highp&gt; highp_umat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00242">242</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6edbf193ad6c4309e31262165f2655e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4&lt;uint, highp&gt; highp_umat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00246">246</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8368cb49cb0bd5ac682a71d1eccc9a8c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;uint, highp&gt; highp_umat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00222">222</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaba8a59eac3e5c0b3aaa9b35c1f10292"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2&lt;uint, highp&gt; highp_umat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00250">250</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga899a376888652fe3c03718641812bb27"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3&lt;uint, highp&gt; highp_umat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00254">254</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab8068521c0ad6990373d27d87d333084"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4&lt;uint, highp&gt; highp_umat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00258">258</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2 imat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00390">390</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2x2 imat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00402">402</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2x3 imat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00406">406</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2x4 imat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00410">410</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3 imat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00394">394</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3x2 imat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00414">414</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3x3 imat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00418">418</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3x4 imat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00422">422</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat4 imat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00398">398</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a>
+<p>Defines a templated quaternion type and several quaternion operations. </p>
+<p>&lt;<a class="el" href="a00088.html" title="GLM_GTC_quaternion ">glm/gtc/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gad4a4448baedb198b2b1e7880d2544dc9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_imat4x2 imat4x2</td>
+ <td class="memname">GLM_FUNC_DECL T glm::angle </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00426">426</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the quaternion rotation angle. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a>
+<a class="anchor" id="ga37ae19405f1ccf766f27e4fcd035d859"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_imat4x3 imat4x3</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::angleAxis </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00430">430</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_imat4x4 imat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00434">434</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3c035fec7db0d671ec8f9f1f0d05bed0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;int, lowp&gt; lowp_imat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00164">164</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Build a quaternion from an angle and a normalized axis. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
+ <tr><td class="paramname">axis</td><td>Axis of the quaternion, must be normalized.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5bfe58853451fbc1f1ef6ce1f93c5e31"></a>
+<a class="anchor" id="ga0b3e87a13b2708154b72259e50789a19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;int, lowp&gt; lowp_imat2x2</td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::axis </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00177">177</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the q rotation axis. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3f8fb92b62e31528886cc728d3404ecc"></a>
+<a class="anchor" id="gab1ace864fbf189ffa368950001808a3c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt;int, lowp&gt; lowp_imat2x3</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::conjugate </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00181">181</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the q conjugate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga892b53e26d36763f380b08a5768dee6b"></a>
+<a class="anchor" id="gac54dfc83de465a2d03e90d342242ab3d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt;int, lowp&gt; lowp_imat2x4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::dot </td>
+ <td>(</td>
+ <td class="paramtype">quatType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00185">185</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga148f3a81d15a570b9460158e6964f41c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;int, lowp&gt; lowp_imat3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">quatType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00168">168</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7655dfee0d726e80d7a3b72f46d5fd35"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt;int, lowp&gt; lowp_imat3x2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00189">189</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab3d5c6aaeb5815f8f080305888f6828f"></a>
+<a class="anchor" id="gac187115710365e0b2902220b9611e7b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;int, lowp&gt; lowp_imat3x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::equal </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00193">193</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3d913d70c629aa7ad504739286328f1b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt;int, lowp&gt; lowp_imat3x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00197">197</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad3d7b23bdb4ed9b7d53c9db792db9bb4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;int, lowp&gt; lowp_imat4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00172">172</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x == y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3fdfce509d30bdd7778b8b156cb968df"></a>
+<a class="anchor" id="gadb92ec1c1b0dd6b024176a73fbef3e64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt;int, lowp&gt; lowp_imat4x2</td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::eulerAngles </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00201">201</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns euler angles, pitch as x, yaw as y, roll as z. </p>
+<p>The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6a9945878f99294cfde40c6c3a867d69"></a>
+<a class="anchor" id="ga09d21a588ae425ac7517ea65cc59a5ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt;int, lowp&gt; lowp_imat4x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::greaterThan </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00205">205</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga330140b22a9449caab308f2c69bf4c80"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;int, lowp&gt; lowp_imat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00209">209</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1406406e396b56bde3c7c0722f657064"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;uint, lowp&gt; lowp_umat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00313">313</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x &gt; y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1f0cea730f6c13b16e511bd2d63507a3"></a>
+<a class="anchor" id="ga0906a221a2037519fcf316ea5c1e3b3e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;uint, lowp&gt; lowp_umat2x2</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::greaterThanEqual </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00326">326</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa86bd9dc8463b46a46ee944948111676"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt;uint, lowp&gt; lowp_umat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00330">330</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b6c64600bad79d735fa6bec843b2bb4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt;uint, lowp&gt; lowp_umat2x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00334">334</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x &gt;= y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7fc1f795f2abd0020c7b5204f4c83033"></a>
+<a class="anchor" id="ga5f47300c024c2d809944e6ac661d6d14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;uint, lowp&gt; lowp_umat3</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::inverse </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00317">317</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the q inverse. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad73943020bb49a072317ecfc52d587f0"></a>
+<a class="anchor" id="ga0a850f06736d25887536d0da88e63c70"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt;uint, lowp&gt; lowp_umat3x2</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::isinf </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00338">338</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
+<p>Returns false otherwise, including for implementations with no infinity representations.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga402d169fc3cdca5f3ea47a358a7b7c67"></a>
+<a class="anchor" id="gad2fc52dd4ba5ff79cc56b3e0f9c092ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;uint, lowp&gt; lowp_umat3x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::isnan </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00342">342</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
+<p>Returns false otherwise, including for implementations with no NaN representations.</p>
+<p>/!\ When using compiler fast math, this function may fail.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga2dce1c00ed50fd09fe349de3713d96db"></a>
+<a class="anchor" id="gac682181783027544c8d251b4d3a60cf8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt;uint, lowp&gt; lowp_umat3x4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::length </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00346">346</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the length of the quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gafe68c1cf2b379a9a11d1a11c9c2f8884"></a>
+<a class="anchor" id="ga5692804fa4db9e762a1c19b607e54435"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;uint, lowp&gt; lowp_umat4</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::lerp </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00321">321</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga76cab31d492ea214c693ab9132b4de95"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt;uint, lowp&gt; lowp_umat4x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00350">350</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae3ca9e28a9d2e5fce5e28593d27e370d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt;uint, lowp&gt; lowp_umat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00354">354</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga742be484e56e08ef637f8ec4ab7c8bb2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;uint, lowp&gt; lowp_umat4x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00358">358</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Linear interpolation of two quaternions. </p>
+<p>The interpolation is oriented.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">y</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined in the range [0, 1]. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3f8e55e14a6fc61850f8c0df9b4ff655"></a>
+<a class="anchor" id="ga91a40d16a3b5bb47d71ac1a3fb688ffa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;int, mediump&gt; mediump_imat2</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::lessThan </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00114">114</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabc572d47b60f7e595d7aad945f5d13a8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;int, mediump&gt; mediump_imat2x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00127">127</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5b7e9af5024e1a164db6419f67ecfc9a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt;int, mediump&gt; mediump_imat2x3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00131">131</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison result of x &lt; y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa08e27efc514088315ccbaf818f01880"></a>
+<a class="anchor" id="ga7c81996ed2724f26fe76faf352c76294"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt;int, mediump&gt; mediump_imat2x4</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::lessThanEqual </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00135">135</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac2b0985b576fe0eba47227499aed2b3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;int, mediump&gt; mediump_imat3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00118">118</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1a61c706b31aa60fd7012b2b27765983"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt;int, mediump&gt; mediump_imat3x2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00139">139</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x &lt;= y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga05064e28b911be1af0503ddf6e6204a3"></a>
+<a class="anchor" id="gae04c39422eb4e450ec8c4f45a1057b40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;int, mediump&gt; mediump_imat3x3</td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::mat3_cast </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+<p>Converts a quaternion to a 3 * 3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition at line <a class="el" href="a00071_source.html#l00143">143</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Referenced by <a class="el" href="a00089_source.html#l00128">glm::toMat3()</a>.</p>
</div>
</div>
-<a class="anchor" id="ga8e0f797a57fec255f0eec7da1511bc38"></a>
+<a class="anchor" id="ga14bb2ddf028c91542763eb6f2bba47ef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt;int, mediump&gt; mediump_imat3x4</td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::mat4_cast </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+<p>Converts a quaternion to a 4 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition at line <a class="el" href="a00071_source.html#l00147">147</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Referenced by <a class="el" href="a00089_source.html#l00135">glm::toMat4()</a>.</p>
</div>
</div>
-<a class="anchor" id="ga551ad2e4e0304c67451ffbadeef0d615"></a>
+<a class="anchor" id="ga31cc82178742c36450f5662bd4fb30b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;int, mediump&gt; mediump_imat4</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::mix </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00122">122</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1582c5dc83e49a7e53bb0b94bef9de54"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt;int, mediump&gt; mediump_imat4x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00151">151</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1526c62951b04f5cd73f541f7b3b7d8d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt;int, mediump&gt; mediump_imat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00155">155</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga655bfcca624f422aff308dcc99688ce8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;int, mediump&gt; mediump_imat4x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00159">159</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Spherical linear interpolation of two quaternions. </p>
+<p>The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">y</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd>
+<dd>
+- slerp(tquat&lt;T, P&gt; const &amp; x, tquat&lt;T, P&gt; const &amp; y, T const &amp; a) </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7322b97f1be10c83290ab57ef784d493"></a>
+<a class="anchor" id="ga35b6bcb22ac6d1e4a85440f5b69bdf86"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;uint, mediump&gt; mediump_umat2</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::normalize </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00263">263</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the normalized quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0ffed083b64e4f764db0f446d2c49163"></a>
+<a class="anchor" id="ga484c4633f7c05d8e29ee8b452350f539"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt;uint, mediump&gt; mediump_umat2x2</td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::notEqual </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00276">276</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7ecc585b71766cfa96bd54a595bea1fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt;uint, mediump&gt; mediump_umat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00280">280</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac4abd549f2e521c7f40f53b6235c450e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt;uint, mediump&gt; mediump_umat2x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00284">284</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x != y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga93961d3aac6efa36dc3f9cfa7e9056e6"></a>
+<a class="anchor" id="ga2c08b93a4261c10748fd4d2104346f17"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;uint, mediump&gt; mediump_umat3</td>
+ <td class="memname">GLM_FUNC_DECL T glm::pitch </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00267">267</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns pitch value of euler angles expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3fb358a947f8ceaefddd75bce22cd947"></a>
+<a class="anchor" id="ga950f8acff3e33bbda77895a3dcb7e5ce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt;uint, mediump&gt; mediump_umat3x2</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::quat_cast </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+<p>Converts a 3 * 3 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition at line <a class="el" href="a00071_source.html#l00288">288</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Referenced by <a class="el" href="a00089_source.html#l00142">glm::toQuat()</a>.</p>
</div>
</div>
-<a class="anchor" id="gad4809dbfb1bfcf222d7b34a97a8eafe5"></a>
+<a class="anchor" id="ga3e4615e9884dd0f41f5617b9848a5d9c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt;uint, mediump&gt; mediump_umat3x3</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::quat_cast </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00292">292</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Converts a 4 * 4 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5a9d62e44668ca2222f0362f9c99d9cc"></a>
+<a class="anchor" id="ga4fd705376c6c1fd667be0055a0ea58ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt;uint, mediump&gt; mediump_umat3x4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::roll </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00296">296</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns roll value of euler angles expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac23667a99ae1ec649b5e55cd5a05b833"></a>
+<a class="anchor" id="gaa8f42979c921e450ff2812fb43c25702"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;uint, mediump&gt; mediump_umat4</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00271">271</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac8d1db85d62244fd90d240227c7f51ad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt;uint, mediump&gt; mediump_umat4x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00300">300</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7d332d462f2c1ad5a65dc580d3d1aa39"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt;uint, mediump&gt; mediump_umat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00304">304</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga24716579cf155f4e042542808f83978c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt;uint, mediump&gt; mediump_umat4x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00308">308</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Rotates a quaternion from a vector of 3 components axis and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">q</td><td>Source orientation </td></tr>
+ <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
+ <tr><td class="paramname">axis</td><td>Axis of the rotation</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a>
+<a class="anchor" id="ga22b438c7252f3fa5b773c9882471652a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat2 umat2</td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::slerp </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00467">467</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_umat2x2 umat2x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00479">479</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat2x3 umat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00483">483</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat2x4 umat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00487">487</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat3 umat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00471">471</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat3x2 umat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00491">491</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_umat3x3 umat3x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00495">495</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_umat3x4 umat3x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00499">499</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Spherical linear interpolation of two quaternions. </p>
+<p>The interpolation always take the short path and the rotation is performed at constant speed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">y</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a>
+<a class="anchor" id="ga724a5df282b70cec0a6cb0d6dcddb6d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat4 umat4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::yaw </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00475">475</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat4x2 umat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00503">503</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat4x3 umat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00507">507</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_umat4x4 umat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00511">511</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns yaw value of euler angles expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00173.html b/3rdparty/glm/doc/api/a00173.html
index 04983e55031..1c82c09b537 100644
--- a/3rdparty/glm/doc/api/a00173.html
+++ b/3rdparty/glm/doc/api/a00173.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_inverse</title>
+<title>0.9.9 API documenation: GLM_GTC_random</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,94 +33,311 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_inverse<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_random<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Generate random number from various distribution methods.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &amp;m)</td></tr>
-<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &amp;m)</td></tr>
-<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
+<tr class="memdesc:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. <a href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">More...</a><br /></td></tr>
+<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
+<tr class="memdesc:gae989c26a2899b2fb7444abe7c275c29c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. <a href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">More...</a><br /></td></tr>
+<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
+<tr class="memdesc:gad3a3ee7d26502a31ba552cb627a68606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. <a href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">More...</a><br /></td></tr>
+<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
+<tr class="memdesc:ga5193a83e49e4fdc5652c084711083574"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random numbers in the interval [Min, Max], according a gaussian distribution. <a href="a00173.html#ga5193a83e49e4fdc5652c084711083574">More...</a><br /></td></tr>
+<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template&lt;typename genTYpe &gt; </td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
+<tr class="memdesc:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random numbers in the interval [Min, Max], according a linear distribution. <a href="a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716">More...</a><br /></td></tr>
+<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a> (vecType&lt; T, P &gt; const &amp;Min, vecType&lt; T, P &gt; const &amp;Max)</td></tr>
+<tr class="memdesc:gaba9cec867916d894d794a32897b7fdfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random numbers in the interval [Min, Max], according a linear distribution. <a href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">More...</a><br /></td></tr>
+<tr class="separator:gaba9cec867916d894d794a32897b7fdfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
+<tr class="memdesc:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. <a href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">More...</a><br /></td></tr>
+<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines additional matrix inverting functions. </p>
-<p>&lt;<a class="el" href="a00073.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_inverse.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Generate random number from various distribution methods. </p>
+<p>&lt;<a class="el" href="a00090.html" title="GLM_GTC_random ">glm/gtc/random.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gae0fcc5fc8783291f9702272de428fa0e"></a>
+<a class="anchor" id="ga5506dee301160e3a06aef9b9bc7a0a83"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; glm::ballRand </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae989c26a2899b2fb7444abe7c275c29c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; glm::circularRand </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad3a3ee7d26502a31ba552cb627a68606"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; glm::diskRand </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5193a83e49e4fdc5652c084711083574"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::affineInverse </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gaussRand </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Mean</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Deviation</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Fast matrix inverse for affine matrix. </p>
+<p>Generate random numbers in the interval [Min, Max], according a gaussian distribution. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">m</td><td>Input matrix to invert. </td></tr>
+ <tr><td class="paramname">Mean</td><td></td></tr>
+ <tr><td class="paramname">Deviation</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga12aebc19b85a8c736f5801c2f7b9b716"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genTYpe glm::linearRand </td>
+ <td>(</td>
+ <td class="paramtype">genTYpe&#160;</td>
+ <td class="paramname"><em>Min</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genTYpe&#160;</td>
+ <td class="paramname"><em>Max</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate random numbers in the interval [Min, Max], according a linear distribution. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Min</td><td></td></tr>
+ <tr><td class="paramname">Max</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ <tr><td class="paramname">genType</td><td>Value type. Currently supported: float or double scalars. </td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab213cd0e3ead5f316d583f99d6312008"></a>
+<a class="anchor" id="gaba9cec867916d894d794a32897b7fdfd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::inverseTranspose </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::linearRand </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Min</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Max</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Compute the inverse transpose of a matrix. </p>
+<p>Generate random numbers in the interval [Min, Max], according a linear distribution. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">m</td><td>Input matrix to invert transpose. </td></tr>
+ <tr><td class="paramname">Min</td><td></td></tr>
+ <tr><td class="paramname">Max</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ <tr><td class="paramname">T</td><td>Value type. Currently supported: float or double. </td></tr>
+ <tr><td class="paramname">vecType</td><td>A vertor type: tvec1, tvec2, tvec3, tvec4 or compatible </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa9a6fc2d7a295b3857f7db23b1053d9d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; glm::sphericalRand </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00174.html b/3rdparty/glm/doc/api/a00174.html
index 4aba0cce437..5387f53f4b8 100644
--- a/3rdparty/glm/doc/api/a00174.html
+++ b/3rdparty/glm/doc/api/a00174.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_transform</title>
+<title>0.9.9 API documenation: GLM_GTC_reciprocal</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,1255 +33,419 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_transform<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_reciprocal<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Define secant, cosecant and cotangent functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
-<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
-<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3&lt; T, P &gt; const &amp;eye, tvec3&lt; T, P &gt; const &amp;center, tvec3&lt; T, P &gt; const &amp;up)</td></tr>
-<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
-<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, typename U &gt; </td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2&lt; T, P &gt; const &amp;center, tvec2&lt; T, P &gt; const &amp;delta, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
-<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3&lt; T, P &gt; const &amp;obj, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
-<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
-<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3&lt; T, P &gt; const &amp;win, tmat4x4&lt; T, P &gt; const &amp;model, tmat4x4&lt; T, P &gt; const &amp;proj, tvec4&lt; U, P &gt; const &amp;viewport)</td></tr>
-<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">acot</a> (genType x)</td></tr>
+<tr class="memdesc:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cotangent function. <a href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">More...</a><br /></td></tr>
+<tr class="separator:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gafaca98a7100170db8841f446282debfa">acoth</a> (genType x)</td></tr>
+<tr class="memdesc:gafaca98a7100170db8841f446282debfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cotangent hyperbolic function. <a href="a00174.html#gafaca98a7100170db8841f446282debfa">More...</a><br /></td></tr>
+<tr class="separator:gafaca98a7100170db8841f446282debfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">acsc</a> (genType x)</td></tr>
+<tr class="memdesc:ga1b4bed91476b9b915e76b4a30236d330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cosecant function. <a href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">More...</a><br /></td></tr>
+<tr class="separator:ga1b4bed91476b9b915e76b4a30236d330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">acsch</a> (genType x)</td></tr>
+<tr class="memdesc:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse cosecant hyperbolic function. <a href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">More...</a><br /></td></tr>
+<tr class="separator:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">asec</a> (genType x)</td></tr>
+<tr class="memdesc:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse secant function. <a href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">More...</a><br /></td></tr>
+<tr class="separator:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">asech</a> (genType x)</td></tr>
+<tr class="memdesc:gaec7586dccfe431f850d006f3824b8ca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse secant hyperbolic function. <a href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">More...</a><br /></td></tr>
+<tr class="separator:gaec7586dccfe431f850d006f3824b8ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">cot</a> (genType angle)</td></tr>
+<tr class="memdesc:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cotangent function. <a href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">More...</a><br /></td></tr>
+<tr class="separator:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">coth</a> (genType angle)</td></tr>
+<tr class="memdesc:ga6b8b770eb7198e4dea59d52e6db81442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cotangent hyperbolic function. <a href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">More...</a><br /></td></tr>
+<tr class="separator:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">csc</a> (genType angle)</td></tr>
+<tr class="memdesc:ga59dd0005b6474eea48af743b4f14ebbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cosecant function. <a href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">More...</a><br /></td></tr>
+<tr class="separator:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">csch</a> (genType angle)</td></tr>
+<tr class="memdesc:ga6d95843ff3ca6472ab399ba171d290a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cosecant hyperbolic function. <a href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">More...</a><br /></td></tr>
+<tr class="separator:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">sec</a> (genType angle)</td></tr>
+<tr class="memdesc:gae4bcbebee670c5ea155f0777b3acbd84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secant function. <a href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">More...</a><br /></td></tr>
+<tr class="separator:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">sech</a> (genType angle)</td></tr>
+<tr class="memdesc:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secant hyperbolic function. <a href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">More...</a><br /></td></tr>
+<tr class="separator:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines functions that generate common transformation matrices. </p>
-<p>The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.</p>
-<p>&lt;<a class="el" href="a00077.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_transform.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Define secant, cosecant and cotangent functions. </p>
+<p>&lt;<a class="el" href="a00093.html" title="GLM_GTC_reciprocal ">glm/gtc/reciprocal.hpp</a>&gt; need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gada6deb989d4b553fe0f7e3279f3afae1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::frustum </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>left</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>right</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>bottom</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>top</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a frustum matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">left</td><td></td></tr>
- <tr><td class="paramname">right</td><td></td></tr>
- <tr><td class="paramname">bottom</td><td></td></tr>
- <tr><td class="paramname">top</td><td></td></tr>
- <tr><td class="paramname">near</td><td></td></tr>
- <tr><td class="paramname">far</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga79f704ad91a5f0d68abd88c66c8186e5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::infinitePerspective </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf8eef81da1ad09f6a8920101c01eaae4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::lookAt </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>eye</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>up</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a look at view matrix based on the default handedness. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
- <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
- <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacd0c077ec7b58a575855e29cb5fb586d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::lookAtLH </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>eye</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>up</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a left handed look at view matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
- <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
- <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2876d9313334980b94292d2ec169088e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::lookAtRH </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>eye</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>up</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a right handed look at view matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
- <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
- <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) frustum(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; nearVal, T const &amp; farVal) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga65280251de6e38580110a0577a43d8f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::ortho </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>left</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>right</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>bottom</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>top</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>zNear</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>zFar</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for an orthographic parallel viewing volume. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">left</td><td></td></tr>
- <tr><td class="paramname">right</td><td></td></tr>
- <tr><td class="paramname">bottom</td><td></td></tr>
- <tr><td class="paramname">top</td><td></td></tr>
- <tr><td class="paramname">zNear</td><td></td></tr>
- <tr><td class="paramname">zFar</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- glm::ortho(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga45b1b64f99255c07119b4f1aaed04dd7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::ortho </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>left</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>right</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>bottom</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>top</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for projecting two-dimensional coordinates onto the screen. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">left</td><td></td></tr>
- <tr><td class="paramname">right</td><td></td></tr>
- <tr><td class="paramname">bottom</td><td></td></tr>
- <tr><td class="paramname">top</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- glm::ortho(T const &amp; left, T const &amp; right, T const &amp; bottom, T const &amp; top, T const &amp; zNear, T const &amp; zFar) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac3613dcb6c6916465ad5b7ad5a786175"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspective </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for a symetric perspective-view frustum based on the default handedness. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae9146e2c550fc8646299e4b900238145"></a>
+<a class="anchor" id="gaeadfb9c9d71093f7865b2ba2ca8d104d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveFov </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acot </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fov</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>height</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a perspective projection matrix based on a field of view and the default handedness. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
- <tr><td class="paramname">width</td><td></td></tr>
- <tr><td class="paramname">height</td><td></td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cotangent function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae705a2f19c3ef5ef880bd6c92759cf2d"></a>
+<a class="anchor" id="gafaca98a7100170db8841f446282debfa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveFovLH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acoth </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fov</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>height</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a left handed perspective projection matrix based on a field of view. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
- <tr><td class="paramname">width</td><td></td></tr>
- <tr><td class="paramname">height</td><td></td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cotangent hyperbolic function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga07cd8df791bf90dcb782645fe0b21261"></a>
+<a class="anchor" id="ga1b4bed91476b9b915e76b4a30236d330"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveFovRH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acsc </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fov</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>height</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a right handed perspective projection matrix based on a field of view. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
- <tr><td class="paramname">width</td><td></td></tr>
- <tr><td class="paramname">height</td><td></td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cosecant function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga34048da27c559f1ac8e9550d169dd6f3"></a>
+<a class="anchor" id="ga4b50aa5e5afc7e19ec113ab91596c576"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveLH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acsch </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a left handed, symetric perspective-view frustum. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cosecant hyperbolic function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"></a>
+<a class="anchor" id="ga2c5b7f962c2c9ff684e6d2de48db1f10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::perspectiveRH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::asec </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>far</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a right handed, symetric perspective-view frustum. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse secant function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga9026c77505b99990f68826f27c267dc5"></a>
+<a class="anchor" id="gaec7586dccfe431f850d006f3824b8ca6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::pickMatrix </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::asech </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>delta</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>viewport</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Define a picking region. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">center</td><td></td></tr>
- <tr><td class="paramname">delta</td><td></td></tr>
- <tr><td class="paramname">viewport</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
- <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad743556abd138264d4f06f4ca27f1d7e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::project </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>obj</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>model</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>proj</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec4&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>viewport</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">obj</td><td>Specify the object coordinates. </td></tr>
- <tr><td class="paramname">model</td><td>Specifies the current modelview matrix </td></tr>
- <tr><td class="paramname">proj</td><td>Specifies the current projection matrix </td></tr>
- <tr><td class="paramname">viewport</td><td>Specifies the current viewport </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Return the computed window coordinates. </dd></dl>
+<p>Inverse secant hyperbolic function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
- <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga161b1df124348f232d994ba7958e4815"></a>
+<a class="anchor" id="ga3a7b517a95bbd3ad74da3aea87a66314"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::cot </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>axis</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
- <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians. </td></tr>
- <tr><td class="paramname">axis</td><td>Rotation axis, recommended to be normalized. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cotangent function. </p>
+<p>adjacent / opposite or 1 / tan(x)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Supported: half, float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- rotate(tmat4x4&lt;T, P&gt; const &amp; m, T angle, T x, T y, T z) </dd>
-<dd>
-- rotate(T angle, tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8f062fcc07e2445500793f2803afebb0"></a>
+<a class="anchor" id="ga6b8b770eb7198e4dea59d52e6db81442"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::scale </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::coth </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this scale matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Ratio of scaling for each axis. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cotangent hyperbolic function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- scale(tmat4x4&lt;T, P&gt; const &amp; m, T x, T y, T z) </dd>
-<dd>
-- scale(tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaee134ab77c6c5548a6ebf4e8e476c6ed"></a>
+<a class="anchor" id="ga59dd0005b6474eea48af743b4f14ebbb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::translate </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::csc </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a translation 4 * 4 matrix created from a vector of 3 components. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cosecant function. </p>
+<p>hypotenuse / opposite or 1 / sin(x)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00040.html">glm/glm.hpp</a>&gt;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00077.html">glm/gtc/matrix_transform.hpp</a>&gt;</span></div>
-<div class="line">...</div>
-<div class="line">glm::mat4 m = <a class="code" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a>(<a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a>(1.0f), <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a>(1.0f));</div>
-<div class="line"><span class="comment">// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f</span></div>
-<div class="line"><span class="comment">// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f</span></div>
-<div class="line"><span class="comment">// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f</span></div>
-<div class="line"><span class="comment">// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f</span></div>
-</div><!-- fragment --> </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- translate(tmat4x4&lt;T, P&gt; const &amp; m, T x, T y, T z) </dd>
-<dd>
-- translate(tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaed64bd81f5ecdab52fecbdf7f6b58194"></a>
+<a class="anchor" id="ga6d95843ff3ca6472ab399ba171d290a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::tweakedInfinitePerspective </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::csch </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cosecant hyperbolic function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa50fce7f50b5d5da881ed30f5532a921"></a>
+<a class="anchor" id="gae4bcbebee670c5ea155f0777b3acbd84"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::tweakedInfinitePerspective </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::sec </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>ep</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">ep</td><td></td></tr>
- </table>
- </dd>
-</dl>
+<p>Secant function. </p>
+<p>hypotenuse / adjacent or 1 / cos(x)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga82a558de3ce42cbeed0f6ec292a4e1b3"></a>
+<a class="anchor" id="ga9a5cfd1e7170104a7b33863b1b75e5ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::unProject </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::sech </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>win</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>model</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>proj</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec4&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>viewport</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">win</td><td>Specify the window coordinates to be mapped. </td></tr>
- <tr><td class="paramname">model</td><td>Specifies the modelview matrix </td></tr>
- <tr><td class="paramname">proj</td><td>Specifies the projection matrix </td></tr>
- <tr><td class="paramname">viewport</td><td>Specifies the viewport </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns the computed object coordinates. </dd></dl>
+<p>Secant hyperbolic function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
- <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00175.html b/3rdparty/glm/doc/api/a00175.html
index 7fd3caad753..0f7dc0791bd 100644
--- a/3rdparty/glm/doc/api/a00175.html
+++ b/3rdparty/glm/doc/api/a00175.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_noise</title>
+<title>0.9.9 API documenation: GLM_GTC_round</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,71 +33,559 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_noise<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_round<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>rounding value to specific boundings
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
-<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)</td></tr>
-<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType&lt; T, P &gt; const &amp;p)</td></tr>
-<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="memdesc:gac84898c466e609cdd2e81d9ba907d9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Higher multiple number of Source. <a href="a00175.html#gac84898c466e609cdd2e81d9ba907d9e8">More...</a><br /></td></tr>
+<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:gafe632af669ac57d670ca18e3665a12ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Higher multiple number of Source. <a href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">More...</a><br /></td></tr>
+<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:gaa73c7690c787086fa3ac1c312264acab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value, round up to a power of two. <a href="a00175.html#gaa73c7690c787086fa3ac1c312264acab">More...</a><br /></td></tr>
+<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga76ec9b214ea1376fe09a903e34bab847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value, round up to a power of two. <a href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">More...</a><br /></td></tr>
+<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="memdesc:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">More...</a><br /></td></tr>
+<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:ga6912db42d43873fe1dedb3aed2b7a239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">More...</a><br /></td></tr>
+<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:gac80f6519c31baae10d8d7bea6735d1fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value, round down to a power of two. <a href="a00175.html#gac80f6519c31baae10d8d7bea6735d1fa">More...</a><br /></td></tr>
+<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value, round down to a power of two. <a href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">More...</a><br /></td></tr>
+<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
+<tr class="memdesc:gaf7444a7b2eb524f373463ceba76b9326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the 'Value' is a multiple of 'Multiple'. <a href="a00175.html#gaf7444a7b2eb524f373463ceba76b9326">More...</a><br /></td></tr>
+<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, T Multiple)</td></tr>
+<tr class="memdesc:ga50ea5d5dc33fffba39ad6002a3784123"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the 'Value' is a multiple of 'Multiple'. <a href="a00175.html#ga50ea5d5dc33fffba39ad6002a3784123">More...</a><br /></td></tr>
+<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the 'Value' is a multiple of 'Multiple'. <a href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">More...</a><br /></td></tr>
+<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the value is a power of two number. <a href="a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec">More...</a><br /></td></tr>
+<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gad454e4c8d8cd73ddc7de855f733a1465"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the value is a power of two number. <a href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">More...</a><br /></td></tr>
+<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="memdesc:ga6739d1de04b2cea7c78675b365644bce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga6739d1de04b2cea7c78675b365644bce">More...</a><br /></td></tr>
+<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
+<tr class="memdesc:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower multiple number of Source. <a href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">More...</a><br /></td></tr>
+<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0">More...</a><br /></td></tr>
+<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">More...</a><br /></td></tr>
+<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> &lt;<a class="el" href="a00080.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/noise.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>rounding value to specific boundings </p>
+<p>&lt;<a class="el" href="a00096.html" title="GLM_GTC_round ">glm/gtc/round.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga14e5975486b2b36e747861d3c65b16c1"></a>
+<a class="anchor" id="gac84898c466e609cdd2e81d9ba907d9e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::ceilMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Higher multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafe632af669ac57d670ca18e3665a12ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::ceilMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Higher multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa73c7690c787086fa3ac1c312264acab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga76ec9b214ea1376fe09a903e34bab847"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::ceilPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9eafb9dbedf84e5cece65c2fe9d5631d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::floorMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6912db42d43873fe1dedb3aed2b7a239"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::floorMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac80f6519c31baae10d8d7bea6735d1fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::floorPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6a5a8f6dd1b2f755e4572bd039062c37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::floorPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf7444a7b2eb524f373463ceba76b9326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50ea5d5dc33fffba39ad6002a3784123"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ae705574ef3e3ebfb4f537d8d285c48"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaebf826fbb6e0a70eeaab0792d89b25ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the value is a power of two number. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad454e4c8d8cd73ddc7de855f733a1465"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isPowerOfTwo </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Classic perlin noise. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
+<p>Return true if the value is a power of two number. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7e103ffffacb322fe2d4863c372ae2fd"></a>
+<a class="anchor" id="ga6739d1de04b2cea7c78675b365644bce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::roundMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga10a8ab7b254257b607b6a3fc68c3e661"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::roundMultiple </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p</em>, </td>
+ <td class="paramname"><em>Source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>rep</em>&#160;</td>
+ <td class="paramname"><em>Multiple</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -101,27 +595,59 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Periodic perlin noise. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6d24a9e3abe3e6a908661b43acb8efe0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::roundPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is the closet to the input value. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga05f5ab240c9a3fdeee353636e464c285"></a>
+<a class="anchor" id="gae95be3b384f3bbd00c6c1cf0a1f96485"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::simplex </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::roundPowerOfTwo </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Simplex noise. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
+<p>Return the power of two number which value is the closet to the input value. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00176.html b/3rdparty/glm/doc/api/a00176.html
index 9e3287c082b..356f6bc25d0 100644
--- a/3rdparty/glm/doc/api/a00176.html
+++ b/3rdparty/glm/doc/api/a00176.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_packing</title>
+<title>0.9.9 API documenation: GLM_GTC_type_aligned</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,941 +33,754 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_packing<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_type_aligned<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Aligned types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &amp;v)</td></tr>
-<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
-<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &amp;v)</td></tr>
-<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
-<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
-<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &amp;v)</td></tr>
-<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
-<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
-<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &amp;v)</td></tr>
-<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &amp;v)</td></tr>
-<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
-<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
-<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga780a35f764020f553a9601a3fcdcd059"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga780a35f764020f553a9601a3fcdcd059"></a>
+typedef aligned_highp_bvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a></td></tr>
+<tr class="memdesc:ga780a35f764020f553a9601a3fcdcd059"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of boolean. <br /></td></tr>
+<tr class="separator:ga780a35f764020f553a9601a3fcdcd059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae766b317c5afec852bfb3d74a3c54bc8"></a>
+typedef aligned_highp_bvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a></td></tr>
+<tr class="memdesc:gae766b317c5afec852bfb3d74a3c54bc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of boolean. <br /></td></tr>
+<tr class="separator:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1964ba70d15915e5b710926decbb3cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae1964ba70d15915e5b710926decbb3cb"></a>
+typedef aligned_highp_bvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a></td></tr>
+<tr class="memdesc:gae1964ba70d15915e5b710926decbb3cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of boolean. <br /></td></tr>
+<tr class="separator:gae1964ba70d15915e5b710926decbb3cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae164a1f7879f828bc35e50b79d786b05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae164a1f7879f828bc35e50b79d786b05"></a>
+typedef aligned_highp_bvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a></td></tr>
+<tr class="memdesc:gae164a1f7879f828bc35e50b79d786b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of boolean. <br /></td></tr>
+<tr class="separator:gae164a1f7879f828bc35e50b79d786b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4974f46ae5a19415d91316960a53617a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4974f46ae5a19415d91316960a53617a"></a>
+typedef aligned_highp_dvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a></td></tr>
+<tr class="memdesc:ga4974f46ae5a19415d91316960a53617a"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga4974f46ae5a19415d91316960a53617a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18d859f87122b2b3b2992ffe86dbebc0"></a>
+typedef aligned_highp_dvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a></td></tr>
+<tr class="memdesc:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa37869eea77d28419b2fb0ff70b69bf0"></a>
+typedef aligned_highp_dvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a></td></tr>
+<tr class="memdesc:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a9f0a4795ccc442fa9901845026f9f5"></a>
+typedef aligned_highp_dvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a></td></tr>
+<tr class="memdesc:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac5ffd9396890b64e707ba47c76435dfe"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">aligned_highp_bvec2</a></td></tr>
+<tr class="memdesc:gac5ffd9396890b64e707ba47c76435dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision bool numbers. <a href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">More...</a><br /></td></tr>
+<tr class="separator:gac5ffd9396890b64e707ba47c76435dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3adba191018d2de1dc2834a2ff5597d7"></a>
+typedef tvec3&lt; bool, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">aligned_highp_bvec3</a></td></tr>
+<tr class="memdesc:ga3adba191018d2de1dc2834a2ff5597d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision bool numbers. <br /></td></tr>
+<tr class="separator:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga903a73cf8ae1f4bc24583b81adf024dc"></a>
+typedef tvec4&lt; bool, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">aligned_highp_bvec4</a></td></tr>
+<tr class="memdesc:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision bool numbers. <br /></td></tr>
+<tr class="separator:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga186b90f0ba86724e080d237f3f5f9417"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">aligned_highp_dvec2</a></td></tr>
+<tr class="memdesc:ga186b90f0ba86724e080d237f3f5f9417"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high double-precision floating-point numbers. <a href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">More...</a><br /></td></tr>
+<tr class="separator:ga186b90f0ba86724e080d237f3f5f9417"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga54f6765716867706643bde03211d600f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga54f6765716867706643bde03211d600f">aligned_highp_dvec3</a></td></tr>
+<tr class="memdesc:ga54f6765716867706643bde03211d600f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high double-precision floating-point numbers. <a href="a00176.html#ga54f6765716867706643bde03211d600f">More...</a><br /></td></tr>
+<tr class="separator:ga54f6765716867706643bde03211d600f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e5a90ed034e9e7414ff71e66a79139e"></a>
+typedef tvec4&lt; double, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">aligned_highp_dvec4</a></td></tr>
+<tr class="memdesc:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">aligned_highp_ivec2</a></td></tr>
+<tr class="memdesc:gab6ddd9d1421eb610ddeb32705fed7026"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision signed integer numbers. <a href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">More...</a><br /></td></tr>
+<tr class="separator:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">aligned_highp_ivec3</a></td></tr>
+<tr class="memdesc:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision signed integer numbers. <a href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">More...</a><br /></td></tr>
+<tr class="separator:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e3286a27b19f25801fb435b6d1225fb"></a>
+typedef tvec4&lt; int, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">aligned_highp_ivec4</a></td></tr>
+<tr class="memdesc:ga1e3286a27b19f25801fb435b6d1225fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision signed integer numbers. <br /></td></tr>
+<tr class="separator:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7366a38dc888164e623fc10663e97670"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7366a38dc888164e623fc10663e97670">aligned_highp_uvec2</a></td></tr>
+<tr class="memdesc:ga7366a38dc888164e623fc10663e97670"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high precision unsigned integer numbers. <a href="a00176.html#ga7366a38dc888164e623fc10663e97670">More...</a><br /></td></tr>
+<tr class="separator:ga7366a38dc888164e623fc10663e97670"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga967485a7e963365642ea17de62fe2a3f"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">aligned_highp_uvec3</a></td></tr>
+<tr class="memdesc:ga967485a7e963365642ea17de62fe2a3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high precision unsigned integer numbers. <a href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">More...</a><br /></td></tr>
+<tr class="separator:ga967485a7e963365642ea17de62fe2a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac56a4ce85b6233998139a7c1ac337440"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac56a4ce85b6233998139a7c1ac337440"></a>
+typedef tvec4&lt; uint, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">aligned_highp_uvec4</a></td></tr>
+<tr class="memdesc:gac56a4ce85b6233998139a7c1ac337440"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high precision unsigned integer numbers. <br /></td></tr>
+<tr class="separator:gac56a4ce85b6233998139a7c1ac337440"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea854184b9d574fc5e75b5709a4974e8"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">aligned_highp_vec2</a></td></tr>
+<tr class="memdesc:gaea854184b9d574fc5e75b5709a4974e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of high single-precision floating-point numbers. <a href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">More...</a><br /></td></tr>
+<tr class="separator:gaea854184b9d574fc5e75b5709a4974e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">aligned_highp_vec3</a></td></tr>
+<tr class="memdesc:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of high single-precision floating-point numbers. <a href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">More...</a><br /></td></tr>
+<tr class="separator:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae2938d64c6a46f721681607c2ab3f884"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2938d64c6a46f721681607c2ab3f884"></a>
+typedef tvec4&lt; float, aligned_highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">aligned_highp_vec4</a></td></tr>
+<tr class="memdesc:gae2938d64c6a46f721681607c2ab3f884"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of high single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gae2938d64c6a46f721681607c2ab3f884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76298aed82a439063c3d55980c84aa0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76298aed82a439063c3d55980c84aa0b"></a>
+typedef aligned_highp_ivec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a></td></tr>
+<tr class="memdesc:ga76298aed82a439063c3d55980c84aa0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:ga76298aed82a439063c3d55980c84aa0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4f38fd2c86cee6940986197777b3ca4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4f38fd2c86cee6940986197777b3ca4"></a>
+typedef aligned_highp_ivec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a></td></tr>
+<tr class="memdesc:gae4f38fd2c86cee6940986197777b3ca4"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:gae4f38fd2c86cee6940986197777b3ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32794322d294e5ace7fed4a61896f270"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga32794322d294e5ace7fed4a61896f270"></a>
+typedef aligned_highp_ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a></td></tr>
+<tr class="memdesc:ga32794322d294e5ace7fed4a61896f270"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:ga32794322d294e5ace7fed4a61896f270"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f79eae5927c9033d84617e49f6f34e4"></a>
+typedef aligned_highp_ivec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a></td></tr>
+<tr class="memdesc:ga7f79eae5927c9033d84617e49f6f34e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of signed integer numbers. <br /></td></tr>
+<tr class="separator:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga524c702b82ae7ccaca896d374808c6d7"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">aligned_lowp_bvec2</a></td></tr>
+<tr class="memdesc:ga524c702b82ae7ccaca896d374808c6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision bool numbers. <a href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">More...</a><br /></td></tr>
+<tr class="separator:ga524c702b82ae7ccaca896d374808c6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21fb6238997b4a21848411b16bc34e93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga21fb6238997b4a21848411b16bc34e93"></a>
+typedef tvec3&lt; bool, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">aligned_lowp_bvec3</a></td></tr>
+<tr class="memdesc:ga21fb6238997b4a21848411b16bc34e93"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision bool numbers. <br /></td></tr>
+<tr class="separator:ga21fb6238997b4a21848411b16bc34e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0b5e3c64f8dbadfc42a2aca5f2da9692"></a>
+typedef tvec4&lt; bool, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">aligned_lowp_bvec4</a></td></tr>
+<tr class="memdesc:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision bool numbers. <br /></td></tr>
+<tr class="separator:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">aligned_lowp_dvec2</a></td></tr>
+<tr class="memdesc:gab70c189b4691715b3f7f0abb35c65b2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low double-precision floating-point numbers. <a href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">More...</a><br /></td></tr>
+<tr class="separator:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">aligned_lowp_dvec3</a></td></tr>
+<tr class="memdesc:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low double-precision floating-point numbers. <a href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">More...</a><br /></td></tr>
+<tr class="separator:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab365ee7cfd19bab449daa8f7eb0ca71"></a>
+typedef tvec4&lt; double, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">aligned_lowp_dvec4</a></td></tr>
+<tr class="memdesc:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad69bf7c406a3cec994307473cb3da032"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad69bf7c406a3cec994307473cb3da032">aligned_lowp_ivec2</a></td></tr>
+<tr class="memdesc:gad69bf7c406a3cec994307473cb3da032"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision signed integer numbers. <a href="a00176.html#gad69bf7c406a3cec994307473cb3da032">More...</a><br /></td></tr>
+<tr class="separator:gad69bf7c406a3cec994307473cb3da032"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">aligned_lowp_ivec3</a></td></tr>
+<tr class="memdesc:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision signed integer numbers. <a href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">More...</a><br /></td></tr>
+<tr class="separator:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad744848a2e4ddd2f041e6ec8d13600ae"></a>
+typedef tvec4&lt; int, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">aligned_lowp_ivec4</a></td></tr>
+<tr class="memdesc:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision signed integer numbers. <br /></td></tr>
+<tr class="separator:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">aligned_lowp_uvec2</a></td></tr>
+<tr class="memdesc:ga15355ffc7ec7931b81ba76736b65e51a"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low precision unsigned integer numbers. <a href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">More...</a><br /></td></tr>
+<tr class="separator:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga48c85299d98e8248f547a2c07ea609cf"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">aligned_lowp_uvec3</a></td></tr>
+<tr class="memdesc:ga48c85299d98e8248f547a2c07ea609cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low precision unsigned integer numbers. <a href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">More...</a><br /></td></tr>
+<tr class="separator:ga48c85299d98e8248f547a2c07ea609cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga40b0e05306f666f835ac97c963302ecb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga40b0e05306f666f835ac97c963302ecb"></a>
+typedef tvec4&lt; uint, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">aligned_lowp_uvec4</a></td></tr>
+<tr class="memdesc:ga40b0e05306f666f835ac97c963302ecb"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low precision unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga40b0e05306f666f835ac97c963302ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">aligned_lowp_vec2</a></td></tr>
+<tr class="memdesc:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of low single-precision floating-point numbers. <a href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">More...</a><br /></td></tr>
+<tr class="separator:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae003f8f3071a8bc734a70c6d4978f968"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">aligned_lowp_vec3</a></td></tr>
+<tr class="memdesc:gae003f8f3071a8bc734a70c6d4978f968"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of low single-precision floating-point numbers. <a href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">More...</a><br /></td></tr>
+<tr class="separator:gae003f8f3071a8bc734a70c6d4978f968"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga689f103781a795e919fddfa47d89170d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga689f103781a795e919fddfa47d89170d"></a>
+typedef tvec4&lt; float, aligned_lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga689f103781a795e919fddfa47d89170d">aligned_lowp_vec4</a></td></tr>
+<tr class="memdesc:ga689f103781a795e919fddfa47d89170d"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of low single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:ga689f103781a795e919fddfa47d89170d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; bool, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">aligned_mediump_bvec2</a></td></tr>
+<tr class="memdesc:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision bool numbers. <a href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">More...</a><br /></td></tr>
+<tr class="separator:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f78cd6d9c5827771e35921b4a92855a"></a>
+typedef tvec3&lt; bool, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">aligned_mediump_bvec3</a></td></tr>
+<tr class="memdesc:ga4f78cd6d9c5827771e35921b4a92855a"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision bool numbers. <br /></td></tr>
+<tr class="separator:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cb80e2d4d351abeadac7b1676a91fd9"></a>
+typedef tvec4&lt; bool, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">aligned_mediump_bvec4</a></td></tr>
+<tr class="memdesc:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision bool numbers. <br /></td></tr>
+<tr class="separator:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; double, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">aligned_mediump_dvec2</a></td></tr>
+<tr class="memdesc:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium double-precision floating-point numbers. <a href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">More...</a><br /></td></tr>
+<tr class="separator:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22efc7f84ab79eef640e00fc59d07478"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; double, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">aligned_mediump_dvec3</a></td></tr>
+<tr class="memdesc:ga22efc7f84ab79eef640e00fc59d07478"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium double-precision floating-point numbers. <a href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">More...</a><br /></td></tr>
+<tr class="separator:ga22efc7f84ab79eef640e00fc59d07478"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad6f422f8871685ee467a575238e4ece4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6f422f8871685ee467a575238e4ece4"></a>
+typedef tvec4&lt; double, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad6f422f8871685ee467a575238e4ece4">aligned_mediump_dvec4</a></td></tr>
+<tr class="memdesc:gad6f422f8871685ee467a575238e4ece4"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium double-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gad6f422f8871685ee467a575238e4ece4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga389d12dcc8d57a444944a72646d17efa"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; int, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">aligned_mediump_ivec2</a></td></tr>
+<tr class="memdesc:ga389d12dcc8d57a444944a72646d17efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision signed integer numbers. <a href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">More...</a><br /></td></tr>
+<tr class="separator:ga389d12dcc8d57a444944a72646d17efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; int, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">aligned_mediump_ivec3</a></td></tr>
+<tr class="memdesc:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision signed integer numbers. <a href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">More...</a><br /></td></tr>
+<tr class="separator:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae640082d0ffdb52fb2d658916c5815db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae640082d0ffdb52fb2d658916c5815db"></a>
+typedef tvec4&lt; int, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">aligned_mediump_ivec4</a></td></tr>
+<tr class="memdesc:gae640082d0ffdb52fb2d658916c5815db"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision signed integer numbers. <br /></td></tr>
+<tr class="separator:gae640082d0ffdb52fb2d658916c5815db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; uint, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">aligned_mediump_uvec2</a></td></tr>
+<tr class="memdesc:ga88c56fde67f035d80b2d0d6d568af30b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium precision unsigned integer numbers. <a href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">More...</a><br /></td></tr>
+<tr class="separator:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; uint, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">aligned_mediump_uvec3</a></td></tr>
+<tr class="memdesc:gaee29d3a28f634b03f0a20e79e600f5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium precision unsigned integer numbers. <a href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">More...</a><br /></td></tr>
+<tr class="separator:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga717763c480dcf3ecf66121426287d08a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga717763c480dcf3ecf66121426287d08a"></a>
+typedef tvec4&lt; uint, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga717763c480dcf3ecf66121426287d08a">aligned_mediump_uvec4</a></td></tr>
+<tr class="memdesc:ga717763c480dcf3ecf66121426287d08a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium precision unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga717763c480dcf3ecf66121426287d08a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; float, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">aligned_mediump_vec2</a></td></tr>
+<tr class="memdesc:ga57549b1281d99ba1825b1ef0dae6227d"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of medium single-precision floating-point numbers. <a href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">More...</a><br /></td></tr>
+<tr class="separator:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; float, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">aligned_mediump_vec3</a></td></tr>
+<tr class="memdesc:gaed5d4dd2755cc5141a9533488edd9e82"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of medium single-precision floating-point numbers. <a href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">More...</a><br /></td></tr>
+<tr class="separator:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4ab68a8c32574bff14e62f95185d295"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ab68a8c32574bff14e62f95185d295"></a>
+typedef tvec4&lt; float, aligned_mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">aligned_mediump_vec4</a></td></tr>
+<tr class="memdesc:gae4ab68a8c32574bff14e62f95185d295"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of medium single-precision floating-point numbers. <br /></td></tr>
+<tr class="separator:gae4ab68a8c32574bff14e62f95185d295"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ff8ed402c93d280ff0597c1c5e7c548"></a>
+typedef aligned_highp_uvec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a></td></tr>
+<tr class="memdesc:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga074137e3be58528d67041c223d49f398"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga074137e3be58528d67041c223d49f398"></a>
+typedef aligned_highp_uvec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a></td></tr>
+<tr class="memdesc:ga074137e3be58528d67041c223d49f398"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga074137e3be58528d67041c223d49f398"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a8d9c3046f89d854eb758adfa0811c0"></a>
+typedef aligned_highp_uvec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a></td></tr>
+<tr class="memdesc:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf842c45eea186170c267a328e3f3b7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf842c45eea186170c267a328e3f3b7d"></a>
+typedef aligned_highp_uvec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a></td></tr>
+<tr class="memdesc:gabf842c45eea186170c267a328e3f3b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of unsigned integer numbers. <br /></td></tr>
+<tr class="separator:gabf842c45eea186170c267a328e3f3b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga05e6d4c908965d04191c2070a8d0a65e"></a>
+typedef aligned_highp_vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a></td></tr>
+<tr class="memdesc:ga05e6d4c908965d04191c2070a8d0a65e"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 component vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0682462f8096a226773e20fac993cde5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0682462f8096a226773e20fac993cde5"></a>
+typedef aligned_highp_vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a></td></tr>
+<tr class="memdesc:ga0682462f8096a226773e20fac993cde5"><td class="mdescLeft">&#160;</td><td class="mdescRight">2 components vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga0682462f8096a226773e20fac993cde5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf643b66664e0cd3c48759ae66c2bd0"></a>
+typedef aligned_highp_vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a></td></tr>
+<tr class="memdesc:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">3 components vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga85d89e83cb8137e1be1446de8c3b643a"></a>
+typedef aligned_highp_vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a></td></tr>
+<tr class="memdesc:ga85d89e83cb8137e1be1446de8c3b643a"><td class="mdescLeft">&#160;</td><td class="mdescRight">4 components vector of floating-point numbers. <br /></td></tr>
+<tr class="separator:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>This extension provides a set of function to convert vertors to packed formats. </p>
-<p>&lt;<a class="el" href="a00087.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/packing.hpp</a>&gt; need to be included to use these features. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga4944ad465ff950e926d49621f916c78d"></a>
+<p>Aligned types. </p>
+<p>&lt;<a class="el" href="a00106.html" title="GLM_GTC_type_aligned ">glm/gtc/type_aligned.hpp</a>&gt; need to be included to use these features. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gac5ffd9396890b64e707ba47c76435dfe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packF2x11_1x10 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;bool, aligned_highp&gt; aligned_highp_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. </p>
-<p>Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec3 unpackF2x11_1x10(uint32 const &amp; p) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga43f2093b6ff192a79058ff7834fc3528"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packHalf1x16 </td>
- <td>(</td>
- <td class="paramtype">float&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
+<p>2 components vector of high precision bool numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
-<p>Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packHalf2x16(vec2 const &amp; v) </dd>
-<dd>
-uint64 packHalf4x16(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>Definition at line <a class="el" href="a00106_source.html#l00121">121</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gafe2f7b39caf8f5ec555e1c059ec530e6"></a>
+<a class="anchor" id="ga186b90f0ba86724e080d237f3f5f9417"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::packHalf4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;double, aligned_highp&gt; aligned_highp_dvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. </p>
-<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packHalf1x16(float const &amp; v) </dd>
-<dd>
-uint32 packHalf2x16(vec2 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
-</div>
-</div>
-<a class="anchor" id="ga06ecb6afb902dba45419008171db9023"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packI3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packI3x10_1x2(uvec4 const &amp; v) </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-ivec4 unpackI3x10_1x2(uint32 const &amp; p) </dd></dl>
+<p>Definition at line <a class="el" href="a00106_source.html#l00085">85</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab22f8bcfdb5fc65af4701b25f143c1af"></a>
+<a class="anchor" id="ga54f6765716867706643bde03211d600f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm1x16 </td>
- <td>(</td>
- <td class="paramtype">float&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;double, aligned_highp&gt; aligned_highp_dvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the normalized floating-point value v into 16-bit integer value. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packSnorm2x16(vec2 const &amp; v) </dd>
-<dd>
-uint64 packSnorm4x16(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
-</div>
-</div>
-<a class="anchor" id="gae3592e0795e62aaa1865b3a10496a7a1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint8 glm::packSnorm1x8 </td>
- <td>(</td>
- <td class="paramtype">float&#160;</td>
- <td class="paramname"><em>s</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>First, converts the normalized floating-point value v into 8-bit integer value. </p>
-<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
-<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packSnorm2x8(vec2 const &amp; v) </dd>
-<dd>
-uint32 packSnorm4x8(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>Definition at line <a class="el" href="a00106_source.html#l00147">147</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga6be3cfb2cce3702f03e91bbeb5286d7e"></a>
+<a class="anchor" id="gab6ddd9d1421eb610ddeb32705fed7026"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;int, aligned_highp&gt; aligned_highp_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint8 packSnorm1x8(float const &amp; v) </dd>
-<dd>
-uint32 packSnorm4x8(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00097">97</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab997545661877d2c7362a5084d3897d3"></a>
+<a class="anchor" id="gae234a3a1c6288fa5e2d4c78c5e39002e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;int, aligned_highp&gt; aligned_highp_ivec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. </p>
-<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)</p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec4 unpackSnorm3x10_1x2(uint32 const &amp; p) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
-<dd>
-uint32 packI3x10_1x2(ivec4 const &amp; v) </dd></dl>
+<p>3 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00159">159</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga358943934d21da947d5bcc88c2ab7832"></a>
+<a class="anchor" id="ga7366a38dc888164e623fc10663e97670"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::packSnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;uint, aligned_highp&gt; aligned_highp_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packSnorm1x16(float const &amp; v) </dd>
-<dd>
-uint32 packSnorm2x16(vec2 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00109">109</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gada3d88d59f0f458f9c51a9fd359a4bc0"></a>
+<a class="anchor" id="ga967485a7e963365642ea17de62fe2a3f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packU3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;uint, aligned_highp&gt; aligned_highp_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packI3x10_1x2(ivec4 const &amp; v) </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-ivec4 unpackU3x10_1x2(uint32 const &amp; p) </dd></dl>
+<p>3 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00171">171</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga9f82737bf2a44bedff1d286b76837886"></a>
+<a class="anchor" id="gaea854184b9d574fc5e75b5709a4974e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm1x16 </td>
- <td>(</td>
- <td class="paramtype">float&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;float, aligned_highp&gt; aligned_highp_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the normalized floating-point value v into a 16-bit integer value. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packSnorm1x16(float const &amp; v) </dd>
-<dd>
-uint64 packSnorm4x16(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00073">73</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4b2fa60df3460403817d28b082ee0736"></a>
+<a class="anchor" id="ga55fb20d4e73a65c834b5861fc6cf4c36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm1x8 </td>
- <td>(</td>
- <td class="paramtype">float&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;float, aligned_highp&gt; aligned_highp_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the normalized floating-point value v into a 8-bit integer value. </p>
-<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packUnorm2x8(vec2 const &amp; v) </dd>
-<dd>
-uint32 packUnorm4x8(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of high single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00135">135</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga9a666b1c688ab54100061ed06526de6e"></a>
+<a class="anchor" id="ga524c702b82ae7ccaca896d374808c6d7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;bool, aligned_lowp&gt; aligned_lowp_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint8 packUnorm1x8(float const &amp; v) </dd>
-<dd>
-uint32 packUnorm4x8(vec4 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of low precision bool numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00129">129</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga8a1ee625d2707c60530fb3fca2980b19"></a>
+<a class="anchor" id="gab70c189b4691715b3f7f0abb35c65b2f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;double, aligned_lowp&gt; aligned_lowp_dvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. </p>
-<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)</p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec4 unpackUnorm3x10_1x2(uint32 const &amp; p) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
-<dd>
-uint32 packI3x10_1x2(ivec4 const &amp; v) </dd></dl>
+<p>2 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00093">93</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga1f63c264e7ab63264e2b2a99fd393897"></a>
+<a class="anchor" id="gabeec3d5ec99c196f4c0eb03b58d486ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::packUnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;double, aligned_lowp&gt; aligned_lowp_dvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packUnorm1x16(float const &amp; v) </dd>
-<dd>
-uint32 packUnorm2x16(vec2 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00155">155</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2b1fd1e854705b1345e98409e0a25e50"></a>
+<a class="anchor" id="gad69bf7c406a3cec994307473cb3da032"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;int, aligned_lowp&gt; aligned_lowp_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packF2x11_1x10(vec3 const &amp; v) </dd></dl>
+<p>2 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00105">105</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac37dedaba24b00adb4ec6e8f92c19dbf"></a>
+<a class="anchor" id="gaa8615b4ce4fdf176c631b34d2d31d81b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackHalf1x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;int, aligned_lowp&gt; aligned_lowp_ivec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackHalf2x16(uint32 const &amp; v) </dd>
-<dd>
-vec4 unpackHalf4x16(uint64 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00167">167</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga57dfc41b2eb20b0ac00efae7d9c49dcd"></a>
+<a class="anchor" id="ga15355ffc7ec7931b81ba76736b65e51a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackHalf4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;uint, aligned_lowp&gt; aligned_lowp_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
-<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackHalf1x16(uint16 const &amp; v) </dd>
-<dd>
-vec2 unpackHalf2x16(uint32 const &amp; v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00117">117</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga9a05330e5490be0908d3b117d82aff56"></a>
+<a class="anchor" id="ga48c85299d98e8248f547a2c07ea609cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;uint, aligned_lowp&gt; aligned_lowp_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. </p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
-<dd>
-vec4 unpackSnorm3x10_1x2(uint32 const &amp; p); </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const &amp; p); </dd></dl>
+<p>3 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00179">179</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga96dd15002370627a443c835ab03a766c"></a>
+<a class="anchor" id="ga3cfc38b4ea9b9bd1e9f02dcc14eab367"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;float, aligned_lowp&gt; aligned_lowp_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned scalar.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackSnorm2x16(uint32 p) </dd>
-<dd>
-vec4 unpackSnorm4x16(uint64 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm1x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of low single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00081">81</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4851ff86678aa1c7ace9d67846894285"></a>
+<a class="anchor" id="gae003f8f3071a8bc734a70c6d4978f968"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;float, aligned_lowp&gt; aligned_lowp_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </p>
-<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackSnorm2x8(uint16 p) </dd>
-<dd>
-vec4 unpackSnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of low single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00143">143</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga8b128e89be449fc71336968a66bf6e1a"></a>
+<a class="anchor" id="ga77d37d7c80c7faa2eecb3eba7677750e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;bool, aligned_mediump&gt; aligned_mediump_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackSnorm1x8(uint8 p) </dd>
-<dd>
-vec4 unpackSnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of medium precision bool numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00125">125</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga7a4fbf79be9740e3c57737bc2af05e5b"></a>
+<a class="anchor" id="gaba56f2b76d320379cdf7c37e0d4b03bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;double, aligned_mediump&gt; aligned_mediump_dvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-vec4 unpackUnorm3x10_1x2(uint32 const &amp; p)) </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const &amp; p) </dd>
-<dd>
-uvec4 unpackU3x10_1x2(uint32 const &amp; p) </dd></dl>
+<p>2 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00089">89</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaaddf9c353528fe896106f7181219c7f4"></a>
+<a class="anchor" id="ga22efc7f84ab79eef640e00fc59d07478"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;double, aligned_mediump&gt; aligned_mediump_dvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackSnorm1x16(uint16 p) </dd>
-<dd>
-vec2 unpackSnorm2x16(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00151">151</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga48df3042a7d079767f5891a1bfd8a60a"></a>
+<a class="anchor" id="ga389d12dcc8d57a444944a72646d17efa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;int, aligned_mediump&gt; aligned_mediump_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. </p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const &amp; v) </dd>
-<dd>
-vec4 unpackSnorm3x10_1x2(uint32 const &amp; p); </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const &amp; p); </dd></dl>
+<p>2 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00101">101</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga83d34160a5cb7bcb5339823210fc7501"></a>
+<a class="anchor" id="ga5b16f7e81555819bf0f80f4db4bc0b26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;int, aligned_mediump&gt; aligned_mediump_ivec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </p>
-<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackUnorm2x16(uint32 p) </dd>
-<dd>
-vec4 unpackUnorm4x16(uint64 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00163">163</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga1319207e30874fb4931a9ee913983ee1"></a>
+<a class="anchor" id="ga88c56fde67f035d80b2d0d6d568af30b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;uint, aligned_mediump&gt; aligned_mediump_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a single 8-bit integer to a normalized floating-point value. </p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackUnorm2x8(uint16 p) </dd>
-<dd>
-vec4 unpackUnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00113">113</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga637cbe3913dd95c6e7b4c99c61bd611f"></a>
+<a class="anchor" id="gaee29d3a28f634b03f0a20e79e600f5df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;uint, aligned_mediump&gt; aligned_mediump_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackUnorm1x8(uint8 v) </dd>
-<dd>
-vec4 unpackUnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00175">175</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5156d3060355fe332865da2c7f78815f"></a>
+<a class="anchor" id="ga57549b1281d99ba1825b1ef0dae6227d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt;float, aligned_mediump&gt; aligned_mediump_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const &amp; v) </dd>
-<dd>
-vec4 unpackInorm3x10_1x2(uint32 const &amp; p)) </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const &amp; p) </dd>
-<dd>
-uvec4 unpackU3x10_1x2(uint32 const &amp; p) </dd></dl>
+<p>2 components vector of medium single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00077">77</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2ae149c5d2473ac1e5f347bb654a242d"></a>
+<a class="anchor" id="gaed5d4dd2755cc5141a9533488edd9e82"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt;float, aligned_mediump&gt; aligned_mediump_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackUnorm1x16(uint16 p) </dd>
-<dd>
-vec2 unpackUnorm2x16(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00106_source.html#l00139">139</a> of file <a class="el" href="a00106_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00177.html b/3rdparty/glm/doc/api/a00177.html
index 797dd88400f..ef0678a407c 100644
--- a/3rdparty/glm/doc/api/a00177.html
+++ b/3rdparty/glm/doc/api/a00177.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_quaternion</title>
+<title>0.9.9 API documenation: GLM_GTC_type_precision</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,847 +33,3863 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_quaternion<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_type_precision<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines specific C++-based precision types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class quatType&gt; </td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
-<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
-<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)</td></tr>
-<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
+<tr class="memdesc:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 32 bit single-precision floating-point scalar. <a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">More...</a><br /></td></tr>
+<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
+<tr class="memdesc:ga1fedd5d29746afdaf2d3303a4442704e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">More...</a><br /></td></tr>
+<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
+<tr class="memdesc:gaf3a5016bf360977ce114deb2e01ae10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">More...</a><br /></td></tr>
+<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
+<tr class="memdesc:gad5f1043adbe803928fe7bf1a90a1f767"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x3 matrix. <a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">More...</a><br /></td></tr>
+<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
+<tr class="memdesc:ga5ed667d0247cce477f013ea31982843d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x4 matrix. <a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">More...</a><br /></td></tr>
+<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
+<tr class="memdesc:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">More...</a><br /></td></tr>
+<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
+<tr class="memdesc:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x2 matrix. <a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">More...</a><br /></td></tr>
+<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
+<tr class="memdesc:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">More...</a><br /></td></tr>
+<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
+<tr class="memdesc:ga0100666c90176eaba80e49357d123c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x4 matrix. <a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">More...</a><br /></td></tr>
+<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
+<tr class="memdesc:ga797fa3ab16e04456174c36238e091341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#ga797fa3ab16e04456174c36238e091341">More...</a><br /></td></tr>
+<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
+<tr class="memdesc:ga27f897bdfe4bbded9481b8947553d1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x2 matrix. <a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">More...</a><br /></td></tr>
+<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
+<tr class="memdesc:gaa69e73ffb01a52499071391d395908fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x3 matrix. <a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">More...</a><br /></td></tr>
+<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
+<tr class="memdesc:gafe2e08549805a7ded26da2a868bedbf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">More...</a><br /></td></tr>
+<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
+<tr class="memdesc:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point quaternion. <a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">More...</a><br /></td></tr>
+<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
+<tr class="memdesc:ga3174a49dc84a977cad7012a62f4af02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 1 components. <a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">More...</a><br /></td></tr>
+<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
+<tr class="memdesc:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 2 components. <a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">More...</a><br /></td></tr>
+<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
+<tr class="memdesc:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 3 components. <a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">More...</a><br /></td></tr>
+<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
+<tr class="memdesc:gaeb25dbb0261f82cb08da23e26d343704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 4 components. <a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">More...</a><br /></td></tr>
+<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
+<tr class="memdesc:ga1d794d240091678f602e8de225b8d8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 64 bit double-precision floating-point scalar. <a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">More...</a><br /></td></tr>
+<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
+<tr class="memdesc:ga74b9918c90ea60ce58b3979cde963a38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x2 matrix. <a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">More...</a><br /></td></tr>
+<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
+<tr class="memdesc:gaeb817419c76a0766c88713d2754e6cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x2 matrix. <a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">More...</a><br /></td></tr>
+<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
+<tr class="memdesc:ga87d256f4719417e311cd0ea14264678d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x3 matrix. <a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">More...</a><br /></td></tr>
+<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
+<tr class="memdesc:gafb18822e2eac88fa861a76cefd25d550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 2x4 matrix. <a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">More...</a><br /></td></tr>
+<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
+<tr class="memdesc:ga68894201dd511792a7af6cff7b5adf71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x3 matrix. <a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">More...</a><br /></td></tr>
+<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
+<tr class="memdesc:ga11e5684b10e098f573ff484c1a569ae2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x2 matrix. <a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">More...</a><br /></td></tr>
+<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
+<tr class="memdesc:gae1a5081181c96cc37ce9418f6e856cb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x3 matrix. <a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">More...</a><br /></td></tr>
+<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
+<tr class="memdesc:gad37a55a8ce1154083a721b4ecfd55293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 3x4 matrix. <a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">More...</a><br /></td></tr>
+<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
+<tr class="memdesc:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x4 matrix. <a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">More...</a><br /></td></tr>
+<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
+<tr class="memdesc:gaa669dfb59031a441de19b34a92704d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x2 matrix. <a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">More...</a><br /></td></tr>
+<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
+<tr class="memdesc:gaba137814a509704937746cc1e82edc32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x3 matrix. <a href="a00177.html#gaba137814a509704937746cc1e82edc32">More...</a><br /></td></tr>
+<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
+<tr class="memdesc:ga489163773b021f1800a33cc2fa730c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point 4x4 matrix. <a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">More...</a><br /></td></tr>
+<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
+<tr class="memdesc:ga14c583bd625eda8cf4935a14d5dd544d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point quaternion. <a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">More...</a><br /></td></tr>
+<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
+<tr class="memdesc:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 1 components. <a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">More...</a><br /></td></tr>
+<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
+<tr class="memdesc:gafaad77b464b5a35626c31205ac6780e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 2 components. <a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">More...</a><br /></td></tr>
+<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
+<tr class="memdesc:gafacc3614bb1136a7756293e67d34de22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 3 components. <a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">More...</a><br /></td></tr>
+<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
+<tr class="memdesc:ga8723186104dc02eb85da386105fba75f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default double-precision floating-point vector of 4 components. <a href="a00177.html#ga8723186104dc02eb85da386105fba75f">More...</a><br /></td></tr>
+<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
+<tr class="memdesc:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 32 bit single-precision floating-point scalar. <a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">More...</a><br /></td></tr>
+<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
+<tr class="memdesc:ga41d579d81c3d98edd0532244fa02da77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 32 bit single-precision floating-point scalar. <a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">More...</a><br /></td></tr>
+<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
+<tr class="memdesc:gab5596d48586414c91ccb270962dc14d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 64 bit double-precision floating-point scalar. <a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">More...</a><br /></td></tr>
+<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
+<tr class="memdesc:ga6957c7b22f405683bb276554ca40dc37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default 64 bit double-precision floating-point scalar. <a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">More...</a><br /></td></tr>
+<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
+<tr class="memdesc:gabb01d4ff646ee07241934b1a0cc0f985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">More...</a><br /></td></tr>
+<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
+<tr class="memdesc:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x2 matrix. <a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">More...</a><br /></td></tr>
+<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
+<tr class="memdesc:gaf17b2604c0d92bffb92375d8aa588756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x3 matrix. <a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">More...</a><br /></td></tr>
+<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
+<tr class="memdesc:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 2x4 matrix. <a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">More...</a><br /></td></tr>
+<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
+<tr class="memdesc:ga5165fbee2d78f342950265b69a07353d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">More...</a><br /></td></tr>
+<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
+<tr class="memdesc:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x2 matrix. <a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">More...</a><br /></td></tr>
+<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
+<tr class="memdesc:gad339e25c32fe6665acf028f26c1b3e22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x3 matrix. <a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">More...</a><br /></td></tr>
+<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
+<tr class="memdesc:gab04bc97371cb6b5f54b3688e0c81578b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 3x4 matrix. <a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">More...</a><br /></td></tr>
+<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
+<tr class="memdesc:gab3f31d867df4874e42172ebf188a3ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">More...</a><br /></td></tr>
+<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
+<tr class="memdesc:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x2 matrix. <a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">More...</a><br /></td></tr>
+<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
+<tr class="memdesc:ga1a11c170f030ab34ddf037714e936cba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x3 matrix. <a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">More...</a><br /></td></tr>
+<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
+<tr class="memdesc:gabd79752ff357d83b49136b6299ea62d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point 4x4 matrix. <a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">More...</a><br /></td></tr>
+<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
+<tr class="memdesc:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 1 components. <a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">More...</a><br /></td></tr>
+<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
+<tr class="memdesc:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 2 components. <a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">More...</a><br /></td></tr>
+<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
+<tr class="memdesc:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 3 components. <a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">More...</a><br /></td></tr>
+<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
+<tr class="memdesc:ga981b63d5c5f7233a29364e0a968d139b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default single-precision floating-point vector of 4 components. <a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">More...</a><br /></td></tr>
+<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
+<tr class="memdesc:ga0336abc2604dd2c20c30e036454b64f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer type. <a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">More...</a><br /></td></tr>
+<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
+<tr class="memdesc:ga727675ac6b5d2fc699520e0059735e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer type. <a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">More...</a><br /></td></tr>
+<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
+<tr class="memdesc:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer type. <a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">More...</a><br /></td></tr>
+<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
+<tr class="memdesc:gacb88796f2d08ef253d0345aff20c3aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer type. <a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">More...</a><br /></td></tr>
+<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
+<tr class="memdesc:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer type. <a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">More...</a><br /></td></tr>
+<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
+<tr class="memdesc:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer type. <a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">More...</a><br /></td></tr>
+<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
+<tr class="memdesc:ga84ed04b4e0de18c977e932d617e7c223"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer type. <a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">More...</a><br /></td></tr>
+<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
+<tr class="memdesc:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">More...</a><br /></td></tr>
+<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
+<tr class="memdesc:ga226a8d52b4e3f77aaa6231135e886aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer type. <a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">More...</a><br /></td></tr>
+<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
+<tr class="memdesc:ga73c6abb280a45feeff60f9accaee91f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer type. <a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">More...</a><br /></td></tr>
+<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
+<tr class="memdesc:gad0549c902a96a7164e4ac858d5f39dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer type. <a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">More...</a><br /></td></tr>
+<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
+<tr class="memdesc:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer type. <a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">More...</a><br /></td></tr>
+<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
+<tr class="memdesc:ga8e62c883d13f47015f3b70ed88751369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">More...</a><br /></td></tr>
+<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
+<tr class="memdesc:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">More...</a><br /></td></tr>
+<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
+<tr class="memdesc:ga0c181fdf06a309691999926b6690c969"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga0c181fdf06a309691999926b6690c969">More...</a><br /></td></tr>
+<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
+<tr class="memdesc:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">More...</a><br /></td></tr>
+<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
+<tr class="memdesc:ga746dc6da204f5622e395f492997dbf57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">More...</a><br /></td></tr>
+<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
+<tr class="memdesc:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">More...</a><br /></td></tr>
+<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
+<tr class="memdesc:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">More...</a><br /></td></tr>
+<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
+<tr class="memdesc:gae978599c9711ac263ba732d4ac225b0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">More...</a><br /></td></tr>
+<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
+<tr class="memdesc:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">More...</a><br /></td></tr>
+<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
+<tr class="memdesc:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">More...</a><br /></td></tr>
+<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
+<tr class="memdesc:ga97432f9979e73e66567361fd01e4cffb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">More...</a><br /></td></tr>
+<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
+<tr class="memdesc:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">More...</a><br /></td></tr>
+<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
+<tr class="memdesc:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit signed integer type. <a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">More...</a><br /></td></tr>
+<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
+<tr class="memdesc:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer scalar type. <a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">More...</a><br /></td></tr>
+<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
+<tr class="memdesc:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer vector of 2 components type. <a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">More...</a><br /></td></tr>
+<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
+<tr class="memdesc:ga973b226a9914db682c9372fc761fb535"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer vector of 3 components type. <a href="a00177.html#ga973b226a9914db682c9372fc761fb535">More...</a><br /></td></tr>
+<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
+<tr class="memdesc:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer vector of 4 components type. <a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">More...</a><br /></td></tr>
+<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
+<tr class="memdesc:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">More...</a><br /></td></tr>
+<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
+<tr class="memdesc:ga4cca6bbd117c45f046291fc8e9d03765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer scalar type. <a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">More...</a><br /></td></tr>
+<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
+<tr class="memdesc:ga3c12cef4135603fd77d8fda85808730c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer vector of 2 components type. <a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">More...</a><br /></td></tr>
+<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
+<tr class="memdesc:ga40cd3f391c03512f158d10a70062264e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer vector of 3 components type. <a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">More...</a><br /></td></tr>
+<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
+<tr class="memdesc:gae3364a8090e7e1408056e00403dfecab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer vector of 4 components type. <a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">More...</a><br /></td></tr>
+<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
+<tr class="memdesc:gadb997e409103d4da18abd837e636a496"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit signed integer type. <a href="a00177.html#gadb997e409103d4da18abd837e636a496">More...</a><br /></td></tr>
+<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
+<tr class="memdesc:ga5b4a3e499ee165efc0dc05add9c48235"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer scalar type. <a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">More...</a><br /></td></tr>
+<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
+<tr class="memdesc:gade69872a31f066e5ae212f1af6008edb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer vector of 2 components type. <a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">More...</a><br /></td></tr>
+<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
+<tr class="memdesc:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer vector of 3 components type. <a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">More...</a><br /></td></tr>
+<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
+<tr class="memdesc:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer vector of 4 components type. <a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">More...</a><br /></td></tr>
+<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
+<tr class="memdesc:ga302ec977b0c0c3ea245b6c9275495355"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit signed integer type. <a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">More...</a><br /></td></tr>
+<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
+<tr class="memdesc:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer scalar type. <a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">More...</a><br /></td></tr>
+<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
+<tr class="memdesc:ga6414484477e4c1b4863cf91af8fd4185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer vector of 2 components type. <a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">More...</a><br /></td></tr>
+<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
+<tr class="memdesc:gaf4b5993e794e252607f91535b62a7e0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer vector of 3 components type. <a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">More...</a><br /></td></tr>
+<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
+<tr class="memdesc:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer vector of 4 components type. <a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">More...</a><br /></td></tr>
+<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
+<tr class="memdesc:ga302041c186d0d028bea31b711fe16759"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit signed integer type. <a href="a00177.html#ga302041c186d0d028bea31b711fe16759">More...</a><br /></td></tr>
+<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
+<tr class="memdesc:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit signed integer type. <a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">More...</a><br /></td></tr>
+<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
+<tr class="memdesc:ga8df669f4e7698dfe0c0354d92578d74f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">More...</a><br /></td></tr>
+<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
+<tr class="memdesc:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit signed integer type. <a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">More...</a><br /></td></tr>
+<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
+<tr class="memdesc:gaff5189f97f9e842d9636a0f240001b2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit signed integer type. <a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">More...</a><br /></td></tr>
+<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
+<tr class="memdesc:ga322a7d7d2c2c68994dc872a33de63c61"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit signed integer type. <a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">More...</a><br /></td></tr>
+<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
+<tr class="memdesc:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit signed integer type. <a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">More...</a><br /></td></tr>
+<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
+<tr class="memdesc:ga4bf09d8838a86866b39ee6e109341645"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit signed integer type. <a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">More...</a><br /></td></tr>
+<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
+<tr class="memdesc:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer type. <a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">More...</a><br /></td></tr>
+<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
+<tr class="memdesc:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer type. <a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">More...</a><br /></td></tr>
+<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
+<tr class="memdesc:ga354736e0c645099cd44c42fb2f87c2b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer type. <a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">More...</a><br /></td></tr>
+<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
+<tr class="memdesc:ga552a6bde5e75984efb0f863278da2e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer type. <a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">More...</a><br /></td></tr>
+<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
+<tr class="memdesc:ga698e36b01167fc0f037889334dce8def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer type. <a href="a00177.html#ga698e36b01167fc0f037889334dce8def">More...</a><br /></td></tr>
+<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
+<tr class="memdesc:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer type. <a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">More...</a><br /></td></tr>
+<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
+<tr class="memdesc:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer type. <a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">More...</a><br /></td></tr>
+<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
+<tr class="memdesc:ga0350631d35ff800e6133ac6243b13cbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer type. <a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">More...</a><br /></td></tr>
+<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
+<tr class="memdesc:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer type. <a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">More...</a><br /></td></tr>
+<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
+<tr class="memdesc:gaebf341fc4a5be233f7dde962c2e33847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer type. <a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">More...</a><br /></td></tr>
+<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
+<tr class="memdesc:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer type. <a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">More...</a><br /></td></tr>
+<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
+<tr class="memdesc:ga119c41d73fe9977358174eb3ac1035a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer type. <a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">More...</a><br /></td></tr>
+<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
+<tr class="memdesc:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer type. <a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">More...</a><br /></td></tr>
+<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
+<tr class="memdesc:ga4f072ada9552e1e480bbb3b1acde5250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer type. <a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">More...</a><br /></td></tr>
+<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
+<tr class="memdesc:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer type. <a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">More...</a><br /></td></tr>
+<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
+<tr class="memdesc:ga1b09f03da7ac43055c68a349d5445083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer type. <a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">More...</a><br /></td></tr>
+<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
+<tr class="memdesc:gad68bfd9f881856fc863a6ebca0b67f78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer type. <a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">More...</a><br /></td></tr>
+<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
+<tr class="memdesc:ga91c4815f93177eb423362fd296a87e9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer type. <a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">More...</a><br /></td></tr>
+<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
+<tr class="memdesc:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer type. <a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">More...</a><br /></td></tr>
+<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
+<tr class="memdesc:gaf1b735b4b1145174f4e4167d13778f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer type. <a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">More...</a><br /></td></tr>
+<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
+<tr class="memdesc:gaa212b805736a759998e312cbdd550fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer type. <a href="a00177.html#gaa212b805736a759998e312cbdd550fae">More...</a><br /></td></tr>
+<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
+<tr class="memdesc:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer type. <a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">More...</a><br /></td></tr>
+<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
+<tr class="memdesc:gaf49470869e9be2c059629b250619804e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer type. <a href="a00177.html#gaf49470869e9be2c059629b250619804e">More...</a><br /></td></tr>
+<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
+<tr class="memdesc:ga667b2ece2b258be898812dc2177995d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer type. <a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">More...</a><br /></td></tr>
+<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
+<tr class="memdesc:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer type. <a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">More...</a><br /></td></tr>
+<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
+<tr class="memdesc:gaf5e94bf2a20af7601787c154751dc2e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer type. <a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">More...</a><br /></td></tr>
+<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
+<tr class="memdesc:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer type. <a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">More...</a><br /></td></tr>
+<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
+<tr class="memdesc:gacf1ded173e1e2d049c511d095b259e21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer type. <a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">More...</a><br /></td></tr>
+<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
+<tr class="memdesc:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer type. <a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">More...</a><br /></td></tr>
+<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
+<tr class="memdesc:ga80e72fe94c88498537e8158ba7591c54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer type. <a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">More...</a><br /></td></tr>
+<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
+<tr class="memdesc:ga5244cef85d6e870e240c76428a262ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer type. <a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">More...</a><br /></td></tr>
+<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
+<tr class="memdesc:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer type. <a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">More...</a><br /></td></tr>
+<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
+<tr class="memdesc:ga7b968f2b86a0442a89c7359171e1d866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer type. <a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">More...</a><br /></td></tr>
+<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
+<tr class="memdesc:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer type. <a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">More...</a><br /></td></tr>
+<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
+<tr class="memdesc:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer type. <a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">More...</a><br /></td></tr>
+<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
+<tr class="memdesc:ga6d7b3789ecb932c26430009478cac7ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer type. <a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">More...</a><br /></td></tr>
+<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
+<tr class="memdesc:ga9df98857be695d5a30cb30f5bfa38a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">More...</a><br /></td></tr>
+<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
+<tr class="memdesc:ga1bd0e914158bf03135f8a317de6debe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">More...</a><br /></td></tr>
+<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
+<tr class="memdesc:ga2af9490085ae3bdf36a544e9dd073610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">More...</a><br /></td></tr>
+<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
+<tr class="memdesc:gad1213a22bbb9e4107f07eaa4956f8281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">More...</a><br /></td></tr>
+<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
+<tr class="memdesc:ga2885a6c89916911e418c06bb76b9bdbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">More...</a><br /></td></tr>
+<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
+<tr class="memdesc:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer type. <a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">More...</a><br /></td></tr>
+<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
+<tr class="memdesc:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">More...</a><br /></td></tr>
+<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
+<tr class="memdesc:gaf4dae276fd29623950de14a6ca2586b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer type. <a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">More...</a><br /></td></tr>
+<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
+<tr class="memdesc:ga30652709815ad9404272a31957daa59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga30652709815ad9404272a31957daa59e">More...</a><br /></td></tr>
+<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
+<tr class="memdesc:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer type. <a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">More...</a><br /></td></tr>
+<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
+<tr class="memdesc:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">More...</a><br /></td></tr>
+<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
+<tr class="memdesc:gadfe65c78231039e90507770db50c98c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer type. <a href="a00177.html#gadfe65c78231039e90507770db50c98c7">More...</a><br /></td></tr>
+<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
+<tr class="memdesc:gaa2d7acc0adb536fab71fe261232a40ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit unsigned integer type. <a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">More...</a><br /></td></tr>
+<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
+<tr class="memdesc:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer scalar type. <a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">More...</a><br /></td></tr>
+<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
+<tr class="memdesc:ga426030555085ed6c39a54e73afbef962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga426030555085ed6c39a54e73afbef962">More...</a><br /></td></tr>
+<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
+<tr class="memdesc:ga7f5dbe417199277e449b8db0210acb71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer vector of 3 components type. <a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">More...</a><br /></td></tr>
+<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
+<tr class="memdesc:gaf524c9059f0342668d8eea359bcceaae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer vector of 4 components type. <a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">More...</a><br /></td></tr>
+<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
+<tr class="memdesc:ga8165913e068444f7842302d40ba897b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit unsigned integer type. <a href="a00177.html#ga8165913e068444f7842302d40ba897b9">More...</a><br /></td></tr>
+<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
+<tr class="memdesc:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer scalar type. <a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">More...</a><br /></td></tr>
+<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
+<tr class="memdesc:ga0741d40e2b0fea4f1c50cb325114f075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">More...</a><br /></td></tr>
+<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
+<tr class="memdesc:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer vector of 3 components type. <a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">More...</a><br /></td></tr>
+<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
+<tr class="memdesc:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer vector of 4 components type. <a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">More...</a><br /></td></tr>
+<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
+<tr class="memdesc:gaf3f312156984c365e9f65620354da70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit unsigned integer type. <a href="a00177.html#gaf3f312156984c365e9f65620354da70b">More...</a><br /></td></tr>
+<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
+<tr class="memdesc:ga793c9293cc687a0e342396a377c5df77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer scalar type. <a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">More...</a><br /></td></tr>
+<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
+<tr class="memdesc:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">More...</a><br /></td></tr>
+<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
+<tr class="memdesc:ga3460933f040f59f0fedb29df1e9be71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer vector of 3 components type. <a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">More...</a><br /></td></tr>
+<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
+<tr class="memdesc:gafb6ca34df28889a5db9d244aed375411"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer vector of 4 components type. <a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">More...</a><br /></td></tr>
+<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
+<tr class="memdesc:gaecc7082561fc9028b844b6cf3d305d36"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit unsigned integer type. <a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">More...</a><br /></td></tr>
+<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
+<tr class="memdesc:ga92e0c191e5cc326255284d08be3af7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer scalar type. <a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">More...</a><br /></td></tr>
+<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
+<tr class="memdesc:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer vector of 2 components type. <a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">More...</a><br /></td></tr>
+<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
+<tr class="memdesc:ga8ca60d0ba6d438892be6017f43747661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer vector of 3 components type. <a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">More...</a><br /></td></tr>
+<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
+<tr class="memdesc:ga114e005014d910bea07954eee24b7efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer vector of 4 components type. <a href="a00177.html#ga114e005014d910bea07954eee24b7efb">More...</a><br /></td></tr>
+<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
+<tr class="memdesc:ga13471cbbe74e4303a57f3743d007b74d"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit unsigned integer type. <a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">More...</a><br /></td></tr>
+<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
+<tr class="memdesc:ga91f91f411080c37730856ff5887f5bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">16 bit unsigned integer type. <a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">More...</a><br /></td></tr>
+<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
+<tr class="memdesc:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit unsigned integer type. <a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">More...</a><br /></td></tr>
+<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
+<tr class="memdesc:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit unsigned integer type. <a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">More...</a><br /></td></tr>
+<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
+<tr class="memdesc:gab630f76c26b50298187f7889104d4b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit unsigned integer type. <a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">More...</a><br /></td></tr>
+<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
+<tr class="memdesc:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit unsigned integer type. <a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">More...</a><br /></td></tr>
+<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
+<tr class="memdesc:ga36475e31b1992cfde54c1a6f5a148865"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit unsigned integer type. <a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">More...</a><br /></td></tr>
+<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
+<tr class="memdesc:ga28d97808322d3c92186e4a0c067d7e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 bit unsigned integer type. <a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">More...</a><br /></td></tr>
+<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines a templated quaternion type and several quaternion operations. </p>
-<p>&lt;<a class="el" href="a00094.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gad4a4448baedb198b2b1e7880d2544dc9"></a>
+<p>Defines specific C++-based precision types. </p>
+<p><a class="el" href="a00157.html">Precision types</a> defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.</p>
+<p>&lt;<a class="el" href="a00122.html" title="GLM_GTC_type_precision ">glm/gtc/type_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::angle </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef float32 f32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the quaternion rotation angle. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default 32 bit single-precision floating-point scalar. </p>
+<p>32 bit single-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01505">1505</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga37ae19405f1ccf766f27e4fcd035d859"></a>
+<a class="anchor" id="ga1fedd5d29746afdaf2d3303a4442704e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::angleAxis </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; f32mat2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02449">2449</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf3a5016bf360977ce114deb2e01ae10a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>axis</em>&#160;</td>
+ <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; f32mat2x2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02413">2413</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad5f1043adbe803928fe7bf1a90a1f767"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tmat2x3&lt; f32, defaultp &gt; f32mat2x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a quaternion from an angle and a normalized axis. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
- <tr><td class="paramname">axis</td><td>Axis of the quaternion, must be normalized.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point 2x3 matrix. </p>
+<p>Single-precision floating-point 2x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02417">2417</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0b3e87a13b2708154b72259e50789a19"></a>
+<a class="anchor" id="ga5ed667d0247cce477f013ea31982843d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::axis </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat2x4&lt; f32, defaultp &gt; f32mat2x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q rotation axis. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point 2x4 matrix. </p>
+<p>Single-precision floating-point 2x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02421">2421</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab1ace864fbf189ffa368950001808a3c"></a>
+<a class="anchor" id="gaf4377997b299a287f7ab3358c9bd3e4c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::conjugate </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; f32mat3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q conjugate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02453">2453</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac54dfc83de465a2d03e90d342242ab3d"></a>
+<a class="anchor" id="ga8709a1ea268fa69bdf1e11616d7fbaf1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::dot </td>
- <td>(</td>
- <td class="paramtype">quatType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tmat3x2&lt; f32, defaultp &gt; f32mat3x2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x2 matrix. </p>
+<p>Single-precision floating-point 3x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02425">2425</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1e4c52bb824ca16c6e2e5b03635669d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">quatType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; f32mat3x3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02429">2429</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0100666c90176eaba80e49357d123c7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tmat3x4&lt; f32, defaultp &gt; f32mat3x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point 3x4 matrix. </p>
+<p>Single-precision floating-point 3x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02433">2433</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac187115710365e0b2902220b9611e7b6"></a>
+<a class="anchor" id="ga797fa3ab16e04456174c36238e091341"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::equal </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; f32mat4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02457">2457</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27f897bdfe4bbded9481b8947553d1ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef tmat4x2&lt; f32, defaultp &gt; f32mat4x2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x2 matrix. </p>
+<p>Single-precision floating-point 4x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02437">2437</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa69e73ffb01a52499071391d395908fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tmat4x3&lt; f32, defaultp &gt; f32mat4x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x == y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point 4x3 matrix. </p>
+<p>Single-precision floating-point 4x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02441">2441</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gadb92ec1c1b0dd6b024176a73fbef3e64"></a>
+<a class="anchor" id="gafe2e08549805a7ded26da2a868bedbf5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::eulerAngles </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; f32mat4x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns euler angles, yitch as x, yaw as y, roll as z. </p>
-<p>The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02445">2445</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga09d21a588ae425ac7517ea65cc59a5ae"></a>
+<a class="anchor" id="ga6966c0cb4673928c9c9da2e91006d2c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::greaterThan </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tquat&lt; f32, defaultp &gt; f32quat</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point quaternion. </p>
+<p>Single-precision floating-point quaternion.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02461">2461</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3174a49dc84a977cad7012a62f4af02f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef tvec1&lt; f32, defaultp &gt; f32vec1</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 1 components. </p>
+<p>Single-precision floating-point vector of 1 component.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02397">2397</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae0cb53ea6fe3d977fe588ce423d57cc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec2&lt; f32, defaultp &gt; f32vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x &gt; y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default single-precision floating-point vector of 2 components. </p>
+<p>Single-precision floating-point vector of 2 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02401">2401</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0906a221a2037519fcf316ea5c1e3b3e"></a>
+<a class="anchor" id="ga19d5e0d4d3d6d226c9c6c0f39756f9ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::greaterThanEqual </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tvec3&lt; f32, defaultp &gt; f32vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 3 components. </p>
+<p>Single-precision floating-point vector of 3 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02405">2405</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaeb25dbb0261f82cb08da23e26d343704"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef tvec4&lt; f32, defaultp &gt; f32vec4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 4 components. </p>
+<p>Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02409">2409</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef float64 f64</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x &gt;= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default 64 bit double-precision floating-point scalar. </p>
+<p>64 bit double-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01509">1509</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5f47300c024c2d809944e6ac661d6d14"></a>
+<a class="anchor" id="ga74b9918c90ea60ce58b3979cde963a38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::inverse </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat2x2&lt; f64, defaultp &gt; f64mat2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q inverse. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default double-precision floating-point 2x2 matrix. </p>
+<p>Double-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02555">2555</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac682181783027544c8d251b4d3a60cf8"></a>
+<a class="anchor" id="gaeb817419c76a0766c88713d2754e6cb3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::length </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat2x2&lt; f64, defaultp &gt; f64mat2x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the length of the quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default double-precision floating-point 2x2 matrix. </p>
+<p>Double-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02519">2519</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5692804fa4db9e762a1c19b607e54435"></a>
+<a class="anchor" id="ga87d256f4719417e311cd0ea14264678d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::lerp </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tmat2x3&lt; f64, defaultp &gt; f64mat2x3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 2x3 matrix. </p>
+<p>Double-precision floating-point 2x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02523">2523</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb18822e2eac88fa861a76cefd25d550"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef tmat2x4&lt; f64, defaultp &gt; f64mat2x4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 2x4 matrix. </p>
+<p>Double-precision floating-point 2x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02527">2527</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga68894201dd511792a7af6cff7b5adf71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
+ <td class="memname">typedef tmat3x3&lt; f64, defaultp &gt; f64mat3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x3 matrix. </p>
+<p>Double-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02559">2559</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga11e5684b10e098f573ff484c1a569ae2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tmat3x2&lt; f64, defaultp &gt; f64mat3x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Linear interpolation of two quaternions. </p>
-<p>The interpolation is oriented.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A quaternion </td></tr>
- <tr><td class="paramname">y</td><td>A quaternion </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined in the range [0, 1]. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default double-precision floating-point 3x2 matrix. </p>
+<p>Double-precision floating-point 3x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02531">2531</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga91a40d16a3b5bb47d71ac1a3fb688ffa"></a>
+<a class="anchor" id="gae1a5081181c96cc37ce9418f6e856cb6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::lessThan </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tmat3x3&lt; f64, defaultp &gt; f64mat3x3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x3 matrix. </p>
+<p>Double-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02535">2535</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad37a55a8ce1154083a721b4ecfd55293"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt; f64, defaultp &gt; f64mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x4 matrix. </p>
+<p>Double-precision floating-point 3x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02539">2539</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga219c683b0aa29f4f482f76d77d5c9e95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef tmat4x4&lt; f64, defaultp &gt; f64mat4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x4 matrix. </p>
+<p>Double-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02563">2563</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa669dfb59031a441de19b34a92704d57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt; f64, defaultp &gt; f64mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x2 matrix. </p>
+<p>Double-precision floating-point 4x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02543">2543</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaba137814a509704937746cc1e82edc32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt; f64, defaultp &gt; f64mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x3 matrix. </p>
+<p>Double-precision floating-point 4x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02547">2547</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga489163773b021f1800a33cc2fa730c3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; f64, defaultp &gt; f64mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x4 matrix. </p>
+<p>Double-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02551">2551</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga14c583bd625eda8cf4935a14d5dd544d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tquat&lt; f64, defaultp &gt; f64quat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point quaternion. </p>
+<p>Double-precision floating-point quaternion.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02567">2567</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac5b04f32ae3084a9131a0851e7f4cfae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec1&lt; f64, defaultp &gt; f64vec1</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison result of x &lt; y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default double-precision floating-point vector of 1 components. </p>
+<p>Double-precision floating-point vector of 1 component.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02503">2503</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga7c81996ed2724f26fe76faf352c76294"></a>
+<a class="anchor" id="gafaad77b464b5a35626c31205ac6780e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::lessThanEqual </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tvec2&lt; f64, defaultp &gt; f64vec2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point vector of 2 components. </p>
+<p>Double-precision floating-point vector of 2 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02507">2507</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafacc3614bb1136a7756293e67d34de22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef tvec3&lt; f64, defaultp &gt; f64vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point vector of 3 components. </p>
+<p>Double-precision floating-point vector of 3 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02511">2511</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8723186104dc02eb85da386105fba75f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec4&lt; f64, defaultp &gt; f64vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x &lt;= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default double-precision floating-point vector of 4 components. </p>
+<p>Double-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02515">2515</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gae04c39422eb4e450ec8c4f45a1057b40"></a>
+<a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::mat3_cast </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::float32 float32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a quaternion to a 3 * 3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default 32 bit single-precision floating-point scalar. </p>
+<p>32 bit single-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00095_source.html#l00153">glm::toMat3()</a>.</p>
+<p>Definition at line <a class="el" href="a00108_source.html#l00055">55</a> of file <a class="el" href="a00108_source.html">type_float.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga14bb2ddf028c91542763eb6f2bba47ef"></a>
+<a class="anchor" id="ga41d579d81c3d98edd0532244fa02da77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::mat4_cast </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::float32 float32_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a quaternion to a 4 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default 32 bit single-precision floating-point scalar. </p>
+<p>32 bit single-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00095_source.html#l00160">glm::toMat4()</a>.</p>
+<p>Definition at line <a class="el" href="a00039_source.html#l01497">1497</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga31cc82178742c36450f5662bd4fb30b0"></a>
+<a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::mix </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::float64 float64</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 64 bit double-precision floating-point scalar. </p>
+<p>64 bit double-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00056">56</a> of file <a class="el" href="a00108_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6957c7b22f405683bb276554ca40dc37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef detail::float64 float64_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 64 bit double-precision floating-point scalar. </p>
+<p>64 bit double-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01501">1501</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabb01d4ff646ee07241934b1a0cc0f985"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
+ <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; fmat2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02379">2379</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga74ac2e71b650162d8f7cb2a70c2f6711"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; fmat2x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Spherical linear interpolation of two quaternions. </p>
-<p>The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A quaternion </td></tr>
- <tr><td class="paramname">y</td><td>A quaternion </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd>
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
<dd>
-- slerp(tquat&lt;T, P&gt; const &amp; x, tquat&lt;T, P&gt; const &amp; y, T const &amp; a) </dd></dl>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02343">2343</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf17b2604c0d92bffb92375d8aa588756"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3&lt; f32, defaultp &gt; fmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x3 matrix. </p>
+<p>Single-precision floating-point 2x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02347">2347</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga709c97c20efa24ff1d9e83cd437b8ed5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4&lt; f32, defaultp &gt; fmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x4 matrix. </p>
+<p>Single-precision floating-point 2x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02351">2351</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5165fbee2d78f342950265b69a07353d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; fmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02383">2383</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9f20af6e8eca2abdcde08408948cc1ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2&lt; f32, defaultp &gt; fmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x2 matrix. </p>
+<p>Single-precision floating-point 3x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02355">2355</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad339e25c32fe6665acf028f26c1b3e22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; fmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02359">2359</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab04bc97371cb6b5f54b3688e0c81578b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4&lt; f32, defaultp &gt; fmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x4 matrix. </p>
+<p>Single-precision floating-point 3x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02363">2363</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab3f31d867df4874e42172ebf188a3ebd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; fmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02387">2387</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab0082a25f19f02d2d0af0fcbe5ead732"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2&lt; f32, defaultp &gt; fmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x2 matrix. </p>
+<p>Single-precision floating-point 4x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02367">2367</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1a11c170f030ab34ddf037714e936cba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3&lt; f32, defaultp &gt; fmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x3 matrix. </p>
+<p>Single-precision floating-point 4x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02371">2371</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabd79752ff357d83b49136b6299ea62d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; fmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02375">2375</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga10d8bd3c923a5386efcf25a4117fd84f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; float, defaultp &gt; fvec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 1 components. </p>
+<p>Single-precision floating-point vector of 1 component.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02327">2327</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf9f4173dd9e8b2d0b663c6f80ed09ff6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; float, defaultp &gt; fvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 2 components. </p>
+<p>Single-precision floating-point vector of 2 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02331">2331</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4ef2d77dcab241b1ef83f09edb2f1084"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; float, defaultp &gt; fvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 3 components. </p>
+<p>Single-precision floating-point vector of 3 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02335">2335</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga981b63d5c5f7233a29364e0a968d139b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; float, defaultp &gt; fvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 4 components. </p>
+<p>Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l02339">2339</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0336abc2604dd2c20c30e036454b64f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 highp_i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00232">232</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga727675ac6b5d2fc699520e0059735e25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 highp_i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00236">236</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac25db6d2b1e2a0f351b77ba3409ac4cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 highp_i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00240">240</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacb88796f2d08ef253d0345aff20c3aee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 highp_i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00228">228</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5fde0fa4a3852a9dd5d637a92ee74718"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 highp_int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00200">200</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacaea06d0a79ef3172e887a7a6ba434ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 highp_int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00216">216</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga84ed04b4e0de18c977e932d617e7c223"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 highp_int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00204">204</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2c71c8bd9e2fe7d2e93ca250d8b6157f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 highp_int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00220">220</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga226a8d52b4e3f77aaa6231135e886aac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 highp_int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00208">208</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga73c6abb280a45feeff60f9accaee91f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 highp_int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00224">224</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad0549c902a96a7164e4ac858d5f39dbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 highp_int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00196">196</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1085c50dd8fbeb5e7e609b1c127492a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 highp_int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00212">212</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8e62c883d13f47015f3b70ed88751369"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 highp_u16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<p>High precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00841">841</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7a6f1929464dcc680b16381a4ee5f2cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 highp_u32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<p>High precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00845">845</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c181fdf06a309691999926b6690c969"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 highp_u64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<p>High precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00849">849</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacd1259f3a9e8d2a9df5be2d74322ef9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 highp_u8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<p>High precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00837">837</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga746dc6da204f5622e395f492997dbf57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 highp_uint16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<p>High precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00809">809</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacf54c3330ef60aa3d16cb676c7bcb8c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 highp_uint16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<p>High precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00825">825</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga256b12b650c3f2fb86878fd1c5db8bc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 highp_uint32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<p>High precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00813">813</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae978599c9711ac263ba732d4ac225b0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 highp_uint32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<p>High precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00829">829</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa38d732f5d4a7bc42a1b43b9d3c141ce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 highp_uint64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<p>High precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00817">817</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga35b6bcb22ac6d1e4a85440f5b69bdf86"></a>
+<a class="anchor" id="gaa46172d7dc1c7ffe3e78107ff88adf08"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::normalize </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint64 highp_uint64_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the normalized quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 64 bit unsigned integer type. </p>
+<p>High precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00833">833</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga484c4633f7c05d8e29ee8b452350f539"></a>
+<a class="anchor" id="ga97432f9979e73e66567361fd01e4cffb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;bool, P&gt; glm::notEqual </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::uint8 highp_uint8</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<p>High precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00805">805</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac4e00a26a2adb5f2c0a7096810df29e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="memname">typedef detail::uint8 highp_uint8_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<p>High precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00821">821</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3ab5fe184343d394fb6c2723c3ee3699"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::int16 i16</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x != y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00289">289</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2c08b93a4261c10748fd4d2104346f17"></a>
+<a class="anchor" id="ga28f03a39ac56c70f9bf3ada11cb60e3b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::pitch </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec1&lt; i16, defaultp &gt; i16vec1</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns pitch value of euler angles expressed in radians. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Default precision 16 bit signed integer scalar type. </p>
+<p>16 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00444">444</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga950f8acff3e33bbda77895a3dcb7e5ce"></a>
+<a class="anchor" id="ga110bec18ca44c41c76c3c9e4d7b5bd79"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::quat_cast </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2&lt; i16, defaultp &gt; i16vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 3 * 3 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 16 bit signed integer vector of 2 components type. </p>
+<p>16 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00095_source.html#l00167">glm::toQuat()</a>.</p>
+<p>Definition at line <a class="el" href="a00039_source.html#l00448">448</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga3e4615e9884dd0f41f5617b9848a5d9c"></a>
+<a class="anchor" id="ga973b226a9914db682c9372fc761fb535"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::quat_cast </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3&lt; i16, defaultp &gt; i16vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 4 * 4 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 16 bit signed integer vector of 3 components type. </p>
+<p>16 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00452">452</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4fd705376c6c1fd667be0055a0ea58ec"></a>
+<a class="anchor" id="gad73e5e905dcf2d8cab002b4ab46e9426"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::roll </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec4&lt; i16, defaultp &gt; i16vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns roll value of euler angles expressed in radians. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Default precision 16 bit signed integer vector of 4 components type. </p>
+<p>16 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00456">456</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaa8f42979c921e450ff2812fb43c25702"></a>
+<a class="anchor" id="ga96faea43ac5f875d2d3ffbf8d213e3eb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="memname">typedef detail::int32 i32</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00293">293</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4cca6bbd117c45f046291fc8e9d03765"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; i32, defaultp &gt; i32vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer scalar type. </p>
+<p>32 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00523">523</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3c12cef4135603fd77d8fda85808730c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; i32, defaultp &gt; i32vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer vector of 2 components type. </p>
+<p>32 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00527">527</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga40cd3f391c03512f158d10a70062264e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="memname">typedef tvec3&lt; i32, defaultp &gt; i32vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer vector of 3 components type. </p>
+<p>32 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00531">531</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae3364a8090e7e1408056e00403dfecab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>axis</em>&#160;</td>
+ <td class="memname">typedef tvec4&lt; i32, defaultp &gt; i32vec4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer vector of 4 components type. </p>
+<p>32 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00535">535</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gadb997e409103d4da18abd837e636a496"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::int64 i64</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Rotates a quaternion from a vector of 3 components axis and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">q</td><td>Source orientation </td></tr>
- <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
- <tr><td class="paramname">axis</td><td>Axis of the rotation</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00297">297</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga22b438c7252f3fa5b773c9882471652a"></a>
+<a class="anchor" id="ga5b4a3e499ee165efc0dc05add9c48235"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::slerp </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tvec1&lt; i64, defaultp &gt; i64vec1</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer scalar type. </p>
+<p>64 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00682">682</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade69872a31f066e5ae212f1af6008edb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef tvec2&lt; i64, defaultp &gt; i64vec2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer vector of 2 components type. </p>
+<p>64 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00686">686</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9ece7c77c7bca7a6b824ef9c600f5e5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
+ <td class="memname">typedef tvec3&lt; i64, defaultp &gt; i64vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer vector of 3 components type. </p>
+<p>64 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00690">690</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9756e45c8f80329257f3cbdabc3bd73c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec4&lt; i64, defaultp &gt; i64vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Spherical linear interpolation of two quaternions. </p>
-<p>The interpolation always take the short path and the rotation is performed at constant speed.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A quaternion </td></tr>
- <tr><td class="paramname">y</td><td>A quaternion </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 64 bit signed integer vector of 4 components type. </p>
+<p>64 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00694">694</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga724a5df282b70cec0a6cb0d6dcddb6d6"></a>
+<a class="anchor" id="ga302ec977b0c0c3ea245b6c9275495355"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::yaw </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::int8 i8</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns yaw value of euler angles expressed in radians. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00285">285</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab2329c5c14ff5a03b1ddec039e2c7409"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; i8, defaultp &gt; i8vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer scalar type. </p>
+<p>8 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00364">364</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6414484477e4c1b4863cf91af8fd4185"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; i8, defaultp &gt; i8vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer vector of 2 components type. </p>
+<p>8 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00368">368</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf4b5993e794e252607f91535b62a7e0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; i8, defaultp &gt; i8vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer vector of 3 components type. </p>
+<p>8 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00372">372</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga50e58885aee2cf01bb3ba472c5b1697e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; i8, defaultp &gt; i8vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer vector of 4 components type. </p>
+<p>8 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00376">376</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00207">207</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae8f5e3e964ca2ae240adc2c0d74adede"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00272">272</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00208">208</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga042ef09ff2f0cb24a36f541bcb3a3710"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00276">276</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00209">209</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga322a7d7d2c2c68994dc872a33de63c61"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00280">280</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00206">206</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4bf09d8838a86866b39ee6e109341645"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00268">268</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga392b673fd10847bfb78fb808c6cf8ff7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 lowp_i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00136">136</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7ff73a45cea9613ebf1a9fad0b9f82ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 lowp_i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00140">140</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga354736e0c645099cd44c42fb2f87c2b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 lowp_i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00144">144</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga552a6bde5e75984efb0f863278da2e54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 lowp_i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00132">132</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga698e36b01167fc0f037889334dce8def"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 lowp_int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00104">104</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8b2cd8d31eb345b2d641d9261c38db1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 lowp_int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00120">120</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga864aabca5f3296e176e0c3ed9cc16b02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 lowp_int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00108">108</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0350631d35ff800e6133ac6243b13cbc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 lowp_int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00124">124</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf645b1a60203b39c0207baff5e3d8c3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 lowp_int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00112">112</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaebf341fc4a5be233f7dde962c2e33847"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 lowp_int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00128">128</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga760bcf26fdb23a2c3ecad3c928a19ae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 lowp_int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00100">100</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga119c41d73fe9977358174eb3ac1035a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 lowp_int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00116">116</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga504ce1631cb2ac02fcf1d44d8c2aa126"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 lowp_u16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00741">741</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4f072ada9552e1e480bbb3b1acde5250"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 lowp_u32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00745">745</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga30069d1f02b19599cbfadf98c23ac6ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 lowp_u64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00749">749</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1b09f03da7ac43055c68a349d5445083"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 lowp_u8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00737">737</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad68bfd9f881856fc863a6ebca0b67f78"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 lowp_uint16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00707">707</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga91c4815f93177eb423362fd296a87e9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 lowp_uint16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00724">724</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa6a5b461bbf5fe20982472aa51896d4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 lowp_uint32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00711">711</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf1b735b4b1145174f4e4167d13778f9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 lowp_uint32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00728">728</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa212b805736a759998e312cbdd550fae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 lowp_uint64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00715">715</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8dd3a3281ae5c970ffe0c41d538aa153"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 lowp_uint64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00732">732</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf49470869e9be2c059629b250619804e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 lowp_uint8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00703">703</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga667b2ece2b258be898812dc2177995d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 lowp_uint8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00720">720</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga62a17cddeb4dffb4e18fe3aea23f051a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 mediump_i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00184">184</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf5e94bf2a20af7601787c154751dc2e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 mediump_i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00188">188</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3ebcb1f6d8d8387253de8bccb058d77f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 mediump_i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00192">192</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacf1ded173e1e2d049c511d095b259e21"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 mediump_i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00180">180</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gadff3608baa4b5bd3ed28f95c1c2c345d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 mediump_int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00152">152</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga80e72fe94c88498537e8158ba7591c54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 mediump_int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00168">168</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5244cef85d6e870e240c76428a262ae8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 mediump_int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00156">156</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga26fc7ced1ad7ca5024f1c973c8dc9180"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 mediump_int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00172">172</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b968f2b86a0442a89c7359171e1d866"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 mediump_int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00160">160</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac3bc41bcac61d1ba8f02a6f68ce23f64"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 mediump_int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00176">176</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6fbd69cbdaa44345bff923a2cf63de7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 mediump_int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00148">148</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6d7b3789ecb932c26430009478cac7ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 mediump_int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00164">164</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9df98857be695d5a30cb30f5bfa38a80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 mediump_u16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00791">791</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1bd0e914158bf03135f8a317de6debe9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 mediump_u32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00795">795</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2af9490085ae3bdf36a544e9dd073610"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 mediump_u64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00799">799</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad1213a22bbb9e4107f07eaa4956f8281"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 mediump_u8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00787">787</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2885a6c89916911e418c06bb76b9bdbb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 mediump_uint16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00759">759</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3963b1050fc65a383ee28e3f827b6e3e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 mediump_uint16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00775">775</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga34dd5ec1988c443bae80f1b20a8ade5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 mediump_uint32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00763">763</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf4dae276fd29623950de14a6ca2586b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 mediump_uint32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00779">779</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga30652709815ad9404272a31957daa59e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 mediump_uint64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00767">767</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b170dd4a8f38448a2dc93987c7875e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 mediump_uint64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00783">783</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1fa92a233b9110861cdbc8c2ccf0b5a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 mediump_uint8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00755">755</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gadfe65c78231039e90507770db50c98c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 mediump_uint8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00771">771</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa2d7acc0adb536fab71fe261232a40ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 u16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit unsigned integer type. </p>
+<p>Default precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00898">898</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaefa2ce8fbdbe89baffd262f46f2d5907"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; u16, defaultp &gt; u16vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01053">1053</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga426030555085ed6c39a54e73afbef962"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; u16, defaultp &gt; u16vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01057">1057</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7f5dbe417199277e449b8db0210acb71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; u16, defaultp &gt; u16vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01061">1061</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf524c9059f0342668d8eea359bcceaae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; u16, defaultp &gt; u16vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01065">1065</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8165913e068444f7842302d40ba897b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 u32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit unsigned integer type. </p>
+<p>Default precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00902">902</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga913a8bd51e4ebccd30ad488de3c18da9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; u32, defaultp &gt; u32vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01132">1132</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0741d40e2b0fea4f1c50cb325114f075"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; u32, defaultp &gt; u32vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01136">1136</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad9b52e1c271cb9c8bfae6365d3e38a23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; u32, defaultp &gt; u32vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01140">1140</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga155ac7e9e454e2b1f73d11e1e28a0fd6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; u32, defaultp &gt; u32vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01144">1144</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf3f312156984c365e9f65620354da70b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 u64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit unsigned integer type. </p>
+<p>Default precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00906">906</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga793c9293cc687a0e342396a377c5df77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; u64, defaultp &gt; u64vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01291">1291</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2204827de9d4ee7fa92ef497093f7d6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; u64, defaultp &gt; u64vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01295">1295</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3460933f040f59f0fedb29df1e9be71c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; u64, defaultp &gt; u64vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01299">1299</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb6ca34df28889a5db9d244aed375411"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; u64, defaultp &gt; u64vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l01303">1303</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaecc7082561fc9028b844b6cf3d305d36"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 u8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit unsigned integer type. </p>
+<p>Default precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00894">894</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga92e0c191e5cc326255284d08be3af7c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1&lt; u8, defaultp &gt; u8vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00973">973</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga61667c99caf60ce6c48ebbbac72bd91d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2&lt; u8, defaultp &gt; u8vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00977">977</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ca60d0ba6d438892be6017f43747661"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3&lt; u8, defaultp &gt; u8vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00981">981</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga114e005014d910bea07954eee24b7efb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4&lt; u8, defaultp &gt; u8vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00985">985</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 uint16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit unsigned integer type. </p>
+<p>Default precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00212">212</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga91f91f411080c37730856ff5887f5bcf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 uint16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit unsigned integer type. </p>
+<p>Default precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00881">881</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 uint32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit unsigned integer type. </p>
+<p>Default precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00213">213</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2171d9dc1fefb1c82e2817f45b622eac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 uint32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit unsigned integer type. </p>
+<p>Default precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00885">885</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 uint64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit unsigned integer type. </p>
+<p>Default precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00214">214</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3999d3e7ff22025c16ddb601e14dfdee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 uint64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit unsigned integer type. </p>
+<p>Default precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00889">889</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 uint8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit unsigned integer type. </p>
+<p>Default precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00111_source.html#l00211">211</a> of file <a class="el" href="a00111_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga28d97808322d3c92186e4a0c067d7e8e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 uint8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit unsigned integer type. </p>
+<p>Default precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00039_source.html#l00877">877</a> of file <a class="el" href="a00039_source.html">fwd.hpp</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00178.html b/3rdparty/glm/doc/api/a00178.html
index 353671b650a..8041d30bd24 100644
--- a/3rdparty/glm/doc/api/a00178.html
+++ b/3rdparty/glm/doc/api/a00178.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_random</title>
+<title>0.9.9 API documenation: GLM_GTC_type_ptr</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,222 +33,463 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_random<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_type_ptr<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Handles the interaction between pointers and vector, matrix types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
-<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
-<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
-<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
-<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template&lt;typename genTYpe &gt; </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
-<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
-<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga52a16e333fef7e33ca740779482a8693"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga52a16e333fef7e33ca740779482a8693">More...</a><br /></td></tr>
+<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gadb29e510762e1042069cb28bf24ae990"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gadb29e510762e1042069cb28bf24ae990">More...</a><br /></td></tr>
+<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga37988c6dd941f617cdfab86d54375fc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">More...</a><br /></td></tr>
+<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">More...</a><br /></td></tr>
+<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gac2bc10c519ffc8db9e24f325f23787ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">More...</a><br /></td></tr>
+<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gabe1e5066608a66da7a94f802b57b4eed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">More...</a><br /></td></tr>
+<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga3cbe7adf857c867cee77eae4617abadd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">More...</a><br /></td></tr>
+<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gac083edd180ab4d4b817acc60c516209b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gac083edd180ab4d4b817acc60c516209b">More...</a><br /></td></tr>
+<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">More...</a><br /></td></tr>
+<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">More...</a><br /></td></tr>
+<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga4d42daced532b33cc672280e48670a51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#ga4d42daced532b33cc672280e48670a51">More...</a><br /></td></tr>
+<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gaf605a5f5e2ff594e8d404b2855b09541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from a pointer. <a href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">More...</a><br /></td></tr>
+<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:gaadafb6600af2633e4c98cc64c72f5269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a quaternion from a pointer. <a href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">More...</a><br /></td></tr>
+<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga5f7393c30970c5949be13ceb525093a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a vector from a pointer. <a href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">More...</a><br /></td></tr>
+<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga86f4bc63570db86346db2e567fb760f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a vector from a pointer. <a href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">More...</a><br /></td></tr>
+<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
+<tr class="memdesc:ga152345176b8951c15711f6ed4f6fc237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a vector from a pointer. <a href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">More...</a><br /></td></tr>
+<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &amp;vec)</td></tr>
+<tr class="memdesc:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the constant address to the data of the input parameter. <a href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">More...</a><br /></td></tr>
+<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Generate random number from various distribution methods. </p>
-<p>&lt;<a class="el" href="a00096.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/random.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Handles the interaction between pointers and vector, matrix types. </p>
+<p>This extension defines an overloaded function, glm::value_ptr, which takes any of the <a class="el" href="a00158.html">core template types</a>. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.</p>
+<p>This is useful for uploading data to matrices or copying data to buffer objects.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00041.html">glm/glm.hpp</a>&gt;</span></div>
+<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00123.html">glm/gtc/type_ptr.hpp</a>&gt;</span></div>
+<div class="line"></div>
+<div class="line"><a class="code" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a> aVector(3);</div>
+<div class="line"><a class="code" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a> someMatrix(1.0);</div>
+<div class="line"></div>
+<div class="line">glUniform3fv(uniformLoc, 1, <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(aVector));</div>
+<div class="line">glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(someMatrix));</div>
+</div><!-- fragment --><p>&lt;<a class="el" href="a00123.html" title="GLM_GTC_type_ptr ">glm/gtc/type_ptr.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga5506dee301160e3a06aef9b9bc7a0a83"></a>
+<a class="anchor" id="ga52a16e333fef7e33ca740779482a8693"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; glm::ballRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; glm::make_mat2 </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae989c26a2899b2fb7444abe7c275c29c"></a>
+<a class="anchor" id="gadb29e510762e1042069cb28bf24ae990"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; glm::circularRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; glm::make_mat2x2 </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad3a3ee7d26502a31ba552cb627a68606"></a>
+<a class="anchor" id="ga37988c6dd941f617cdfab86d54375fc1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; glm::diskRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x3&lt;T, defaultp&gt; glm::make_mat2x3 </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5193a83e49e4fdc5652c084711083574"></a>
+<a class="anchor" id="ga6dfb2ac10859b0cc8e3893ea84fa95b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gaussRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x4&lt;T, defaultp&gt; glm::make_mat2x4 </td>
<td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Mean</em>, </td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac2bc10c519ffc8db9e24f325f23787ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; glm::make_mat3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Deviation</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabe1e5066608a66da7a94f802b57b4eed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x2&lt;T, defaultp&gt; glm::make_mat3x2 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate random numbers in the interval [Min, Max], according a gaussian distribution. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Mean</td><td></td></tr>
- <tr><td class="paramname">Deviation</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga12aebc19b85a8c736f5801c2f7b9b716"></a>
+<a class="anchor" id="ga3cbe7adf857c867cee77eae4617abadd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genTYpe glm::linearRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; glm::make_mat3x3 </td>
<td>(</td>
- <td class="paramtype">genTYpe&#160;</td>
- <td class="paramname"><em>Min</em>, </td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac083edd180ab4d4b817acc60c516209b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL tmat3x4&lt;T, defaultp&gt; glm::make_mat3x4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td class="paramtype">genTYpe&#160;</td>
- <td class="paramname"><em>Max</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2c6e6d457cb932e1ce683e4f690a6f60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::make_mat4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate random numbers in the interval [Min, Max], according a linear distribution. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Min</td><td></td></tr>
- <tr><td class="paramname">Max</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Value type. Currently supported: half (not recommanded), float or double scalars and vectors. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa9a6fc2d7a295b3857f7db23b1053d9d"></a>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga967a5b934e67ff9a6d1d0d27a377a264"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x2&lt;T, defaultp&gt; glm::make_mat4x2 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4d42daced532b33cc672280e48670a51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x3&lt;T, defaultp&gt; glm::make_mat4x3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf605a5f5e2ff594e8d404b2855b09541"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::make_mat4x4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaadafb6600af2633e4c98cc64c72f5269"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, defaultp&gt; glm::make_quat </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a quaternion from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5f7393c30970c5949be13ceb525093a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; glm::make_vec2 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a vector from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga86f4bc63570db86346db2e567fb760f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; glm::make_vec3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a vector from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga152345176b8951c15711f6ed4f6fc237"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, defaultp&gt; glm::make_vec4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const&#160;</td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a vector from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf019636bb8bd7c9efb7c7ce3bb23bcfc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; glm::sphericalRand </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type const* glm::value_ptr </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vec</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Return the constant address to the data of the input parameter. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00179.html b/3rdparty/glm/doc/api/a00179.html
index 05351a43291..47413e0d546 100644
--- a/3rdparty/glm/doc/api/a00179.html
+++ b/3rdparty/glm/doc/api/a00179.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_reciprocal</title>
+<title>0.9.9 API documenation: GLM_GTC_ulp</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,166 +33,153 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_reciprocal<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_ulp<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Allow the measurement of the accuracy of a function against a reference implementation.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga97d029f989f849b62915b068c264246b">acot</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga97d029f989f849b62915b068c264246b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">acoth</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">acsc</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">acsch</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gac9761980e09149002a466ca131a4bcac">asec</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gac9761980e09149002a466ca131a4bcac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">asech</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga450f3bf1c04751198994d26d92ac2a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">cot</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">coth</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga5df75de99f63e854087a06f538907b2c">csc</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:ga5df75de99f63e854087a06f538907b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">csch</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:ga00404a9cdf62023792d1d0afedd7f896"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">sec</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:gabb6829a472da1cc94d88afa6396bed1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">sech</a> (genType const &amp;angle)</td></tr>
-<tr class="separator:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &amp;x, T const &amp;y)</td></tr>
+<tr class="memdesc:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the distance in the number of ULP between 2 scalars. <a href="a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634">More...</a><br /></td></tr>
+<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga85355f2549d75789eb66e5d565d8ad26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the distance in the number of ULP between 2 vectors. <a href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">More...</a><br /></td></tr>
+<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:gae516ae554faa6117660828240e8bdaf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the next ULP value(s) after the input value(s). <a href="a00179.html#gae516ae554faa6117660828240e8bdaf0">More...</a><br /></td></tr>
+<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
+<tr class="memdesc:gad107ec3d9697ef82032a33338a73ebdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the value(s) ULP distance after the input value(s). <a href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">More...</a><br /></td></tr>
+<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the previous ULP value(s) before the input value(s). <a href="a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07">More...</a><br /></td></tr>
+<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
+<tr class="memdesc:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the value(s) ULP distance before the input value(s). <a href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">More...</a><br /></td></tr>
+<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Define secant, cosecant and cotangent functions. </p>
-<p>&lt;<a class="el" href="a00099.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/reciprocal.hpp</a>&gt; need to be included to use these features. </p>
+<p>Allow the measurement of the accuracy of a function against a reference implementation. </p>
+<p>This extension works on floating-point data and provide results in ULP. &lt;<a class="el" href="a00130.html" title="GLM_GTC_ulp ">glm/gtc/ulp.hpp</a>&gt; need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga97d029f989f849b62915b068c264246b"></a>
+<a class="anchor" id="ga2e09bd6c8b0a9c91f6f5683d68245634"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acot </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::float_distance </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Inverse cotangent function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad73911994e6bb6a06cc3ea1bd89201ab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acoth </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Inverse cotangent hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga135e8f6b36bb85b5f7d8067e6b890e4d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acsc </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Inverse cosecant function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the distance in the number of ULP between 2 scalars. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga418b31539e1a69c262712f2c7a4f27eb"></a>
+<a class="anchor" id="ga85355f2549d75789eb66e5d565d8ad26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acsch </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;uint&gt; glm::float_distance </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Inverse cosecant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac9761980e09149002a466ca131a4bcac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::asec </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Inverse secant function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the distance in the number of ULP between 2 vectors. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga450f3bf1c04751198994d26d92ac2a63"></a>
+<a class="anchor" id="gae516ae554faa6117660828240e8bdaf0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::asech </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
<td>(</td>
<td class="paramtype">genType const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -195,125 +188,85 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Inverse secant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the next ULP value(s) after the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2f49e28c2634ae1a212e2fc38c42ad42"></a>
+<a class="anchor" id="gad107ec3d9697ef82032a33338a73ebdd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::cot </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
<td>(</td>
<td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Cotangent function. </p>
-<p>adjacent / opposite or 1 / tan(x)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae2f1e6f7c360dda452b88e0c492d6f4d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::coth </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const &amp;&#160;</td>
+ <td class="paramname"><em>Distance</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Cotangent hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5df75de99f63e854087a06f538907b2c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::csc </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Cosecant function. </p>
-<p>hypotenuse / opposite or 1 / sin(x)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the value(s) ULP distance after the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga00404a9cdf62023792d1d0afedd7f896"></a>
+<a class="anchor" id="ga2fcbb7bfbfc595712bfddc51b0715b07"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::csch </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
<td>(</td>
<td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Cosecant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the previous ULP value(s) before the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabb6829a472da1cc94d88afa6396bed1f"></a>
+<a class="anchor" id="gaa399d5b6472a70e8952f9b26ecaacdec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::sec </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
<td>(</td>
<td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const &amp;&#160;</td>
+ <td class="paramname"><em>Distance</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Secant function. </p>
-<p>hypotenuse / adjacent or 1 / cos(x)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaa698b992c63f454a3a1a1baa2773a3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::sech </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Secant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the value(s) ULP distance before the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00180.html b/3rdparty/glm/doc/api/a00180.html
index 80c4bb91e7f..4726e4bb001 100644
--- a/3rdparty/glm/doc/api/a00180.html
+++ b/3rdparty/glm/doc/api/a00180.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_round</title>
+<title>0.9.9 API documenation: GLM_GTC_vec1</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,571 +33,57 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTC_round<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
-<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, T Multiple)</td></tr>
-<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)</td></tr>
-<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>rounding value to specific boundings </p>
-<p>&lt;<a class="el" href="a00102.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/round.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gac84898c466e609cdd2e81d9ba907d9e8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ceilMultiple </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Higher multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafe632af669ac57d670ca18e3665a12ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::ceilMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Higher multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa73c7690c787086fa3ac1c312264acab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga76ec9b214ea1376fe09a903e34bab847"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::ceilPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9eafb9dbedf84e5cece65c2fe9d5631d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::floorMultiple </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6912db42d43873fe1dedb3aed2b7a239"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::floorMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac80f6519c31baae10d8d7bea6735d1fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::floorPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6a5a8f6dd1b2f755e4572bd039062c37"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::floorPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
-<a class="anchor" id="gaf7444a7b2eb524f373463ceba76b9326"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isMultiple </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga50ea5d5dc33fffba39ad6002a3784123"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ae705574ef3e3ebfb4f537d8d285c48"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaebf826fbb6e0a70eeaab0792d89b25ec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the value is a power of two number. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad454e4c8d8cd73ddc7de855f733a1465"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the value is a power of two number. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
</div>
-<a class="anchor" id="ga6739d1de04b2cea7c78675b365644bce"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::roundMultiple </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga10a8ab7b254257b607b6a3fc68c3e661"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::roundMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Multiple</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6d24a9e3abe3e6a908661b43acb8efe0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::roundPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is the closet to the input value. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae95be3b384f3bbd00c6c1cf0a1f96485"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::roundPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is the closet to the input value. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+<div class="header">
+ <div class="headertitle">
+<div class="title">GLM_GTC_vec1<div class="ingroups"><a class="el" href="a00153.html">GTC Extensions (Stable)</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
-</div>
-</div>
+<p>Add vec1, ivec1, uvec1 and bvec1 types.
+<a href="#details">More...</a></p>
+<p>Add vec1, ivec1, uvec1 and bvec1 types. </p>
+<p>&lt;<a class="el" href="a00131.html" title="GLM_GTC_vec1 ">glm/gtc/vec1.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00181.html b/3rdparty/glm/doc/api/a00181.html
index acf16f891c4..b0c8727ec2d 100644
--- a/3rdparty/glm/doc/api/a00181.html
+++ b/3rdparty/glm/doc/api/a00181.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_type_precision</title>
+<title>0.9.9 API documenation: GLM_GTX_associated_min_max</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,3643 +33,1316 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_type_precision<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_associated_min_max<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Min and max functions that return associated values not the compared onces.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
-<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
-<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
-<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
-<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
-<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
-<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
-<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
-<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
-<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
-<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
-<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
-<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
-<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
-<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
-<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
-<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
-<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
-<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
-<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
-<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
-<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
-<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
-<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
-<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
-<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
-<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
-<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
-<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
-<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
-<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
-<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
-<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
-<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
-<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
-<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
-<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
-<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
-<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
-<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
-<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
-<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
-<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
-<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
-<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
-<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
-<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
-<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
-<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
-<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
-<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
-<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
-<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
-<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
-<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
-<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
-<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
-<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
-<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
-<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
-<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
-<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
-<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
-<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
-<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
-<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
-<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
-<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
-<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
-<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
-<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
-<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
-<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
-<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
-<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
-<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
-<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
-<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
-<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
-<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
-<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
-<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
-<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
-<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
-<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
-<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
-<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
-<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
-<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
-<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
-<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
-<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
-<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
-<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
-<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
-<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
-<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
-<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
-<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
-<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
-<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
-<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
-<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
-<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
-<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
-<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
-<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
-<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
-<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
-<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
-<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
-<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
-<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
-<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
-<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
-<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
-<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
-<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
-<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
-<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
-<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
-<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
-<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
-<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
-<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
-<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
-<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
-<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
-<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
-<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
-<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
-<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
-<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
-<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
-<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
-<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
-<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
-<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
-<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
-<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
-<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
-<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
-<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
-<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
-<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
-<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
-<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
-<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
-<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
-<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
-<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
-<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
-<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
-<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
-<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
-<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
-<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
-<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
-<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
-<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
-<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
-<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
-<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
-<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
-<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
-<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
-<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
-<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
-<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
-<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
-<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
-<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
-<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
-<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
-<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
-<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
-<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
-<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
-<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
-<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
-<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
-<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
-<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
-<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
-<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memdesc:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">More...</a><br /></td></tr>
+<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:ga10ba6001798f42a0f941f19ff30e066a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">More...</a><br /></td></tr>
+<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:ga62ca63cca6b21387b8a25474f441a869"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">More...</a><br /></td></tr>
+<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
+<tr class="memdesc:ga5364520173815b66a9d9e452c38bf312"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga5364520173815b66a9d9e452c38bf312">More...</a><br /></td></tr>
+<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memdesc:gaec891e363d91abbf3a4443cf2f652209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">More...</a><br /></td></tr>
+<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memdesc:ga065a0c1eb7837118ef79be88dfd78487"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">More...</a><br /></td></tr>
+<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memdesc:ga553431a468e251623408603bcb51c9cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga553431a468e251623408603bcb51c9cb">More...</a><br /></td></tr>
+<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c)</td></tr>
+<tr class="memdesc:ga327136e6a568569c03a056f90814b656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga327136e6a568569c03a056f90814b656">More...</a><br /></td></tr>
+<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memdesc:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">More...</a><br /></td></tr>
+<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:gaf607886421c35cd7e4f41a50d7c330e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">More...</a><br /></td></tr>
+<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:ga7a165de1af9a3f9193516a3b47407086"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">More...</a><br /></td></tr>
+<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
+<tr class="memdesc:ga3122fbe8133ea54749b10fb93e8a167e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">More...</a><br /></td></tr>
+<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memdesc:gacc01bd272359572fc28437ae214a02df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#gacc01bd272359572fc28437ae214a02df">More...</a><br /></td></tr>
+<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:ga8b538d10872626668a078e2bd495af25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga8b538d10872626668a078e2bd495af25">More...</a><br /></td></tr>
+<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType&lt; U, P &gt; &amp;a, T y, const vecType&lt; U, P &gt; &amp;b)</td></tr>
+<tr class="memdesc:ga1dccff48fa5650c746533de83467da6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga1dccff48fa5650c746533de83467da6e">More...</a><br /></td></tr>
+<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
+<tr class="memdesc:ga076717f4e07c6ae725cc1382d1ac4869"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">More...</a><br /></td></tr>
+<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memdesc:gad0aa8f86259a26d839d34a3577a923fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">More...</a><br /></td></tr>
+<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
+<tr class="memdesc:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 3 variables and returns 3 associated variable values. <a href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">More...</a><br /></td></tr>
+<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memdesc:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">More...</a><br /></td></tr>
+<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:ga88e031f22b80215505928900d3dde549"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga88e031f22b80215505928900d3dde549">More...</a><br /></td></tr>
+<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
+<tr class="memdesc:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">More...</a><br /></td></tr>
+<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
+<tr class="memdesc:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">More...</a><br /></td></tr>
+<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines specific C++-based precision types. </p>
-<p><a class="el" href="a00164.html">Precision types</a> defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.</p>
-<p>&lt;<a class="el" href="a00130.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/type_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a>
+<p>Min and max functions that return associated values not the compared onces. </p>
+<p>&lt;<a class="el" href="a00007.html" title="GLM_GTX_associated_min_max ">glm/gtx/associated_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga7d9c8785230c8db60f72ec8975f1ba45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef float32 f32</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 32 bit single-precision floating-point scalar. </p>
-<p>32 bit single-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01534">1534</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1fedd5d29746afdaf2d3303a4442704e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; f32mat2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02478">2478</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf3a5016bf360977ce114deb2e01ae10a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; f32mat2x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02442">2442</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad5f1043adbe803928fe7bf1a90a1f767"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt; f32, defaultp &gt; f32mat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x3 matrix. </p>
-<p>Single-precision floating-point 2x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02446">2446</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5ed667d0247cce477f013ea31982843d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt; f32, defaultp &gt; f32mat2x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 2x4 matrix. </p>
-<p>Single-precision floating-point 2x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02450">2450</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf4377997b299a287f7ab3358c9bd3e4c"></a>
+<a class="anchor" id="ga10ba6001798f42a0f941f19ff30e066a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; f32mat3</td>
+ <td class="memname">GLM_FUNC_DECL tvec2&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02482">2482</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8709a1ea268fa69bdf1e11616d7fbaf1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt; f32, defaultp &gt; f32mat3x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x2 matrix. </p>
-<p>Single-precision floating-point 3x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02454">2454</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1e4c52bb824ca16c6e2e5b03635669d0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; f32mat3x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02458">2458</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0100666c90176eaba80e49357d123c7f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt; f32, defaultp &gt; f32mat3x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x4 matrix. </p>
-<p>Single-precision floating-point 3x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02462">2462</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga797fa3ab16e04456174c36238e091341"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; f32mat4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02486">2486</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga27f897bdfe4bbded9481b8947553d1ff"></a>
+<a class="anchor" id="ga62ca63cca6b21387b8a25474f441a869"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt; f32, defaultp &gt; f32mat4x2</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x2 matrix. </p>
-<p>Single-precision floating-point 4x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02466">2466</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa69e73ffb01a52499071391d395908fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt; f32, defaultp &gt; f32mat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x3 matrix. </p>
-<p>Single-precision floating-point 4x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02470">2470</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafe2e08549805a7ded26da2a868bedbf5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; f32mat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02474">2474</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6966c0cb4673928c9c9da2e91006d2c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tquat&lt; f32, defaultp &gt; f32quat</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point quaternion. </p>
-<p>Single-precision floating-point quaternion.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02490">2490</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3174a49dc84a977cad7012a62f4af02f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; f32, defaultp &gt; f32vec1</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point vector of 1 components. </p>
-<p>Single-precision floating-point vector of 1 component.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02426">2426</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae0cb53ea6fe3d977fe588ce423d57cc3"></a>
+<a class="anchor" id="ga5364520173815b66a9d9e452c38bf312"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; f32, defaultp &gt; f32vec2</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 2 components. </p>
-<p>Single-precision floating-point vector of 2 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02430">2430</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga19d5e0d4d3d6d226c9c6c0f39756f9ad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; f32, defaultp &gt; f32vec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 3 components. </p>
-<p>Single-precision floating-point vector of 3 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02434">2434</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaeb25dbb0261f82cb08da23e26d343704"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; f32, defaultp &gt; f32vec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 4 components. </p>
-<p>Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02438">2438</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef float64 f64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 64 bit double-precision floating-point scalar. </p>
-<p>64 bit double-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01538">1538</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga74b9918c90ea60ce58b3979cde963a38"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt; f64, defaultp &gt; f64mat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default double-precision floating-point 2x2 matrix. </p>
-<p>Double-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02584">2584</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaeb817419c76a0766c88713d2754e6cb3"></a>
+<a class="anchor" id="gaec891e363d91abbf3a4443cf2f652209"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt; f64, defaultp &gt; f64mat2x2</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 2x2 matrix. </p>
-<p>Double-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02548">2548</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga87d256f4719417e311cd0ea14264678d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt; f64, defaultp &gt; f64mat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 2x3 matrix. </p>
-<p>Double-precision floating-point 2x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02552">2552</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb18822e2eac88fa861a76cefd25d550"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt; f64, defaultp &gt; f64mat2x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 2x4 matrix. </p>
-<p>Double-precision floating-point 2x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02556">2556</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga68894201dd511792a7af6cff7b5adf71"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt; f64, defaultp &gt; f64mat3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x3 matrix. </p>
-<p>Double-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02588">2588</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga11e5684b10e098f573ff484c1a569ae2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt; f64, defaultp &gt; f64mat3x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x2 matrix. </p>
-<p>Double-precision floating-point 3x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02560">2560</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae1a5081181c96cc37ce9418f6e856cb6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt; f64, defaultp &gt; f64mat3x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x3 matrix. </p>
-<p>Double-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02564">2564</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad37a55a8ce1154083a721b4ecfd55293"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt; f64, defaultp &gt; f64mat3x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default double-precision floating-point 3x4 matrix. </p>
-<p>Double-precision floating-point 3x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02568">2568</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga219c683b0aa29f4f482f76d77d5c9e95"></a>
+<a class="anchor" id="ga065a0c1eb7837118ef79be88dfd78487"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt; f64, defaultp &gt; f64mat4</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x4 matrix. </p>
-<p>Double-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02592">2592</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa669dfb59031a441de19b34a92704d57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt; f64, defaultp &gt; f64mat4x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x2 matrix. </p>
-<p>Double-precision floating-point 4x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02572">2572</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaba137814a509704937746cc1e82edc32"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt; f64, defaultp &gt; f64mat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x3 matrix. </p>
-<p>Double-precision floating-point 4x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02576">2576</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga489163773b021f1800a33cc2fa730c3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt; f64, defaultp &gt; f64mat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x4 matrix. </p>
-<p>Double-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02580">2580</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga14c583bd625eda8cf4935a14d5dd544d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tquat&lt; f64, defaultp &gt; f64quat</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point quaternion. </p>
-<p>Double-precision floating-point quaternion.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02596">2596</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac5b04f32ae3084a9131a0851e7f4cfae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; f64, defaultp &gt; f64vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 1 components. </p>
-<p>Double-precision floating-point vector of 1 component.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02532">2532</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafaad77b464b5a35626c31205ac6780e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; f64, defaultp &gt; f64vec2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default double-precision floating-point vector of 2 components. </p>
-<p>Double-precision floating-point vector of 2 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02536">2536</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gafacc3614bb1136a7756293e67d34de22"></a>
+<a class="anchor" id="ga553431a468e251623408603bcb51c9cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; f64, defaultp &gt; f64vec3</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 3 components. </p>
-<p>Double-precision floating-point vector of 3 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02540">2540</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8723186104dc02eb85da386105fba75f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; f64, defaultp &gt; f64vec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 4 components. </p>
-<p>Double-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02544">2544</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::float32 float32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 32 bit single-precision floating-point scalar. </p>
-<p>32 bit single-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00084">84</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga41d579d81c3d98edd0532244fa02da77"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::float32 float32_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 32 bit single-precision floating-point scalar. </p>
-<p>32 bit single-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01526">1526</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::float64 float64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 64 bit double-precision floating-point scalar. </p>
-<p>64 bit double-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00085">85</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6957c7b22f405683bb276554ca40dc37"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::float64 float64_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 64 bit double-precision floating-point scalar. </p>
-<p>64 bit double-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01530">1530</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabb01d4ff646ee07241934b1a0cc0f985"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; fmat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02408">2408</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga74ac2e71b650162d8f7cb2a70c2f6711"></a>
+<a class="anchor" id="ga327136e6a568569c03a056f90814b656"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2&lt; f32, defaultp &gt; fmat2x2</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02372">2372</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf17b2604c0d92bffb92375d8aa588756"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3&lt; f32, defaultp &gt; fmat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x3 matrix. </p>
-<p>Single-precision floating-point 2x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02376">2376</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga709c97c20efa24ff1d9e83cd437b8ed5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4&lt; f32, defaultp &gt; fmat2x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x4 matrix. </p>
-<p>Single-precision floating-point 2x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02380">2380</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5165fbee2d78f342950265b69a07353d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; fmat3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02412">2412</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9f20af6e8eca2abdcde08408948cc1ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2&lt; f32, defaultp &gt; fmat3x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x2 matrix. </p>
-<p>Single-precision floating-point 3x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02384">2384</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad339e25c32fe6665acf028f26c1b3e22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3&lt; f32, defaultp &gt; fmat3x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02388">2388</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab04bc97371cb6b5f54b3688e0c81578b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x4&lt; f32, defaultp &gt; fmat3x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 3x4 matrix. </p>
-<p>Single-precision floating-point 3x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02392">2392</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab3f31d867df4874e42172ebf188a3ebd"></a>
+<a class="anchor" id="ga3038ffcb43eaa6af75897a99a5047ccc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; fmat4</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02416">2416</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab0082a25f19f02d2d0af0fcbe5ead732"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2&lt; f32, defaultp &gt; fmat4x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x2 matrix. </p>
-<p>Single-precision floating-point 4x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02396">2396</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1a11c170f030ab34ddf037714e936cba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3&lt; f32, defaultp &gt; fmat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x3 matrix. </p>
-<p>Single-precision floating-point 4x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02400">2400</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabd79752ff357d83b49136b6299ea62d9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4&lt; f32, defaultp &gt; fmat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02404">2404</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga10d8bd3c923a5386efcf25a4117fd84f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; float, defaultp &gt; fvec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 1 components. </p>
-<p>Single-precision floating-point vector of 1 component.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02356">2356</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf9f4173dd9e8b2d0b663c6f80ed09ff6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; float, defaultp &gt; fvec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 2 components. </p>
-<p>Single-precision floating-point vector of 2 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02360">2360</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4ef2d77dcab241b1ef83f09edb2f1084"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; float, defaultp &gt; fvec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 3 components. </p>
-<p>Single-precision floating-point vector of 3 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02364">2364</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga981b63d5c5f7233a29364e0a968d139b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; float, defaultp &gt; fvec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 4 components. </p>
-<p>Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02368">2368</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0336abc2604dd2c20c30e036454b64f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 highp_i16</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>High precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00261">261</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga727675ac6b5d2fc699520e0059735e25"></a>
+<a class="anchor" id="gaf607886421c35cd7e4f41a50d7c330e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::int32 highp_i32</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00265">265</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac25db6d2b1e2a0f351b77ba3409ac4cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 highp_i64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00269">269</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacb88796f2d08ef253d0345aff20c3aee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 highp_i8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00257">257</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5fde0fa4a3852a9dd5d637a92ee74718"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 highp_int16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00229">229</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacaea06d0a79ef3172e887a7a6ba434ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 highp_int16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00245">245</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga84ed04b4e0de18c977e932d617e7c223"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 highp_int32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00233">233</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2c71c8bd9e2fe7d2e93ca250d8b6157f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 highp_int32_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00249">249</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga226a8d52b4e3f77aaa6231135e886aac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 highp_int64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00237">237</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga73c6abb280a45feeff60f9accaee91f3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 highp_int64_t</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>High precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00253">253</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad0549c902a96a7164e4ac858d5f39dbf"></a>
+<a class="anchor" id="ga7a165de1af9a3f9193516a3b47407086"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::int8 highp_int8</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00225">225</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1085c50dd8fbeb5e7e609b1c127492a5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 highp_int8_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00241">241</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8e62c883d13f47015f3b70ed88751369"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 highp_u16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<p>High precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00870">870</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7a6f1929464dcc680b16381a4ee5f2cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 highp_u32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<p>High precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00874">874</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c181fdf06a309691999926b6690c969"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 highp_u64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<p>High precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00878">878</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacd1259f3a9e8d2a9df5be2d74322ef9c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 highp_u8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<p>High precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00866">866</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga746dc6da204f5622e395f492997dbf57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 highp_uint16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<p>High precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00838">838</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacf54c3330ef60aa3d16cb676c7bcb8c7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 highp_uint16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<p>High precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00854">854</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga256b12b650c3f2fb86878fd1c5db8bc3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 highp_uint32</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium precision 32 bit unsigned integer type. </p>
-<p>High precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00842">842</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae978599c9711ac263ba732d4ac225b0e"></a>
+<a class="anchor" id="ga3122fbe8133ea54749b10fb93e8a167e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 highp_uint32_t</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<p>High precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00858">858</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa38d732f5d4a7bc42a1b43b9d3c141ce"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 highp_uint64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<p>High precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00846">846</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa46172d7dc1c7ffe3e78107ff88adf08"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 highp_uint64_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<p>High precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00862">862</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga97432f9979e73e66567361fd01e4cffb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 highp_uint8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<p>High precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00834">834</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac4e00a26a2adb5f2c0a7096810df29e5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 highp_uint8_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<p>High precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00850">850</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3ab5fe184343d394fb6c2723c3ee3699"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 i16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00318">318</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga28f03a39ac56c70f9bf3ada11cb60e3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; i16, defaultp &gt; i16vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer scalar type. </p>
-<p>16 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00473">473</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga110bec18ca44c41c76c3c9e4d7b5bd79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; i16, defaultp &gt; i16vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer vector of 2 components type. </p>
-<p>16 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00477">477</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga973b226a9914db682c9372fc761fb535"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; i16, defaultp &gt; i16vec3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default precision 16 bit signed integer vector of 3 components type. </p>
-<p>16 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00481">481</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad73e5e905dcf2d8cab002b4ab46e9426"></a>
+<a class="anchor" id="gacc01bd272359572fc28437ae214a02df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; i16, defaultp &gt; i16vec4</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer vector of 4 components type. </p>
-<p>16 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00485">485</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga96faea43ac5f875d2d3ffbf8d213e3eb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 i32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00322">322</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4cca6bbd117c45f046291fc8e9d03765"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; i32, defaultp &gt; i32vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer scalar type. </p>
-<p>32 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00552">552</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3c12cef4135603fd77d8fda85808730c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; i32, defaultp &gt; i32vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer vector of 2 components type. </p>
-<p>32 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00556">556</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga40cd3f391c03512f158d10a70062264e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; i32, defaultp &gt; i32vec3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default precision 32 bit signed integer vector of 3 components type. </p>
-<p>32 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00560">560</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae3364a8090e7e1408056e00403dfecab"></a>
+<a class="anchor" id="ga8b538d10872626668a078e2bd495af25"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; i32, defaultp &gt; i32vec4</td>
+ <td class="memname">GLM_FUNC_DECL tvec2&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer vector of 4 components type. </p>
-<p>32 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00564">564</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gadb997e409103d4da18abd837e636a496"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 i64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00326">326</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5b4a3e499ee165efc0dc05add9c48235"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; i64, defaultp &gt; i64vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer scalar type. </p>
-<p>64 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00711">711</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gade69872a31f066e5ae212f1af6008edb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; i64, defaultp &gt; i64vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer vector of 2 components type. </p>
-<p>64 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00715">715</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9ece7c77c7bca7a6b824ef9c600f5e5e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; i64, defaultp &gt; i64vec3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default precision 64 bit signed integer vector of 3 components type. </p>
-<p>64 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00719">719</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga9756e45c8f80329257f3cbdabc3bd73c"></a>
+<a class="anchor" id="ga1dccff48fa5650c746533de83467da6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; i64, defaultp &gt; i64vec4</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer vector of 4 components type. </p>
-<p>64 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00723">723</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga302ec977b0c0c3ea245b6c9275495355"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 i8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const vecType&lt; U, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00314">314</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab2329c5c14ff5a03b1ddec039e2c7409"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; i8, defaultp &gt; i8vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer scalar type. </p>
-<p>8 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00393">393</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6414484477e4c1b4863cf91af8fd4185"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; i8, defaultp &gt; i8vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const vecType&lt; U, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer vector of 2 components type. </p>
-<p>8 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00397">397</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf4b5993e794e252607f91535b62a7e0c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; i8, defaultp &gt; i8vec3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default precision 8 bit signed integer vector of 3 components type. </p>
-<p>8 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00401">401</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga50e58885aee2cf01bb3ba472c5b1697e"></a>
+<a class="anchor" id="ga076717f4e07c6ae725cc1382d1ac4869"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; i8, defaultp &gt; i8vec4</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer vector of 4 components type. </p>
-<p>8 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00405">405</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 int16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00227">227</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae8f5e3e964ca2ae240adc2c0d74adede"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 int16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00301">301</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 int32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00228">228</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga042ef09ff2f0cb24a36f541bcb3a3710"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 int32_t</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00305">305</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a>
+<a class="anchor" id="gad0aa8f86259a26d839d34a3577a923fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::int64 int64</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00229">229</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga322a7d7d2c2c68994dc872a33de63c61"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 int64_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00309">309</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 int8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00226">226</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4bf09d8838a86866b39ee6e109341645"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 int8_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00297">297</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga392b673fd10847bfb78fb808c6cf8ff7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 lowp_i16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00165">165</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7ff73a45cea9613ebf1a9fad0b9f82ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 lowp_i32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00169">169</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga354736e0c645099cd44c42fb2f87c2b8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 lowp_i64</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00173">173</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga552a6bde5e75984efb0f863278da2e54"></a>
+<a class="anchor" id="ga5bc6b9acbf9e060d58a342fbe3b73d43"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::int8 lowp_i8</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00161">161</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga698e36b01167fc0f037889334dce8def"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 lowp_int16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00133">133</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8b2cd8d31eb345b2d641d9261c38db1a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 lowp_int16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00149">149</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga864aabca5f3296e176e0c3ed9cc16b02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 lowp_int32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00137">137</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0350631d35ff800e6133ac6243b13cbc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 lowp_int32_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00153">153</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf645b1a60203b39c0207baff5e3d8c3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 lowp_int64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00141">141</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaebf341fc4a5be233f7dde962c2e33847"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 lowp_int64_t</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00157">157</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga760bcf26fdb23a2c3ecad3c928a19ae6"></a>
+<a class="anchor" id="ga432224ebe2085eaa2b63a077ecbbbff6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::int8 lowp_int8</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00129">129</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga119c41d73fe9977358174eb3ac1035a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 lowp_int8_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00145">145</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga504ce1631cb2ac02fcf1d44d8c2aa126"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 lowp_u16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00770">770</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4f072ada9552e1e480bbb3b1acde5250"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 lowp_u32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00774">774</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga30069d1f02b19599cbfadf98c23ac6ed"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 lowp_u64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00778">778</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1b09f03da7ac43055c68a349d5445083"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 lowp_u8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00766">766</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad68bfd9f881856fc863a6ebca0b67f78"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 lowp_uint16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00736">736</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga91c4815f93177eb423362fd296a87e9f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 lowp_uint16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00753">753</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa6a5b461bbf5fe20982472aa51896d4b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 lowp_uint32</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00740">740</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf1b735b4b1145174f4e4167d13778f9b"></a>
+<a class="anchor" id="ga88e031f22b80215505928900d3dde549"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 lowp_uint32_t</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00757">757</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa212b805736a759998e312cbdd550fae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 lowp_uint64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00744">744</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8dd3a3281ae5c970ffe0c41d538aa153"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 lowp_uint64_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00761">761</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf49470869e9be2c059629b250619804e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 lowp_uint8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00732">732</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga667b2ece2b258be898812dc2177995d1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 lowp_uint8_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00749">749</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga62a17cddeb4dffb4e18fe3aea23f051a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 mediump_i16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00213">213</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf5e94bf2a20af7601787c154751dc2e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 mediump_i32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00217">217</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3ebcb1f6d8d8387253de8bccb058d77f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 mediump_i64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00221">221</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacf1ded173e1e2d049c511d095b259e21"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 mediump_i8</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00209">209</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gadff3608baa4b5bd3ed28f95c1c2c345d"></a>
+<a class="anchor" id="ga0f63b0dce5a5c3242cc6d9847e7d14f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::int16 mediump_int16</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00181">181</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga80e72fe94c88498537e8158ba7591c54"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int16 mediump_int16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00197">197</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5244cef85d6e870e240c76428a262ae8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 mediump_int32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00185">185</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga26fc7ced1ad7ca5024f1c973c8dc9180"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int32 mediump_int32_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00201">201</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b968f2b86a0442a89c7359171e1d866"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 mediump_int64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00189">189</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac3bc41bcac61d1ba8f02a6f68ce23f64"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int64 mediump_int64_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00205">205</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6fbd69cbdaa44345bff923a2cf63de7e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 mediump_int8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00177">177</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6d7b3789ecb932c26430009478cac7ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::int8 mediump_int8_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00193">193</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9df98857be695d5a30cb30f5bfa38a80"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 mediump_u16</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00820">820</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1bd0e914158bf03135f8a317de6debe9"></a>
+<a class="anchor" id="ga00a949fd345f4b31b259f033d3ab4a1c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 mediump_u32</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00824">824</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2af9490085ae3bdf36a544e9dd073610"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 mediump_u64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00828">828</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad1213a22bbb9e4107f07eaa4956f8281"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 mediump_u8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00816">816</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2885a6c89916911e418c06bb76b9bdbb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 mediump_uint16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00788">788</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3963b1050fc65a383ee28e3f827b6e3e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 mediump_uint16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00804">804</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga34dd5ec1988c443bae80f1b20a8ade5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 mediump_uint32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00792">792</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf4dae276fd29623950de14a6ca2586b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 mediump_uint32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00808">808</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga30652709815ad9404272a31957daa59e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 mediump_uint64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00796">796</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9b170dd4a8f38448a2dc93987c7875e9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 mediump_uint64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00812">812</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1fa92a233b9110861cdbc8c2ccf0b5a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 mediump_uint8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00784">784</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gadfe65c78231039e90507770db50c98c7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 mediump_uint8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00800">800</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa2d7acc0adb536fab71fe261232a40ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 u16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit unsigned integer type. </p>
-<p>Default precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00927">927</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaefa2ce8fbdbe89baffd262f46f2d5907"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1&lt; u16, defaultp &gt; u16vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01082">1082</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga426030555085ed6c39a54e73afbef962"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt; u16, defaultp &gt; u16vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01086">1086</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7f5dbe417199277e449b8db0210acb71"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt; u16, defaultp &gt; u16vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01090">1090</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf524c9059f0342668d8eea359bcceaae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt; u16, defaultp &gt; u16vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01094">1094</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8165913e068444f7842302d40ba897b9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 u32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit unsigned integer type. </p>
-<p>Default precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00931">931</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga913a8bd51e4ebccd30ad488de3c18da9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1&lt; u32, defaultp &gt; u32vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01161">1161</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0741d40e2b0fea4f1c50cb325114f075"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt; u32, defaultp &gt; u32vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01165">1165</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad9b52e1c271cb9c8bfae6365d3e38a23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt; u32, defaultp &gt; u32vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01169">1169</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga155ac7e9e454e2b1f73d11e1e28a0fd6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; u32, defaultp &gt; u32vec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01173">1173</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf3f312156984c365e9f65620354da70b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 u64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit unsigned integer type. </p>
-<p>Default precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00935">935</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga793c9293cc687a0e342396a377c5df77"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt; u64, defaultp &gt; u64vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01320">1320</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2204827de9d4ee7fa92ef497093f7d6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt; u64, defaultp &gt; u64vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01324">1324</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3460933f040f59f0fedb29df1e9be71c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt; u64, defaultp &gt; u64vec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01328">1328</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb6ca34df28889a5db9d244aed375411"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt; u64, defaultp &gt; u64vec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U&#160;</td>
+ <td class="paramname"><em>d</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01332">1332</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaecc7082561fc9028b844b6cf3d305d36"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 u8</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>8 bit unsigned integer type. </p>
-<p>Default precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00923">923</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga92e0c191e5cc326255284d08be3af7c5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1&lt; u8, defaultp &gt; u8vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01002">1002</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga61667c99caf60ce6c48ebbbac72bd91d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2&lt; u8, defaultp &gt; u8vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01006">1006</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ca60d0ba6d438892be6017f43747661"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3&lt; u8, defaultp &gt; u8vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01010">1010</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga114e005014d910bea07954eee24b7efb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4&lt; u8, defaultp &gt; u8vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01014">1014</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 uint16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit unsigned integer type. </p>
-<p>Default precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00232">232</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga91f91f411080c37730856ff5887f5bcf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 uint16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit unsigned integer type. </p>
-<p>Default precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00910">910</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 uint32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit unsigned integer type. </p>
-<p>Default precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00233">233</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2171d9dc1fefb1c82e2817f45b622eac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 uint32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit unsigned integer type. </p>
-<p>Default precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00914">914</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 uint64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit unsigned integer type. </p>
-<p>Default precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00234">234</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3999d3e7ff22025c16ddb601e14dfdee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 uint64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit unsigned integer type. </p>
-<p>Default precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00918">918</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 uint8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit unsigned integer type. </p>
-<p>Default precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00231">231</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga28d97808322d3c92186e4a0c067d7e8e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 uint8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit unsigned integer type. </p>
-<p>Default precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00906">906</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00182.html b/3rdparty/glm/doc/api/a00182.html
index 93bc49c4e19..21606a3e0fc 100644
--- a/3rdparty/glm/doc/api/a00182.html
+++ b/3rdparty/glm/doc/api/a00182.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_type_ptr</title>
+<title>0.9.9 API documenation: GLM_GTX_bit</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,410 +33,281 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_type_ptr<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_bit<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Allow to perform bit operations on integer values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &amp;vec)</td></tr>
-<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the highest bit set to 1 in a integer variable and return its value. <a href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">More...</a><br /></td></tr>
+<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga8cda2459871f574a0aecbe702ac93291"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value. <a href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">More...</a><br /></td></tr>
+<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gafe08808a50226b75b50e640a08b32ddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value. <a href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">More...</a><br /></td></tr>
+<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga3de7df63c589325101a2817a56f8e29d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value. <a href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">More...</a><br /></td></tr>
+<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:gae33bb1ca2b55846b23a0f0796a679195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value. <a href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">More...</a><br /></td></tr>
+<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
+<tr class="memdesc:ga5f65973a5d2ea38c719e6a663149ead9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">More...</a><br /></td></tr>
+<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
+<tr class="memdesc:ga2d7e85995d097518b8d70cd409bda39e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">More...</a><br /></td></tr>
+<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Handles the interaction between pointers and vector, matrix types. </p>
-<p>This extension defines an overloaded function, glm::value_ptr, which takes any of the <a class="el" href="a00165.html">core template types</a>. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.</p>
-<p>This is useful for uploading data to matrices or copying data to buffer objects.</p>
-<p>Example: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00040.html">glm/glm.hpp</a>&gt;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="a00131.html">glm/gtc/type_ptr.hpp</a>&gt;</span></div>
-<div class="line"></div>
-<div class="line"><a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a> aVector(3);</div>
-<div class="line"><a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a> someMatrix(1.0);</div>
-<div class="line"></div>
-<div class="line">glUniform3fv(uniformLoc, 1, <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(aVector));</div>
-<div class="line">glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(someMatrix));</div>
-</div><!-- fragment --><p>&lt;<a class="el" href="a00131.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/type_ptr.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p>&lt;<a class="el" href="a00008.html" title="GLM_GTX_bit ">glm/gtx/bit.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga52a16e333fef7e33ca740779482a8693"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; glm::make_mat2 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadb29e510762e1042069cb28bf24ae990"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; glm::make_mat2x2 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga37988c6dd941f617cdfab86d54375fc1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x3&lt;T, defaultp&gt; glm::make_mat2x3 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6dfb2ac10859b0cc8e3893ea84fa95b5"></a>
+<a class="anchor" id="ga0dcc8fe7c3d3ad60dea409281efa3d05"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x4&lt;T, defaultp&gt; glm::make_mat2x4 </td>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::highestBitValue </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac2bc10c519ffc8db9e24f325f23787ea"></a>
+<a class="anchor" id="ga5eea3a4d429040af13d39a7d7cd84d73"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; glm::make_mat3 </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::highestBitValue </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Find the highest bit set to 1 in a integer variable and return its value. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabe1e5066608a66da7a94f802b57b4eed"></a>
+<a class="anchor" id="ga2ff6568089f3a9b67f5c30918855fc6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x2&lt;T, defaultp&gt; glm::make_mat3x2 </td>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::lowestBitValue </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3cbe7adf857c867cee77eae4617abadd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; glm::make_mat3x3 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac083edd180ab4d4b817acc60c516209b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x4&lt;T, defaultp&gt; glm::make_mat3x4 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2c6e6d457cb932e1ce683e4f690a6f60"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::make_mat4 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga967a5b934e67ff9a6d1d0d27a377a264"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x2&lt;T, defaultp&gt; glm::make_mat4x2 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4d42daced532b33cc672280e48670a51"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x3&lt;T, defaultp&gt; glm::make_mat4x3 </td>
- <td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf605a5f5e2ff594e8d404b2855b09541"></a>
+<a class="anchor" id="ga8cda2459871f574a0aecbe702ac93291"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::make_mat4x4 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just higher the input value. </p>
+<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaadafb6600af2633e4c98cc64c72f5269"></a>
+<a class="anchor" id="gafe08808a50226b75b50e640a08b32ddc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, defaultp&gt; glm::make_quat </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; glm::powerOfTwoAbove </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a quaternion from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just higher the input value. </p>
+<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5f7393c30970c5949be13ceb525093a6"></a>
+<a class="anchor" id="ga3de7df63c589325101a2817a56f8e29d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;T, defaultp&gt; glm::make_vec2 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a vector from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just lower the input value. </p>
+<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga86f4bc63570db86346db2e567fb760f6"></a>
+<a class="anchor" id="gae33bb1ca2b55846b23a0f0796a679195"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, defaultp&gt; glm::make_vec3 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; glm::powerOfTwoBelow </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a vector from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just lower the input value. </p>
+<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga152345176b8951c15711f6ed4f6fc237"></a>
+<a class="anchor" id="ga5f65973a5d2ea38c719e6a663149ead9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, defaultp&gt; glm::make_vec4 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest </td>
<td>(</td>
- <td class="paramtype">T const *const&#160;</td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType&#160;</td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a vector from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is the closet to the input value. </p>
+<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf019636bb8bd7c9efb7c7ce3bb23bcfc"></a>
+<a class="anchor" id="ga2d7e85995d097518b8d70cd409bda39e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type const* glm::value_ptr </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; glm::powerOfTwoNearest </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vec</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the constant address to the data of the input parameter. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is the closet to the input value. </p>
+<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00183.html b/3rdparty/glm/doc/api/a00183.html
index 20f343b6ae2..f92695d95da 100644
--- a/3rdparty/glm/doc/api/a00183.html
+++ b/3rdparty/glm/doc/api/a00183.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_ulp</title>
+<title>0.9.9 API documenation: GLM_GTX_closest_point</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,187 +33,95 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_ulp<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_closest_point<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Find the point on a straight line which is the closet of a point.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &amp;x, T const &amp;y)</td></tr>
-<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; uint &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)</td></tr>
-<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
-<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &amp;x, uint const &amp;Distance)</td></tr>
-<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3&lt; T, P &gt; const &amp;point, tvec3&lt; T, P &gt; const &amp;a, tvec3&lt; T, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:gac26353282a8213e469f5e33560c1200f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the point on a straight line which is the closet of a point. <a href="a00183.html#gac26353282a8213e469f5e33560c1200f">More...</a><br /></td></tr>
+<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)</td></tr>
+<tr class="memdesc:gadc7010070bb0cacd284f560299b21660"><td class="mdescLeft">&#160;</td><td class="mdescRight">2d lines work as well <br /></td></tr>
+<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow the measurement of the accuracy of a function against a reference implementation. </p>
-<p>This extension works on floating-point data and provide results in ULP. &lt;<a class="el" href="a00137.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/ulp.hpp</a>&gt; need to be included to use these features. </p>
+<p>Find the point on a straight line which is the closet of a point. </p>
+<p>&lt;<a class="el" href="a00010.html" title="GLM_GTX_closest_point ">glm/gtx/closest_point.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga2e09bd6c8b0a9c91f6f5683d68245634"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::float_distance </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the distance in the number of ULP between 2 scalars. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga85355f2549d75789eb66e5d565d8ad26"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;uint&gt; glm::float_distance </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the distance in the number of ULP between 2 vectors. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae516ae554faa6117660828240e8bdaf0"></a>
+<a class="anchor" id="gac26353282a8213e469f5e33560c1200f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::closestPointOnLine </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the next ULP value(s) after the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad107ec3d9697ef82032a33338a73ebdd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const &amp;&#160;</td>
- <td class="paramname"><em>Distance</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the value(s) ULP distance after the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2fcbb7bfbfc595712bfddc51b0715b07"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the previous ULP value(s) before the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa399d5b6472a70e8952f9b26ecaacdec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const &amp;&#160;</td>
- <td class="paramname"><em>Distance</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -217,8 +131,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return the value(s) ULP distance before the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
+<p>Find the point on a straight line which is the closet of a point. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00184.html b/3rdparty/glm/doc/api/a00184.html
index ebb626e2c18..cd62ffcea34 100644
--- a/3rdparty/glm/doc/api/a00184.html
+++ b/3rdparty/glm/doc/api/a00184.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_vec1</title>
+<title>0.9.9 API documenation: GLM_GTX_color_space</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,223 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_vec1<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_color_space<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>Add vec1, ivec1, uvec1 and bvec1 types. </p>
-<p>&lt;<a class="el" href="a00138.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/vec1.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Related to RGB to HSV conversions and operations.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3&lt; T, P &gt; const &amp;rgbValue)</td></tr>
+<tr class="memdesc:gae72039c00a7be2f03a3b94b37a54349a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a color from RGB color space to its color in HSV color space. <a href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">More...</a><br /></td></tr>
+<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3&lt; T, P &gt; const &amp;color)</td></tr>
+<tr class="memdesc:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. <a href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">More...</a><br /></td></tr>
+<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3&lt; T, P &gt; const &amp;hsvValue)</td></tr>
+<tr class="memdesc:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a color from HSV color space to its color in RGB color space. <a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">More...</a><br /></td></tr>
+<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
+<tr class="memdesc:gafecfb15d58da8445103745af3348e516"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a saturation matrix. <a href="a00184.html#gafecfb15d58da8445103745af3348e516">More...</a><br /></td></tr>
+<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3&lt; T, P &gt; const &amp;color)</td></tr>
+<tr class="memdesc:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the saturation of a color. <a href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">More...</a><br /></td></tr>
+<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4&lt; T, P &gt; const &amp;color)</td></tr>
+<tr class="memdesc:ga2033e0566c595230714af396744e8a61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the saturation of a color. <a href="a00184.html#ga2033e0566c595230714af396744e8a61">More...</a><br /></td></tr>
+<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Related to RGB to HSV conversions and operations. </p>
+<p>&lt;<a class="el" href="a00013.html" title="GLM_GTX_color_space ">glm/gtx/color_space.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gae72039c00a7be2f03a3b94b37a54349a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::hsvColor </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>rgbValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a color from RGB color space to its color in HSV color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa2f38a5100c3e1c7d39920df43bd8cbe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::luminosity </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>color</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga36b0619e31daf57bc4a54dac2dcf34b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rgbColor </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>hsvValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a color from HSV color space to its color in RGB color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafecfb15d58da8445103745af3348e516"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::saturation </td>
+ <td>(</td>
+ <td class="paramtype">T const&#160;</td>
+ <td class="paramname"><em>s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a saturation matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga632ee8dadb44e90a05885f6f8c07d46c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::saturation </td>
+ <td>(</td>
+ <td class="paramtype">T const&#160;</td>
+ <td class="paramname"><em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>color</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modify the saturation of a color. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2033e0566c595230714af396744e8a61"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::saturation </td>
+ <td>(</td>
+ <td class="paramtype">T const&#160;</td>
+ <td class="paramname"><em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>color</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modify the saturation of a color. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00185.html b/3rdparty/glm/doc/api/a00185.html
index e5752d16189..63e8fa2887f 100644
--- a/3rdparty/glm/doc/api/a00185.html
+++ b/3rdparty/glm/doc/api/a00185.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_associated_min_max</title>
+<title>0.9.9 API documenation: GLM_GTX_color_space_YCoCg</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,1258 +33,158 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_associated_min_max<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_color_space_YCoCg<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>RGB to YCoCg conversions and operations.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
-<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
-<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
-<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
-<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
-<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
-<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
-<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c)</td></tr>
-<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
-<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
-<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
-<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
-<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P&gt; </td></tr>
-<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
-<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)</td></tr>
-<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType&lt; U, P &gt; &amp;a, T y, const vecType&lt; U, P &gt; &amp;b)</td></tr>
-<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)</td></tr>
-<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
-<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)</td></tr>
-<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
-<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
-<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
-<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)</td></tr>
-<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; U, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)</td></tr>
-<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
+<tr class="memdesc:ga19481f6947c5b5482debd41e71b8c941"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from RGB color space to YCoCg color space. <a href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">More...</a><br /></td></tr>
+<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
+<tr class="memdesc:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from RGB color space to YCoCgR color space. <a href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">More...</a><br /></td></tr>
+<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
+<tr class="memdesc:ga6d7e988a79b299ca1fa59f537e13800b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from YCoCg color space to RGB color space. <a href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">More...</a><br /></td></tr>
+<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
+<tr class="memdesc:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from YCoCgR color space to RGB color space. <a href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">More...</a><br /></td></tr>
+<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Min and max functions that return associated values not the compared onces. </p>
-<p>&lt;<a class="el" href="a00007.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/associated_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>RGB to YCoCg conversions and operations. </p>
+<p>&lt;<a class="el" href="a00014.html" title="GLM_GTX_color_space_YCoCg ">glm/gtx/color_space_YCoCg.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7d9c8785230c8db60f72ec8975f1ba45"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga10ba6001798f42a0f941f19ff30e066a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;U, P&gt; glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga62ca63cca6b21387b8a25474f441a869"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5364520173815b66a9d9e452c38bf312"></a>
+<a class="anchor" id="ga19481f6947c5b5482debd41e71b8c941"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rgb2YCoCg </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>rgbColor</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from RGB color space to YCoCg color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaec891e363d91abbf3a4443cf2f652209"></a>
+<a class="anchor" id="ga2e534594cc8ad252d23b14fb363ae9e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rgb2YCoCgR </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>rgbColor</em></td><td>)</td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from RGB color space to YCoCgR color space. </p>
+<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
+<dd>
+<a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga065a0c1eb7837118ef79be88dfd78487"></a>
+<a class="anchor" id="ga6d7e988a79b299ca1fa59f537e13800b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::YCoCg2rgb </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga553431a468e251623408603bcb51c9cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from YCoCg color space to RGB color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga327136e6a568569c03a056f90814b656"></a>
+<a class="anchor" id="ga4bac5462c00df0ae89242ecdbbe5dbad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::YCoCgR2rgb </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3038ffcb43eaa6af75897a99a5047ccc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf607886421c35cd7e4f41a50d7c330e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7a165de1af9a3f9193516a3b47407086"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3122fbe8133ea54749b10fb93e8a167e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacc01bd272359572fc28437ae214a02df"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8b538d10872626668a078e2bd495af25"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1dccff48fa5650c746533de83467da6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const vecType&lt; U, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const vecType&lt; U, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga076717f4e07c6ae725cc1382d1ac4869"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad0aa8f86259a26d839d34a3577a923fc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5bc6b9acbf9e060d58a342fbe3b73d43"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga432224ebe2085eaa2b63a077ecbbbff6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga88e031f22b80215505928900d3dde549"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0f63b0dce5a5c3242cc6d9847e7d14f1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; U, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga00a949fd345f4b31b259f033d3ab4a1c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;U, P&gt; glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U&#160;</td>
- <td class="paramname"><em>d</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from YCoCgR color space to RGB color space. </p>
+<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
+<dd>
+<a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00186.html b/3rdparty/glm/doc/api/a00186.html
index 8ea8b72a9e2..3ad3db3a611 100644
--- a/3rdparty/glm/doc/api/a00186.html
+++ b/3rdparty/glm/doc/api/a00186.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_bit</title>
+<title>0.9.9 API documenation: GLM_GTX_common</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,218 +33,120 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_bit<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_common<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Provide functions to increase the compatibility with Cg and HLSL languages.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
-<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
-<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
-<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
-<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
-<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType&lt; T, P &gt; const &amp;value)</td></tr>
-<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similar to 'mod' but with a different rounding and integer support. <a href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">More...</a><br /></td></tr>
+<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. <a href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">More...</a><br /></td></tr>
+<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p>&lt;<a class="el" href="a00008.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/bit.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
+<p>&lt;<a class="el" href="a00016.html" title="GLM_GTX_common ">glm/gtx/common.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga0dcc8fe7c3d3ad60dea409281efa3d05"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::highestBitValue </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5eea3a4d429040af13d39a7d7cd84d73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::highestBitValue </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Find the highest bit set to 1 in a integer variable and return its value. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8cda2459871f574a0aecbe702ac93291"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value. </p>
-<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafe08808a50226b75b50e640a08b32ddc"></a>
+<a class="anchor" id="ga2580f50d4064557d62f4a533dfc6c7e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; glm::powerOfTwoAbove </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fmod </td>
<td>(</td>
<td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the power of two number which value is just higher the input value. </p>
-<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<p>Similar to 'mod' but with a different rounding and integer support. </p>
+<p>Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://stackoverflow.com/questions/7610631/glsl-mod-vs-hlsl-fmod">GLSL mod vs HLSL fmod</a> </dd>
<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3de7df63c589325101a2817a56f8e29d"></a>
+<a class="anchor" id="ga74aa7c7462245d83bd5a9edf9c6c2d91"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow </td>
+ <td class="memname">GLM_FUNC_DECL genType::bool_type glm::isdenormal </td>
<td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value. </p>
-<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae33bb1ca2b55846b23a0f0796a679195"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; glm::powerOfTwoBelow </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value. </p>
-<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5f65973a5d2ea38c719e6a663149ead9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest </td>
- <td>(</td>
- <td class="paramtype">genIUType&#160;</td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is the closet to the input value. </p>
-<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2d7e85995d097518b8d70cd409bda39e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType&lt;T, P&gt; glm::powerOfTwoNearest </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>value</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the power of two number which value is the closet to the input value. </p>
-<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<p>Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. </p>
+<p>This format is less precise but can represent values closer to zero.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00187.html b/3rdparty/glm/doc/api/a00187.html
index 10b9ff26d21..473ccba39ec 100644
--- a/3rdparty/glm/doc/api/a00187.html
+++ b/3rdparty/glm/doc/api/a00187.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_closest_point</title>
+<title>0.9.9 API documenation: GLM_GTX_compatibility</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,71 +33,392 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_closest_point<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_compatibility<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Provide functions to increase the compatibility with Cg and HLSL languages.
+<a href="#details">More...</a></p>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
+typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
+<tr class="memdesc:gaddcd7aa2e30e61af5b38660613d3979e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
+typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
+<tr class="memdesc:ga7f895c936f0c29c8729afbbf22806090"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
+typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
+<tr class="memdesc:gafa8d0bc8dfa7eeb928208305714f648d"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
+typedef tmat2x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
+<tr class="memdesc:ga2bfb53bc320966c85149934fffb0329d"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
+typedef tmat2x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
+<tr class="memdesc:gad02e7dff74039bb1454643e293d85dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
+typedef tmat2x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
+<tr class="memdesc:ga379c0869949e8a69c3d06d7637caa5d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
+typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
+<tr class="memdesc:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
+typedef tmat3x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
+<tr class="memdesc:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
+typedef tmat3x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
+<tr class="memdesc:gae621c9eabcba552eea5f6ade1f403605"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
+typedef tmat3x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
+<tr class="memdesc:gad13f8250579ebf79760dcf64215ddb17"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
+typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
+<tr class="memdesc:ga6e79dbfab5917c467a154638ba27898e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
+typedef tmat4x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
+<tr class="memdesc:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
+typedef tmat4x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
+<tr class="memdesc:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
+typedef tmat4x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
+<tr class="memdesc:ga9770607032813e7b0ca7362a47efea1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
+typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
+<tr class="memdesc:ga20b861a9b6e2a300323671c57a02525b"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
+typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
+<tr class="memdesc:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
+typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
+<tr class="memdesc:gaa16a13c6f2768e83ca133430e82ab89e"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
+typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
+<tr class="memdesc:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
+typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
+<tr class="memdesc:gade37cf30c69bacb41ceea7e32717eac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
+typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
+<tr class="memdesc:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
+typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
+<tr class="memdesc:gaed4bc64196bd25d46f6a1f417320a391"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
+typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
+<tr class="memdesc:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
+typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
+<tr class="memdesc:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
+typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
+<tr class="memdesc:gaad84a1ea83be8fce04c1570c5e719413"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
+typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
+<tr class="memdesc:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
+typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
+<tr class="memdesc:ga2f87500119da15e35e4a74780ba512bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
+typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
+<tr class="memdesc:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
+typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
+<tr class="memdesc:ga686a3a5590f0a0e721faba08bda301d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
+typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
+<tr class="memdesc:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
+typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
+<tr class="memdesc:ga73720b8dc4620835b17f74d428f98c0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
+typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
+<tr class="memdesc:ga872a70333dd25af68b1ebba485be9e42"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
+typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
+<tr class="memdesc:gaad93cbc2b863e363d53d405d0451d03e"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
+typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
+<tr class="memdesc:ga098c33a30f901f4f6a76969d6db6b01b"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
+typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
+<tr class="memdesc:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
+typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
+<tr class="memdesc:ga2bfa618285894e34f299e4984f092d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
+typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
+<tr class="memdesc:gaf30014e7b6874f45d58eb580d04764ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
+typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
+<tr class="memdesc:ga2692a729a69615d72dbebbdd0eba2363"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
+typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
+<tr class="memdesc:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
+typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
+<tr class="memdesc:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
+typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
+<tr class="memdesc:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
+typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
+<tr class="memdesc:gad749b26be059f35394fd71c7f7a44034"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
+typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
+<tr class="memdesc:gaf40529862492ded2f3b96a6c886f6136"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
+typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
+<tr class="memdesc:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
+typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
+<tr class="memdesc:ga056ffe02d3a45af626f8e62221881c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
+typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
+<tr class="memdesc:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
+typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
+<tr class="memdesc:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
+typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
+<tr class="memdesc:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
+typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
+<tr class="memdesc:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
+typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
+<tr class="memdesc:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
+typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
+<tr class="memdesc:gaa98b1a06b802c975f02a5583f43632db"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
+typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
+<tr class="memdesc:ga20c4d23defbc123ac4745c9b4262156f"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
+typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
+<tr class="memdesc:ga7b00c53838143bce963177122ab92c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
+typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
+<tr class="memdesc:gab19c2df22e9b14081390fabd074081f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
+typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
+<tr class="memdesc:gaa53815539021200c4e10fd282832dcd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
+typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
+<tr class="memdesc:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
+typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
+<tr class="memdesc:ga3bacf576b4b29f2f2959abff7a36652d"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
+<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3&lt; T, P &gt; const &amp;point, tvec3&lt; T, P &gt; const &amp;a, tvec3&lt; T, P &gt; const &amp;b)</td></tr>
-<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
+<tr class="memdesc:gac63011205bf6d0be82589dc56dd26708"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y)</td></tr>
+<tr class="memdesc:ga525f3e849d0fc64807f8ab571b4545f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y)</td></tr>
+<tr class="memdesc:gad328042b6734d3f2c49c0ec1328b14c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)</td></tr>
+<tr class="memdesc:ga09d39c391a509a045b6c7061f15bdff5"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
+template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga553e2e95b06a0f70c718605998889d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga1be9593d810fceb278a2854da8a25273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
+<tr class="memdesc:ga5494ba3a95ea6594c86fc75236886864"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)</td></tr>
-<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, T a)</td></tr>
+<tr class="memdesc:ga0aa79a146332650a1eb18ae996c653fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, T a)</td></tr>
+<tr class="memdesc:gaf4c885ac72b8879b05777cb516c555c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, T a)</td></tr>
+<tr class="memdesc:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">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]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, const tvec2&lt; T, P &gt; &amp;a)</td></tr>
+<tr class="memdesc:ga7609b44d8aefc5a277efe73395ff4070"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, const tvec3&lt; T, P &gt; &amp;a)</td></tr>
+<tr class="memdesc:ga90a1d1364a8d078846857178bdcc9af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)</td></tr>
+<tr class="memdesc:gae4b0244b0d882657bed0a99dfa33f379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
+<tr class="memdesc:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga5815a26488231dfdf92242cf0c2d2107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
+<tr class="memdesc:ga63791409bdef9745b956406afe3157f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
+<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Find the point on a straight line which is the closet of a point. </p>
-<p>&lt;<a class="el" href="a00010.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/closest_point.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gac26353282a8213e469f5e33560c1200f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::closestPointOnLine </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>point</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Find the point on a straight line which is the closet of a point. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00187.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> </dd></dl>
-
-</div>
-</div>
+<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
+<p>&lt;<a class="el" href="a00017.html" title="GLM_GTX_compatibility ">glm/gtx/compatibility.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00188.html b/3rdparty/glm/doc/api/a00188.html
index 3f8ae78ed16..e58b48ae2ee 100644
--- a/3rdparty/glm/doc/api/a00188.html
+++ b/3rdparty/glm/doc/api/a00188.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_color_space</title>
+<title>0.9.9 API documenation: GLM_GTX_component_wise</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,178 +33,200 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_color_space<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_component_wise<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Operations between components of a type.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3&lt; T, P &gt; const &amp;rgbValue)</td></tr>
-<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3&lt; T, P &gt; const &amp;color)</td></tr>
-<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3&lt; T, P &gt; const &amp;hsvValue)</td></tr>
-<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
-<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3&lt; T, P &gt; const &amp;color)</td></tr>
-<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4&lt; T, P &gt; const &amp;color)</td></tr>
-<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gaf71833350e15e74d31cbf8a3e7f27051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add all vector components together. <a href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">More...</a><br /></td></tr>
+<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gabfa4bb19298c8c73d4217ba759c496b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the maximum value between single vector components. <a href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">More...</a><br /></td></tr>
+<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the minimum value between single vector components. <a href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">More...</a><br /></td></tr>
+<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &amp;v)</td></tr>
+<tr class="memdesc:gae8ab88024197202c9479d33bdc5a8a5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply all vector components together. <a href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">More...</a><br /></td></tr>
+<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplParams" colspan="2">template&lt;typename floatType , typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; floatType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an integer vector to a normalized float vector. <a href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">More...</a><br /></td></tr>
+<tr class="separator:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplParams" colspan="2">template&lt;typename T , typename floatType , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a> (vecType&lt; floatType, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gaea99a3271016bfd331d9fa7587f3db37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a normalized float vector to an integer vector. <a href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">More...</a><br /></td></tr>
+<tr class="separator:gaea99a3271016bfd331d9fa7587f3db37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Related to RGB to HSV conversions and operations. </p>
-<p>&lt;<a class="el" href="a00012.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/color_space.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Operations between components of a type. </p>
+<p>&lt;<a class="el" href="a00018.html" title="GLM_GTX_component_wise ">glm/gtx/component_wise.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gae72039c00a7be2f03a3b94b37a54349a"></a>
+<a class="anchor" id="gaf71833350e15e74d31cbf8a3e7f27051"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::hsvColor </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compAdd </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>rgbValue</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a color from RGB color space to its color in HSV color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Add all vector components together. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa2f38a5100c3e1c7d39920df43bd8cbe"></a>
+<a class="anchor" id="gabfa4bb19298c8c73d4217ba759c496b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::luminosity </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMax </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>color</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Find the maximum value between single vector components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga36b0619e31daf57bc4a54dac2dcf34b7"></a>
+<a class="anchor" id="gab5d0832b5c7bb01b8d7395973bfb1425"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rgbColor </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMin </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>hsvValue</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a color from HSV color space to its color in RGB color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Find the minimum value between single vector components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gafecfb15d58da8445103745af3348e516"></a>
+<a class="anchor" id="gae8ab88024197202c9479d33bdc5a8a5d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::saturation </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMul </td>
<td>(</td>
- <td class="paramtype">T const&#160;</td>
- <td class="paramname"><em>s</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a saturation matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Multiply all vector components together. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga632ee8dadb44e90a05885f6f8c07d46c"></a>
+<a class="anchor" id="gaeb34fdf090d2d4da9babcdfec267f09e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::saturation </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;floatType, P&gt; glm::compNormalize </td>
<td>(</td>
- <td class="paramtype">T const&#160;</td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>color</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modify the saturation of a color. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Convert an integer vector to a normalized float vector. </p>
+<p>If the parameter value type is already a floating precision type, the value is passed through. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2033e0566c595230714af396744e8a61"></a>
+<a class="anchor" id="gaea99a3271016bfd331d9fa7587f3db37"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::saturation </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::compScale </td>
<td>(</td>
- <td class="paramtype">T const&#160;</td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>color</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; floatType, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modify the saturation of a color. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Convert a normalized float vector to an integer vector. </p>
+<p>If the parameter value type is already a floating precision type, the value is passed through. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00189.html b/3rdparty/glm/doc/api/a00189.html
index f272d45df05..b377b84d186 100644
--- a/3rdparty/glm/doc/api/a00189.html
+++ b/3rdparty/glm/doc/api/a00189.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_color_space_YCoCg</title>
+<title>0.9.9 API documenation: GLM_GTX_dual_quaternion</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,118 +33,484 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_color_space_YCoCg<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_dual_quaternion<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines a templated dual-quaternion type and several dual-quaternion operations.
+<a href="#details">More...</a></p>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
+<tr class="memdesc:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of default double-precision floating-point numbers. <a href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">More...</a><br /></td></tr>
+<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
+<tr class="memdesc:gae93abee0c979902fbec6a7bee0f6fae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of floating-point numbers. <a href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">More...</a><br /></td></tr>
+<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
+<tr class="memdesc:ga237c2b9b42c9a930e49de5840ae0f930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of single-precision floating-point numbers. <a href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">More...</a><br /></td></tr>
+<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
+<tr class="memdesc:ga8f67eafa7197d7a668dad5105a463d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of high double-precision floating-point numbers. <a href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">More...</a><br /></td></tr>
+<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
+<tr class="memdesc:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of high single-precision floating-point numbers. <a href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">More...</a><br /></td></tr>
+<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
+<tr class="memdesc:ga4c4e55e9c99dc57b299ed590968da564"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of high single-precision floating-point numbers. <a href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">More...</a><br /></td></tr>
+<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
+<tr class="memdesc:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of low double-precision floating-point numbers. <a href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">More...</a><br /></td></tr>
+<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
+<tr class="memdesc:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of low single-precision floating-point numbers. <a href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">More...</a><br /></td></tr>
+<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
+<tr class="memdesc:gaa38f671be25a7f3b136a452a8bb42860"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of low single-precision floating-point numbers. <a href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">More...</a><br /></td></tr>
+<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
+<tr class="memdesc:ga0fb11e48e2d16348ccb06a25213641b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of medium double-precision floating-point numbers. <a href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">More...</a><br /></td></tr>
+<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
+<tr class="memdesc:gaa7aeb54c167712b38f2178a1be2360ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of medium single-precision floating-point numbers. <a href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">More...</a><br /></td></tr>
+<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
+<tr class="memdesc:ga4a6b594ff7e81150d8143001367a9431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dual-quaternion of medium single-precision floating-point numbers. <a href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">More...</a><br /></td></tr>
+<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
-<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3&lt; T, P &gt; const &amp;rgbColor)</td></tr>
-<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
-<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3&lt; T, P &gt; const &amp;YCoCgColor)</td></tr>
-<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gada9799afe2b62394dc498534beb5bc78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. <a href="a00189.html#gada9799afe2b62394dc498534beb5bc78">More...</a><br /></td></tr>
+<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. <a href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">More...</a><br /></td></tr>
+<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the q inverse. <a href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">More...</a><br /></td></tr>
+<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:ga8039b88397ca09275be924a26a806a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the linear interpolation of two dual quaternion. <a href="a00189.html#ga8039b88397ca09275be924a26a806a59">More...</a><br /></td></tr>
+<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2d124748183e12db8288eeaca350298e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 2 * 4 matrix. <a href="a00189.html#ga2d124748183e12db8288eeaca350298e">More...</a><br /></td></tr>
+<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga576745d979e3c079a64152490c816954"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 3 * 4 matrix. <a href="a00189.html#ga576745d979e3c079a64152490c816954">More...</a><br /></td></tr>
+<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga495818aa48c23e9e730f87a3c337d1d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the normalized quaternion. <a href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">More...</a><br /></td></tr>
+<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>RGB to YCoCg conversions and operations. </p>
-<p>&lt;<a class="el" href="a00013.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/color_space_YCoCg.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Defines a templated dual-quaternion type and several dual-quaternion operations. </p>
+<p>&lt;<a class="el" href="a00020.html" title="GLM_GTX_dual_quaternion ">glm/gtx/dual_quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga3d71f98d84ba59dfe4e369fde4714cd6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ddualquat ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of default double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00255">255</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae93abee0c979902fbec6a7bee0f6fae1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_fdualquat dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00231">231</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga237c2b9b42c9a930e49de5840ae0f930"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_fdualquat fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00236">236</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8f67eafa7197d7a668dad5105a463d2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;double, highp&gt; highp_ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of high double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00224">224</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9ef5bf1da52a9d4932335a517086ceaf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;float, highp&gt; highp_dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of high single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00192">192</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4c4e55e9c99dc57b299ed590968da564"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;float, highp&gt; highp_fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of high single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00208">208</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab4c5103338af3dac7e0fbc86895a3f1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;double, lowp&gt; lowp_ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of low double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00214">214</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade05d29ebd4deea0f883d0e1bb4169aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;float, lowp&gt; lowp_dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of low single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00182">182</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa38f671be25a7f3b136a452a8bb42860"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;float, lowp&gt; lowp_fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of low single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00198">198</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0fb11e48e2d16348ccb06a25213641b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;double, mediump&gt; mediump_ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of medium double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00219">219</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7aeb54c167712b38f2178a1be2360ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;float, mediump&gt; mediump_dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00187">187</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4a6b594ff7e81150d8143001367a9431"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat&lt;float, mediump&gt; mediump_fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00020_source.html#l00203">203</a> of file <a class="el" href="a00020_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga19481f6947c5b5482debd41e71b8c941"></a>
+<a class="anchor" id="gada9799afe2b62394dc498534beb5bc78"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rgb2YCoCg </td>
+ <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::dualquat_cast </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>rgbColor</em></td><td>)</td>
+ <td class="paramtype">tmat2x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga20eb5758beb73cc6dbc2d9104f03ec20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::dualquat_cast </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2149d3cb8af04d9530de0cd16aa1aab2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::inverse </td>
+ <td>(</td>
+ <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the q inverse. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8039b88397ca09275be924a26a806a59"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::lerp </td>
+ <td>(</td>
+ <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from RGB color space to YCoCg color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Returns the linear interpolation of two dual quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd>gtc_dual_quaternion </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2e534594cc8ad252d23b14fb363ae9e2"></a>
+<a class="anchor" id="ga2d124748183e12db8288eeaca350298e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rgb2YCoCgR </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x4&lt;T, P&gt; glm::mat2x4_cast </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>rgbColor</em></td><td>)</td>
+ <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from RGB color space to YCoCgR color space. </p>
-<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
-<dd>
-<a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Converts a quaternion to a 2 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6d7e988a79b299ca1fa59f537e13800b"></a>
+<a class="anchor" id="ga576745d979e3c079a64152490c816954"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::YCoCg2rgb </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x4&lt;T, P&gt; glm::mat3x4_cast </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
+ <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from YCoCg color space to RGB color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Converts a quaternion to a 3 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4bac5462c00df0ae89242ecdbbe5dbad"></a>
+<a class="anchor" id="ga495818aa48c23e9e730f87a3c337d1d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::YCoCgR2rgb </td>
+ <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::normalize </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
+ <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from YCoCgR color space to RGB color space. </p>
-<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
-<dd>
-<a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Returns the normalized quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00190.html b/3rdparty/glm/doc/api/a00190.html
index 61bd069d344..8ea06f0387b 100644
--- a/3rdparty/glm/doc/api/a00190.html
+++ b/3rdparty/glm/doc/api/a00190.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_common</title>
+<title>0.9.9 API documenation: GLM_GTX_euler_angles</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,82 +33,583 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_common<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_euler_angles<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Build matrices from Euler angles.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &amp;angleX)</td></tr>
+<tr class="memdesc:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. <a href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">More...</a><br /></td></tr>
+<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &amp;angleX, T const &amp;angleY)</td></tr>
+<tr class="memdesc:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). <a href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">More...</a><br /></td></tr>
+<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &amp;t1, T const &amp;t2, T const &amp;t3)</td></tr>
+<tr class="memdesc:gaaedda1657a1aebe0a904d864b33844e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). <a href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">More...</a><br /></td></tr>
+<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &amp;angleX, T const &amp;angleZ)</td></tr>
+<tr class="memdesc:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). <a href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">More...</a><br /></td></tr>
+<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &amp;angleY)</td></tr>
+<tr class="memdesc:gaeb193af1184bdf39c23636d756e1ff33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. <a href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">More...</a><br /></td></tr>
+<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &amp;angleY, T const &amp;angleX)</td></tr>
+<tr class="memdesc:gafdd02f9a37511190962119adef5c1c25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). <a href="a00190.html#gafdd02f9a37511190962119adef5c1c25">More...</a><br /></td></tr>
+<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
+<tr class="memdesc:ga0242b5ab68651db70c6025815549427f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#ga0242b5ab68651db70c6025815549427f">More...</a><br /></td></tr>
+<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &amp;angleY, T const &amp;angleZ)</td></tr>
+<tr class="memdesc:ga1033f84f51d61646145352ef0c1bb58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). <a href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">More...</a><br /></td></tr>
+<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &amp;angleZ)</td></tr>
+<tr class="memdesc:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. <a href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">More...</a><br /></td></tr>
+<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &amp;angle, T const &amp;angleX)</td></tr>
+<tr class="memdesc:gaef83cf40bd9ae780011b29970f16f622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). <a href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">More...</a><br /></td></tr>
+<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &amp;angleZ, T const &amp;angleY)</td></tr>
+<tr class="memdesc:ga02f037926568bbd12dfece3b28b20343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). <a href="a00190.html#ga02f037926568bbd12dfece3b28b20343">More...</a><br /></td></tr>
+<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a> (tmat4x4&lt; T, defaultp &gt; const &amp;M, T &amp;t1, T &amp;t2, T &amp;t3)</td></tr>
+<tr class="memdesc:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. <a href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">More...</a><br /></td></tr>
+<tr class="separator:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &amp;angle)</td></tr>
+<tr class="memdesc:ga6f465681cbbc575ad93a53ec918dacf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 2D 2 * 2 rotation matrix from an euler angle. <a href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">More...</a><br /></td></tr>
+<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &amp;angle)</td></tr>
+<tr class="memdesc:gab188e2526dea3c003e86e298f618085e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. <a href="a00190.html#gab188e2526dea3c003e86e298f618085e">More...</a><br /></td></tr>
+<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
+<tr class="memdesc:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">More...</a><br /></td></tr>
+<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
+<tr class="memdesc:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">More...</a><br /></td></tr>
+<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
+<tr class="memdesc:gaf9c8d0f1df88c5344165600774489bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). <a href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">More...</a><br /></td></tr>
+<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
-<p>&lt;<a class="el" href="a00015.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/common.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Build matrices from Euler angles. </p>
+<p>&lt;<a class="el" href="a00022.html" title="GLM_GTX_euler_angles ">glm/gtx/euler_angles.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga2580f50d4064557d62f4a533dfc6c7e3"></a>
+<a class="anchor" id="ga82cd3b8a04943f1a0d1a562aff358dc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleX </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleX</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8bf84f92ca976a7f50dbe4b30ceb72dd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fmod </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleXY </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleX</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleY</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Similar to 'mod' but with a different rounding and integer support. </p>
-<p>Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://stackoverflow.com/questions/7610631/glsl-mod-vs-hlsl-fmod">GLSL mod vs HLSL fmod</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd></dl>
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga74aa7c7462245d83bd5a9edf9c6c2d91"></a>
+<a class="anchor" id="gaaedda1657a1aebe0a904d864b33844e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::bool_type glm::isdenormal </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleXYZ </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>t3</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab2d7dc94b9a7519d741aaa208c7a335b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleXZ </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleX</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleZ</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaeb193af1184bdf39c23636d756e1ff33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleY </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleY</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafdd02f9a37511190962119adef5c1c25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleYX </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleY</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleX</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0242b5ab68651db70c6025815549427f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleYXZ </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>yaw</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>pitch</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>roll</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1033f84f51d61646145352ef0c1bb58c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleYZ </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleY</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleZ</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab59c4fe7f735568255cc19fddd3ddfcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleZ </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleZ</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaef83cf40bd9ae780011b29970f16f622"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleZX </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleX</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga02f037926568bbd12dfece3b28b20343"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleZY </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleZ</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angleY</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad5838a4c87ce2b8ee4c4e17bd162fd14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL void glm::extractEulerAngleXYZ </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, defaultp &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>M</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T &amp;&#160;</td>
+ <td class="paramname"><em>t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T &amp;&#160;</td>
+ <td class="paramname"><em>t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T &amp;&#160;</td>
+ <td class="paramname"><em>t3</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6f465681cbbc575ad93a53ec918dacf3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; glm::orientate2 </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 2D 2 * 2 rotation matrix from an euler angle. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab188e2526dea3c003e86e298f618085e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; glm::orientate3 </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga33f0d790cecd8337ee83f8e3a8109b11"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::orientate3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>angles</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4e25c9468b6f002c76e9a2412bcfa503"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::orientate4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>angles</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf9c8d0f1df88c5344165600774489bc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::yawPitchRoll </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>yaw</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>pitch</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>roll</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. </p>
-<p>This format is less precise but can represent values closer to zero.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00191.html b/3rdparty/glm/doc/api/a00191.html
index 488533be95a..d5de34fe7b6 100644
--- a/3rdparty/glm/doc/api/a00191.html
+++ b/3rdparty/glm/doc/api/a00191.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_compatibility</title>
+<title>0.9.9 API documenation: GLM_GTX_extend</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,280 +33,104 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_compatibility<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_extend<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Extend a position from a source to a position at a defined length.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
-typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
-<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
-typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
-<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
-typedef tvec2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
-<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
-typedef tmat2x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
-<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
-typedef tmat2x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
-<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
-typedef tmat2x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
-<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
-typedef tvec3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
-<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
-typedef tmat3x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
-<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
-typedef tmat3x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
-<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
-typedef tmat3x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
-<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
-typedef tvec4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
-<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
-typedef tmat4x2&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
-<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
-typedef tmat4x3&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
-<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
-typedef tmat4x4&lt; bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
-<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
-typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
-<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
-typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
-<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
-typedef tvec2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
-<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
-typedef tmat2x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
-<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
-typedef tmat2x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
-<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
-typedef tmat2x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
-<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
-typedef tvec3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
-<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
-typedef tmat3x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
-<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
-typedef tmat3x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
-<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
-typedef tmat3x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
-<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
-typedef tvec4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
-<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
-typedef tmat4x2&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
-<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
-typedef tmat4x3&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
-<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
-typedef tmat4x4&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
-<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
-typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
-<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
-typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
-<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
-typedef tvec2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
-<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
-typedef tmat2x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
-<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
-typedef tmat2x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
-<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
-typedef tmat2x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
-<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
-typedef tvec3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
-<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
-typedef tmat3x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
-<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
-typedef tmat3x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
-<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
-typedef tmat3x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
-<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
-typedef tvec4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
-<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
-typedef tmat4x2&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
-<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
-typedef tmat4x3&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
-<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
-typedef tmat4x4&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
-<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
-typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
-<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
-typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
-<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
-typedef tvec2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
-<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
-typedef tmat2x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
-<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
-typedef tmat2x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
-<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
-typedef tmat2x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
-<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
-typedef tvec3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
-<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
-typedef tmat3x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
-<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
-typedef tmat3x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
-<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
-typedef tmat3x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
-<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
-typedef tvec4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
-<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
-typedef tmat4x2&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
-<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
-typedef tmat4x3&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
-<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
-typedef tmat4x4&lt; int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
-<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
-<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y)</td></tr>
-<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y)</td></tr>
-<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)</td></tr>
-<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
-template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
-template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
-<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, T a)</td></tr>
-<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, T a)</td></tr>
-<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, T a)</td></tr>
-<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, const tvec2&lt; T, P &gt; &amp;a)</td></tr>
-<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, const tvec3&lt; T, P &gt; &amp;a)</td></tr>
-<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)</td></tr>
-<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
-<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4&lt; T, P &gt; &amp;x)</td></tr>
-<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
+<tr class="memdesc:ga8140caae613b0f847ab0d7175dc03a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extends of Length the Origin position using the (Source - Origin) direction. <a href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">More...</a><br /></td></tr>
+<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
-<p>&lt;<a class="el" href="a00016.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/compatibility.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Extend a position from a source to a position at a defined length. </p>
+<p>&lt;<a class="el" href="a00025.html" title="GLM_GTX_extend ">glm/gtx/extend.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga8140caae613b0f847ab0d7175dc03a37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::extend </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>Origin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const&#160;</td>
+ <td class="paramname"><em>Length</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extends of Length the Origin position using the (Source - Origin) direction. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00191.html" title="Extend a position from a source to a position at a defined length. ">GLM_GTX_extend</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00192.html b/3rdparty/glm/doc/api/a00192.html
index df58531cc31..9bb0bc7b340 100644
--- a/3rdparty/glm/doc/api/a00192.html
+++ b/3rdparty/glm/doc/api/a00192.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_component_wise</title>
+<title>0.9.9 API documenation: GLM_GTX_extented_min_max</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,114 +33,566 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_component_wise<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_extented_min_max<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Min and max functions for 3 to 4 parameters.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &amp;v)</td></tr>
-<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
+<tr class="memdesc:ga04991ccb9865c4c4e58488cfb209ce69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 3 inputs. <a href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">More...</a><br /></td></tr>
+<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
+<tr class="memdesc:gae1b7bbe5c91de4924835ea3e14530744"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 3 inputs. <a href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">More...</a><br /></td></tr>
+<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
+<tr class="memdesc:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 3 inputs. <a href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">More...</a><br /></td></tr>
+<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
+<tr class="memdesc:ga78e04a0cef1c4863fcae1a2130500d87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 4 inputs. <a href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">More...</a><br /></td></tr>
+<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
+<tr class="memdesc:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 4 inputs. <a href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">More...</a><br /></td></tr>
+<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
+<tr class="memdesc:gaacffbc466c2d08c140b181e7fd8a4858"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum component-wise values of 4 inputs. <a href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">More...</a><br /></td></tr>
+<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
+<tr class="memdesc:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 3 inputs. <a href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">More...</a><br /></td></tr>
+<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
+<tr class="memdesc:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 3 inputs. <a href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">More...</a><br /></td></tr>
+<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
+<tr class="memdesc:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 3 inputs. <a href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">More...</a><br /></td></tr>
+<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga95466987024d03039607f09e69813d69">min</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
+<tr class="memdesc:ga95466987024d03039607f09e69813d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 4 inputs. <a href="a00192.html#ga95466987024d03039607f09e69813d69">More...</a><br /></td></tr>
+<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
+<tr class="memdesc:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 4 inputs. <a href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">More...</a><br /></td></tr>
+<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
+<tr class="memdesc:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the minimum component-wise values of 4 inputs. <a href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">More...</a><br /></td></tr>
+<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Operations between components of a type. </p>
-<p>&lt;<a class="el" href="a00017.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/component_wise.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Min and max functions for 3 to 4 parameters. </p>
+<p>&lt;glm/gtx/extented_min_max.hpp&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaf71833350e15e74d31cbf8a3e7f27051"></a>
+<a class="anchor" id="ga04991ccb9865c4c4e58488cfb209ce69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::max </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae1b7bbe5c91de4924835ea3e14530744"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
+ <td>(</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf832e9d4ab4826b2dda2fda25935a3a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
+ <td>(</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga78e04a0cef1c4863fcae1a2130500d87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compAdd </td>
+ <td class="memname">GLM_FUNC_DECL T glm::max </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Add all vector components together. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the maximum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabfa4bb19298c8c73d4217ba759c496b6"></a>
+<a class="anchor" id="ga7cca8b53cfda402040494cdf40fbdf4a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMax </td>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Find the maximum value between single vector components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the maximum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab5d0832b5c7bb01b8d7395973bfb1425"></a>
+<a class="anchor" id="gaacffbc466c2d08c140b181e7fd8a4858"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMin </td>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Find the minimum value between single vector components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the maximum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae8ab88024197202c9479d33bdc5a8a5d"></a>
+<a class="anchor" id="ga713d3f9b3e76312c0d314e0c8611a6a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMul </td>
+ <td class="memname">GLM_FUNC_DECL T glm::min </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga74d1a96e7cdbac40f6d35142d3bcbbd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
+ <td>(</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga42b5c3fc027fd3d9a50d2ccc9126d9f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
+ <td>(</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga95466987024d03039607f09e69813d69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::min </td>
+ <td>(</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4fe35dd31dd0c45693c9b60b830b8d47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
+ <td>(</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7471ea4159eed8dd9ea4ac5d46c2fead"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
+ <td>(</td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>w</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Multiply all vector components together. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the minimum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00193.html b/3rdparty/glm/doc/api/a00193.html
index 7eb5dc76133..16eeb157035 100644
--- a/3rdparty/glm/doc/api/a00193.html
+++ b/3rdparty/glm/doc/api/a00193.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_dual_quaternion</title>
+<title>0.9.9 API documenation: GLM_GTX_fast_exponential</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,361 +33,309 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_dual_quaternion<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_fast_exponential<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Fast but less accurate implementations of exponential based functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
-<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
-<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
-<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
-<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
-<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
-<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
-<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
-<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, lowp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
-<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; double, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
-<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
-<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat&lt; float, mediump &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
-<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
+<tr class="memdesc:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp function but less accurate. <a href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">More...</a><br /></td></tr>
+<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp function but less accurate. <a href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">More...</a><br /></td></tr>
+<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
+<tr class="memdesc:ga0af50585955eb14c60bb286297fabab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp2 function but less accurate. <a href="a00193.html#ga0af50585955eb14c60bb286297fabab2">More...</a><br /></td></tr>
+<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga9e6219327b7a33077dbec7620d981fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp2 function but less accurate. <a href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">More...</a><br /></td></tr>
+<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
+<tr class="memdesc:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common log function but less accurate. <a href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">More...</a><br /></td></tr>
+<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common exp2 function but less accurate. <a href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">More...</a><br /></td></tr>
+<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
+<tr class="memdesc:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common log2 function but less accurate. <a href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">More...</a><br /></td></tr>
+<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common log2 function but less accurate. <a href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">More...</a><br /></td></tr>
+<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:ga5340e98a11fcbbd936ba6e983a154d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">More...</a><br /></td></tr>
+<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga07b73976a9af4005945bc338b45d8466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga07b73976a9af4005945bc338b45d8466">More...</a><br /></td></tr>
+<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
+<tr class="memdesc:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">More...</a><br /></td></tr>
+<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga29924aea1aa11c5c504fb2d621221906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common pow function but less accurate. <a href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">More...</a><br /></td></tr>
+<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines a templated dual-quaternion type and several dual-quaternion operations. </p>
-<p>&lt;<a class="el" href="a00019.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/dual_quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga3d71f98d84ba59dfe4e369fde4714cd6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ddualquat ddualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of default double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00283">283</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae93abee0c979902fbec6a7bee0f6fae1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_fdualquat dualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00259">259</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga237c2b9b42c9a930e49de5840ae0f930"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_fdualquat fdualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00264">264</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8f67eafa7197d7a668dad5105a463d2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tdualquat&lt;double, highp&gt; highp_ddualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of high double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00252">252</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9ef5bf1da52a9d4932335a517086ceaf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tdualquat&lt;float, highp&gt; highp_dualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of high single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00220">220</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4c4e55e9c99dc57b299ed590968da564"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tdualquat&lt;float, highp&gt; highp_fdualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of high single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00236">236</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab4c5103338af3dac7e0fbc86895a3f1a"></a>
+<p>Fast but less accurate implementations of exponential based functions. </p>
+<p>&lt;<a class="el" href="a00027.html" title="GLM_GTX_fast_exponential ">glm/gtx/fast_exponential.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaa3180ac8f96ab37ab96e0cacaf608e10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat&lt;double, lowp&gt; lowp_ddualquat</td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastExp </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of low double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00242">242</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gade05d29ebd4deea0f883d0e1bb4169aa"></a>
+<a class="anchor" id="ga4faf0b61115de36efcf47c4ecb55a5fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat&lt;float, lowp&gt; lowp_dualquat</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastExp </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of low single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00210">210</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa38f671be25a7f3b136a452a8bb42860"></a>
+<a class="anchor" id="ga0af50585955eb14c60bb286297fabab2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat&lt;float, lowp&gt; lowp_fdualquat</td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastExp2 </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of low single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00226">226</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0fb11e48e2d16348ccb06a25213641b4"></a>
+<a class="anchor" id="ga9e6219327b7a33077dbec7620d981fff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat&lt;double, mediump&gt; mediump_ddualquat</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastExp2 </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of medium double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00247">247</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa7aeb54c167712b38f2178a1be2360ad"></a>
+<a class="anchor" id="gae1bdc97b7f96a600e29c753f1cd4388a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat&lt;float, mediump&gt; mediump_dualquat</td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastLog </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00215">215</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common log function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4a6b594ff7e81150d8143001367a9431"></a>
+<a class="anchor" id="ga789abcbc34d08008d2f5a4547dd6e5e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat&lt;float, mediump&gt; mediump_fdualquat</td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastLog </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00231">231</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gada9799afe2b62394dc498534beb5bc78"></a>
+<a class="anchor" id="ga6e98118685f6dc9e05fbb13dd5e5234e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::dualquat_cast </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastLog2 </td>
<td>(</td>
- <td class="paramtype">tmat2x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">T&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common log2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga20eb5758beb73cc6dbc2d9104f03ec20"></a>
+<a class="anchor" id="gabc46086fe6636b8be87f09e6c5d2bb58"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::dualquat_cast </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastLog2 </td>
<td>(</td>
- <td class="paramtype">tmat3x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common log2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2149d3cb8af04d9530de0cd16aa1aab2"></a>
+<a class="anchor" id="ga5340e98a11fcbbd936ba6e983a154d50"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::inverse </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q inverse. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8039b88397ca09275be924a26a806a59"></a>
+<a class="anchor" id="ga07b73976a9af4005945bc338b45d8466"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::lerp </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -391,65 +345,56 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the linear interpolation of two dual quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd>gtc_dual_quaternion </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2d124748183e12db8288eeaca350298e"></a>
+<a class="anchor" id="ga7f2562db9c3e02ae76169c36b086c3f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x4&lt;T, P&gt; glm::mat2x4_cast </td>
+ <td class="memname">GLM_FUNC_DECL genTypeT glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype">genTypeT&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">genTypeU&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a quaternion to a 2 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga576745d979e3c079a64152490c816954"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x4&lt;T, P&gt; glm::mat3x4_cast </td>
- <td>(</td>
- <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a quaternion to a 3 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga495818aa48c23e9e730f87a3c337d1d5"></a>
+<a class="anchor" id="ga29924aea1aa11c5c504fb2d621221906"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat&lt;T, P&gt; glm::normalize </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the normalized quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00194.html b/3rdparty/glm/doc/api/a00194.html
index d81dba12f2f..ef7ec49db54 100644
--- a/3rdparty/glm/doc/api/a00194.html
+++ b/3rdparty/glm/doc/api/a00194.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_euler_angles</title>
+<title>0.9.9 API documenation: GLM_GTX_fast_square_root</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,114 +33,119 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_euler_angles<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_fast_square_root<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Fast but less accurate implementations of square root based functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &amp;angleX)</td></tr>
-<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &amp;angleX, T const &amp;angleY)</td></tr>
-<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &amp;t1, T const &amp;t2, T const &amp;t3)</td></tr>
-<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &amp;angleX, T const &amp;angleZ)</td></tr>
-<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &amp;angleY)</td></tr>
-<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &amp;angleY, T const &amp;angleX)</td></tr>
-<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
-<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &amp;angleY, T const &amp;angleZ)</td></tr>
-<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &amp;angleZ)</td></tr>
-<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &amp;angle, T const &amp;angleX)</td></tr>
-<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &amp;angleZ, T const &amp;angleY)</td></tr>
-<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">extractEulerAngleXYZ</a> (tmat4x4&lt; T, defaultp &gt; &amp;M, T &amp;t1, T &amp;t2, T &amp;t3)</td></tr>
-<tr class="separator:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &amp;angle)</td></tr>
-<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &amp;angle)</td></tr>
-<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
-<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3&lt; T, P &gt; const &amp;angles)</td></tr>
-<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &amp;yaw, T const &amp;pitch, T const &amp;roll)</td></tr>
-<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
+<tr class="memdesc:gaac333418d0c4e0cc6d3d219ed606c238"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common distance function but less accurate. <a href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">More...</a><br /></td></tr>
+<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common distance function but less accurate. <a href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">More...</a><br /></td></tr>
+<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
+<tr class="memdesc:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common inversesqrt function but less accurate. <a href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">More...</a><br /></td></tr>
+<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga903878071f92e51e551791e584a171a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common inversesqrt function but less accurate. <a href="a00194.html#ga903878071f92e51e551791e584a171a1">More...</a><br /></td></tr>
+<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
+<tr class="memdesc:gafe697d6287719538346bbdf8b1367c59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common length function but less accurate. <a href="a00194.html#gafe697d6287719538346bbdf8b1367c59">More...</a><br /></td></tr>
+<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common length function but less accurate. <a href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">More...</a><br /></td></tr>
+<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common normalize function but less accurate. <a href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">More...</a><br /></td></tr>
+<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
+<tr class="memdesc:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common sqrt function but less accurate. <a href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">More...</a><br /></td></tr>
+<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common sqrt function but less accurate. <a href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">More...</a><br /></td></tr>
+<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build matrices from Euler angles. </p>
-<p>&lt;<a class="el" href="a00021.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/euler_angles.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Fast but less accurate implementations of square root based functions. </p>
+<ul>
+<li>Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956</li>
+</ul>
+<p>&lt;<a class="el" href="a00028.html" title="GLM_GTX_fast_square_root ">glm/gtx/fast_square_root.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga82cd3b8a04943f1a0d1a562aff358dc8"></a>
+<a class="anchor" id="gaac333418d0c4e0cc6d3d219ed606c238"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleX </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastDistance </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleX</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8bf84f92ca976a7f50dbe4b30ceb72dd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleXY </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleX</em>, </td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleY</em>&#160;</td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -144,32 +155,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common distance function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaaedda1657a1aebe0a904d864b33844e8"></a>
+<a class="anchor" id="ga6d1ac559cd77d69119e30c3aca0e14b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleXYZ </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastDistance </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>t1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>t2</em>, </td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>t3</em>&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -179,378 +184,141 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common distance function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gab2d7dc94b9a7519d741aaa208c7a335b"></a>
+<a class="anchor" id="ga7f081b14d9c7035c8714eba5f7f75a8f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleXZ </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastInverseSqrt </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleX</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleZ</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common inversesqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaeb193af1184bdf39c23636d756e1ff33"></a>
+<a class="anchor" id="ga903878071f92e51e551791e584a171a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleY </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastInverseSqrt </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleY</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common inversesqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gafdd02f9a37511190962119adef5c1c25"></a>
+<a class="anchor" id="gafe697d6287719538346bbdf8b1367c59"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleYX </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastLength </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleY</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleX</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common length function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0242b5ab68651db70c6025815549427f"></a>
+<a class="anchor" id="gae28a3099cbd6404a4ea8ef22147ed7b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleYXZ </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastLength </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>yaw</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>pitch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>roll</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1033f84f51d61646145352ef0c1bb58c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleYZ </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleY</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleZ</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common length function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gab59c4fe7f735568255cc19fddd3ddfcd"></a>
+<a class="anchor" id="ga3b02c1d6e0c754144e2f1e110bf9f16c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleZ </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastNormalize </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleZ</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common normalize function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaef83cf40bd9ae780011b29970f16f622"></a>
+<a class="anchor" id="ga6c460e9414a50b2fc455c8f64c86cdc9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleZX </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastSqrt </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleX</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">genType&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common sqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga02f037926568bbd12dfece3b28b20343"></a>
+<a class="anchor" id="gaad9f601bbc3faa04dda384e4c4e1592c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::eulerAngleZY </td>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastSqrt </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleZ</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angleY</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga77ab6440250bd8b7e87a06c5643d6e74"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL void glm::extractEulerAngleXYZ </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, defaultp &gt; &amp;&#160;</td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T &amp;&#160;</td>
- <td class="paramname"><em>t1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T &amp;&#160;</td>
- <td class="paramname"><em>t2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T &amp;&#160;</td>
- <td class="paramname"><em>t3</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6f465681cbbc575ad93a53ec918dacf3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, defaultp&gt; glm::orientate2 </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 2D 2 * 2 rotation matrix from an euler angle. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab188e2526dea3c003e86e298f618085e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, defaultp&gt; glm::orientate3 </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga33f0d790cecd8337ee83f8e3a8109b11"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::orientate3 </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angles</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4e25c9468b6f002c76e9a2412bcfa503"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::orientate4 </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>angles</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf9c8d0f1df88c5344165600774489bc5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, defaultp&gt; glm::yawPitchRoll </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>yaw</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>pitch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>roll</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common sqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00195.html b/3rdparty/glm/doc/api/a00195.html
index ab1b21c873d..f69f8a487c6 100644
--- a/3rdparty/glm/doc/api/a00195.html
+++ b/3rdparty/glm/doc/api/a00195.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_extend</title>
+<title>0.9.9 API documenation: GLM_GTX_fast_trigonometry</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,53 +33,150 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_extend<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_fast_trigonometry<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Fast but less accurate implementations of trigonometric functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &amp;Origin, genType const &amp;Source, typename genType::value_type const Length)</td></tr>
-<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
+<tr class="memdesc:ga9721d63356e5d94fdc4b393a426ab26b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common acos function but less accurate. <a href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">More...</a><br /></td></tr>
+<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
+<tr class="memdesc:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common asin function but less accurate. <a href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">More...</a><br /></td></tr>
+<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
+<tr class="memdesc:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common atan function but less accurate. <a href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">More...</a><br /></td></tr>
+<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
+<tr class="memdesc:gae25de86a968490ff56856fa425ec9d30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common atan function but less accurate. <a href="a00195.html#gae25de86a968490ff56856fa425ec9d30">More...</a><br /></td></tr>
+<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
+<tr class="memdesc:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common cos function but less accurate. <a href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">More...</a><br /></td></tr>
+<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
+<tr class="memdesc:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common sin function but less accurate. <a href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">More...</a><br /></td></tr>
+<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
+<tr class="memdesc:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Faster than the common tan function but less accurate. <a href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">More...</a><br /></td></tr>
+<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
+<tr class="memdesc:ga069527c6dbd64f53435b8ebc4878b473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. <a href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">More...</a><br /></td></tr>
+<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Extend a position from a source to a position at a defined length. </p>
-<p>&lt;<a class="el" href="a00024.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/extend.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Fast but less accurate implementations of trigonometric functions. </p>
+<p>&lt;<a class="el" href="a00029.html" title="GLM_GTX_fast_trigonometry ">glm/gtx/fast_trigonometry.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8140caae613b0f847ab0d7175dc03a37"></a>
+<a class="anchor" id="ga9721d63356e5d94fdc4b393a426ab26b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::extend </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAcos </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>Origin</em>, </td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common acos function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga562cb62c51fbfe7fac7db0bce706b81f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAsin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common asin function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8d197c6ef564f5e5d59af3b3f8adcc2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const&#160;</td>
- <td class="paramname"><em>Length</em>&#160;</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -83,8 +186,102 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Extends of Length the Origin position using the (Source - Origin) direction. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00195.html" title="Extend a position from a source to a position at a defined length. ">GLM_GTX_extend</a> </dd></dl>
+<p>Faster than the common atan function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae25de86a968490ff56856fa425ec9d30"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common atan function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab34c8b45c23c0165a64dcecfcc3b302a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastCos </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common cos function but less accurate. </p>
+<p>From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0aab3257bb3b628d10a1e0483e2c6915"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastSin </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common sin function but less accurate. </p>
+<p>From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf29b9c1101a10007b4f79ee89df27ba2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastTan </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common tan function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga069527c6dbd64f53435b8ebc4878b473"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::wrapAngle </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00196.html b/3rdparty/glm/doc/api/a00196.html
index 4ed644578d5..a9a8d3c135d 100644
--- a/3rdparty/glm/doc/api/a00196.html
+++ b/3rdparty/glm/doc/api/a00196.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_extented_min_max</title>
+<title>0.9.9 API documenation: GLM_GTX_gradient_paint</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,384 +33,94 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_extented_min_max<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_gradient_paint<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Functions that return the color of procedural gradient for specific coordinates.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
-<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
-<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
-<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
-<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
-<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
-<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &amp;x, T const &amp;y, T const &amp;z)</td></tr>
-<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)</td></tr>
-<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)</td></tr>
-<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga95466987024d03039607f09e69813d69">min</a> (T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)</td></tr>
-<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)</td></tr>
-<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template&lt;typename T , template&lt; typename &gt; class C&gt; </td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)</td></tr>
-<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2&lt; T, P &gt; const &amp;Point0, tvec2&lt; T, P &gt; const &amp;Point1, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
+<tr class="memdesc:gacde26d5e0c4a1856467bded9dfad9040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a color from a linear gradient. <a href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">More...</a><br /></td></tr>
+<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2&lt; T, P &gt; const &amp;Center, T const &amp;Radius, tvec2&lt; T, P &gt; const &amp;Focal, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
+<tr class="memdesc:ga166d43d567a4cf150579a92f69b0dc9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a color from a radial gradient. <a href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">More...</a><br /></td></tr>
+<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Min and max functions for 3 to 4 parameters. </p>
-<p>&lt;<a class="el" href="a00025.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/extented_min_max.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Functions that return the color of procedural gradient for specific coordinates. </p>
+<p>&lt;<a class="el" href="a00042.html" title="GLM_GTX_gradient_paint ">glm/gtx/gradient_paint.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga04991ccb9865c4c4e58488cfb209ce69"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::max </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae1b7bbe5c91de4924835ea3e14530744"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf832e9d4ab4826b2dda2fda25935a3a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga78e04a0cef1c4863fcae1a2130500d87"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::max </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7cca8b53cfda402040494cdf40fbdf4a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaacffbc466c2d08c140b181e7fd8a4858"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::max </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga713d3f9b3e76312c0d314e0c8611a6a6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::min </td>
- <td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga74d1a96e7cdbac40f6d35142d3bcbbd4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga42b5c3fc027fd3d9a50d2ccc9126d9f0"></a>
+<a class="anchor" id="gacde26d5e0c4a1856467bded9dfad9040"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
+ <td class="memname">GLM_FUNC_DECL T glm::linearGradient </td>
<td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Point0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Point1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Position</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -414,120 +130,38 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return the minimum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+<p>Return a color from a linear gradient. </p>
+<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00196.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga95466987024d03039607f09e69813d69"></a>
+<a class="anchor" id="ga166d43d567a4cf150579a92f69b0dc9f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::min </td>
+ <td class="memname">GLM_FUNC_DECL T glm::radialGradient </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Center</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4fe35dd31dd0c45693c9b60b830b8d47"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C&lt; T &gt;::T const &amp;&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7471ea4159eed8dd9ea4ac5d46c2fead"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C&lt;T&gt; glm::min </td>
- <td>(</td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramname"><em>Radius</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>z</em>, </td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Focal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">C&lt; T &gt; const &amp;&#160;</td>
- <td class="paramname"><em>w</em>&#160;</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Position</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -537,8 +171,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return the minimum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+<p>Return a color from a radial gradient. </p>
+<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00196.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00197.html b/3rdparty/glm/doc/api/a00197.html
index 3dd169f31eb..cc279090251 100644
--- a/3rdparty/glm/doc/api/a00197.html
+++ b/3rdparty/glm/doc/api/a00197.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_fast_exponential</title>
+<title>0.9.9 API documenation: GLM_GTX_handed_coordinate_space</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,232 +33,94 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_fast_exponential<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_handed_coordinate_space<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>To know if a set of three basis vectors defines a right or left-handed coordinate system.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
-<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
-<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
-<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
-<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
-<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:ga7425e0ebfe6a56919900a072ae1f8017"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return if a trihedron left handed or not. <a href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">More...</a><br /></td></tr>
+<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:ga17cd83888de8755c0435c589fafd3603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return if a trihedron right handed or not. <a href="a00197.html#ga17cd83888de8755c0435c589fafd3603">More...</a><br /></td></tr>
+<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Fast but less accurate implementations of exponential based functions. </p>
-<p>&lt;<a class="el" href="a00026.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/fast_exponential.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
+<p>&lt;glm/gtx/handed_coordinate_system.hpp&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaa3180ac8f96ab37ab96e0cacaf608e10"></a>
+<a class="anchor" id="ga7425e0ebfe6a56919900a072ae1f8017"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastExp </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::leftHanded </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>tangent</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4faf0b61115de36efcf47c4ecb55a5fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastExp </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0af50585955eb14c60bb286297fabab2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastExp2 </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9e6219327b7a33077dbec7620d981fff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastExp2 </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae1bdc97b7f96a600e29c753f1cd4388a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastLog </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common log function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga789abcbc34d08008d2f5a4547dd6e5e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastLog </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e98118685f6dc9e05fbb13dd5e5234e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastLog2 </td>
- <td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common log2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabc46086fe6636b8be87f09e6c5d2bb58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastLog2 </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common log2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5340e98a11fcbbd936ba6e983a154d50"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastPow </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>binormal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>normal</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -262,55 +130,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
+<p>Return if a trihedron left handed or not. </p>
+<p>From GLM_GTX_handed_coordinate_space extension. </p>
</div>
</div>
-<a class="anchor" id="ga07b73976a9af4005945bc338b45d8466"></a>
+<a class="anchor" id="ga17cd83888de8755c0435c589fafd3603"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastPow </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::rightHanded </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>tangent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7f2562db9c3e02ae76169c36b086c3f6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genTypeT glm::fastPow </td>
- <td>(</td>
- <td class="paramtype">genTypeT&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>binormal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genTypeU&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>normal</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -320,27 +165,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga29924aea1aa11c5c504fb2d621221906"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastPow </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
+<p>Return if a trihedron right handed or not. </p>
+<p>From GLM_GTX_handed_coordinate_space extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00198.html b/3rdparty/glm/doc/api/a00198.html
index 6a3f29edfcf..c27b20aab52 100644
--- a/3rdparty/glm/doc/api/a00198.html
+++ b/3rdparty/glm/doc/api/a00198.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_fast_square_root</title>
+<title>0.9.9 API documenation: GLM_GTX_hash</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,250 +33,57 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_fast_square_root<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
-<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
-<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
-<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
-<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Fast but less accurate implementations of square root based functions. </p>
-<ul>
-<li>Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956</li>
-</ul>
-<p>&lt;<a class="el" href="a00027.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/fast_square_root.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaac333418d0c4e0cc6d3d219ed606c238"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastDistance </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common distance function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6d1ac559cd77d69119e30c3aca0e14b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastDistance </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common distance function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7f081b14d9c7035c8714eba5f7f75a8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastInverseSqrt </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common inversesqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga903878071f92e51e551791e584a171a1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastInverseSqrt </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common inversesqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
-<a class="anchor" id="gafe697d6287719538346bbdf8b1367c59"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastLength </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Faster than the common length function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae28a3099cbd6404a4ea8ef22147ed7b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastLength </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common length function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3b02c1d6e0c754144e2f1e110bf9f16c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastNormalize </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common normalize function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
</div>
-<a class="anchor" id="ga6c460e9414a50b2fc455c8f64c86cdc9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastSqrt </td>
- <td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Faster than the common sqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaad9f601bbc3faa04dda384e4c4e1592c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::fastSqrt </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common sqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
+<div class="header">
+ <div class="headertitle">
+<div class="title">GLM_GTX_hash<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
-</div>
-</div>
+<p>Add std::hash support for glm types.
+<a href="#details">More...</a></p>
+<p>Add std::hash support for glm types. </p>
+<p>&lt;<a class="el" href="a00044.html" title="GLM_GTX_hash ">glm/gtx/hash.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00199.html b/3rdparty/glm/doc/api/a00199.html
index 198a85dbcb3..e623c486ea3 100644
--- a/3rdparty/glm/doc/api/a00199.html
+++ b/3rdparty/glm/doc/api/a00199.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_fast_trigonometry</title>
+<title>0.9.9 API documenation: GLM_GTX_integer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,106 +33,199 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_fast_trigonometry<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_integer<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Add support for integer for core functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
+<tr class="memdesc:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="mdescLeft">&#160;</td><td class="mdescRight">32bit signed integer. <a href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">More...</a><br /></td></tr>
+<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
-<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
-<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
-<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
-<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
-<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
-<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
-<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
-<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga8cbd3120905f398ec321b5d1836e08fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. <a href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">More...</a><br /></td></tr>
+<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
+<tr class="memdesc:ga7011b4e1c1e1ed492149b028feacc00e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the floor log2 of x. <a href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">More...</a><br /></td></tr>
+<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
+<tr class="memdesc:gaabfbb41531ab7ad8d06fc176edfba785"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">More...</a><br /></td></tr>
+<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
+<tr class="memdesc:ga63fc8d63e7da1706439233b386ba8b6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">More...</a><br /></td></tr>
+<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
+<tr class="memdesc:ga78dff8bdb361bf0061194c93e003d189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of leading zeros. <a href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">More...</a><br /></td></tr>
+<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
+<tr class="memdesc:ga89c591b970882714bd1e89a4e2f249f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the y power. <a href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">More...</a><br /></td></tr>
+<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
+<tr class="memdesc:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the y power. <a href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">More...</a><br /></td></tr>
+<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
+<tr class="memdesc:ga7ce36693a75879ccd9bb10167cfa722d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of x. <a href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">More...</a><br /></td></tr>
+<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
+<tr class="memdesc:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the positive square root of x. <a href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">More...</a><br /></td></tr>
+<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Fast but less accurate implementations of trigonometric functions. </p>
-<p>&lt;<a class="el" href="a00028.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/fast_trigonometry.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Add support for integer for core functions. </p>
+<p>&lt;<a class="el" href="a00046.html" title="GLM_GTX_integer ">glm/gtx/integer.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gada7e83fdfe943aba4f1d5bf80cb66f40"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef signed int sint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32bit signed integer. </p>
+<p>From GLM_GTX_integer extension. </p>
+
+<p>Definition at line <a class="el" href="a00046_source.html#l00055">55</a> of file <a class="el" href="a00046_source.html">gtx/integer.hpp</a>.</p>
+
+</div>
+</div>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9721d63356e5d94fdc4b393a426ab26b"></a>
+<a class="anchor" id="ga8cbd3120905f398ec321b5d1836e08fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::factorial </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7011b4e1c1e1ed492149b028feacc00e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAcos </td>
+ <td class="memname">GLM_FUNC_DECL unsigned int glm::floor_log2 </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common acos function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the floor log2 of x. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga562cb62c51fbfe7fac7db0bce706b81f"></a>
+<a class="anchor" id="gaabfbb41531ab7ad8d06fc176edfba785"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAsin </td>
+ <td class="memname">GLM_FUNC_DECL int glm::mod </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common asin function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Modulus. </p>
+<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga8d197c6ef564f5e5d59af3b3f8adcc2c"></a>
+<a class="anchor" id="ga63fc8d63e7da1706439233b386ba8b6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::mod </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -136,102 +235,123 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common atan function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Modulus. </p>
+<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="gae25de86a968490ff56856fa425ec9d30"></a>
+<a class="anchor" id="ga78dff8bdb361bf0061194c93e003d189"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::nlz </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common atan function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the number of leading zeros. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="gab34c8b45c23c0165a64dcecfcc3b302a"></a>
+<a class="anchor" id="ga89c591b970882714bd1e89a4e2f249f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastCos </td>
+ <td class="memname">GLM_FUNC_DECL int glm::pow </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common cos function but less accurate. </p>
-<p>From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns x raised to the y power. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga0aab3257bb3b628d10a1e0483e2c6915"></a>
+<a class="anchor" id="ga998e5ee915d3769255519e2fbaa2bbf0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastSin </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::pow </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common sin function but less accurate. </p>
-<p>From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns x raised to the y power. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="gaf29b9c1101a10007b4f79ee89df27ba2"></a>
+<a class="anchor" id="ga7ce36693a75879ccd9bb10167cfa722d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastTan </td>
+ <td class="memname">GLM_FUNC_DECL int glm::sqrt </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common tan function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the positive square root of x. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga069527c6dbd64f53435b8ebc4878b473"></a>
+<a class="anchor" id="ga1975d318978d6dacf78b6444fa5ed7bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::wrapAngle </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::sqrt </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the positive square root of x. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00200.html b/3rdparty/glm/doc/api/a00200.html
index eaecfa62df8..1246b64871f 100644
--- a/3rdparty/glm/doc/api/a00200.html
+++ b/3rdparty/glm/doc/api/a00200.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_gradient_paint</title>
+<title>0.9.9 API documenation: GLM_GTX_intersect</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,56 +33,140 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_gradient_paint<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_intersect<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Add intersection functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2&lt; T, P &gt; const &amp;Point0, tvec2&lt; T, P &gt; const &amp;Point1, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
-<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2&lt; T, P &gt; const &amp;Center, T const &amp;Radius, tvec2&lt; T, P &gt; const &amp;Focal, tvec2&lt; T, P &gt; const &amp;Position)</td></tr>
-<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;sphereCenter, typename genType::value_type sphereRadius, genType &amp;intersectionPosition1, genType &amp;intersectionNormal1, genType &amp;intersectionPosition2=genType(), genType &amp;intersectionNormal2=genType())</td></tr>
+<tr class="memdesc:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a line and a sphere. <a href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">More...</a><br /></td></tr>
+<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
+<tr class="memdesc:ga9d29b9b3acb504d43986502f42740df4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a line and a triangle. <a href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">More...</a><br /></td></tr>
+<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;planeOrig, genType const &amp;planeNormal, typename genType::value_type &amp;intersectionDistance)</td></tr>
+<tr class="memdesc:gad3697a9700ea379739a667ea02573488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a ray and a plane. <a href="a00200.html#gad3697a9700ea379739a667ea02573488">More...</a><br /></td></tr>
+<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &amp;intersectionDistance)</td></tr>
+<tr class="memdesc:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection distance of a ray and a sphere. <a href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">More...</a><br /></td></tr>
+<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)</td></tr>
+<tr class="memdesc:gad28c00515b823b579c608aafa1100c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a ray and a sphere. <a href="a00200.html#gad28c00515b823b579c608aafa1100c1d">More...</a><br /></td></tr>
+<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
+<tr class="memdesc:gab16c1b47c10451e7604b51b39a7ef21d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the intersection of a ray and a triangle. <a href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">More...</a><br /></td></tr>
+<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Functions that return the color of procedural gradient for specific coordinates. </p>
-<p>&lt;<a class="el" href="a00041.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/gradient_paint.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Add intersection functions. </p>
+<p>&lt;<a class="el" href="a00048.html" title="GLM_GTX_intersect ">glm/gtx/intersect.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gacde26d5e0c4a1856467bded9dfad9040"></a>
+<a class="anchor" id="ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::linearGradient </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectLineSphere </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Point0</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>point0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>point1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>sphereCenter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type&#160;</td>
+ <td class="paramname"><em>sphereRadius</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>intersectionPosition1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>intersectionNormal1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Point1</em>, </td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>intersectionPosition2</em> = <code>genType()</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Position</em>&#160;</td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>intersectionNormal2</em> = <code>genType()</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -86,38 +176,250 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a color from a linear gradient. </p>
-<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00200.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
+<p>Compute the intersection of a line and a sphere. </p>
+<p>From GLM_GTX_intersect extension </p>
</div>
</div>
-<a class="anchor" id="ga166d43d567a4cf150579a92f69b0dc9f"></a>
+<a class="anchor" id="ga9d29b9b3acb504d43986502f42740df4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::radialGradient </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectLineTriangle </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Center</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>dir</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vert0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vert1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vert2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>position</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection of a line and a triangle. </p>
+<p>From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad3697a9700ea379739a667ea02573488"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRayPlane </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>dir</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>planeOrig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>planeNormal</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type &amp;&#160;</td>
+ <td class="paramname"><em>intersectionDistance</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection of a ray and a plane. </p>
+<p>Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac88f8cd84c4bcb5b947d56acbbcfa56e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>rayStarting</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>rayNormalizedDirection</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>sphereCenter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const&#160;</td>
+ <td class="paramname"><em>sphereRadiusSquered</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type &amp;&#160;</td>
+ <td class="paramname"><em>intersectionDistance</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection distance of a ray and a sphere. </p>
+<p>The ray direction vector is unit length. From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad28c00515b823b579c608aafa1100c1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>rayStarting</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>rayNormalizedDirection</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>sphereCenter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const typename genType::value_type&#160;</td>
+ <td class="paramname"><em>sphereRadius</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>intersectionPosition</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>intersectionNormal</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection of a ray and a sphere. </p>
+<p>From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab16c1b47c10451e7604b51b39a7ef21d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRayTriangle </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>dir</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vert0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>Radius</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vert1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Focal</em>, </td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>vert2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Position</em>&#160;</td>
+ <td class="paramtype">genType &amp;&#160;</td>
+ <td class="paramname"><em>baryPosition</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -127,8 +429,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a color from a radial gradient. </p>
-<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00200.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
+<p>Compute the intersection of a ray and a triangle. </p>
+<p>From GLM_GTX_intersect extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00201.html b/3rdparty/glm/doc/api/a00201.html
index eaf37d32599..fd4e6a6ba25 100644
--- a/3rdparty/glm/doc/api/a00201.html
+++ b/3rdparty/glm/doc/api/a00201.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_handed_coordinate_space</title>
+<title>0.9.9 API documenation: GLM_GTX_io</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,105 +33,59 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_handed_coordinate_space<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_io<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3&lt; T, P &gt; const &amp;tangent, tvec3&lt; T, P &gt; const &amp;binormal, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
-<p>&lt;glm/gtx/handed_coordinate_system.hpp&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7425e0ebfe6a56919900a072ae1f8017"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::leftHanded </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>tangent</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>binormal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return if a trihedron left handed or not. </p>
-<p>From GLM_GTX_handed_coordinate_space extension. </p>
-</div>
-</div>
-<a class="anchor" id="ga17cd83888de8755c0435c589fafd3603"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::rightHanded </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>tangent</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>binormal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return if a trihedron right handed or not. </p>
-<p>From GLM_GTX_handed_coordinate_space extension. </p>
-
-</div>
-</div>
+<p>std::[w]ostream support for glm types
+<a href="#details">More...</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>std::[w]ostream support for glm types </p>
+<p>std::[w]ostream support for glm types + precision/width/etc. manipulators based on howard hinnant's std::chrono io proposal [<a href="http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html">http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html</a>]</p>
+<p>&lt;<a class="el" href="a00049.html" title="GLM_GTX_io ">glm/gtx/io.hpp</a>&gt; needs to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00202.html b/3rdparty/glm/doc/api/a00202.html
index 5ebc44a33dc..8a8fc7c320a 100644
--- a/3rdparty/glm/doc/api/a00202.html
+++ b/3rdparty/glm/doc/api/a00202.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_hash</title>
+<title>0.9.9 API documenation: GLM_GTX_log_base</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,132 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_hash<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_log_base<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>Add std::hash support for glm types. </p>
-<p>&lt;<a class="el" href="a00043.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/hash.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Logarithm for any base.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a> (genType const &amp;x, genType const &amp;base)</td></tr>
+<tr class="memdesc:ga60a7b0a401da660869946b2b77c710c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm for any base. <a href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">More...</a><br /></td></tr>
+<tr class="separator:ga60a7b0a401da660869946b2b77c710c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)</td></tr>
+<tr class="memdesc:ga1842004a127a9f3573764362ff639191"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithm for any base. <a href="a00202.html#ga1842004a127a9f3573764362ff639191">More...</a><br /></td></tr>
+<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Logarithm for any base. </p>
+<p>base can be a vector or a scalar.</p>
+<p>&lt;<a class="el" href="a00050.html" title="GLM_GTX_log_base ">glm/gtx/log_base.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga60a7b0a401da660869946b2b77c710c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::log </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>base</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Logarithm for any base. </p>
+<p>From GLM_GTX_log_base. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1842004a127a9f3573764362ff639191"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sign </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>base</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Logarithm for any base. </p>
+<p>From GLM_GTX_log_base. </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00203.html b/3rdparty/glm/doc/api/a00203.html
index fae319ad8be..9a2c4eb5fc2 100644
--- a/3rdparty/glm/doc/api/a00203.html
+++ b/3rdparty/glm/doc/api/a00203.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_integer</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_cross_product</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,279 +33,108 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_integer<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_cross_product<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Build cross product matrices.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
-<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
-<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
-<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
-<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
-<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
-<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
-<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
-<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
-<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga04385b2e3a93c78d116b51af2d8d708e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a cross product matrix. <a href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">More...</a><br /></td></tr>
+<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga2d46cc5253761c214aa5c782865156b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a cross product matrix. <a href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">More...</a><br /></td></tr>
+<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add support for integer for core functions. </p>
-<p>&lt;<a class="el" href="a00045.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/integer.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gada7e83fdfe943aba4f1d5bf80cb66f40"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef signed int sint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32bit signed integer. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-<p>Definition at line <a class="el" href="a00045_source.html#l00080">80</a> of file <a class="el" href="a00045_source.html">gtx/integer.hpp</a>.</p>
-
-</div>
-</div>
+<p>Build cross product matrices. </p>
+<p>&lt;<a class="el" href="a00063.html" title="GLM_GTX_matrix_cross_product ">glm/gtx/matrix_cross_product.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8cbd3120905f398ec321b5d1836e08fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::factorial </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga7011b4e1c1e1ed492149b028feacc00e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL unsigned int glm::floor_log2 </td>
- <td>(</td>
- <td class="paramtype">unsigned int&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the floor log2 of x. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaabfbb41531ab7ad8d06fc176edfba785"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::mod </td>
- <td>(</td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Modulus. </p>
-<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga63fc8d63e7da1706439233b386ba8b6f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::mod </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Modulus. </p>
-<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga78dff8bdb361bf0061194c93e003d189"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::nlz </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the number of leading zeros. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga89c591b970882714bd1e89a4e2f249f1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::pow </td>
- <td>(</td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the y power. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga998e5ee915d3769255519e2fbaa2bbf0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::pow </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the y power. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga7ce36693a75879ccd9bb10167cfa722d"></a>
+<a class="anchor" id="ga04385b2e3a93c78d116b51af2d8d708e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL int glm::sqrt </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::matrixCross3 </td>
<td>(</td>
- <td class="paramtype">int&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the positive square root of x. </p>
-<p>From GLM_GTX_integer extension. </p>
+<p>Build a cross product matrix. </p>
+<p>From GLM_GTX_matrix_cross_product extension. </p>
</div>
</div>
-<a class="anchor" id="ga1975d318978d6dacf78b6444fa5ed7bc"></a>
+<a class="anchor" id="ga2d46cc5253761c214aa5c782865156b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::sqrt </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::matrixCross4 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the positive square root of x. </p>
-<p>From GLM_GTX_integer extension. </p>
+<p>Build a cross product matrix. </p>
+<p>From GLM_GTX_matrix_cross_product extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00204.html b/3rdparty/glm/doc/api/a00204.html
index 74f221f343c..5440c90872c 100644
--- a/3rdparty/glm/doc/api/a00204.html
+++ b/3rdparty/glm/doc/api/a00204.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_intersect</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_decompose</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,351 +33,108 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_intersect<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_decompose<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Decomposes a model matrix to translations, rotation and scale components.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &amp;point0, genType const &amp;point1, genType const &amp;sphereCenter, typename genType::value_type sphereRadius, genType &amp;intersectionPosition1, genType &amp;intersectionNormal1, genType &amp;intersectionPosition2=genType(), genType &amp;intersectionNormal2=genType())</td></tr>
-<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;position)</td></tr>
-<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;planeOrig, genType const &amp;planeNormal, typename genType::value_type &amp;intersectionDistance)</td></tr>
-<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &amp;intersectionDistance)</td></tr>
-<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)</td></tr>
-<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &amp;orig, genType const &amp;dir, genType const &amp;vert0, genType const &amp;vert1, genType const &amp;vert2, genType &amp;baryPosition)</td></tr>
-<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4&lt; T, P &gt; const &amp;modelMatrix, tvec3&lt; T, P &gt; &amp;scale, tquat&lt; T, P &gt; &amp;orientation, tvec3&lt; T, P &gt; &amp;translation, tvec3&lt; T, P &gt; &amp;skew, tvec4&lt; T, P &gt; &amp;perspective)</td></tr>
+<tr class="memdesc:ga0f1245817507156b337798a253577c8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decomposes a model matrix to translations, rotation and scale components. <a href="a00204.html#ga0f1245817507156b337798a253577c8b">More...</a><br /></td></tr>
+<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add intersection functions. </p>
-<p>&lt;<a class="el" href="a00047.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/intersect.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Decomposes a model matrix to translations, rotation and scale components. </p>
+<p>&lt;<a class="el" href="a00064.html" title="GLM_GTX_matrix_decompose ">glm/gtx/matrix_decompose.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectLineSphere </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>point0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>point1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>sphereCenter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type&#160;</td>
- <td class="paramname"><em>sphereRadius</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>intersectionPosition1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>intersectionNormal1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>intersectionPosition2</em> = <code>genType()</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>intersectionNormal2</em> = <code>genType()</code>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a line and a sphere. </p>
-<p>From GLM_GTX_intersect extension </p>
-
-</div>
-</div>
-<a class="anchor" id="ga9d29b9b3acb504d43986502f42740df4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectLineTriangle </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>orig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>dir</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vert0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vert1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vert2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>position</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a line and a triangle. </p>
-<p>From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gad3697a9700ea379739a667ea02573488"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRayPlane </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>orig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>dir</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>planeOrig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>planeNormal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type &amp;&#160;</td>
- <td class="paramname"><em>intersectionDistance</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a ray and a plane. </p>
-<p>Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gac88f8cd84c4bcb5b947d56acbbcfa56e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>rayStarting</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>rayNormalizedDirection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>sphereCenter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type const&#160;</td>
- <td class="paramname"><em>sphereRadiusSquered</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type &amp;&#160;</td>
- <td class="paramname"><em>intersectionDistance</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection distance of a ray and a sphere. </p>
-<p>The ray direction vector is unit length. From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gad28c00515b823b579c608aafa1100c1d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>rayStarting</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>rayNormalizedDirection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>sphereCenter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const typename genType::value_type&#160;</td>
- <td class="paramname"><em>sphereRadius</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>intersectionPosition</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>intersectionNormal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a ray and a sphere. </p>
-<p>From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gab16c1b47c10451e7604b51b39a7ef21d"></a>
+<a class="anchor" id="ga0f1245817507156b337798a253577c8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRayTriangle </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::decompose </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>orig</em>, </td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>modelMatrix</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>dir</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vert0</em>, </td>
+ <td class="paramtype">tquat&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>orientation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vert1</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>translation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>vert2</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>skew</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType &amp;&#160;</td>
- <td class="paramname"><em>baryPosition</em>&#160;</td>
+ <td class="paramtype">tvec4&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>perspective</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -381,8 +144,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute the intersection of a ray and a triangle. </p>
-<p>From GLM_GTX_intersect extension. </p>
+<p>Decomposes a model matrix to translations, rotation and scale components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00204.html" title="Decomposes a model matrix to translations, rotation and scale components. ">GLM_GTX_matrix_decompose</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00205.html b/3rdparty/glm/doc/api/a00205.html
index 65d7f92ec34..a9d6f4da36a 100644
--- a/3rdparty/glm/doc/api/a00205.html
+++ b/3rdparty/glm/doc/api/a00205.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_io</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_interpolation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,23 +33,199 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_io<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_interpolation<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Allows to directly interpolate two exiciting matrices.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4&lt; T, P &gt; const &amp;mat, tvec3&lt; T, P &gt; &amp;axis, T &amp;angle)</td></tr>
+<tr class="memdesc:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the axis and angle of the rotation from a matrix. <a href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">More...</a><br /></td></tr>
+<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3&lt; T, P &gt; const &amp;axis, T const angle)</td></tr>
+<tr class="memdesc:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a matrix from axis and angle. <a href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">More...</a><br /></td></tr>
+<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4&lt; T, P &gt; const &amp;mat)</td></tr>
+<tr class="memdesc:ga6b8170aa4cf43caf81400696ebb38afe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts the rotation part of a matrix. <a href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">More...</a><br /></td></tr>
+<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4&lt; T, P &gt; const &amp;m1, tmat4x4&lt; T, P &gt; const &amp;m2, T const delta)</td></tr>
+<tr class="memdesc:ga45099a92c5c704503565619ac2bcd5c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a interpolation of 4 * 4 matrixes. <a href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">More...</a><br /></td></tr>
+<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>std::[w]ostream support for glm types </p>
-<p>std::[w]ostream support for glm types + precision/width/etc. manipulators based on howard hinnant's std::chrono io proposal [<a href="http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html">http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html</a>]</p>
-<p>&lt;<a class="el" href="a00055.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/io.hpp</a>&gt; needs to be included to use these functionalities. </p>
+<p>Allows to directly interpolate two exiciting matrices. </p>
+<p>&lt;<a class="el" href="a00066.html" title="GLM_GTX_matrix_interpolation ">glm/gtx/matrix_interpolation.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga9aef292eb5f29bdbb58a53ef4281af92"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL void glm::axisAngle </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>mat</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the axis and angle of the rotation from a matrix. </p>
+<p>From GLM_GTX_matrix_interpolation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga82d4bc058e9628cb2ea1d4e117a0cf39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::axisAngleMatrix </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from axis and angle. </p>
+<p>From GLM_GTX_matrix_interpolation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b8170aa4cf43caf81400696ebb38afe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::extractMatrixRotation </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>mat</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extracts the rotation part of a matrix. </p>
+<p>From GLM_GTX_matrix_interpolation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga45099a92c5c704503565619ac2bcd5c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::interpolate </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const&#160;</td>
+ <td class="paramname"><em>delta</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a interpolation of 4 * 4 matrixes. </p>
+<p>From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results. </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00206.html b/3rdparty/glm/doc/api/a00206.html
index e7500b06c7e..e93aa722b71 100644
--- a/3rdparty/glm/doc/api/a00206.html
+++ b/3rdparty/glm/doc/api/a00206.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_log_base</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_major_storage</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,51 +33,182 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_log_base<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_major_storage<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Build matrices with specific matrix order, row or column.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">log</a> (genType x, genType base)</td></tr>
-<tr class="separator:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)</td></tr>
-<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
+<tr class="memdesc:ga599fff4f1c65912b256a82138ebcca37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from column vectors. <a href="a00206.html#ga599fff4f1c65912b256a82138ebcca37">More...</a><br /></td></tr>
+<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from other matrix. <a href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">More...</a><br /></td></tr>
+<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
+<tr class="memdesc:ga3a55e2948193e91733e434e7cc3c1540"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from column vectors. <a href="a00206.html#ga3a55e2948193e91733e434e7cc3c1540">More...</a><br /></td></tr>
+<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:gaa93f3dcc47ced18e5db4a853363d9386"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from other matrix. <a href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">More...</a><br /></td></tr>
+<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
+<tr class="memdesc:ga2829de096bb67ab5cd670958f3d402b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from column vectors. <a href="a00206.html#ga2829de096bb67ab5cd670958f3d402b6">More...</a><br /></td></tr>
+<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga7592acfd27da055e2d7c39564cf8803d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a column major matrix from other matrix. <a href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">More...</a><br /></td></tr>
+<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
+<tr class="memdesc:ga0c7f4d56a85865f0002127119ab7d551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from row vectors. <a href="a00206.html#ga0c7f4d56a85865f0002127119ab7d551">More...</a><br /></td></tr>
+<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga42a006aa66198452bd3c89415f892196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from other matrix. <a href="a00206.html#ga42a006aa66198452bd3c89415f892196">More...</a><br /></td></tr>
+<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
+<tr class="memdesc:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from row vectors. <a href="a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">More...</a><br /></td></tr>
+<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga38537061135b55e7a053926ca55e6e20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from other matrix. <a href="a00206.html#ga38537061135b55e7a053926ca55e6e20">More...</a><br /></td></tr>
+<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
+<tr class="memdesc:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from row vectors. <a href="a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">More...</a><br /></td></tr>
+<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga85771a88c114a088a0414bcfce55e729"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a row major matrix from other matrix. <a href="a00206.html#ga85771a88c114a088a0414bcfce55e729">More...</a><br /></td></tr>
+<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Logarithm for any base. </p>
-<p>base can be a vector or a scalar.</p>
-<p>&lt;<a class="el" href="a00056.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/log_base.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Build matrices with specific matrix order, row or column. </p>
+<p>&lt;<a class="el" href="a00068.html" title="GLM_GTX_matrix_major_storage ">glm/gtx/matrix_major_storage.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga3e5bcabee78a977e3d7d1bf352b9ea9f"></a>
+<a class="anchor" id="ga599fff4f1c65912b256a82138ebcca37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::colMajor2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from column vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5cfd25de9d5b4c6a825085f38ddfeff7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::colMajor2 </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3a55e2948193e91733e434e7cc3c1540"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::log </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::colMajor3 </td>
<td>(</td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType&#160;</td>
- <td class="paramname"><em>base</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v3</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -81,26 +218,57 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Logarithm for any base. </p>
-<p>From GLM_GTX_log_base. </p>
+<p>Build a column major matrix from column vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa93f3dcc47ced18e5db4a853363d9386"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::colMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
</div>
</div>
-<a class="anchor" id="ga1842004a127a9f3573764362ff639191"></a>
+<a class="anchor" id="ga2829de096bb67ab5cd670958f3d402b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;T, P&gt; glm::sign </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::colMajor4 </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>base</em>&#160;</td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v4</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -110,8 +278,189 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Logarithm for any base. </p>
-<p>From GLM_GTX_log_base. </p>
+<p>Build a column major matrix from column vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7592acfd27da055e2d7c39564cf8803d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::colMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c7f4d56a85865f0002127119ab7d551"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::rowMajor2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from row vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga42a006aa66198452bd3c89415f892196"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::rowMajor2 </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaba4de9afc4e65ec8ea0403e7cba3fb9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::rowMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v3</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from row vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga38537061135b55e7a053926ca55e6e20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::rowMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3ce8f2a78fb2f15bf28151ee128b0ae8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rowMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v4</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from row vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga85771a88c114a088a0414bcfce55e729"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rowMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00207.html b/3rdparty/glm/doc/api/a00207.html
index 15d14904d08..4e5e3b4c46a 100644
--- a/3rdparty/glm/doc/api/a00207.html
+++ b/3rdparty/glm/doc/api/a00207.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_cross_product</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_operation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,70 +33,269 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_cross_product<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_operation<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Build diagonal matrices from vectors.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga01dc503262dba9c457113d131fc8c024"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga01dc503262dba9c457113d131fc8c024">More...</a><br /></td></tr>
+<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga763817f07d6a94b722a48adfa87a35db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">More...</a><br /></td></tr>
+<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">More...</a><br /></td></tr>
+<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga586e1ced91fd8a7c414186a200f13532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">More...</a><br /></td></tr>
+<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga8e817dba22f2305cdebae07bbbe0360c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">More...</a><br /></td></tr>
+<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gae3f85af86c18c80f2acbe3223feb8e81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">More...</a><br /></td></tr>
+<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">More...</a><br /></td></tr>
+<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">More...</a><br /></td></tr>
+<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:gade576e044d8e52f343166f665589d782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a diagonal matrix. <a href="a00207.html#gade576e044d8e52f343166f665589d782">More...</a><br /></td></tr>
+<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build cross product matrices. </p>
-<p>&lt;<a class="el" href="a00069.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_cross_product.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Build diagonal matrices from vectors. </p>
+<p>&lt;<a class="el" href="a00069.html" title="GLM_GTX_matrix_operation ">glm/gtx/matrix_operation.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga04385b2e3a93c78d116b51af2d8d708e"></a>
+<a class="anchor" id="ga01dc503262dba9c457113d131fc8c024"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::matrixCross3 </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::diagonal2x2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga763817f07d6a94b722a48adfa87a35db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x3&lt;T, P&gt; glm::diagonal2x3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga49b37c819cf6dd8e35112ed1a13d45a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x4&lt;T, P&gt; glm::diagonal2x4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga586e1ced91fd8a7c414186a200f13532"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x2&lt;T, P&gt; glm::diagonal3x2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8e817dba22f2305cdebae07bbbe0360c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::diagonal3x3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae3f85af86c18c80f2acbe3223feb8e81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x4&lt;T, P&gt; glm::diagonal3x4 </td>
<td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga70cc5632aa9f41e7cf0b81fee6f2bfe6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x2&lt;T, P&gt; glm::diagonal4x2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a cross product matrix. </p>
-<p>From GLM_GTX_matrix_cross_product extension. </p>
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
</div>
</div>
-<a class="anchor" id="ga2d46cc5253761c214aa5c782865156b1"></a>
+<a class="anchor" id="ga4242ea5681f81539e0c5b54fadcd9ddf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::matrixCross4 </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x3&lt;T, P&gt; glm::diagonal4x3 </td>
<td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gade576e044d8e52f343166f665589d782"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::diagonal4x4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a cross product matrix. </p>
-<p>From GLM_GTX_matrix_cross_product extension. </p>
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00208.html b/3rdparty/glm/doc/api/a00208.html
index 4f98f3111b1..928fc85f941 100644
--- a/3rdparty/glm/doc/api/a00208.html
+++ b/3rdparty/glm/doc/api/a00208.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_decompose</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_query</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,71 +33,315 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_decompose<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_query<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Query to evaluate matrix properties.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4&lt; T, P &gt; const &amp;modelMatrix, tvec3&lt; T, P &gt; &amp;scale, tquat&lt; T, P &gt; &amp;orientation, tvec3&lt; T, P &gt; &amp;translation, tvec3&lt; T, P &gt; &amp;skew, tvec4&lt; T, P &gt; &amp;perspective)</td></tr>
-<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gafc1ce12c738b8c5d007179e615609330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is an identity matrix. <a href="a00208.html#gafc1ce12c738b8c5d007179e615609330">More...</a><br /></td></tr>
+<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a normalized matrix. <a href="a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">More...</a><br /></td></tr>
+<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga351bcc8d485d329b78cfa875e084964d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a normalized matrix. <a href="a00208.html#ga351bcc8d485d329b78cfa875e084964d">More...</a><br /></td></tr>
+<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a normalized matrix. <a href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">More...</a><br /></td></tr>
+<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga37e535cbeaea383b8c1247b98875cd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix a null matrix. <a href="a00208.html#ga37e535cbeaea383b8c1247b98875cd4b">More...</a><br /></td></tr>
+<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gac67a5c7e029a84b74b02ac9599b8972d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix a null matrix. <a href="a00208.html#gac67a5c7e029a84b74b02ac9599b8972d">More...</a><br /></td></tr>
+<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga326de496972051413c7b44b85fc9cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is a null matrix. <a href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">More...</a><br /></td></tr>
+<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether a matrix is an orthonormalized matrix. <a href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">More...</a><br /></td></tr>
+<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Decomposes a model matrix to translations, rotation and scale components. </p>
-<p>&lt;glm/gtx/decomposition.hpp&gt; need to be included to use these functionalities. </p>
+<p>Query to evaluate matrix properties. </p>
+<p>&lt;<a class="el" href="a00070.html" title="GLM_GTX_matrix_query ">glm/gtx/matrix_query.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga0f1245817507156b337798a253577c8b"></a>
+<a class="anchor" id="gafc1ce12c738b8c5d007179e615609330"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::decompose </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::isIdentity </td>
+ <td>(</td>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is an identity matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga11a8d5cdb36496b85f61e4f5f7f2602c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a normalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga351bcc8d485d329b78cfa875e084964d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a normalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga934b673ec0e16d79eca0ca9dbb5d6d8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
<td>(</td>
<td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>modelMatrix</em>, </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>scale</em>, </td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a normalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga37e535cbeaea383b8c1247b98875cd4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>orientation</em>, </td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix a null matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac67a5c7e029a84b74b02ac9599b8972d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>translation</em>, </td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix a null matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga326de496972051413c7b44b85fc9cb6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>skew</em>, </td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a null matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab2cb5d23df77b4e4e63ad2965acd31b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isOrthogonal </td>
+ <td>(</td>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>perspective</em>&#160;</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -101,8 +351,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Decomposes a model matrix to translations, rotation and scale components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00208.html" title="Decomposes a model matrix to translations, rotation and scale components. ">GLM_GTX_matrix_decompose</a> </dd></dl>
+<p>Return whether a matrix is an orthonormalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00209.html b/3rdparty/glm/doc/api/a00209.html
index ff3c64ab4e3..f0c33179388 100644
--- a/3rdparty/glm/doc/api/a00209.html
+++ b/3rdparty/glm/doc/api/a00209.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_interpolation</title>
+<title>0.9.9 API documenation: GLM_GTX_matrix_transform_2d</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,61 +33,99 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_interpolation<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_transform_2d<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defines functions that generate common 2d transformation matrices.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4&lt; T, P &gt; const &amp;mat, tvec3&lt; T, P &gt; &amp;axis, T &amp;angle)</td></tr>
-<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3&lt; T, P &gt; const &amp;axis, T const angle)</td></tr>
-<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4&lt; T, P &gt; const &amp;mat)</td></tr>
-<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4&lt; T, P &gt; const &amp;m1, tmat4x4&lt; T, P &gt; const &amp;m2, T const delta)</td></tr>
-<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3&lt; T, P &gt; const &amp;m, T angle)</td></tr>
+<tr class="memdesc:gab4f798c6048db91a6d0686812fd54022"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 3 * 3 matrix created from an angle. <a href="a00209.html#gab4f798c6048db91a6d0686812fd54022">More...</a><br /></td></tr>
+<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a scale 3 * 3 matrix created from a vector of 2 components. <a href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">More...</a><br /></td></tr>
+<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
+<tr class="memdesc:ga3da9ea234fdb2a96c75a97a18c903489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. <a href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">More...</a><br /></td></tr>
+<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
+<tr class="memdesc:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. <a href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">More...</a><br /></td></tr>
+<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a translation 3 * 3 matrix created from a vector of 2 components. <a href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">More...</a><br /></td></tr>
+<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allows to directly interpolate two exiciting matrices. </p>
-<p>&lt;<a class="el" href="a00072.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_interpolation.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Defines functions that generate common 2d transformation matrices. </p>
+<p>&lt;<a class="el" href="a00072.html" title="GLM_GTX_matrix_transform_2d ">glm/gtx/matrix_transform_2d.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9aef292eb5f29bdbb58a53ef4281af92"></a>
+<a class="anchor" id="gab4f798c6048db91a6d0686812fd54022"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL void glm::axisAngle </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::rotate </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>mat</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>axis</em>, </td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T &amp;&#160;</td>
+ <td class="paramtype">T&#160;</td>
<td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
@@ -92,26 +136,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Get the axis and angle of the rotation from a matrix. </p>
-<p>From GLM_GTX_matrix_interpolation extension. </p>
+<p>Builds a rotation 3 * 3 matrix created from an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga82d4bc058e9628cb2ea1d4e117a0cf39"></a>
+<a class="anchor" id="ga5a608eaf1fdfd0a349a30181cb6a0240"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::axisAngleMatrix </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::scale </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>axis</em>, </td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -121,51 +171,102 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Build a matrix from axis and angle. </p>
-<p>From GLM_GTX_matrix_interpolation extension. </p>
+<p>Builds a scale 3 * 3 matrix created from a vector of 2 components. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Coordinates of a scale vector. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga6b8170aa4cf43caf81400696ebb38afe"></a>
+<a class="anchor" id="ga3da9ea234fdb2a96c75a97a18c903489"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::extractMatrixRotation </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::shearX </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>mat</em></td><td>)</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Extracts the rotation part of a matrix. </p>
-<p>From GLM_GTX_matrix_interpolation extension. </p>
+<p>Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">y</td><td>Shear factor. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga45099a92c5c704503565619ac2bcd5c6"></a>
+<a class="anchor" id="ga93bb348e7d251bcc2c17bfc11bd82e91"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::interpolate </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::shearY </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m1</em>, </td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m2</em>, </td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">x</td><td>Shear factor. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga22b5e806a6d2e2be54ebd29100d11c51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::translate </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const&#160;</td>
- <td class="paramname"><em>delta</em>&#160;</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -175,8 +276,14 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Build a interpolation of 4 * 4 matrixes. </p>
-<p>From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results. </p>
+<p>Builds a translation 3 * 3 matrix created from a vector of 2 components. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00210.html b/3rdparty/glm/doc/api/a00210.html
index 7400286b4d5..bb6a3393687 100644
--- a/3rdparty/glm/doc/api/a00210.html
+++ b/3rdparty/glm/doc/api/a00210.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_major_storage</title>
+<title>0.9.9 API documenation: GLM_GTX_mixed_producte</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,389 +33,69 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_major_storage<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_mixed_producte<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Mixed product of 3 vectors.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
-<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
-<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
-<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)</td></tr>
-<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
-<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)</td></tr>
-<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
+template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
+<tr class="memdesc:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) <br /></td></tr>
+<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build matrices with specific matrix order, row or column. </p>
-<p>&lt;<a class="el" href="a00074.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_major_storage.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga599fff4f1c65912b256a82138ebcca37"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::colMajor2 </td>
- <td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from column vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga5cfd25de9d5b4c6a825085f38ddfeff7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::colMajor2 </td>
- <td>(</td>
- <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga3a55e2948193e91733e434e7cc3c1540"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::colMajor3 </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v3</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from column vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaa93f3dcc47ced18e5db4a853363d9386"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::colMajor3 </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga2829de096bb67ab5cd670958f3d402b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::colMajor4 </td>
- <td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v4</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from column vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga7592acfd27da055e2d7c39564cf8803d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::colMajor4 </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c7f4d56a85865f0002127119ab7d551"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::rowMajor2 </td>
- <td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from row vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga42a006aa66198452bd3c89415f892196"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::rowMajor2 </td>
- <td>(</td>
- <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaba4de9afc4e65ec8ea0403e7cba3fb9f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::rowMajor3 </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v3</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from row vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga38537061135b55e7a053926ca55e6e20"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::rowMajor3 </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga3ce8f2a78fb2f15bf28151ee128b0ae8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rowMajor4 </td>
- <td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v4</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from row vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga85771a88c114a088a0414bcfce55e729"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rowMajor4 </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
+<p>Mixed product of 3 vectors. </p>
+<p>&lt;<a class="el" href="a00073.html" title="GLM_GTX_mixed_producte ">glm/gtx/mixed_product.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00211.html b/3rdparty/glm/doc/api/a00211.html
index c7a66656636..44a4ddfb58f 100644
--- a/3rdparty/glm/doc/api/a00211.html
+++ b/3rdparty/glm/doc/api/a00211.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_operation</title>
+<title>0.9.9 API documenation: GLM_GTX_norm</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,224 +33,302 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_operation<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_norm<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Various ways to compute vector norms.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">distance2</a> (vecType&lt; T, P &gt; const &amp;p0, vecType&lt; T, P &gt; const &amp;p1)</td></tr>
+<tr class="memdesc:ga647d2602008801d6ed78f9708eb439cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). <a href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">More...</a><br /></td></tr>
+<tr class="separator:ga647d2602008801d6ed78f9708eb439cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaebe5a39b06e262e615622129f37da4f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L1 norm between x and y. <a href="a00211.html#gaebe5a39b06e262e615622129f37da4f4">More...</a><br /></td></tr>
+<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L1 norm of v. <a href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">More...</a><br /></td></tr>
+<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L2 norm between x and y. <a href="a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">More...</a><br /></td></tr>
+<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L2 norm of v. <a href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">More...</a><br /></td></tr>
+<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">length2</a> (vecType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared length of x. <a href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">More...</a><br /></td></tr>
+<tr class="separator:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, unsigned int Depth)</td></tr>
+<tr class="memdesc:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L norm between x and y. <a href="a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7">More...</a><br /></td></tr>
+<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)</td></tr>
+<tr class="memdesc:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the L norm of v. <a href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">More...</a><br /></td></tr>
+<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build diagonal matrices from vectors. </p>
-<p>&lt;<a class="el" href="a00075.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_operation.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Various ways to compute vector norms. </p>
+<p>&lt;<a class="el" href="a00075.html" title="GLM_GTX_norm ">glm/gtx/norm.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga01dc503262dba9c457113d131fc8c024"></a>
+<a class="anchor" id="ga647d2602008801d6ed78f9708eb439cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2&lt;T, P&gt; glm::diagonal2x2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::distance2 </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p1</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga763817f07d6a94b722a48adfa87a35db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x3&lt;T, P&gt; glm::diagonal2x3 </td>
- <td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga49b37c819cf6dd8e35112ed1a13d45a3"></a>
+<a class="anchor" id="gaebe5a39b06e262e615622129f37da4f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x4&lt;T, P&gt; glm::diagonal2x4 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L1 norm between x and y. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga586e1ced91fd8a7c414186a200f13532"></a>
+<a class="anchor" id="ga6d5964f09cdb43803496a5ee3ced71cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x2&lt;T, P&gt; glm::diagonal3x2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L1 norm of v. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga8e817dba22f2305cdebae07bbbe0360c"></a>
+<a class="anchor" id="gafa6fbbc99cd44d81bf030e74eaf7ad64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::diagonal3x3 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
<td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L2 norm between x and y. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="gae3f85af86c18c80f2acbe3223feb8e81"></a>
+<a class="anchor" id="ga0a8cb8a0ce88d1d977de23209bf04610"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x4&lt;T, P&gt; glm::diagonal3x4 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
<td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L2 norm of v. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga70cc5632aa9f41e7cf0b81fee6f2bfe6"></a>
+<a class="anchor" id="ga6d326d62fd9b7f4f0a1b79e56492a7e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x2&lt;T, P&gt; glm::diagonal4x2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
<td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the squared length of x. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga4242ea5681f81539e0c5b54fadcd9ddf"></a>
+<a class="anchor" id="ga932bb0854e5c5a6ab5a14b023c451ca7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x3&lt;T, P&gt; glm::diagonal4x3 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
<td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>Depth</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L norm between x and y. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="gade576e044d8e52f343166f665589d782"></a>
+<a class="anchor" id="gaab931b0d1acfe2f9c1cb78311edf24fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::diagonal4x4 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
<td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>Depth</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L norm of v. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00212.html b/3rdparty/glm/doc/api/a00212.html
index c9455a27054..843245f4ff8 100644
--- a/3rdparty/glm/doc/api/a00212.html
+++ b/3rdparty/glm/doc/api/a00212.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_query</title>
+<title>0.9.9 API documenation: GLM_GTX_normal</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,271 +33,90 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_query<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_normal<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Compute the normal of a triangle.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class matType&gt; </td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType&lt; T, P &gt; const &amp;m, T const &amp;epsilon)</td></tr>
-<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3&lt; T, P &gt; const &amp;p1, tvec3&lt; T, P &gt; const &amp;p2, tvec3&lt; T, P &gt; const &amp;p3)</td></tr>
+<tr class="memdesc:ga7842850bcda582f1756883e3ed950e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes triangle normal from triangle points. <a href="a00212.html#ga7842850bcda582f1756883e3ed950e14">More...</a><br /></td></tr>
+<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Query to evaluate matrix properties. </p>
-<p>&lt;<a class="el" href="a00076.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_query.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Compute the normal of a triangle. </p>
+<p>&lt;<a class="el" href="a00076.html" title="GLM_GTX_normal ">glm/gtx/normal.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gafc1ce12c738b8c5d007179e615609330"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isIdentity </td>
- <td>(</td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is an identity matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga11a8d5cdb36496b85f61e4f5f7f2602c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a normalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga351bcc8d485d329b78cfa875e084964d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a normalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga934b673ec0e16d79eca0ca9dbb5d6d8b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a normalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga37e535cbeaea383b8c1247b98875cd4b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">tmat2x2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix a null matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gac67a5c7e029a84b74b02ac9599b8972d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix a null matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga326de496972051413c7b44b85fc9cb6e"></a>
+<a class="anchor" id="ga7842850bcda582f1756883e3ed950e14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::triangleNormal </td>
<td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a null matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gab2cb5d23df77b4e4e63ad2965acd31b3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isOrthogonal </td>
- <td>(</td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>p3</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -301,8 +126,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return whether a matrix is an orthonormalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
+<p>Computes triangle normal from triangle points. </p>
+<p>From GLM_GTX_normal extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00213.html b/3rdparty/glm/doc/api/a00213.html
index 730d51fc7da..6e2a68558c9 100644
--- a/3rdparty/glm/doc/api/a00213.html
+++ b/3rdparty/glm/doc/api/a00213.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_transform_2d</title>
+<title>0.9.9 API documenation: GLM_GTX_normalize_dot</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,128 +33,87 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_transform_2d<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_normalize_dot<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Dot product of vectors that need to be normalize with a single square root.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3&lt; T, P &gt; const &amp;m, T angle)</td></tr>
-<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
-<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
-<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalize parameters and returns the dot product of x and y. <a href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">More...</a><br /></td></tr>
+<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gaffbc2f2cb15838de8886a68048f9004d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalize parameters and returns the dot product of x and y. <a href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">More...</a><br /></td></tr>
+<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines functions that generate common 2d transformation matrices. </p>
-<p>&lt;<a class="el" href="a00078.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_transform_2d.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Dot product of vectors that need to be normalize with a single square root. </p>
+<p>&lt;glm/gtx/normalized_dot.hpp&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab4f798c6048db91a6d0686812fd54022"></a>
+<a class="anchor" id="ga8593b21bc2fe22184f01d5e08b5a2024"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastNormalizeDot </td>
<td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a rotation 3 * 3 matrix created from an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5a608eaf1fdfd0a349a30181cb6a0240"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::scale </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a scale 3 * 3 matrix created from a vector of 2 components. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Coordinates of a scale vector. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3da9ea234fdb2a96c75a97a18c903489"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::shearX </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -159,67 +124,27 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">y</td><td>Shear factor. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93bb348e7d251bcc2c17bfc11bd82e91"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::shearY </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">x</td><td>Shear factor. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Normalize parameters and returns the dot product of x and y. </p>
+<p>Faster that dot(fastNormalize(x), fastNormalize(y)).</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00213.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga22b5e806a6d2e2be54ebd29100d11c51"></a>
+<a class="anchor" id="gaffbc2f2cb15838de8886a68048f9004d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3&lt;T, P&gt; glm::translate </td>
+ <td class="memname">GLM_FUNC_DECL T glm::normalizeDot </td>
<td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -229,14 +154,9 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Builds a translation 3 * 3 matrix created from a vector of 2 components. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Normalize parameters and returns the dot product of x and y. </p>
+<p>It's faster that dot(normalize(x), normalize(y)).</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00213.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00214.html b/3rdparty/glm/doc/api/a00214.html
index 79c2e31cca4..f43bf278db5 100644
--- a/3rdparty/glm/doc/api/a00214.html
+++ b/3rdparty/glm/doc/api/a00214.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_mixed_producte</title>
+<title>0.9.9 API documenation: GLM_GTX_number_precision</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,32 +33,104 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_mixed_producte<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_number_precision<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Defined size types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
-template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)</td></tr>
-<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
+typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
+<tr class="memdesc:ga145ad477a2a3e152855511c3b52469a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
+typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
+<tr class="memdesc:gac88c6a4dbfc380aa26e3adbbade36348"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
+typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
+<tr class="memdesc:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
+typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
+<tr class="memdesc:ga59bfa589419b5265d01314fcecd33435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
+typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
+<tr class="memdesc:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
+typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
+<tr class="memdesc:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
+typedef u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
+<tr class="memdesc:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="mdescLeft">&#160;</td><td class="mdescRight">16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
+typedef u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
+<tr class="memdesc:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
+typedef u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
+<tr class="memdesc:ga818de170e2584ab037130f2881925974"><td class="mdescLeft">&#160;</td><td class="mdescRight">64bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
+typedef u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
+<tr class="memdesc:ga5853fe457f4c8a6bc09343d0e9833980"><td class="mdescLeft">&#160;</td><td class="mdescRight">8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) <br /></td></tr>
+<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Mixed product of 3 vectors. </p>
-<p>&lt;<a class="el" href="a00079.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/mixed_product.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Defined size types. </p>
+<p>&lt;<a class="el" href="a00078.html" title="GLM_GTX_number_precision ">glm/gtx/number_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00215.html b/3rdparty/glm/doc/api/a00215.html
index a591df99658..e290980000c 100644
--- a/3rdparty/glm/doc/api/a00215.html
+++ b/3rdparty/glm/doc/api/a00215.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_norm</title>
+<title>0.9.9 API documenation: GLM_GTX_optimum_pow</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,238 +33,121 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_norm<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_optimum_pow<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Integer exponentiation of power functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga3544f6288d3bce2cf2a9f6ebe39e0557">distance2</a> (T const &amp;p0, T const &amp;p1)</td></tr>
-<tr class="separator:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a> (genType const &amp;p0, genType const &amp;p1)</td></tr>
-<tr class="separator:gaec2d9df62436879b48207d39516f3788"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga08c670024cd230e22f8b853f185ff533">length2</a> (T const &amp;x)</td></tr>
-<tr class="separator:ga08c670024cd230e22f8b853f185ff533"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, unsigned int Depth)</td></tr>
-<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)</td></tr>
-<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga19aaff3213bf23bdec3ef124ace237e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the power of 2. <a href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">More...</a><br /></td></tr>
+<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:ga35689d03cd434d6ea819f1942d3bf82e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the power of 3. <a href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">More...</a><br /></td></tr>
+<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &amp;x)</td></tr>
+<tr class="memdesc:gacef0968763026e180e53e735007dbf5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the power of 4. <a href="a00215.html#gacef0968763026e180e53e735007dbf5a">More...</a><br /></td></tr>
+<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Various ways to compute vector norms. </p>
-<p>&lt;<a class="el" href="a00081.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/norm.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Integer exponentiation of power functions. </p>
+<p>&lt;<a class="el" href="a00079.html" title="GLM_GTX_optimum_pow ">glm/gtx/optimum_pow.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga3544f6288d3bce2cf2a9f6ebe39e0557"></a>
+<a class="anchor" id="ga19aaff3213bf23bdec3ef124ace237e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::distance2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow2 </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>p0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>p1</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaec2d9df62436879b48207d39516f3788"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::distance2 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>p0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
<td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>p1</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaebe5a39b06e262e615622129f37da4f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L1 norm between x and y. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga6d5964f09cdb43803496a5ee3ced71cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L1 norm of v. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gafa6fbbc99cd44d81bf030e74eaf7ad64"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L2 norm between x and y. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga0a8cb8a0ce88d1d977de23209bf04610"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the L2 norm of v. </p>
-<p>From GLM_GTX_norm extension. </p>
+<p>Returns x raised to the power of 2. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga08c670024cd230e22f8b853f185ff533"></a>
+<a class="anchor" id="ga35689d03cd434d6ea819f1942d3bf82e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow3 </td>
<td>(</td>
- <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the squared length of x. </p>
-<p>From GLM_GTX_norm extension. </p>
+<p>Returns x raised to the power of 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa279ba7fdecbed3f9f2b60502b7ec8ca"></a>
+<a class="anchor" id="gacef0968763026e180e53e735007dbf5a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::length2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow4 </td>
<td>(</td>
<td class="paramtype">genType const &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -267,72 +156,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the squared length of x. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga932bb0854e5c5a6ab5a14b023c451ca7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned int&#160;</td>
- <td class="paramname"><em>Depth</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L norm between x and y. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaab931b0d1acfe2f9c1cb78311edf24fc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned int&#160;</td>
- <td class="paramname"><em>Depth</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L norm of v. </p>
-<p>From GLM_GTX_norm extension. </p>
+<p>Returns x raised to the power of 4. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00216.html b/3rdparty/glm/doc/api/a00216.html
index 258018e7fde..ec87b1f67b2 100644
--- a/3rdparty/glm/doc/api/a00216.html
+++ b/3rdparty/glm/doc/api/a00216.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_normal</title>
+<title>0.9.9 API documenation: GLM_GTX_orthonormalize</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,53 +33,107 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_normal<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_orthonormalize<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Orthonormalize matrices.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3&lt; T, P &gt; const &amp;p1, tvec3&lt; T, P &gt; const &amp;p2, tvec3&lt; T, P &gt; const &amp;p3)</td></tr>
-<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
+<tr class="memdesc:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the orthonormalized matrix of m. <a href="a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97">More...</a><br /></td></tr>
+<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="mdescLeft">&#160;</td><td class="mdescRight">Orthonormalizes x according y. <a href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">More...</a><br /></td></tr>
+<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Compute the normal of a triangle. </p>
-<p>&lt;<a class="el" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/normal.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Orthonormalize matrices. </p>
+<p>&lt;<a class="el" href="a00080.html" title="GLM_GTX_orthonormalize ">glm/gtx/orthonormalize.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7842850bcda582f1756883e3ed950e14"></a>
+<a class="anchor" id="ga23c4340b8f1559d259229b6d8bdc3f97"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::triangleNormal </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::orthonormalize </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p1</em>, </td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the orthonormalized matrix of m. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00216.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad7afff30d7323fdc7aed7f5a16a0c596"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::orthonormalize </td>
+ <td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p2</em>, </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>p3</em>&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -83,8 +143,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Computes triangle normal from triangle points. </p>
-<p>From GLM_GTX_normal extension. </p>
+<p>Orthonormalizes x according y. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00216.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00217.html b/3rdparty/glm/doc/api/a00217.html
index b1f2ab1d20a..005f0ab03aa 100644
--- a/3rdparty/glm/doc/api/a00217.html
+++ b/3rdparty/glm/doc/api/a00217.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_normalize_dot</title>
+<title>0.9.9 API documenation: GLM_GTX_perpendicular</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,80 +33,84 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_normalize_dot<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_perpendicular<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Perpendicular of a vector from other one.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
+<tr class="memdesc:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Projects x a perpendicular axis of Normal. <a href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">More...</a><br /></td></tr>
+<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Dot product of vectors that need to be normalize with a single square root. </p>
-<p>&lt;glm/gtx/normalized_dot.hpp&gt; need to be included to use these functionalities. </p>
+<p>Perpendicular of a vector from other one. </p>
+<p>&lt;<a class="el" href="a00084.html" title="GLM_GTX_perpendicular ">glm/gtx/perpendicular.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8593b21bc2fe22184f01d5e08b5a2024"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastNormalizeDot </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Normalize parameters and returns the dot product of x and y. </p>
-<p>Faster that dot(fastNormalize(x), fastNormalize(y)).</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00217.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaffbc2f2cb15838de8886a68048f9004d"></a>
+<a class="anchor" id="ga41f8c73da9798a18e6b1e32f1e301f07"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::normalizeDot </td>
+ <td class="memname">GLM_FUNC_DECL vecType glm::perp </td>
<td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">vecType const &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramtype">vecType const &amp;&#160;</td>
+ <td class="paramname"><em>Normal</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -110,9 +120,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Normalize parameters and returns the dot product of x and y. </p>
-<p>It's faster that dot(normalize(x), normalize(y)).</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00217.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
+<p>Projects x a perpendicular axis of Normal. </p>
+<p>From GLM_GTX_perpendicular extension. </p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00218.html b/3rdparty/glm/doc/api/a00218.html
index 9988de436ef..9c7be3a2579 100644
--- a/3rdparty/glm/doc/api/a00218.html
+++ b/3rdparty/glm/doc/api/a00218.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_number_precision</title>
+<title>0.9.9 API documenation: GLM_GTX_polar_coordinates</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,58 +33,111 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_number_precision<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_polar_coordinates<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Conversion from Euclidean space to polar space and revert.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
-typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
-<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
-typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
-<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
-typedef f32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
-<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
-typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
-<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
-typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
-<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
-typedef f64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
-<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
-typedef u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
-<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
-typedef u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
-<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
-typedef u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
-<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
-typedef u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
-<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2&lt; T, P &gt; const &amp;polar)</td></tr>
+<tr class="memdesc:ga45ece1fbf7260c43e0f873c498202581"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Polar to Euclidean coordinates. <a href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">More...</a><br /></td></tr>
+<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3&lt; T, P &gt; const &amp;euclidean)</td></tr>
+<tr class="memdesc:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. <a href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">More...</a><br /></td></tr>
+<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defined size types. </p>
-<p>&lt;<a class="el" href="a00084.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/number_precision.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Conversion from Euclidean space to polar space and revert. </p>
+<p>&lt;<a class="el" href="a00085.html" title="GLM_GTX_polar_coordinates ">glm/gtx/polar_coordinates.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga45ece1fbf7260c43e0f873c498202581"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::euclidean </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>polar</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert Polar to Euclidean coordinates. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00218.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafcf95a38c780a4ad5ba14c8ac9e522bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::polar </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>euclidean</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00218.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00219.html b/3rdparty/glm/doc/api/a00219.html
index 9ba08164c5e..de96acac263 100644
--- a/3rdparty/glm/doc/api/a00219.html
+++ b/3rdparty/glm/doc/api/a00219.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_optimum_pow</title>
+<title>0.9.9 API documenation: GLM_GTX_projection</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,92 +33,95 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_optimum_pow<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_projection<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Projection of a vector to other one.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &amp;x)</td></tr>
-<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &amp;x)</td></tr>
-<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
+<tr class="memdesc:gadf29123bcf748fc9d6fb0998192184cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Projects x on Normal. <a href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">More...</a><br /></td></tr>
+<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Integer exponentiation of power functions. </p>
-<p>&lt;<a class="el" href="a00085.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/optimum_pow.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Projection of a vector to other one. </p>
+<p>&lt;<a class="el" href="a00087.html" title="GLM_GTX_projection ">glm/gtx/projection.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga19aaff3213bf23bdec3ef124ace237e9"></a>
+<a class="anchor" id="gadf29123bcf748fc9d6fb0998192184cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow2 </td>
+ <td class="memname">GLM_FUNC_DECL vecType glm::proj </td>
<td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">vecType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the power of 2. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga35689d03cd434d6ea819f1942d3bf82e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow3 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType const &amp;&#160;</td>
+ <td class="paramname"><em>Normal</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the power of 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacef0968763026e180e53e735007dbf5a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow4 </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns x raised to the power of 4. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
+<p>Projects x on Normal. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00220.html b/3rdparty/glm/doc/api/a00220.html
index d863024cc50..4cbc5e2e3ac 100644
--- a/3rdparty/glm/doc/api/a00220.html
+++ b/3rdparty/glm/doc/api/a00220.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_orthonormalize</title>
+<title>0.9.9 API documenation: GLM_GTX_quaternion</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,68 +33,355 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_orthonormalize<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_quaternion<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Extented quaternion types and functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3&lt; T, P &gt; const &amp;m)</td></tr>
-<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a cross product between a quaternion and a vector. <a href="a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">More...</a><br /></td></tr>
+<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a cross product between a vector and a quaternion. <a href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">More...</a><br /></td></tr>
+<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga17295173d4c2b5ae49b84e9993b63a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a exp of a quaternion. <a href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">More...</a><br /></td></tr>
+<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga90de879d97487ec804522dd418e5d8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the real component of a quaternion. <a href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">More...</a><br /></td></tr>
+<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:gac11bf550f17d1da14423595a27575084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion normalized linear interpolation. <a href="a00220.html#gac11bf550f17d1da14423595a27575084">More...</a><br /></td></tr>
+<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat&lt; T, P &gt; const &amp;prev, tquat&lt; T, P &gt; const &amp;curr, tquat&lt; T, P &gt; const &amp;next)</td></tr>
+<tr class="memdesc:ga56abae85b3669c866e91f3c57b298b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an intermediate control point for squad interpolation. <a href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">More...</a><br /></td></tr>
+<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga02b45352c7ac345cabc9e877314acda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the squared length of x. <a href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">More...</a><br /></td></tr>
+<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
+<tr class="memdesc:ga791f42e134bfe97fc9c96f4668dd7489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a log of a quaternion. <a href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">More...</a><br /></td></tr>
+<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat&lt; T, P &gt; const &amp;x, T const &amp;y)</td></tr>
+<tr class="memdesc:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x raised to the y power. <a href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">More...</a><br /></td></tr>
+<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns quarternion square root. <a href="a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2">More...</a><br /></td></tr>
+<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates a 4 components vector by a quaternion. <a href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">More...</a><br /></td></tr>
+<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3&lt; T, P &gt; const &amp;orig, tvec3&lt; T, P &gt; const &amp;dest)</td></tr>
+<tr class="memdesc:gac4856d356c5c97cec74e9b672ea89240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the rotation between two vectors. <a href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">More...</a><br /></td></tr>
+<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:ga3534443de2a1a806f386976546cddc81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quaternion interpolation using the rotation short path. <a href="a00220.html#ga3534443de2a1a806f386976546cddc81">More...</a><br /></td></tr>
+<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat&lt; T, P &gt; const &amp;q1, tquat&lt; T, P &gt; const &amp;q2, tquat&lt; T, P &gt; const &amp;s1, tquat&lt; T, P &gt; const &amp;s2, T const &amp;h)</td></tr>
+<tr class="memdesc:gae75f537becdf2b1381b4482ec96e6c82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute a point on a path according squad equation. <a href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">More...</a><br /></td></tr>
+<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 3 * 3 matrix. <a href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">More...</a><br /></td></tr>
+<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gaedc9fba6485eade37cc26c16df9d7aad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a quaternion to a 4 * 4 matrix. <a href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">More...</a><br /></td></tr>
+<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:gac9e3109ca60b644ce508d6b71a1697bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 3 * 3 matrix to a quaternion. <a href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc">More...</a><br /></td></tr>
+<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga808dd0f83ee8150db7e652313bde8eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 4 * 4 matrix to a quaternion. <a href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">More...</a><br /></td></tr>
+<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Orthonormalize matrices. </p>
-<p>&lt;<a class="el" href="a00086.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/orthonormalize.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Extented quaternion types and functions. </p>
+<p>&lt;<a class="el" href="a00089.html" title="GLM_GTX_quaternion ">glm/gtx/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga23c4340b8f1559d259229b6d8bdc3f97"></a>
+<a class="anchor" id="ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::orthonormalize </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::cross </td>
<td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em></td><td>)</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the orthonormalized matrix of m. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
+<p>Compute a cross product between a quaternion and a vector. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad7afff30d7323fdc7aed7f5a16a0c596"></a>
+<a class="anchor" id="ga4bfe3c7770fc43d14b8ef0058c4a86b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::orthonormalize </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::cross </td>
<td>(</td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute a cross product between a vector and a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga17295173d4c2b5ae49b84e9993b63a62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::exp </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a exp of a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga90de879d97487ec804522dd418e5d8a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::extractRealComponent </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extract the real component of a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac11bf550f17d1da14423595a27575084"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::fastMix </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Quaternion normalized linear interpolation. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga56abae85b3669c866e91f3c57b298b9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::intermediate </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>prev</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>curr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>next</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an intermediate control point for squad interpolation. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga02b45352c7ac345cabc9e877314acda6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the squared length of x. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga791f42e134bfe97fc9c96f4668dd7489"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::log </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a log of a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga42a0cf206c59eaeff4c67dd62e09a580"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::pow </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -99,8 +392,273 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Orthonormalizes x according y. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
+<p>Returns x raised to the y power. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9f39f0d3ecd66839a4af44560aa10fb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns quarternion square root. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> Rotates a 3 components vector by a quaternion.</dd>
+<dd>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96575f8868b3f2aa3e13cab9b94ccbd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotates a 4 components vector by a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac4856d356c5c97cec74e9b672ea89240"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::rotation </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>dest</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the rotation between two vectors. </p>
+<p>param orig vector, needs to be normalized param dest vector, needs to be normalized</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3534443de2a1a806f386976546cddc81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::shortMix </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Quaternion interpolation using the rotation short path. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae75f537becdf2b1381b4482ec96e6c82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::squad </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>s1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>s2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>h</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute a point on a path according squad equation. </p>
+<p>q1 and q2 are control points; s1 and s2 are intermediate control points.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga01935b66ba245c2fd7dee5427d86ce9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::toMat3 </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a quaternion to a 3 * 3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00089_source.html#l00128">128</a> of file <a class="el" href="a00089_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaedc9fba6485eade37cc26c16df9d7aad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::toMat4 </td>
+ <td>(</td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a quaternion to a 4 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00089_source.html#l00135">135</a> of file <a class="el" href="a00089_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac9e3109ca60b644ce508d6b71a1697bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::toQuat </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 3 * 3 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00089_source.html#l00142">142</a> of file <a class="el" href="a00089_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga808dd0f83ee8150db7e652313bde8eb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::toQuat </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 4 * 4 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00089_source.html#l00149">149</a> of file <a class="el" href="a00089_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00221.html b/3rdparty/glm/doc/api/a00221.html
index 37235d01226..5356f50b808 100644
--- a/3rdparty/glm/doc/api/a00221.html
+++ b/3rdparty/glm/doc/api/a00221.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_perpendicular</title>
+<title>0.9.9 API documenation: GLM_GTX_range</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,61 +33,59 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_perpendicular<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_range<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
-<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Perpendicular of a vector from other one. </p>
-<p>&lt;<a class="el" href="a00090.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/perpendicular.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga41f8c73da9798a18e6b1e32f1e301f07"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType glm::perp </td>
- <td>(</td>
- <td class="paramtype">vecType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType const &amp;&#160;</td>
- <td class="paramname"><em>Normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Projects x a perpendicular axis of Normal. </p>
-<p>From GLM_GTX_perpendicular extension. </p>
-</div>
-</div>
+<p>Defines begin and end for vectors and matrices.
+<a href="#details">More...</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Defines begin and end for vectors and matrices. </p>
+<p>Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).</p>
+<p>&lt;<a class="el" href="a00091.html" title="GLM_GTX_range ">glm/gtx/range.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00222.html b/3rdparty/glm/doc/api/a00222.html
index 0f9bbf4a2b1..526bdeefa37 100644
--- a/3rdparty/glm/doc/api/a00222.html
+++ b/3rdparty/glm/doc/api/a00222.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_polar_coordinates</title>
+<title>0.9.9 API documenation: GLM_GTX_raw_data</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,70 +33,142 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_polar_coordinates<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_raw_data<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Projection of a vector to other one.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2&lt; T, P &gt; const &amp;polar)</td></tr>
-<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3&lt; T, P &gt; const &amp;euclidean)</td></tr>
-<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
+<tr class="memdesc:ga3005cb0d839d546c616becfa6602c607"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for byte numbers. <a href="a00222.html#ga3005cb0d839d546c616becfa6602c607">More...</a><br /></td></tr>
+<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
+<tr class="memdesc:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for dword numbers. <a href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">More...</a><br /></td></tr>
+<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
+<tr class="memdesc:ga4021754ffb8e5ef14c75802b15657714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for qword numbers. <a href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">More...</a><br /></td></tr>
+<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
+<tr class="memdesc:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for word numbers. <a href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">More...</a><br /></td></tr>
+<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Conversion from Euclidean space to polar space and revert. </p>
-<p>&lt;<a class="el" href="a00091.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/polar_coordinates.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga45ece1fbf7260c43e0f873c498202581"></a>
+<p>Projection of a vector to other one. </p>
+<p>&lt;<a class="el" href="a00092.html" title="GLM_GTX_raw_data ">glm/gtx/raw_data.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga3005cb0d839d546c616becfa6602c607"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::euclidean </td>
- <td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>polar</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint8 byte</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert Polar to Euclidean coordinates. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00222.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+<p>Type for byte numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00092_source.html#l00034">34</a> of file <a class="el" href="a00092_source.html">raw_data.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gafcf95a38c780a4ad5ba14c8ac9e522bb"></a>
+<a class="anchor" id="ga86e46fff9f80ae33893d8d697f2ca98a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::polar </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>euclidean</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint32 dword</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00222.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+<p>Type for dword numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00092_source.html#l00042">42</a> of file <a class="el" href="a00092_source.html">raw_data.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4021754ffb8e5ef14c75802b15657714"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 qword</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type for qword numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00092_source.html#l00046">46</a> of file <a class="el" href="a00092_source.html">raw_data.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga16e9fea0ef1e6c4ef472d3d1731c49a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 word</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type for word numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00092_source.html#l00038">38</a> of file <a class="el" href="a00092_source.html">raw_data.hpp</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00223.html b/3rdparty/glm/doc/api/a00223.html
index 7fff3470aea..d72486ebeed 100644
--- a/3rdparty/glm/doc/api/a00223.html
+++ b/3rdparty/glm/doc/api/a00223.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_projection</title>
+<title>0.9.9 API documenation: GLM_GTX_rotate_normalized_axis</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,47 +33,149 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_projection<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_rotate_normalized_axis<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Quaternions and matrices rotations around normalized axis.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &amp;x, vecType const &amp;Normal)</td></tr>
-<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:gaada623964a895def5a8b77b5b7887dc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. <a href="a00223.html#gaada623964a895def5a8b77b5b7887dc4">More...</a><br /></td></tr>
+<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
+<tr class="memdesc:ga6c00234d844faef36a6a94669fbd1639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates a quaternion from a vector of 3 components normalized axis and an angle. <a href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">More...</a><br /></td></tr>
+<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Projection of a vector to other one. </p>
-<p>&lt;<a class="el" href="a00093.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/projection.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Quaternions and matrices rotations around normalized axis. </p>
+<p>&lt;<a class="el" href="a00094.html" title="GLM_GTX_rotate_normalized_axis ">glm/gtx/rotate_normalized_axis.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gadf29123bcf748fc9d6fb0998192184cf"></a>
+<a class="anchor" id="gaada623964a895def5a8b77b5b7887dc4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rotateNormalizedAxis </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
+ <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
+ <tr><td class="paramname">axis</td><td>Rotation axis, must be normalized. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00223.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd>
+<dd>
+- rotate(T angle, T x, T y, T z) </dd>
+<dd>
+- rotate(tmat4x4&lt;T, P&gt; const &amp; m, T angle, T x, T y, T z) </dd>
+<dd>
+- rotate(T angle, tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6c00234d844faef36a6a94669fbd1639"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType glm::proj </td>
+ <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::rotateNormalizedAxis </td>
<td>(</td>
- <td class="paramtype">vecType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType const &amp;&#160;</td>
- <td class="paramname"><em>Normal</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>axis</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -77,8 +185,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Projects x on Normal. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00223.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> </dd></dl>
+<p>Rotates a quaternion from a vector of 3 components normalized axis and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">q</td><td>Source orientation </td></tr>
+ <tr><td class="paramname">angle</td><td>Angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
+ <tr><td class="paramname">axis</td><td>Normalized axis of the rotation, must be normalized.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00223.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00224.html b/3rdparty/glm/doc/api/a00224.html
index f68ffa1abbb..95e3bf95401 100644
--- a/3rdparty/glm/doc/api/a00224.html
+++ b/3rdparty/glm/doc/api/a00224.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_quaternion</title>
+<title>0.9.9 API documenation: GLM_GTX_rotate_vector</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,98 +33,124 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_quaternion<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_rotate_vector<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Function to directly rotate a vector.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat&lt; T, P &gt; const &amp;prev, tquat&lt; T, P &gt; const &amp;curr, tquat&lt; T, P &gt; const &amp;next)</td></tr>
-<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat&lt; T, P &gt; const &amp;q)</td></tr>
-<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat&lt; T, P &gt; const &amp;x, T const &amp;y)</td></tr>
-<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3&lt; T, P &gt; const &amp;orig, tvec3&lt; T, P &gt; const &amp;dest)</td></tr>
-<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat&lt; T, P &gt; const &amp;q1, tquat&lt; T, P &gt; const &amp;q2, tquat&lt; T, P &gt; const &amp;s1, tquat&lt; T, P &gt; const &amp;s2, T const &amp;h)</td></tr>
-<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</td></tr>
+<tr class="memdesc:ga49b4d082305cdfcfe0a5c184f684a902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a rotation matrix from a normal and a up vector. <a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">More...</a><br /></td></tr>
+<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:ga9bff444fb191e2e089a906b899cd033d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a two dimensional vector. <a href="a00224.html#ga9bff444fb191e2e089a906b899cd033d">More...</a><br /></td></tr>
+<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around an axis. <a href="a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6">More...</a><br /></td></tr>
+<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
+<tr class="memdesc:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimensional vector around an axis. <a href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">More...</a><br /></td></tr>
+<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:ga0c2dc9f8507bffcbb957db9818b18508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around the X axis. <a href="a00224.html#ga0c2dc9f8507bffcbb957db9818b18508">More...</a><br /></td></tr>
+<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gadab312d430a564741ae02215255027a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimentionnals vector around the X axis. <a href="a00224.html#gadab312d430a564741ae02215255027a0">More...</a><br /></td></tr>
+<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around the Y axis. <a href="a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3">More...</a><br /></td></tr>
+<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gae2507577c4bffa3548b32852791dd90c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimensional vector around the X axis. <a href="a00224.html#gae2507577c4bffa3548b32852791dd90c">More...</a><br /></td></tr>
+<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:gae30ac01b89d4f16a972fee696c964908"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a three dimensional vector around the Z axis. <a href="a00224.html#gae30ac01b89d4f16a972fee696c964908">More...</a><br /></td></tr>
+<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
+<tr class="memdesc:ga034e5d197ab4bd8685624bc2cf16e586"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate a four dimensional vector around the X axis. <a href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">More...</a><br /></td></tr>
+<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
+<tr class="memdesc:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns Spherical interpolation between two vectors. <a href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">More...</a><br /></td></tr>
+<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Extented quaternion types and functions. </p>
-<p>&lt;<a class="el" href="a00095.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/quaternion.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Function to directly rotate a vector. </p>
+<p>&lt;<a class="el" href="a00095.html" title="GLM_GTX_rotate_vector ">glm/gtx/rotate_vector.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"></a>
+<a class="anchor" id="ga49b4d082305cdfcfe0a5c184f684a902"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::cross </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::orientation </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>Normal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
+ <td class="paramname"><em>Up</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -128,26 +160,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute a cross product between a quaternion and a vector. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Build a rotation matrix from a normal and a up vector. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga4bfe3c7770fc43d14b8ef0058c4a86b5"></a>
+<a class="anchor" id="ga9bff444fb191e2e089a906b899cd033d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::cross </td>
+ <td class="memname">GLM_FUNC_DECL tvec2&lt;T, P&gt; glm::rotate </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em>&#160;</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -157,70 +189,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute a cross product between a vector and a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga17295173d4c2b5ae49b84e9993b63a62"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::exp </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a exp of a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a two dimensional vector. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga90de879d97487ec804522dd418e5d8a0"></a>
+<a class="anchor" id="ga526b6f8995bc0946aa1a04e9297de7c6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::extractRealComponent </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Extract the real component of a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac11bf550f17d1da14423595a27575084"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::fastMix </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotate </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>normal</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -230,32 +224,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Quaternion normalized linear interpolation. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around an axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga56abae85b3669c866e91f3c57b298b9c"></a>
+<a class="anchor" id="gaf4d59dd2f668f9ffb38048055d1316bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::intermediate </td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotate </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>prev</em>, </td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>curr</em>, </td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>next</em>&#160;</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>normal</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -265,64 +259,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns an intermediate control point for squad interpolation. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimensional vector around an axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga02b45352c7ac345cabc9e877314acda6"></a>
+<a class="anchor" id="ga0c2dc9f8507bffcbb957db9818b18508"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotateX </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the squared length of x. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga791f42e134bfe97fc9c96f4668dd7489"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::log </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a log of a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga42a0cf206c59eaeff4c67dd62e09a580"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::pow </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -332,26 +288,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns x raised to the y power. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga9f39f0d3ecd66839a4af44560aa10fb2"></a>
+<a class="anchor" id="gadab312d430a564741ae02215255027a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotateX </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -361,28 +317,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns quarternion square root. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> Rotates a 3 components vector by a quaternion.</dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimentionnals vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga96575f8868b3f2aa3e13cab9b94ccbd3"></a>
+<a class="anchor" id="gabb5d19eba5befeebcb35a0aad4a114e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotateY </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -392,26 +346,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Rotates a 4 components vector by a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around the Y axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="gac4856d356c5c97cec74e9b672ea89240"></a>
+<a class="anchor" id="gae2507577c4bffa3548b32852791dd90c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::rotation </td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotateY </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>orig</em>, </td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>dest</em>&#160;</td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -421,33 +375,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute the rotation between two vectors. </p>
-<p>param orig vector, needs to be normalized param dest vector, needs to be normalized</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimensional vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga3534443de2a1a806f386976546cddc81"></a>
+<a class="anchor" id="gae30ac01b89d4f16a972fee696c964908"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::shortMix </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotateZ </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -457,44 +404,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Quaternion interpolation using the rotation short path. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around the Z axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="gae75f537becdf2b1381b4482ec96e6c82"></a>
+<a class="anchor" id="ga034e5d197ab4bd8685624bc2cf16e586"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::squad </td>
+ <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotateZ </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>s1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>s2</em>, </td>
+ <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>h</em>&#160;</td>
+ <td class="paramname"><em>angle</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -504,101 +433,51 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute a point on a path according squad equation. </p>
-<p>q1 and q2 are control points; s1 and s2 are intermediate control points.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimensional vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga01935b66ba245c2fd7dee5427d86ce9b"></a>
+<a class="anchor" id="gafc9ab3101c3f3799f3d5d6d9d3baac09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::toMat3 </td>
+ <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::slerp </td>
<td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a quaternion to a 3 * 3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00153">153</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaedc9fba6485eade37cc26c16df9d7aad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::toMat4 </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a quaternion to a 4 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00160">160</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac9e3109ca60b644ce508d6b71a1697bc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::toQuat </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>a</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a 3 * 3 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00167">167</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga808dd0f83ee8150db7e652313bde8eb2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::toQuat </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 4 * 4 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00174">174</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
+<p>Returns Spherical interpolation between two vectors. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A first vector </td></tr>
+ <tr><td class="paramname">y</td><td>A second vector </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Function to directly rotate a vector. ">GLM_GTX_rotate_vector</a> </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00225.html b/3rdparty/glm/doc/api/a00225.html
index 04ef36c6abb..de0521ee740 100644
--- a/3rdparty/glm/doc/api/a00225.html
+++ b/3rdparty/glm/doc/api/a00225.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_range</title>
+<title>0.9.9 API documenation: GLM_GTX_scalar_relational</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,23 +33,57 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="headertitle">
-<div class="title">GLM_GTX_range<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_scalar_relational<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines begin and end for vectors and matrices. </p>
-<p>Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).</p>
-<p>&lt;<a class="el" href="a00097.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/range.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Extend a position from a source to a position at a defined length.
+<a href="#details">More...</a></p>
+<p>Extend a position from a source to a position at a defined length. </p>
+<p>&lt;<a class="el" href="a00098.html" title="GLM_GTX_scalar_relational ">glm/gtx/scalar_relational.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00226.html b/3rdparty/glm/doc/api/a00226.html
index f2884c980fe..3fa9d804042 100644
--- a/3rdparty/glm/doc/api/a00226.html
+++ b/3rdparty/glm/doc/api/a00226.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_raw_data</title>
+<title>0.9.9 API documenation: GLM_GTX_spline</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,102 +33,215 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_raw_data<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_spline<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Spline functions.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
-<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
-<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
-<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
-<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00226.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
+<tr class="memdesc:ga8119c04f8210fd0d292757565cd6918d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a point from a catmull rom curve. <a href="a00226.html#ga8119c04f8210fd0d292757565cd6918d">More...</a><br /></td></tr>
+<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
+<tr class="memdesc:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a point from a cubic curve. <a href="a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">More...</a><br /></td></tr>
+<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00226.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
+<tr class="memdesc:gaa69e143f6374d32f934a8edeaa50bac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a point from a hermite curve. <a href="a00226.html#gaa69e143f6374d32f934a8edeaa50bac9">More...</a><br /></td></tr>
+<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Projection of a vector to other one. </p>
-<p>&lt;<a class="el" href="a00098.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/raw_data.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga3005cb0d839d546c616becfa6602c607"></a>
+<p>Spline functions. </p>
+<p>&lt;<a class="el" href="a00100.html" title="GLM_GTX_spline ">glm/gtx/spline.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga8119c04f8210fd0d292757565cd6918d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 byte</td>
+ <td class="memname">GLM_FUNC_DECL genType glm::catmullRom </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v4</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
+ <td class="paramname"><em>s</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type for byte numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00059">59</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga86e46fff9f80ae33893d8d697f2ca98a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 dword</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Type for dword numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00067">67</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
+<p>Return a point from a catmull rom curve. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00226.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4021754ffb8e5ef14c75802b15657714"></a>
+<a class="anchor" id="ga6b867eb52e2fc933d2e0bf26aabc9a70"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 qword</td>
+ <td class="memname">GLM_FUNC_DECL genType glm::cubic </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v4</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
+ <td class="paramname"><em>s</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Type for qword numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00071">71</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
+<p>Return a point from a cubic curve. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00226.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga16e9fea0ef1e6c4ef472d3d1731c49a5"></a>
+<a class="anchor" id="gaa69e143f6374d32f934a8edeaa50bac9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 word</td>
+ <td class="memname">GLM_FUNC_DECL genType glm::hermite </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
+ <td class="paramname"><em>s</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Type for word numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00063">63</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
+<p>Return a point from a hermite curve. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00226.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00227.html b/3rdparty/glm/doc/api/a00227.html
index d7b7a894c15..521d32ced7a 100644
--- a/3rdparty/glm/doc/api/a00227.html
+++ b/3rdparty/glm/doc/api/a00227.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_rotate_normalized_axis</title>
+<title>0.9.9 API documenation: GLM_GTX_std_based_type</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,130 +33,222 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_rotate_normalized_axis<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_std_based_type<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Adds vector types based on STL value types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)</td></tr>
-<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
+<tr class="memdesc:ga47c940f279a6b97ffc301eb4526a445a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of one std::size_t component. <a href="a00227.html#ga47c940f279a6b97ffc301eb4526a445a">More...</a><br /></td></tr>
+<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
+<tr class="memdesc:ga77d0b061efa41cb2ed2285d09294314e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of one std::size_t component. <a href="a00227.html#ga77d0b061efa41cb2ed2285d09294314e">More...</a><br /></td></tr>
+<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
+<tr class="memdesc:gac0ef172641a1555684da0beb735c2a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of two std::size_t components. <a href="a00227.html#gac0ef172641a1555684da0beb735c2a79">More...</a><br /></td></tr>
+<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
+<tr class="memdesc:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of two std::size_t components. <a href="a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e">More...</a><br /></td></tr>
+<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
+<tr class="memdesc:ga51b5e9650c459973134ffb4236ae88b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of three std::size_t components. <a href="a00227.html#ga51b5e9650c459973134ffb4236ae88b6">More...</a><br /></td></tr>
+<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
+<tr class="memdesc:gad364e6c302642e3bb89d756df5d0c8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of three std::size_t components. <a href="a00227.html#gad364e6c302642e3bb89d756df5d0c8c6">More...</a><br /></td></tr>
+<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
+<tr class="memdesc:gaf07a3f432e328c99d35637225c988121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of four std::size_t components. <a href="a00227.html#gaf07a3f432e328c99d35637225c988121">More...</a><br /></td></tr>
+<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
+<tr class="memdesc:ga06862b7d59094244025d34407b2cb796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector type based of four std::size_t components. <a href="a00227.html#ga06862b7d59094244025d34407b2cb796">More...</a><br /></td></tr>
+<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Quaternions and matrices rotations around normalized axis. </p>
-<p>&lt;<a class="el" href="a00100.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/rotate_normalized_axis.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaada623964a895def5a8b77b5b7887dc4"></a>
+<p>Adds vector types based on STL value types. </p>
+<p>&lt;<a class="el" href="a00101.html" title="GLM_GTX_std_based_type ">glm/gtx/std_based_type.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga47c940f279a6b97ffc301eb4526a445a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rotateNormalizedAxis </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="memname">typedef tvec1&lt;std::size_t, defaultp&gt; size1</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of one std::size_t component. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00034">34</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga77d0b061efa41cb2ed2285d09294314e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="memname">typedef tvec1&lt;std::size_t, defaultp&gt; size1_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of one std::size_t component. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00050">50</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac0ef172641a1555684da0beb735c2a79"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>axis</em>&#160;</td>
+ <td class="memname">typedef tvec2&lt;std::size_t, defaultp&gt; size2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of two std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00038">38</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7d72bbe318d27da9d30f27095e4c75e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec2&lt;std::size_t, defaultp&gt; size2_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
- <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
- <tr><td class="paramname">axis</td><td>Rotation axis, must be normalized. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00227.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd>
-<dd>
-- rotate(T angle, T x, T y, T z) </dd>
-<dd>
-- rotate(tmat4x4&lt;T, P&gt; const &amp; m, T angle, T x, T y, T z) </dd>
-<dd>
-- rotate(T angle, tvec3&lt;T, P&gt; const &amp; v) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6c00234d844faef36a6a94669fbd1639"></a>
+<p>Vector type based of two std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00054">54</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga51b5e9650c459973134ffb4236ae88b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat&lt;T, P&gt; glm::rotateNormalizedAxis </td>
- <td>(</td>
- <td class="paramtype">tquat&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="memname">typedef tvec3&lt;std::size_t, defaultp&gt; size3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of three std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00042">42</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad364e6c302642e3bb89d756df5d0c8c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="memname">typedef tvec3&lt;std::size_t, defaultp&gt; size3_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of three std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00058">58</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf07a3f432e328c99d35637225c988121"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>axis</em>&#160;</td>
+ <td class="memname">typedef tvec4&lt;std::size_t, defaultp&gt; size4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of four std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00046">46</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga06862b7d59094244025d34407b2cb796"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec4&lt;std::size_t, defaultp&gt; size4_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Rotates a quaternion from a vector of 3 components normalized axis and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">q</td><td>Source orientation </td></tr>
- <tr><td class="paramname">angle</td><td>Angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
- <tr><td class="paramname">axis</td><td>Normalized axis of the rotation, must be normalized.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00227.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd></dl>
+<p>Vector type based of four std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00101_source.html#l00062">62</a> of file <a class="el" href="a00101_source.html">std_based_type.hpp</a>.</p>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00228.html b/3rdparty/glm/doc/api/a00228.html
index 97bf2cf260d..07c4f652080 100644
--- a/3rdparty/glm/doc/api/a00228.html
+++ b/3rdparty/glm/doc/api/a00228.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_rotate_vector</title>
+<title>0.9.9 API documenation: GLM_GTX_string_cast</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,404 +33,85 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_rotate_vector<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_string_cast<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Setup strings for GLM type values.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3&lt; T, P &gt; const &amp;Normal, tvec3&lt; T, P &gt; const &amp;Up)</td></tr>
-<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)</td></tr>
-<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)</td></tr>
-<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)</td></tr>
-<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class matType, typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType&lt; T, P &gt; const &amp;x)</td></tr>
+<tr class="memdesc:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string from a GLM vector or matrix typed variable. <a href="a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6">More...</a><br /></td></tr>
+<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Function to directly rotate a vector. </p>
-<p>&lt;<a class="el" href="a00101.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/rotate_vector.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Setup strings for GLM type values. </p>
+<p>&lt;<a class="el" href="a00102.html" title="GLM_GTX_string_cast ">glm/gtx/string_cast.hpp</a>&gt; need to be included to use these functionalities. This extension is not supported with CUDA </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga49b4d082305cdfcfe0a5c184f684a902"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::orientation </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Normal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>Up</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a rotation matrix from a normal and a up vector. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga9bff444fb191e2e089a906b899cd033d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2&lt;T, P&gt; glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a two dimensional vector. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga526b6f8995bc0946aa1a04e9297de7c6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around an axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaf4d59dd2f668f9ffb38048055d1316bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimensional vector around an axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c2dc9f8507bffcbb957db9818b18508"></a>
+<a class="anchor" id="ga7b4f9233593bbf1d53762f801ef56fe6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotateX </td>
+ <td class="memname">GLM_FUNC_DECL std::string glm::to_string </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gadab312d430a564741ae02215255027a0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotateX </td>
- <td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimentionnals vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gabb5d19eba5befeebcb35a0aad4a114e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotateY </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around the Y axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gae2507577c4bffa3548b32852791dd90c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotateY </td>
- <td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimensional vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gae30ac01b89d4f16a972fee696c964908"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::rotateZ </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around the Z axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga034e5d197ab4bd8685624bc2cf16e586"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4&lt;T, P&gt; glm::rotateZ </td>
- <td>(</td>
- <td class="paramtype">tvec4&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>angle</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimensional vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gafc9ab3101c3f3799f3d5d6d9d3baac09"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3&lt;T, P&gt; glm::slerp </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>a</em>&#160;</td>
- </tr>
- <tr>
+ <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns Spherical interpolation between two vectors. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A first vector </td></tr>
- <tr><td class="paramname">y</td><td>A second vector </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00228.html" title="Function to directly rotate a vector. ">GLM_GTX_rotate_vector</a> </dd></dl>
+<p>Create a string from a GLM vector or matrix typed variable. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00228.html" title="Setup strings for GLM type values. ">GLM_GTX_string_cast</a> extension. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00229.html b/3rdparty/glm/doc/api/a00229.html
index baa36b8d646..831cdaee019 100644
--- a/3rdparty/glm/doc/api/a00229.html
+++ b/3rdparty/glm/doc/api/a00229.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_scalar_relational</title>
+<title>0.9.9 API documenation: GLM_GTX_transform</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,150 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_scalar_relational<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_transform<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>Extend a position from a source to a position at a defined length. </p>
-<p>&lt;<a class="el" href="a00104.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/scalar_relational.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Add transformation matrices.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga2020c91bf61e050882b3a5c18eada700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. <a href="a00229.html#ga2020c91bf61e050882b3a5c18eada700">More...</a><br /></td></tr>
+<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga1972d4a66a2e92637c8aaee598417a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. <a href="a00229.html#ga1972d4a66a2e92637c8aaee598417a71">More...</a><br /></td></tr>
+<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
+<tr class="memdesc:ga838c4505ef7f254ed05117b1ac9691fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. <a href="a00229.html#ga838c4505ef7f254ed05117b1ac9691fb">More...</a><br /></td></tr>
+<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Add transformation matrices. </p>
+<p>&lt;<a class="el" href="a00103.html" title="GLM_GTX_transform ">glm/gtx/transform.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga2020c91bf61e050882b3a5c18eada700"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1972d4a66a2e92637c8aaee598417a71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::scale </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga838c4505ef7f254ed05117b1ac9691fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::translate </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00229.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00230.html b/3rdparty/glm/doc/api/a00230.html
index 7090b44a800..4c1de37b040 100644
--- a/3rdparty/glm/doc/api/a00230.html
+++ b/3rdparty/glm/doc/api/a00230.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_simd_mat4</title>
+<title>0.9.9 API documenation: GLM_GTX_transform2</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,385 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_simd_mat4<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_transform2<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>SIMD implementation of mat4 type. </p>
-<p>&lt;<a class="el" href="a00106.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/simd_mat4.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Add extra transformation matrices.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
+<tr class="memdesc:gacfce1085167a8bfb71a55ea14d22752f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build planar projection matrix along normal axis. <a href="a00230.html#gacfce1085167a8bfb71a55ea14d22752f">More...</a><br /></td></tr>
+<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
+<tr class="memdesc:gafab0418f2503ec2133cb2de828cc482a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build planar projection matrix along normal axis. <a href="a00230.html#gafab0418f2503ec2133cb2de828cc482a">More...</a><br /></td></tr>
+<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
+<tr class="memdesc:ga2874abd228989556d610a0bff993667a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a scale bias matrix. <a href="a00230.html#ga2874abd228989556d610a0bff993667a">More...</a><br /></td></tr>
+<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)</td></tr>
+<tr class="memdesc:gac1a1139e2980021422d1fc1c42dc74f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a scale bias matrix. <a href="a00230.html#gac1a1139e2980021422d1fc1c42dc74f2">More...</a><br /></td></tr>
+<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
+<tr class="memdesc:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on X axis. <a href="a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">More...</a><br /></td></tr>
+<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T y, T z)</td></tr>
+<tr class="memdesc:gae06ce274e4754f925d5d68440e89452e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. <a href="a00230.html#gae06ce274e4754f925d5d68440e89452e">More...</a><br /></td></tr>
+<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
+<tr class="memdesc:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on Y axis. <a href="a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">More...</a><br /></td></tr>
+<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T z)</td></tr>
+<tr class="memdesc:ga31253ea18fdcdfde08c134c8b67688f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on Y axis. <a href="a00230.html#ga31253ea18fdcdfde08c134c8b67688f7">More...</a><br /></td></tr>
+<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T y)</td></tr>
+<tr class="memdesc:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms a matrix with a shearing on Z axis. <a href="a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51">More...</a><br /></td></tr>
+<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Add extra transformation matrices. </p>
+<p>&lt;<a class="el" href="a00104.html" title="GLM_GTX_transform2 ">glm/gtx/transform2.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gacfce1085167a8bfb71a55ea14d22752f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::proj2D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat3x3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const tvec3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>normal</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build planar projection matrix along normal axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafab0418f2503ec2133cb2de828cc482a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::proj3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const tvec3&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>normal</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build planar projection matrix along normal axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2874abd228989556d610a0bff993667a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; glm::scaleBias </td>
+ <td>(</td>
+ <td class="paramtype">valType&#160;</td>
+ <td class="paramname"><em>scale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">valType&#160;</td>
+ <td class="paramname"><em>bias</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a scale bias matrix. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac1a1139e2980021422d1fc1c42dc74f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; glm::scaleBias </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4&lt; valType, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">valType&#160;</td>
+ <td class="paramname"><em>scale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">valType&#160;</td>
+ <td class="paramname"><em>bias</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a scale bias matrix. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga10f6c62d8f827c4cacedb71fd05e4ba2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::shearX2D </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on X axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae06ce274e4754f925d5d68440e89452e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::shearX3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga21ade82859e09a5cdaf4a01fbf8dc61b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::shearY2D </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on Y axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga31253ea18fdcdfde08c134c8b67688f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::shearY3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>z</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on Y axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5558ac64a7144685bf2eb4483a0e2f51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::shearZ3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on Z axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00231.html b/3rdparty/glm/doc/api/a00231.html
index d8ddd1c1423..ee2681b6c20 100644
--- a/3rdparty/glm/doc/api/a00231.html
+++ b/3rdparty/glm/doc/api/a00231.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_simd_quat</title>
+<title>0.9.9 API documenation: GLM_GTX_type_aligned</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,8024 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_simd_quat<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_type_aligned<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>SIMD implementation of quat type. </p>
-<p>&lt;<a class="el" href="a00107.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/simd_quat.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Defines aligned types.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
+<tr class="memdesc:gab5cd5c5fad228b25c782084f1cc30114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gab5cd5c5fad228b25c782084f1cc30114">More...</a><br /></td></tr>
+<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
+<tr class="memdesc:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga5bb5dd895ef625c1b113f2cf400186b0">More...</a><br /></td></tr>
+<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
+<tr class="memdesc:gac6efa54cf7c6c86f7158922abdb1a430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gac6efa54cf7c6c86f7158922abdb1a430">More...</a><br /></td></tr>
+<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
+<tr class="memdesc:ga6612eb77c8607048e7552279a11eeb5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga6612eb77c8607048e7552279a11eeb5f">More...</a><br /></td></tr>
+<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
+<tr class="memdesc:ga7ddc1848ff2223026db8968ce0c97497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga7ddc1848ff2223026db8968ce0c97497">More...</a><br /></td></tr>
+<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
+<tr class="memdesc:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga22240dd9458b0f8c11fbcc4f48714f68">More...</a><br /></td></tr>
+<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
+<tr class="memdesc:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga8130ea381d76a2cc34a93ccbb6cf487d">More...</a><br /></td></tr>
+<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
+<tr class="memdesc:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga7ccb60f3215d293fd62b33b31ed0e7be">More...</a><br /></td></tr>
+<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
+<tr class="memdesc:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gac20d508d2ef5cc95ad3daf083c57ec2a">More...</a><br /></td></tr>
+<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
+<tr class="memdesc:ga50257b48069a31d0c8d9c1f644d267de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga50257b48069a31d0c8d9c1f644d267de">More...</a><br /></td></tr>
+<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
+<tr class="memdesc:gaa07e98e67b7a3435c0746018c7a2a839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gaa07e98e67b7a3435c0746018c7a2a839">More...</a><br /></td></tr>
+<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
+<tr class="memdesc:ga62601fc6f8ca298b77285bedf03faffd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga62601fc6f8ca298b77285bedf03faffd">More...</a><br /></td></tr>
+<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
+<tr class="memdesc:gac8cff825951aeb54dd846037113c72db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gac8cff825951aeb54dd846037113c72db">More...</a><br /></td></tr>
+<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
+<tr class="memdesc:ga78f443d88f438575a62b5df497cdf66b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga78f443d88f438575a62b5df497cdf66b">More...</a><br /></td></tr>
+<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
+<tr class="memdesc:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga0680cd3b5d4e8006985fb41a4f9b57af">More...</a><br /></td></tr>
+<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
+<tr class="memdesc:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer aligned scalar type. <a href="a00231.html#gad9e5babb1dd3e3531b42c37bf25dd951">More...</a><br /></td></tr>
+<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
+<tr class="memdesc:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">More...</a><br /></td></tr>
+<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
+<tr class="memdesc:ga2196442c0e5c5e8c77842de388c42521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga2196442c0e5c5e8c77842de388c42521">More...</a><br /></td></tr>
+<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
+<tr class="memdesc:ga1284488189daf897cf095c5eefad9744"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga1284488189daf897cf095c5eefad9744">More...</a><br /></td></tr>
+<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
+<tr class="memdesc:ga73fdc86a539808af58808b7c60a1c4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga73fdc86a539808af58808b7c60a1c4d8">More...</a><br /></td></tr>
+<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
+<tr class="memdesc:gafafeea923e1983262c972e2b83922d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gafafeea923e1983262c972e2b83922d3b">More...</a><br /></td></tr>
+<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
+<tr class="memdesc:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">More...</a><br /></td></tr>
+<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
+<tr class="memdesc:ga63b882e29170d428463d99c3d630acc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga63b882e29170d428463d99c3d630acc6">More...</a><br /></td></tr>
+<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
+<tr class="memdesc:ga8b20507bb048c1edea2d441cc953e6f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga8b20507bb048c1edea2d441cc953e6f0">More...</a><br /></td></tr>
+<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
+<tr class="memdesc:ga56c5ca60813027b603c7b61425a0479d"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga56c5ca60813027b603c7b61425a0479d">More...</a><br /></td></tr>
+<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
+<tr class="memdesc:ga7a751b3aff24c0259f4a7357c2969089"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga7a751b3aff24c0259f4a7357c2969089">More...</a><br /></td></tr>
+<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
+<tr class="memdesc:ga70cd2144351c556469ee6119e59971fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga70cd2144351c556469ee6119e59971fc">More...</a><br /></td></tr>
+<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
+<tr class="memdesc:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga46bbf08dc004d8c433041e0b5018a5d3">More...</a><br /></td></tr>
+<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
+<tr class="memdesc:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gab3e10c77a20d1abad2de1c561c7a5c18">More...</a><br /></td></tr>
+<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
+<tr class="memdesc:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga968f30319ebeaca9ebcd3a25a8e139fb">More...</a><br /></td></tr>
+<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
+<tr class="memdesc:gaae773c28e6390c6aa76f5b678b7098a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gaae773c28e6390c6aa76f5b678b7098a3">More...</a><br /></td></tr>
+<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
+<tr class="memdesc:ga790cfff1ca39d0ed696ffed980809311"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga790cfff1ca39d0ed696ffed980809311">More...</a><br /></td></tr>
+<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
+<tr class="memdesc:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga8265b91eb23c120a9b0c3e381bc37b96">More...</a><br /></td></tr>
+<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
+<tr class="memdesc:gae6d384de17588d8edb894fbe06e0d410"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gae6d384de17588d8edb894fbe06e0d410">More...</a><br /></td></tr>
+<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
+<tr class="memdesc:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga9c8172b745ee03fc5b2b91c350c2922f">More...</a><br /></td></tr>
+<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
+<tr class="memdesc:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">More...</a><br /></td></tr>
+<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
+<tr class="memdesc:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">More...</a><br /></td></tr>
+<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
+<tr class="memdesc:ga285649744560be21000cfd81bbb5d507"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#ga285649744560be21000cfd81bbb5d507">More...</a><br /></td></tr>
+<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
+<tr class="memdesc:ga07732da630b2deda428ce95c0ecaf3ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga07732da630b2deda428ce95c0ecaf3ff">More...</a><br /></td></tr>
+<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
+<tr class="memdesc:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">More...</a><br /></td></tr>
+<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
+<tr class="memdesc:ga848aedf13e2d9738acf0bb482c590174"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga848aedf13e2d9738acf0bb482c590174">More...</a><br /></td></tr>
+<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
+<tr class="memdesc:gafd2803d39049dd45a37a63931e25d943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gafd2803d39049dd45a37a63931e25d943">More...</a><br /></td></tr>
+<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
+<tr class="memdesc:gae553b33349d6da832cf0724f1e024094"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gae553b33349d6da832cf0724f1e024094">More...</a><br /></td></tr>
+<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
+<tr class="memdesc:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">More...</a><br /></td></tr>
+<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
+<tr class="memdesc:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga2de065d2ddfdb366bcd0febca79ae2ad">More...</a><br /></td></tr>
+<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
+<tr class="memdesc:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gabd786bdc20a11c8cb05c92c8212e28d3">More...</a><br /></td></tr>
+<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
+<tr class="memdesc:gad4aefe56691cdb640c72f0d46d3fb532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gad4aefe56691cdb640c72f0d46d3fb532">More...</a><br /></td></tr>
+<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
+<tr class="memdesc:ga8fe9745f7de24a8394518152ff9fccdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga8fe9745f7de24a8394518152ff9fccdc">More...</a><br /></td></tr>
+<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
+<tr class="memdesc:gaaad735483450099f7f882d4e3a3569bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#gaaad735483450099f7f882d4e3a3569bd">More...</a><br /></td></tr>
+<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
+<tr class="memdesc:gac7b6f823802edbd6edbaf70ea25bf068"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 2 components type. <a href="a00231.html#gac7b6f823802edbd6edbaf70ea25bf068">More...</a><br /></td></tr>
+<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
+<tr class="memdesc:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 3 components type. <a href="a00231.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">More...</a><br /></td></tr>
+<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
+<tr class="memdesc:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga50d8a9523968c77f8325b4c9bfbff41e">More...</a><br /></td></tr>
+<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
+<tr class="memdesc:ga9ec20fdfb729c702032da9378c79679f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned scalar type. <a href="a00231.html#ga9ec20fdfb729c702032da9378c79679f">More...</a><br /></td></tr>
+<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
+<tr class="memdesc:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned vector of 2 components type. <a href="a00231.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">More...</a><br /></td></tr>
+<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
+<tr class="memdesc:ga2958f907719d94d8109b562540c910e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned vector of 3 components type. <a href="a00231.html#ga2958f907719d94d8109b562540c910e2">More...</a><br /></td></tr>
+<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
+<tr class="memdesc:ga1fe6fc032a978f1c845fac9aa0668714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga1fe6fc032a978f1c845fac9aa0668714">More...</a><br /></td></tr>
+<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
+<tr class="memdesc:gaa4161e7a496dc96972254143fe873e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned scalar type. <a href="a00231.html#gaa4161e7a496dc96972254143fe873e55">More...</a><br /></td></tr>
+<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
+<tr class="memdesc:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned vector of 2 components type. <a href="a00231.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">More...</a><br /></td></tr>
+<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
+<tr class="memdesc:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned vector of 3 components type. <a href="a00231.html#gaaee91dd2ab34423bcc11072ef6bd0f02">More...</a><br /></td></tr>
+<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
+<tr class="memdesc:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga49f047ccaa8b31fad9f26c67bf9b3510">More...</a><br /></td></tr>
+<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
+<tr class="memdesc:ga904e9c2436bb099397c0823506a0771f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned scalar type. <a href="a00231.html#ga904e9c2436bb099397c0823506a0771f">More...</a><br /></td></tr>
+<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
+<tr class="memdesc:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 2 components type. <a href="a00231.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">More...</a><br /></td></tr>
+<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
+<tr class="memdesc:ga7354a4ead8cb17868aec36b9c30d6010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 3 components type. <a href="a00231.html#ga7354a4ead8cb17868aec36b9c30d6010">More...</a><br /></td></tr>
+<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
+<tr class="memdesc:gad2ecbdea18732163e2636e27b37981ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit signed integer aligned vector of 4 components type. <a href="a00231.html#gad2ecbdea18732163e2636e27b37981ee">More...</a><br /></td></tr>
+<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
+<tr class="memdesc:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned scalar type. <a href="a00231.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">More...</a><br /></td></tr>
+<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
+<tr class="memdesc:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned vector of 2 components type. <a href="a00231.html#ga1f9e9c2ea2768675dff9bae5cde2d829">More...</a><br /></td></tr>
+<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
+<tr class="memdesc:gad77c317b7d942322cd5be4c8127b3187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned vector of 3 components type. <a href="a00231.html#gad77c317b7d942322cd5be4c8127b3187">More...</a><br /></td></tr>
+<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
+<tr class="memdesc:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit signed integer aligned vector of 4 components type. <a href="a00231.html#ga716f8ea809bdb11b5b542d8b71aeb04f">More...</a><br /></td></tr>
+<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
+<tr class="memdesc:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gad46f8e9082d5878b1bc04f9c1471cdaa">More...</a><br /></td></tr>
+<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
+<tr class="memdesc:ga1246094581af624aca6c7499aaabf801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga1246094581af624aca6c7499aaabf801">More...</a><br /></td></tr>
+<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
+<tr class="memdesc:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga7a5009a1d0196bbf21dd7518f61f0249">More...</a><br /></td></tr>
+<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
+<tr class="memdesc:ga45213fd18b3bb1df391671afefe4d1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga45213fd18b3bb1df391671afefe4d1e7">More...</a><br /></td></tr>
+<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
+<tr class="memdesc:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">More...</a><br /></td></tr>
+<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
+<tr class="memdesc:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">More...</a><br /></td></tr>
+<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
+<tr class="memdesc:gadc246401847dcba155f0699425e49dcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gadc246401847dcba155f0699425e49dcd">More...</a><br /></td></tr>
+<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
+<tr class="memdesc:gaace64bddf51a9def01498da9a94fb01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gaace64bddf51a9def01498da9a94fb01c">More...</a><br /></td></tr>
+<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
+<tr class="memdesc:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gad7bb97c29d664bd86ffb1bed4abc5534">More...</a><br /></td></tr>
+<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
+<tr class="memdesc:ga404bba7785130e0b1384d695a9450b28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga404bba7785130e0b1384d695a9450b28">More...</a><br /></td></tr>
+<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
+<tr class="memdesc:ga31ba41fd896257536958ec6080203d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga31ba41fd896257536958ec6080203d2a">More...</a><br /></td></tr>
+<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
+<tr class="memdesc:gacca5f13627f57b3505676e40a6e43e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gacca5f13627f57b3505676e40a6e43e5e">More...</a><br /></td></tr>
+<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
+<tr class="memdesc:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">More...</a><br /></td></tr>
+<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
+<tr class="memdesc:ga727e2bf2c433bb3b0182605860a48363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga727e2bf2c433bb3b0182605860a48363">More...</a><br /></td></tr>
+<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
+<tr class="memdesc:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga12566ca66d5962dadb4a5eb4c74e891e">More...</a><br /></td></tr>
+<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
+<tr class="memdesc:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga7b66a97a8acaa35c5a377b947318c6bc">More...</a><br /></td></tr>
+<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
+<tr class="memdesc:gaa9cde002439b74fa66120a16a9f55fcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gaa9cde002439b74fa66120a16a9f55fcc">More...</a><br /></td></tr>
+<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
+<tr class="memdesc:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">More...</a><br /></td></tr>
+<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
+<tr class="memdesc:ga1dc8bc6199d785f235576948d80a597c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga1dc8bc6199d785f235576948d80a597c">More...</a><br /></td></tr>
+<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
+<tr class="memdesc:gad14a0f2ec93519682b73d70b8e401d81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gad14a0f2ec93519682b73d70b8e401d81">More...</a><br /></td></tr>
+<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
+<tr class="memdesc:gada8b996eb6526dc1ead813bd49539d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gada8b996eb6526dc1ead813bd49539d1b">More...</a><br /></td></tr>
+<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
+<tr class="memdesc:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">More...</a><br /></td></tr>
+<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
+<tr class="memdesc:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">More...</a><br /></td></tr>
+<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
+<tr class="memdesc:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medium precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">More...</a><br /></td></tr>
+<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
+<tr class="memdesc:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga0ee829f7b754b262bbfe6317c0d678ac">More...</a><br /></td></tr>
+<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
+<tr class="memdesc:ga447848a817a626cae08cedc9778b331c"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga447848a817a626cae08cedc9778b331c">More...</a><br /></td></tr>
+<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
+<tr class="memdesc:ga6027ae13b2734f542a6e7beee11b8820"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga6027ae13b2734f542a6e7beee11b8820">More...</a><br /></td></tr>
+<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
+<tr class="memdesc:ga2aca46c8608c95ef991ee4c332acde5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga2aca46c8608c95ef991ee4c332acde5f">More...</a><br /></td></tr>
+<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
+<tr class="memdesc:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gaff50b10dd1c48be324fdaffd18e2c7ea">More...</a><br /></td></tr>
+<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
+<tr class="memdesc:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga9fc4421dbb833d5461e6d4e59dcfde55">More...</a><br /></td></tr>
+<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
+<tr class="memdesc:ga329f1e2b94b33ba5e3918197030bcf03"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga329f1e2b94b33ba5e3918197030bcf03">More...</a><br /></td></tr>
+<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
+<tr class="memdesc:ga71e646f7e301aa422328194162c9c998"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga71e646f7e301aa422328194162c9c998">More...</a><br /></td></tr>
+<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
+<tr class="memdesc:ga8942e09f479489441a7a5004c6d8cb66"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga8942e09f479489441a7a5004c6d8cb66">More...</a><br /></td></tr>
+<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
+<tr class="memdesc:gaab32497d6e4db16ee439dbedd64c5865"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#gaab32497d6e4db16ee439dbedd64c5865">More...</a><br /></td></tr>
+<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
+<tr class="memdesc:gaaadbb34952eca8e3d7fe122c3e167742"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gaaadbb34952eca8e3d7fe122c3e167742">More...</a><br /></td></tr>
+<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
+<tr class="memdesc:ga92024d27c74a3650afb55ec8e024ed25"><td class="mdescLeft">&#160;</td><td class="mdescRight">High precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga92024d27c74a3650afb55ec8e024ed25">More...</a><br /></td></tr>
+<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
+<tr class="memdesc:gabde1d0b4072df35453db76075ab896a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gabde1d0b4072df35453db76075ab896a6">More...</a><br /></td></tr>
+<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
+<tr class="memdesc:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga06c296c9e398b294c8c9dd2a7693dcbb">More...</a><br /></td></tr>
+<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
+<tr class="memdesc:gacf1744488c96ebd33c9f36ad33b2010a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gacf1744488c96ebd33c9f36ad33b2010a">More...</a><br /></td></tr>
+<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
+<tr class="memdesc:ga3328061a64c20ba59d5f9da24c2cd059"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga3328061a64c20ba59d5f9da24c2cd059">More...</a><br /></td></tr>
+<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
+<tr class="memdesc:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#gaf6ced36f13bae57f377bafa6f5fcc299">More...</a><br /></td></tr>
+<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
+<tr class="memdesc:gafbc7fb7847bfc78a339d1d371c915c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#gafbc7fb7847bfc78a339d1d371c915c73">More...</a><br /></td></tr>
+<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
+<tr class="memdesc:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gaa86bc56a73fd8120b1121b5f5e6245ae">More...</a><br /></td></tr>
+<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
+<tr class="memdesc:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">More...</a><br /></td></tr>
+<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
+<tr class="memdesc:ga4f3bab577daf3343e99cc005134bce86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga4f3bab577daf3343e99cc005134bce86">More...</a><br /></td></tr>
+<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
+<tr class="memdesc:ga13a2391339d0790d43b76d00a7611c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga13a2391339d0790d43b76d00a7611c4f">More...</a><br /></td></tr>
+<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
+<tr class="memdesc:ga197570e03acbc3d18ab698e342971e8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga197570e03acbc3d18ab698e342971e8f">More...</a><br /></td></tr>
+<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
+<tr class="memdesc:ga0f033b21e145a1faa32c62ede5878993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#ga0f033b21e145a1faa32c62ede5878993">More...</a><br /></td></tr>
+<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
+<tr class="memdesc:ga509af83527f5cd512e9a7873590663aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#ga509af83527f5cd512e9a7873590663aa">More...</a><br /></td></tr>
+<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
+<tr class="memdesc:ga94e86186978c502c6dc0c0d9c4a30679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga94e86186978c502c6dc0c0d9c4a30679">More...</a><br /></td></tr>
+<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
+<tr class="memdesc:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">More...</a><br /></td></tr>
+<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
+<tr class="memdesc:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga47edfdcee9c89b1ebdaf20450323b1d4">More...</a><br /></td></tr>
+<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
+<tr class="memdesc:ga5611d6718e3a00096918a64192e73a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned scalar type. <a href="a00231.html#ga5611d6718e3a00096918a64192e73a45">More...</a><br /></td></tr>
+<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
+<tr class="memdesc:ga19837e6f72b60d994a805ef564c6c326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga19837e6f72b60d994a805ef564c6c326">More...</a><br /></td></tr>
+<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
+<tr class="memdesc:ga9740cf8e34f068049b42a2753f9601c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga9740cf8e34f068049b42a2753f9601c2">More...</a><br /></td></tr>
+<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
+<tr class="memdesc:ga8b8588bb221448f5541a858903822a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 8 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga8b8588bb221448f5541a858903822a57">More...</a><br /></td></tr>
+<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
+<tr class="memdesc:ga991abe990c16de26b2129d6bc2f4c051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned scalar type. <a href="a00231.html#ga991abe990c16de26b2129d6bc2f4c051">More...</a><br /></td></tr>
+<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
+<tr class="memdesc:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#gac01bb9fc32a1cd76c2b80d030f71df4c">More...</a><br /></td></tr>
+<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
+<tr class="memdesc:ga09540dbca093793a36a8997e0d4bee77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga09540dbca093793a36a8997e0d4bee77">More...</a><br /></td></tr>
+<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
+<tr class="memdesc:gaecafb5996f5a44f57e34d29c8670741e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 16 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#gaecafb5996f5a44f57e34d29c8670741e">More...</a><br /></td></tr>
+<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
+<tr class="memdesc:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned scalar type. <a href="a00231.html#gac6b161a04d2f8408fe1c9d857e8daac0">More...</a><br /></td></tr>
+<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
+<tr class="memdesc:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">More...</a><br /></td></tr>
+<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
+<tr class="memdesc:ga0019500abbfa9c66eff61ca75eaaed94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#ga0019500abbfa9c66eff61ca75eaaed94">More...</a><br /></td></tr>
+<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
+<tr class="memdesc:ga14fd29d01dae7b08a04e9facbcc18824"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 32 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga14fd29d01dae7b08a04e9facbcc18824">More...</a><br /></td></tr>
+<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
+<tr class="memdesc:gab253845f534a67136f9619843cade903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned scalar type. <a href="a00231.html#gab253845f534a67136f9619843cade903">More...</a><br /></td></tr>
+<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
+<tr class="memdesc:ga929427a7627940cdf3304f9c050b677d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned vector of 2 components type. <a href="a00231.html#ga929427a7627940cdf3304f9c050b677d">More...</a><br /></td></tr>
+<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
+<tr class="memdesc:gae373b6c04fdf9879f33d63e6949c037e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned vector of 3 components type. <a href="a00231.html#gae373b6c04fdf9879f33d63e6949c037e">More...</a><br /></td></tr>
+<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
+<tr class="memdesc:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default precision 64 bit unsigned integer aligned vector of 4 components type. <a href="a00231.html#ga53a8a03dca2015baec4584f45b8e9cdc">More...</a><br /></td></tr>
+<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
+<tr class="memdesc:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit single-precision floating-point aligned scalar. <a href="a00231.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">More...</a><br /></td></tr>
+<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
+<tr class="memdesc:ga75930684ff2233171c573e603f216162"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit double-precision floating-point aligned scalar. <a href="a00231.html#ga75930684ff2233171c573e603f216162">More...</a><br /></td></tr>
+<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
+<tr class="memdesc:gada9b0bea273d3ae0286f891533b9568f"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit single-precision floating-point aligned scalar. <a href="a00231.html#gada9b0bea273d3ae0286f891533b9568f">More...</a><br /></td></tr>
+<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
+<tr class="memdesc:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit double-precision floating-point aligned scalar. <a href="a00231.html#ga6e3a2d83b131336219a0f4c7cbba2a48">More...</a><br /></td></tr>
+<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
+<tr class="memdesc:gadbce23b9f23d77bb3884e289a574ebd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit single-precision floating-point aligned scalar. <a href="a00231.html#gadbce23b9f23d77bb3884e289a574ebd5">More...</a><br /></td></tr>
+<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
+<tr class="memdesc:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="mdescLeft">&#160;</td><td class="mdescRight">64 bit double-precision floating-point aligned scalar. <a href="a00231.html#gaa4deaa0dea930c393d55e7a4352b0a20">More...</a><br /></td></tr>
+<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
+<tr class="memdesc:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">More...</a><br /></td></tr>
+<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
+<tr class="memdesc:gada3e8f783e9d4b90006695a16c39d4d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 2 components. <a href="a00231.html#gada3e8f783e9d4b90006695a16c39d4d4">More...</a><br /></td></tr>
+<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
+<tr class="memdesc:gab8d081fac3a38d6f55fa552f32168d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 3 components. <a href="a00231.html#gab8d081fac3a38d6f55fa552f32168d32">More...</a><br /></td></tr>
+<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
+<tr class="memdesc:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga12fe7b9769c964c5b48dcfd8b7f40198">More...</a><br /></td></tr>
+<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
+<tr class="memdesc:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 1 component. <a href="a00231.html#gaefab04611c7f8fe1fd9be3071efea6cc">More...</a><br /></td></tr>
+<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
+<tr class="memdesc:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga2543c05ba19b3bd19d45b1227390c5b4">More...</a><br /></td></tr>
+<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
+<tr class="memdesc:ga009afd727fd657ef33a18754d6d28f60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 3 components. <a href="a00231.html#ga009afd727fd657ef33a18754d6d28f60">More...</a><br /></td></tr>
+<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
+<tr class="memdesc:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">More...</a><br /></td></tr>
+<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
+<tr class="memdesc:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga309f495a1d6b75ddf195b674b65cb1e4">More...</a><br /></td></tr>
+<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
+<tr class="memdesc:ga5e185865a2217d0cd47187644683a8c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga5e185865a2217d0cd47187644683a8c3">More...</a><br /></td></tr>
+<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
+<tr class="memdesc:gade4458b27b039b9ca34f8ec049f3115a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 3 components. <a href="a00231.html#gade4458b27b039b9ca34f8ec049f3115a">More...</a><br /></td></tr>
+<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
+<tr class="memdesc:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">More...</a><br /></td></tr>
+<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
+<tr class="memdesc:ga3e0f35fa0c626285a8bad41707e7316c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga3e0f35fa0c626285a8bad41707e7316c">More...</a><br /></td></tr>
+<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
+<tr class="memdesc:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">More...</a><br /></td></tr>
+<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
+<tr class="memdesc:ga01fe6fee6db5df580b6724a7e681f069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 3 components. <a href="a00231.html#ga01fe6fee6db5df580b6724a7e681f069">More...</a><br /></td></tr>
+<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
+<tr class="memdesc:ga687d5b8f551d5af32425c0b2fba15e99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga687d5b8f551d5af32425c0b2fba15e99">More...</a><br /></td></tr>
+<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
+<tr class="memdesc:ga8e842371d46842ff8f1813419ba49d0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 1 component. <a href="a00231.html#ga8e842371d46842ff8f1813419ba49d0f">More...</a><br /></td></tr>
+<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
+<tr class="memdesc:ga32814aa0f19316b43134fc25f2aad2b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 2 components. <a href="a00231.html#ga32814aa0f19316b43134fc25f2aad2b9">More...</a><br /></td></tr>
+<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
+<tr class="memdesc:gaf3d3bbc1e93909b689123b085e177a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 3 components. <a href="a00231.html#gaf3d3bbc1e93909b689123b085e177a14">More...</a><br /></td></tr>
+<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
+<tr class="memdesc:ga804c654cead1139bd250f90f9bb01fad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned vector of 4 components. <a href="a00231.html#ga804c654cead1139bd250f90f9bb01fad">More...</a><br /></td></tr>
+<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
+<tr class="memdesc:gafed7d010235a3aa7ea2f88646858f2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#gafed7d010235a3aa7ea2f88646858f2ae">More...</a><br /></td></tr>
+<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
+<tr class="memdesc:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">More...</a><br /></td></tr>
+<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
+<tr class="memdesc:ga31940e6012b72110e26fdb0f54805033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga31940e6012b72110e26fdb0f54805033">More...</a><br /></td></tr>
+<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
+<tr class="memdesc:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga01de96cd0b541c52d2b4a3faf65822e9">More...</a><br /></td></tr>
+<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
+<tr class="memdesc:gac88a191b004bd341e64fc53b5a4d00e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gac88a191b004bd341e64fc53b5a4d00e3">More...</a><br /></td></tr>
+<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
+<tr class="memdesc:gabe8c745fa2ced44a600a6e3f19991161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gabe8c745fa2ced44a600a6e3f19991161">More...</a><br /></td></tr>
+<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
+<tr class="memdesc:ga719da577361541a4c43a2dd1d0e361e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga719da577361541a4c43a2dd1d0e361e1">More...</a><br /></td></tr>
+<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
+<tr class="memdesc:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga6e7ee4f541e1d7db66cd1a224caacafb">More...</a><br /></td></tr>
+<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
+<tr class="memdesc:gae5d672d359f2a39f63f98c7975057486"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gae5d672d359f2a39f63f98c7975057486">More...</a><br /></td></tr>
+<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
+<tr class="memdesc:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">More...</a><br /></td></tr>
+<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
+<tr class="memdesc:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x3 matrix. <a href="a00231.html#ga0743b4f4f69a3227b82ff58f6abbad62">More...</a><br /></td></tr>
+<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
+<tr class="memdesc:ga1a76b325fdf70f961d835edd182c63dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x4 matrix. <a href="a00231.html#ga1a76b325fdf70f961d835edd182c63dd">More...</a><br /></td></tr>
+<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
+<tr class="memdesc:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x2 matrix. <a href="a00231.html#ga4b4e181cd041ba28c3163e7b8074aef0">More...</a><br /></td></tr>
+<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
+<tr class="memdesc:ga27b13f465abc8a40705698145e222c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga27b13f465abc8a40705698145e222c3f">More...</a><br /></td></tr>
+<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
+<tr class="memdesc:ga2608d19cc275830a6f8c0b6405625a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x4 matrix. <a href="a00231.html#ga2608d19cc275830a6f8c0b6405625a4f">More...</a><br /></td></tr>
+<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
+<tr class="memdesc:ga93f09768241358a287c4cca538f1f7e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x2 matrix. <a href="a00231.html#ga93f09768241358a287c4cca538f1f7e7">More...</a><br /></td></tr>
+<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
+<tr class="memdesc:ga7c117e3ecca089e10247b1d41d88aff9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x3 matrix. <a href="a00231.html#ga7c117e3ecca089e10247b1d41d88aff9">More...</a><br /></td></tr>
+<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
+<tr class="memdesc:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga07c75cd04ba42dc37fa3e105f89455c5">More...</a><br /></td></tr>
+<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
+<tr class="memdesc:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">More...</a><br /></td></tr>
+<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
+<tr class="memdesc:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gadd8ddbe2bf65ccede865ba2f510176dc">More...</a><br /></td></tr>
+<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
+<tr class="memdesc:gaf18dbff14bf13d3ff540c517659ec045"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gaf18dbff14bf13d3ff540c517659ec045">More...</a><br /></td></tr>
+<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
+<tr class="memdesc:ga66339f6139bf7ff19e245beb33f61cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga66339f6139bf7ff19e245beb33f61cc8">More...</a><br /></td></tr>
+<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
+<tr class="memdesc:ga1558a48b3934011b52612809f443e46d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x3 matrix. <a href="a00231.html#ga1558a48b3934011b52612809f443e46d">More...</a><br /></td></tr>
+<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
+<tr class="memdesc:gaa52e5732daa62851627021ad551c7680"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 2x4 matrix. <a href="a00231.html#gaa52e5732daa62851627021ad551c7680">More...</a><br /></td></tr>
+<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
+<tr class="memdesc:gac09663c42566bcb58d23c6781ac4e85a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x2 matrix. <a href="a00231.html#gac09663c42566bcb58d23c6781ac4e85a">More...</a><br /></td></tr>
+<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
+<tr class="memdesc:ga3f510999e59e1b309113e1d561162b29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x3 matrix. <a href="a00231.html#ga3f510999e59e1b309113e1d561162b29">More...</a><br /></td></tr>
+<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
+<tr class="memdesc:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 3x4 matrix. <a href="a00231.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">More...</a><br /></td></tr>
+<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
+<tr class="memdesc:ga99ce8274c750fbfdf0e70c95946a2875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x2 matrix. <a href="a00231.html#ga99ce8274c750fbfdf0e70c95946a2875">More...</a><br /></td></tr>
+<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
+<tr class="memdesc:ga9476ef66790239df53dbe66f3989c3b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x3 matrix. <a href="a00231.html#ga9476ef66790239df53dbe66f3989c3b5">More...</a><br /></td></tr>
+<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
+<tr class="memdesc:gacc429b3b0b49921e12713b6d31e14e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned 4x4 matrix. <a href="a00231.html#gacc429b3b0b49921e12713b6d31e14e1d">More...</a><br /></td></tr>
+<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
+<tr class="memdesc:ga88f6c6fa06e6e64479763e69444669cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 1x1 matrix. <a href="a00231.html#ga88f6c6fa06e6e64479763e69444669cf">More...</a><br /></td></tr>
+<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
+<tr class="memdesc:gaae8e4639c991e64754145ab8e4c32083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gaae8e4639c991e64754145ab8e4c32083">More...</a><br /></td></tr>
+<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
+<tr class="memdesc:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga6e9094f3feb3b5b49d0f83683a101fde">More...</a><br /></td></tr>
+<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
+<tr class="memdesc:gadbd2c639c03de1c3e9591b5a39f65559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 1x1 matrix. <a href="a00231.html#gadbd2c639c03de1c3e9591b5a39f65559">More...</a><br /></td></tr>
+<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
+<tr class="memdesc:gab059d7b9fe2094acc563b7223987499f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 2x3 matrix. <a href="a00231.html#gab059d7b9fe2094acc563b7223987499f">More...</a><br /></td></tr>
+<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
+<tr class="memdesc:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 2x4 matrix. <a href="a00231.html#gabbc811d1c52ed2b8cfcaff1378f75c69">More...</a><br /></td></tr>
+<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
+<tr class="memdesc:ga9ddf5212777734d2fd841a84439f3bdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x2 matrix. <a href="a00231.html#ga9ddf5212777734d2fd841a84439f3bdf">More...</a><br /></td></tr>
+<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
+<tr class="memdesc:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x3 matrix. <a href="a00231.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">More...</a><br /></td></tr>
+<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
+<tr class="memdesc:ga5875e0fa72f07e271e7931811cbbf31a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 3x4 matrix. <a href="a00231.html#ga5875e0fa72f07e271e7931811cbbf31a">More...</a><br /></td></tr>
+<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
+<tr class="memdesc:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x2 matrix. <a href="a00231.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">More...</a><br /></td></tr>
+<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
+<tr class="memdesc:ga0892638d6ba773043b3d63d1d092622e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x3 matrix. <a href="a00231.html#ga0892638d6ba773043b3d63d1d092622e">More...</a><br /></td></tr>
+<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
+<tr class="memdesc:ga912a16432608b822f1e13607529934c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned 4x4 matrix. <a href="a00231.html#ga912a16432608b822f1e13607529934c1">More...</a><br /></td></tr>
+<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
+<tr class="memdesc:gafd945a8ea86b042aba410e0560df9a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned quaternion. <a href="a00231.html#gafd945a8ea86b042aba410e0560df9a3d">More...</a><br /></td></tr>
+<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
+<tr class="memdesc:gad8c4bfacff70e57dc8303634c8bfce35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned quaternion. <a href="a00231.html#gad8c4bfacff70e57dc8303634c8bfce35">More...</a><br /></td></tr>
+<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
+<tr class="memdesc:gaabc28c84a3288b697605d4688686f9a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned quaternion. <a href="a00231.html#gaabc28c84a3288b697605d4688686f9a9">More...</a><br /></td></tr>
+<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
+<tr class="memdesc:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-precision floating-point aligned quaternion. <a href="a00231.html#ga1ed8aeb5ca67fade269a46105f1bf273">More...</a><br /></td></tr>
+<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
+<tr class="memdesc:ga95cc03b8b475993fa50e05e38e203303"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-precision floating-point aligned quaternion. <a href="a00231.html#ga95cc03b8b475993fa50e05e38e203303">More...</a><br /></td></tr>
+<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Defines aligned types. </p>
+<p><a class="el" href="a00157.html">Precision types</a> defines aligned types.</p>
+<p>&lt;<a class="el" href="a00107.html" title="GLM_GTX_type_aligned ">glm/gtx/type_aligned.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gab5cd5c5fad228b25c782084f1cc30114"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5bb5dd895ef625c1b113f2cf400186b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac6efa54cf7c6c86f7158922abdb1a430"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6612eb77c8607048e7552279a11eeb5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ddc1848ff2223026db8968ce0c97497"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga22240dd9458b0f8c11fbcc4f48714f68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8130ea381d76a2cc34a93ccbb6cf487d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ccb60f3215d293fd62b33b31ed0e7be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac20d508d2ef5cc95ad3daf083c57ec2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50257b48069a31d0c8d9c1f644d267de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa07e98e67b7a3435c0746018c7a2a839"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga62601fc6f8ca298b77285bedf03faffd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac8cff825951aeb54dd846037113c72db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga78f443d88f438575a62b5df497cdf66b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0680cd3b5d4e8006985fb41a4f9b57af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad9e5babb1dd3e3531b42c37bf25dd951"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga353fd9fa8a9ad952fcabd0d53ad9a6dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2196442c0e5c5e8c77842de388c42521"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1284488189daf897cf095c5eefad9744"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga73fdc86a539808af58808b7c60a1c4d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafafeea923e1983262c972e2b83922d3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga63b882e29170d428463d99c3d630acc6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8b20507bb048c1edea2d441cc953e6f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga56c5ca60813027b603c7b61425a0479d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7a751b3aff24c0259f4a7357c2969089"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga70cd2144351c556469ee6119e59971fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga46bbf08dc004d8c433041e0b5018a5d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3e10c77a20d1abad2de1c561c7a5c18"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga968f30319ebeaca9ebcd3a25a8e139fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaae773c28e6390c6aa76f5b678b7098a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga790cfff1ca39d0ed696ffed980809311"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8265b91eb23c120a9b0c3e381bc37b96"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae6d384de17588d8edb894fbe06e0d410"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9c8172b745ee03fc5b2b91c350c2922f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga77e0dff12aa4020ddc3f8cabbea7b2e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabd82b9faa9d4d618dbbe0fc8a1efee63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga285649744560be21000cfd81bbb5d507"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga07732da630b2deda428ce95c0ecaf3ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1a8da2a8c51f69c07a2e7f473aa420f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga848aedf13e2d9738acf0bb482c590174"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafd2803d39049dd45a37a63931e25d943"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae553b33349d6da832cf0724f1e024094"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga16d223a2b3409e812e1d3bd87f0e9e5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2de065d2ddfdb366bcd0febca79ae2ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabd786bdc20a11c8cb05c92c8212e28d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad4aefe56691cdb640c72f0d46d3fb532"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8fe9745f7de24a8394518152ff9fccdc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaad735483450099f7f882d4e3a3569bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">ivec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac7b6f823802edbd6edbaf70ea25bf068"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3e235bcd2b8029613f25b8d40a2d3ef7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50d8a9523968c77f8325b4c9bfbff41e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9ec20fdfb729c702032da9378c79679f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga25b3fe1d9e8d0a5e86c1949c1acd8131"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2958f907719d94d8109b562540c910e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1fe6fc032a978f1c845fac9aa0668714"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa4161e7a496dc96972254143fe873e55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9d7cb211ccda69b1c22ddeeb0f3e7aba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaee91dd2ab34423bcc11072ef6bd0f02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga49f047ccaa8b31fad9f26c67bf9b3510"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga904e9c2436bb099397c0823506a0771f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf90651cf2f5e7ee2b11cfdc5a6749534"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7354a4ead8cb17868aec36b9c30d6010"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad2ecbdea18732163e2636e27b37981ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga965b1c9aa1800e93d4abc2eb2b5afcbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1f9e9c2ea2768675dff9bae5cde2d829"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad77c317b7d942322cd5be4c8127b3187"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga716f8ea809bdb11b5b542d8b71aeb04f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad46f8e9082d5878b1bc04f9c1471cdaa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1246094581af624aca6c7499aaabf801"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7a5009a1d0196bbf21dd7518f61f0249"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga45213fd18b3bb1df391671afefe4d1e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0ba26b4e3fd9ecbc25358efd68d8a4ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf2b58f5fb6d4ec8ce7b76221d3af43e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadc246401847dcba155f0699425e49dcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaace64bddf51a9def01498da9a94fb01c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad7bb97c29d664bd86ffb1bed4abc5534"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga404bba7785130e0b1384d695a9450b28"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga31ba41fd896257536958ec6080203d2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacca5f13627f57b3505676e40a6e43e5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5faf1d3e70bf33174dd7f3d01d5b883b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga727e2bf2c433bb3b0182605860a48363"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga12566ca66d5962dadb4a5eb4c74e891e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7b66a97a8acaa35c5a377b947318c6bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa9cde002439b74fa66120a16a9f55fcc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1ca98c67f7d1e975f7c5202f1da1df1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1dc8bc6199d785f235576948d80a597c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad14a0f2ec93519682b73d70b8e401d81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada8b996eb6526dc1ead813bd49539d1b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga28948f6bfb52b42deb9d73ae1ea8d8b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad6a7c0b5630f89d3f1c5b4ef2919bb4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa0fc531cbaa972ac3a0b86d21ef4a7fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0ee829f7b754b262bbfe6317c0d678ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga447848a817a626cae08cedc9778b331c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6027ae13b2734f542a6e7beee11b8820"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2aca46c8608c95ef991ee4c332acde5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaff50b10dd1c48be324fdaffd18e2c7ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9fc4421dbb833d5461e6d4e59dcfde55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga329f1e2b94b33ba5e3918197030bcf03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga71e646f7e301aa422328194162c9c998"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8942e09f479489441a7a5004c6d8cb66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaab32497d6e4db16ee439dbedd64c5865"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaadbb34952eca8e3d7fe122c3e167742"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga92024d27c74a3650afb55ec8e024ed25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabde1d0b4072df35453db76075ab896a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga06c296c9e398b294c8c9dd2a7693dcbb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacf1744488c96ebd33c9f36ad33b2010a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3328061a64c20ba59d5f9da24c2cd059"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf6ced36f13bae57f377bafa6f5fcc299"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint8_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafbc7fb7847bfc78a339d1d371c915c73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint16_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa86bc56a73fd8120b1121b5f5e6245ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga68c0b9e669060d0eb5ab8c3ddeb483d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4f3bab577daf3343e99cc005134bce86"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga13a2391339d0790d43b76d00a7611c4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga197570e03acbc3d18ab698e342971e8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0f033b21e145a1faa32c62ede5878993"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga509af83527f5cd512e9a7873590663aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">uvec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga94e86186978c502c6dc0c0d9c4a30679"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5cec574686a7f3c8ed24bb195c5e2d0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga47edfdcee9c89b1ebdaf20450323b1d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5611d6718e3a00096918a64192e73a45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga19837e6f72b60d994a805ef564c6c326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9740cf8e34f068049b42a2753f9601c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8b8588bb221448f5541a858903822a57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga991abe990c16de26b2129d6bc2f4c051"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac01bb9fc32a1cd76c2b80d030f71df4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga09540dbca093793a36a8997e0d4bee77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaecafb5996f5a44f57e34d29c8670741e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac6b161a04d2f8408fe1c9d857e8daac0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1fa0dfc8feb0fa17dab2acd43e05342b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0019500abbfa9c66eff61ca75eaaed94"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga14fd29d01dae7b08a04e9facbcc18824"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab253845f534a67136f9619843cade903"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga929427a7627940cdf3304f9c050b677d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae373b6c04fdf9879f33d63e6949c037e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga53a8a03dca2015baec4584f45b8e9cdc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3301bae94ef5bf59fbdd9a24e7d2a01"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit single-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga75930684ff2233171c573e603f216162"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit double-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada9b0bea273d3ae0286f891533b9568f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float32_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit single-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e3a2d83b131336219a0f4c7cbba2a48"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float64_t&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit double-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadbce23b9f23d77bb3884e289a574ebd5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit single-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa4deaa0dea930c393d55e7a4352b0a20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit double-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga81bc497b2bfc6f80bab690c6ee28f0f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada3e8f783e9d4b90006695a16c39d4d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab8d081fac3a38d6f55fa552f32168d32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga12fe7b9769c964c5b48dcfd8b7f40198"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaefab04611c7f8fe1fd9be3071efea6cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2543c05ba19b3bd19d45b1227390c5b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga009afd727fd657ef33a18754d6d28f60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2f26177e74bfb301a3d0e02ec3c3ef53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga309f495a1d6b75ddf195b674b65cb1e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5e185865a2217d0cd47187644683a8c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gade4458b27b039b9ca34f8ec049f3115a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3e0f35fa0c626285a8bad41707e7316c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">dvec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga78bfec2f185d1d365ea0a9ef1e3d45b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga01fe6fee6db5df580b6724a7e681f069"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga687d5b8f551d5af32425c0b2fba15e99"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8e842371d46842ff8f1813419ba49d0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec1&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga32814aa0f19316b43134fc25f2aad2b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf3d3bbc1e93909b689123b085e177a14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga804c654cead1139bd250f90f9bb01fad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafed7d010235a3aa7ea2f88646858f2ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga17f911ee7b78ca6d1b91c4ab51ddb73c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga31940e6012b72110e26fdb0f54805033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga01de96cd0b541c52d2b4a3faf65822e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat2x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac88a191b004bd341e64fc53b5a4d00e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat3x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabe8c745fa2ced44a600a6e3f19991161"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat4x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga719da577361541a4c43a2dd1d0e361e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e7ee4f541e1d7db66cd1a224caacafb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae5d672d359f2a39f63f98c7975057486"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6fa2df037dbfc5fe8c8e0b4db8a34953"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0743b4f4f69a3227b82ff58f6abbad62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1a76b325fdf70f961d835edd182c63dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4b4e181cd041ba28c3163e7b8074aef0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga27b13f465abc8a40705698145e222c3f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2608d19cc275830a6f8c0b6405625a4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga93f09768241358a287c4cca538f1f7e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7c117e3ecca089e10247b1d41d88aff9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga07c75cd04ba42dc37fa3e105f89455c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga65ff0d690a34a4d7f46f9b2eb51525ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadd8ddbe2bf65ccede865ba2f510176dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf18dbff14bf13d3ff540c517659ec045"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga66339f6139bf7ff19e245beb33f61cc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1558a48b3934011b52612809f443e46d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa52e5732daa62851627021ad551c7680"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac09663c42566bcb58d23c6781ac4e85a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3f510999e59e1b309113e1d561162b29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2c9c94f0c89cd71ce56551db6cf4aaec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga99ce8274c750fbfdf0e70c95946a2875"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9476ef66790239df53dbe66f3989c3b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacc429b3b0b49921e12713b6d31e14e1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga88f6c6fa06e6e64479763e69444669cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaae8e4639c991e64754145ab8e4c32083"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e9094f3feb3b5b49d0f83683a101fde"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadbd2c639c03de1c3e9591b5a39f65559"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab059d7b9fe2094acc563b7223987499f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabbc811d1c52ed2b8cfcaff1378f75c69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9ddf5212777734d2fd841a84439f3bdf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad1dda32ed09f94bfcf0a7d8edfb6cf13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5875e0fa72f07e271e7931811cbbf31a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga41e82cd6ac07f912ba2a2d45799dcf0d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4x2&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0892638d6ba773043b3d63d1d092622e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4x3&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga912a16432608b822f1e13607529934c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4x4&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafd945a8ea86b042aba410e0560df9a3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">quat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_quat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad8c4bfacff70e57dc8303634c8bfce35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">fquat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fquat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaabc28c84a3288b697605d4688686f9a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">dquat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_dquat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1ed8aeb5ca67fade269a46105f1bf273"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32quat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga95cc03b8b475993fa50e05e38e203303"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64quat&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00232.html b/3rdparty/glm/doc/api/a00232.html
index ef0b0167a06..ba023b2fb86 100644
--- a/3rdparty/glm/doc/api/a00232.html
+++ b/3rdparty/glm/doc/api/a00232.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_simd_vec4</title>
+<title>0.9.9 API documenation: GLM_GTX_type_trait</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,21 +33,58 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="headertitle">
-<div class="title">GLM_GTX_simd_vec4<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_type_trait<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>SIMD implementation of vec4 type. </p>
-<p>&lt;<a class="el" href="a00108.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/simd_vec4.hpp</a>&gt; need to be included to use these functionalities. </p>
+
+<p>Defines traits for each type.
+<a href="#details">More...</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Defines traits for each type. </p>
+<p>&lt;<a class="el" href="a00124.html" title="GLM_GTX_type_trait ">glm/gtx/type_trait.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00233.html b/3rdparty/glm/doc/api/a00233.html
index 21edfefc4b7..53a0786ded1 100644
--- a/3rdparty/glm/doc/api/a00233.html
+++ b/3rdparty/glm/doc/api/a00233.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_spline</title>
+<title>0.9.9 API documenation: GLM_GTX_vec_swizzle</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,179 +33,57 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_spline<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
-<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &amp;v1, genType const &amp;v2, genType const &amp;v3, genType const &amp;v4, typename genType::value_type const &amp;s)</td></tr>
-<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &amp;v1, genType const &amp;t1, genType const &amp;v2, genType const &amp;t2, typename genType::value_type const &amp;s)</td></tr>
-<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Spline functions. </p>
-<p>&lt;<a class="el" href="a00109.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/spline.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8119c04f8210fd0d292757565cd6918d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::catmullRom </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v4</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
- <td class="paramname"><em>s</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return a point from a catmull rom curve. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00233.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
-
-</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
-<a class="anchor" id="ga6b867eb52e2fc933d2e0bf26aabc9a70"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::cubic </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v4</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
- <td class="paramname"><em>s</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Return a point from a cubic curve. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00233.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
-
-</div>
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
</div>
-<a class="anchor" id="gaa69e143f6374d32f934a8edeaa50bac9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::hermite </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>t1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>t2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type const &amp;&#160;</td>
- <td class="paramname"><em>s</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Return a point from a hermite curve. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00233.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+<div class="header">
+ <div class="headertitle">
+<div class="title">GLM_GTX_vec_swizzle<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
-</div>
-</div>
+<p>Functions to perform swizzle operation.
+<a href="#details">More...</a></p>
+<p>Functions to perform swizzle operation. </p>
+<p>&lt;<a class="el" href="a00135.html" title="GLM_GTX_vec_swizzle ">glm/gtx/vec_swizzle.hpp</a>&gt; need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/3rdparty/glm/doc/api/a00234.html b/3rdparty/glm/doc/api/a00234.html
index d6ab12ed648..f95f37b833b 100644
--- a/3rdparty/glm/doc/api/a00234.html
+++ b/3rdparty/glm/doc/api/a00234.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_std_based_type</title>
+<title>0.9.9 API documenation: GLM_GTX_vector_angle</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,178 +33,167 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_std_based_type<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_vector_angle<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Compute angle between vectors.
+<a href="#details">More...</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
-<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
-<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
-<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
-<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
-<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
-<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
-<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4&lt; std::size_t, defaultp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
-<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00234.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
+<tr class="memdesc:gab8691008a2536b681b711211816c14f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the absolute angle between two vectors. <a href="a00234.html#gab8691008a2536b681b711211816c14f7">More...</a><br /></td></tr>
+<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00234.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2&lt; T, P &gt; const &amp;x, tvec2&lt; T, P &gt; const &amp;y)</td></tr>
+<tr class="memdesc:ga82a19d474be13c92c7b10caab42a5a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the oriented angle between two 2d vectors. <a href="a00234.html#ga82a19d474be13c92c7b10caab42a5a72">More...</a><br /></td></tr>
+<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)</td></tr>
+<tr class="memdesc:ga7254dba112eff55f55f9544f41cb9ece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the oriented angle between two 3d vectors based from a reference axis. <a href="a00234.html#ga7254dba112eff55f55f9544f41cb9ece">More...</a><br /></td></tr>
+<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Adds vector types based on STL value types. </p>
-<p>&lt;<a class="el" href="a00110.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/std_based_type.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga47c940f279a6b97ffc301eb4526a445a"></a>
+<p>Compute angle between vectors. </p>
+<p>&lt;<a class="el" href="a00136.html" title="GLM_GTX_vector_angle ">glm/gtx/vector_angle.hpp</a>&gt; need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gab8691008a2536b681b711211816c14f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt;std::size_t, defaultp&gt; size1</td>
+ <td class="memname">GLM_FUNC_DECL vecType::value_type glm::angle </td>
+ <td>(</td>
+ <td class="paramtype">vecType const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Vector type based of one std::size_t component. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00059">59</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga77d0b061efa41cb2ed2285d09294314e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1&lt;std::size_t, defaultp&gt; size1_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Vector type based of one std::size_t component. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00075">75</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac0ef172641a1555684da0beb735c2a79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt;std::size_t, defaultp&gt; size2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of two std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00063">63</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Returns the absolute angle between two vectors. </p>
+<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa7d72bbe318d27da9d30f27095e4c75e"></a>
+<a class="anchor" id="ga82a19d474be13c92c7b10caab42a5a72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2&lt;std::size_t, defaultp&gt; size2_t</td>
+ <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
+ <td>(</td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Vector type based of two std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00079">79</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga51b5e9650c459973134ffb4236ae88b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt;std::size_t, defaultp&gt; size3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Vector type based of three std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00067">67</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad364e6c302642e3bb89d756df5d0c8c6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3&lt;std::size_t, defaultp&gt; size3_t</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of three std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00083">83</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Returns the oriented angle between two 2d vectors. </p>
+<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf07a3f432e328c99d35637225c988121"></a>
+<a class="anchor" id="ga7254dba112eff55f55f9544f41cb9ece"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt;std::size_t, defaultp&gt; size4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
+ <td>(</td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Vector type based of four std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00071">71</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga06862b7d59094244025d34407b2cb796"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4&lt;std::size_t, defaultp&gt; size4_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>ref</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of four std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
-
-<p>Definition at line <a class="el" href="a00110_source.html#l00087">87</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Returns the oriented angle between two 3d vectors based from a reference axis. </p>
+<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00235.html b/3rdparty/glm/doc/api/a00235.html
index 3c2134dd3c8..82ed6c4e346 100644
--- a/3rdparty/glm/doc/api/a00235.html
+++ b/3rdparty/glm/doc/api/a00235.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_string_cast</title>
+<title>0.9.9 API documenation: GLM_GTX_vector_query</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,48 +33,278 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_string_cast<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_vector_query<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Query informations of vector types.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename, precision &gt; class matType, typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType&lt; T, P &gt; const &amp;x)</td></tr>
-<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga465b844190d1740051e45d780832ea4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether two vectors are collinears. <a href="a00235.html#ga465b844190d1740051e45d780832ea4c">More...</a><br /></td></tr>
+<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:gaee10acefed397c11e01f2862e837754c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether two vectors are orthogonals. <a href="a00235.html#gaee10acefed397c11e01f2862e837754c">More...</a><br /></td></tr>
+<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga89c82bc60e5b84e4489b74c15a134caf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether two vectors are orthonormal. <a href="a00235.html#ga89c82bc60e5b84e4489b74c15a134caf">More...</a><br /></td></tr>
+<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga93ecd4137480483ce1af0de8bbbf6546"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a each component of a vector is null. <a href="a00235.html#ga93ecd4137480483ce1af0de8bbbf6546">More...</a><br /></td></tr>
+<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga6fa5fa2af67d14c205d24c49aad03270"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a vector is normalized. <a href="a00235.html#ga6fa5fa2af67d14c205d24c49aad03270">More...</a><br /></td></tr>
+<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
+<tr class="memdesc:ga81a64edc1a2b470b82896592e89c523b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a vector is null. <a href="a00235.html#ga81a64edc1a2b470b82896592e89c523b">More...</a><br /></td></tr>
+<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Setup strings for GLM type values. </p>
-<p>&lt;<a class="el" href="a00111.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/string_cast.hpp</a>&gt; need to be included to use these functionalities. This extension is not supported with CUDA </p>
+<p>Query informations of vector types. </p>
+<p>&lt;<a class="el" href="a00137.html" title="GLM_GTX_vector_query ">glm/gtx/vector_query.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7b4f9233593bbf1d53762f801ef56fe6"></a>
+<a class="anchor" id="ga465b844190d1740051e45d780832ea4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::areCollinear </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Check whether two vectors are collinears. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaee10acefed397c11e01f2862e837754c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL std::string glm::to_string </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::areOrthogonal </td>
<td>(</td>
- <td class="paramtype">matType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Check whether two vectors are orthogonals. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga89c82bc60e5b84e4489b74c15a134caf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::areOrthonormal </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Check whether two vectors are orthonormal. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga93ecd4137480483ce1af0de8bbbf6546"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isCompNull </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Check whether a each component of a vector is null. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6fa5fa2af67d14c205d24c49aad03270"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Check whether a vector is normalized. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga81a64edc1a2b470b82896592e89c523b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
+ <td class="paramname"><em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const &amp;&#160;</td>
+ <td class="paramname"><em>epsilon</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Create a string from a GLM vector or matrix typed variable. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Setup strings for GLM type values. ">GLM_GTX_string_cast</a> extension. </dd></dl>
+<p>Check whether a vector is null. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00236.html b/3rdparty/glm/doc/api/a00236.html
index f21bb04336b..6c633eb7991 100644
--- a/3rdparty/glm/doc/api/a00236.html
+++ b/3rdparty/glm/doc/api/a00236.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_transform</title>
+<title>0.9.9 API documenation: GLM_GTX_wrap</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,108 +33,154 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_transform<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_wrap<div class="ingroups"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Wrapping mode of texture coordinates.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3&lt; T, P &gt; const &amp;v)</td></tr>
-<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_CLAMP OpenGL wrap mode. <a href="a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33">More...</a><br /></td></tr>
+<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:gaa6856a0a048d2749252848da35e10c8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. <a href="a00236.html#gaa6856a0a048d2749252848da35e10c8b">More...</a><br /></td></tr>
+<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:ga16a89b0661b60d5bea85137bbae74d73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_MIRROR_REPEAT OpenGL wrap mode. <a href="a00236.html#ga16a89b0661b60d5bea85137bbae74d73">More...</a><br /></td></tr>
+<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &amp;Texcoord)</td></tr>
+<tr class="memdesc:ga809650c6310ea7c42666e918c117fb6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simulate GL_REPEAT OpenGL wrap mode. <a href="a00236.html#ga809650c6310ea7c42666e918c117fb6f">More...</a><br /></td></tr>
+<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add transformation matrices. </p>
-<p>&lt;<a class="el" href="a00112.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/transform.hpp</a>&gt; need to be included to use these functionalities. </p>
+<p>Wrapping mode of texture coordinates. </p>
+<p>&lt;<a class="el" href="a00139.html" title="GLM_GTX_wrap ">glm/gtx/wrap.hpp</a>&gt; need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga2020c91bf61e050882b3a5c18eada700"></a>
+<a class="anchor" id="ga6c0cc6bd1d67ea1008d2592e998bad33"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
<td>(</td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>&#160;</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Simulate GL_CLAMP OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa6856a0a048d2749252848da35e10c8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::mirrorClamp </td>
+ <td>(</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+<p>Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1972d4a66a2e92637c8aaee598417a71"></a>
+<a class="anchor" id="ga16a89b0661b60d5bea85137bbae74d73"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::scale </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::mirrorRepeat </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+<p>Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga838c4505ef7f254ed05117b1ac9691fb"></a>
+<a class="anchor" id="ga809650c6310ea7c42666e918c117fb6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::translate </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::repeat </td>
<td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">genType const &amp;&#160;</td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+<p>Simulate GL_REPEAT OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
diff --git a/3rdparty/glm/doc/api/a00237.html b/3rdparty/glm/doc/api/a00237.html
deleted file mode 100644
index 4db5cfa787d..00000000000
--- a/3rdparty/glm/doc/api/a00237.html
+++ /dev/null
@@ -1,372 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_transform2</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_transform2<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
-<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, const tvec3&lt; T, P &gt; &amp;normal)</td></tr>
-<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
-<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template&lt;typename valType , precision P&gt; </td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; valType, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)</td></tr>
-<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T y)</td></tr>
-<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T y, T z)</td></tr>
-<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3&lt; T, P &gt; const &amp;m, T x)</td></tr>
-<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T z)</td></tr>
-<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4&lt; T, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4&lt; T, P &gt; &amp;m, T x, T y)</td></tr>
-<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add extra transformation matrices. </p>
-<p>&lt;<a class="el" href="a00113.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/transform2.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gacfce1085167a8bfb71a55ea14d22752f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::proj2D </td>
- <td>(</td>
- <td class="paramtype">const tmat3x3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const tvec3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build planar projection matrix along normal axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gafab0418f2503ec2133cb2de828cc482a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::proj3D </td>
- <td>(</td>
- <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const tvec3&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>normal</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build planar projection matrix along normal axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga2874abd228989556d610a0bff993667a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; glm::scaleBias </td>
- <td>(</td>
- <td class="paramtype">valType&#160;</td>
- <td class="paramname"><em>scale</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">valType&#160;</td>
- <td class="paramname"><em>bias</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a scale bias matrix. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gac1a1139e2980021422d1fc1c42dc74f2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;valType, P&gt; glm::scaleBias </td>
- <td>(</td>
- <td class="paramtype">tmat4x4&lt; valType, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">valType&#160;</td>
- <td class="paramname"><em>scale</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">valType&#160;</td>
- <td class="paramname"><em>bias</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a scale bias matrix. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga10f6c62d8f827c4cacedb71fd05e4ba2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::shearX2D </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Transforms a matrix with a shearing on X axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gae06ce274e4754f925d5d68440e89452e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::shearX3D </td>
- <td>(</td>
- <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga21ade82859e09a5cdaf4a01fbf8dc61b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3&lt;T, P&gt; glm::shearY2D </td>
- <td>(</td>
- <td class="paramtype">tmat3x3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Transforms a matrix with a shearing on Y axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga31253ea18fdcdfde08c134c8b67688f7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::shearY3D </td>
- <td>(</td>
- <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>z</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Transforms a matrix with a shearing on Y axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga5558ac64a7144685bf2eb4483a0e2f51"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4&lt;T, P&gt; glm::shearZ3D </td>
- <td>(</td>
- <td class="paramtype">const tmat4x4&lt; T, P &gt; &amp;&#160;</td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Transforms a matrix with a shearing on Z axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00238.html b/3rdparty/glm/doc/api/a00238.html
deleted file mode 100644
index 2be046d627c..00000000000
--- a/3rdparty/glm/doc/api/a00238.html
+++ /dev/null
@@ -1,7811 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_type_aligned</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_type_aligned<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
-<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
-<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
-<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
-<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
-<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
-<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
-<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
-<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
-<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
-<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
-<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
-<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
-<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
-<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
-<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
-<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
-<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
-<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
-<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
-<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
-<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
-<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
-<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
-<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
-<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
-<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
-<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
-<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
-<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
-<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
-<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
-<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
-<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
-<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
-<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
-<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
-<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
-<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
-<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
-<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
-<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
-<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
-<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
-<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
-<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
-<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
-<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
-<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
-<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
-<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
-<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
-<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
-<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
-<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
-<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
-<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
-<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
-<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
-<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
-<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
-<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
-<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
-<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
-<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
-<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
-<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
-<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
-<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
-<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
-<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
-<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
-<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
-<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
-<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
-<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
-<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
-<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
-<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
-<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
-<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
-<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
-<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
-<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
-<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
-<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
-<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
-<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
-<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
-<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
-<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
-<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
-<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
-<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
-<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
-<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
-<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
-<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
-<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
-<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
-<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
-<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
-<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
-<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
-<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
-<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
-<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
-<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
-<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
-<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
-<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
-<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
-<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
-<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
-<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
-<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
-<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
-<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
-<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
-<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
-<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
-<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
-<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
-<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
-<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
-<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
-<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
-<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
-<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
-<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
-<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
-<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
-<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
-<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
-<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
-<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
-<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
-<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
-<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
-<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
-<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
-<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
-<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
-<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
-<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
-<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
-<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
-<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
-<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
-<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
-<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
-<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
-<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
-<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
-<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
-<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
-<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
-<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
-<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
-<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
-<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
-<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
-<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
-<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
-<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
-<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
-<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
-<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
-<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
-<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
-<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
-<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
-<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
-<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
-<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
-<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
-<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
-<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
-<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
-<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
-<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
-<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
-<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
-<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
-<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
-<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
-<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
-<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
-<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
-<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
-<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
-<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
-<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
-<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
-<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
-<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
-<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
-<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
-<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
-<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
-<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
-<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
-<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
-<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
-<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
-<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
-<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
-<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
-<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
-<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines aligned types. </p>
-<p><a class="el" href="a00164.html">Precision types</a> defines aligned types.</p>
-<p>&lt;<a class="el" href="a00115.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/type_aligned.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab5cd5c5fad228b25c782084f1cc30114"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5bb5dd895ef625c1b113f2cf400186b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac6efa54cf7c6c86f7158922abdb1a430"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6612eb77c8607048e7552279a11eeb5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ddc1848ff2223026db8968ce0c97497"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga22240dd9458b0f8c11fbcc4f48714f68"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8130ea381d76a2cc34a93ccbb6cf487d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ccb60f3215d293fd62b33b31ed0e7be"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac20d508d2ef5cc95ad3daf083c57ec2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga50257b48069a31d0c8d9c1f644d267de"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa07e98e67b7a3435c0746018c7a2a839"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga62601fc6f8ca298b77285bedf03faffd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac8cff825951aeb54dd846037113c72db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga78f443d88f438575a62b5df497cdf66b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0680cd3b5d4e8006985fb41a4f9b57af"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad9e5babb1dd3e3531b42c37bf25dd951"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga353fd9fa8a9ad952fcabd0d53ad9a6dd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2196442c0e5c5e8c77842de388c42521"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1284488189daf897cf095c5eefad9744"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga73fdc86a539808af58808b7c60a1c4d8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafafeea923e1983262c972e2b83922d3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga63b882e29170d428463d99c3d630acc6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8b20507bb048c1edea2d441cc953e6f0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga56c5ca60813027b603c7b61425a0479d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7a751b3aff24c0259f4a7357c2969089"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga70cd2144351c556469ee6119e59971fc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga46bbf08dc004d8c433041e0b5018a5d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3e10c77a20d1abad2de1c561c7a5c18"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga968f30319ebeaca9ebcd3a25a8e139fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaae773c28e6390c6aa76f5b678b7098a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga790cfff1ca39d0ed696ffed980809311"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8265b91eb23c120a9b0c3e381bc37b96"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae6d384de17588d8edb894fbe06e0d410"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9c8172b745ee03fc5b2b91c350c2922f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga77e0dff12aa4020ddc3f8cabbea7b2e6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabd82b9faa9d4d618dbbe0fc8a1efee63"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga285649744560be21000cfd81bbb5d507"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga07732da630b2deda428ce95c0ecaf3ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1a8da2a8c51f69c07a2e7f473aa420f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga848aedf13e2d9738acf0bb482c590174"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafd2803d39049dd45a37a63931e25d943"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae553b33349d6da832cf0724f1e024094"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga16d223a2b3409e812e1d3bd87f0e9e5c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2de065d2ddfdb366bcd0febca79ae2ad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabd786bdc20a11c8cb05c92c8212e28d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad4aefe56691cdb640c72f0d46d3fb532"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8fe9745f7de24a8394518152ff9fccdc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaad735483450099f7f882d4e3a3569bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">ivec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac7b6f823802edbd6edbaf70ea25bf068"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3e235bcd2b8029613f25b8d40a2d3ef7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga50d8a9523968c77f8325b4c9bfbff41e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9ec20fdfb729c702032da9378c79679f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga25b3fe1d9e8d0a5e86c1949c1acd8131"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2958f907719d94d8109b562540c910e2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1fe6fc032a978f1c845fac9aa0668714"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa4161e7a496dc96972254143fe873e55"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9d7cb211ccda69b1c22ddeeb0f3e7aba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaee91dd2ab34423bcc11072ef6bd0f02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga49f047ccaa8b31fad9f26c67bf9b3510"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga904e9c2436bb099397c0823506a0771f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf90651cf2f5e7ee2b11cfdc5a6749534"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7354a4ead8cb17868aec36b9c30d6010"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad2ecbdea18732163e2636e27b37981ee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga965b1c9aa1800e93d4abc2eb2b5afcbf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1f9e9c2ea2768675dff9bae5cde2d829"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad77c317b7d942322cd5be4c8127b3187"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga716f8ea809bdb11b5b542d8b71aeb04f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad46f8e9082d5878b1bc04f9c1471cdaa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1246094581af624aca6c7499aaabf801"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7a5009a1d0196bbf21dd7518f61f0249"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga45213fd18b3bb1df391671afefe4d1e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0ba26b4e3fd9ecbc25358efd68d8a4ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf2b58f5fb6d4ec8ce7b76221d3af43e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadc246401847dcba155f0699425e49dcd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaace64bddf51a9def01498da9a94fb01c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad7bb97c29d664bd86ffb1bed4abc5534"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga404bba7785130e0b1384d695a9450b28"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga31ba41fd896257536958ec6080203d2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacca5f13627f57b3505676e40a6e43e5e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5faf1d3e70bf33174dd7f3d01d5b883b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga727e2bf2c433bb3b0182605860a48363"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga12566ca66d5962dadb4a5eb4c74e891e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7b66a97a8acaa35c5a377b947318c6bc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa9cde002439b74fa66120a16a9f55fcc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1ca98c67f7d1e975f7c5202f1da1df1f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1dc8bc6199d785f235576948d80a597c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad14a0f2ec93519682b73d70b8e401d81"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada8b996eb6526dc1ead813bd49539d1b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga28948f6bfb52b42deb9d73ae1ea8d8b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad6a7c0b5630f89d3f1c5b4ef2919bb4c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa0fc531cbaa972ac3a0b86d21ef4a7fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0ee829f7b754b262bbfe6317c0d678ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga447848a817a626cae08cedc9778b331c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6027ae13b2734f542a6e7beee11b8820"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2aca46c8608c95ef991ee4c332acde5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaff50b10dd1c48be324fdaffd18e2c7ea"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9fc4421dbb833d5461e6d4e59dcfde55"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga329f1e2b94b33ba5e3918197030bcf03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga71e646f7e301aa422328194162c9c998"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8942e09f479489441a7a5004c6d8cb66"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaab32497d6e4db16ee439dbedd64c5865"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaadbb34952eca8e3d7fe122c3e167742"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga92024d27c74a3650afb55ec8e024ed25"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabde1d0b4072df35453db76075ab896a6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga06c296c9e398b294c8c9dd2a7693dcbb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacf1744488c96ebd33c9f36ad33b2010a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3328061a64c20ba59d5f9da24c2cd059"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf6ced36f13bae57f377bafa6f5fcc299"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint8_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafbc7fb7847bfc78a339d1d371c915c73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint16_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa86bc56a73fd8120b1121b5f5e6245ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga68c0b9e669060d0eb5ab8c3ddeb483d8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4f3bab577daf3343e99cc005134bce86"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga13a2391339d0790d43b76d00a7611c4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga197570e03acbc3d18ab698e342971e8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0f033b21e145a1faa32c62ede5878993"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga509af83527f5cd512e9a7873590663aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">uvec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga94e86186978c502c6dc0c0d9c4a30679"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5cec574686a7f3c8ed24bb195c5e2d0a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga47edfdcee9c89b1ebdaf20450323b1d4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5611d6718e3a00096918a64192e73a45"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga19837e6f72b60d994a805ef564c6c326"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9740cf8e34f068049b42a2753f9601c2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8b8588bb221448f5541a858903822a57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga991abe990c16de26b2129d6bc2f4c051"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac01bb9fc32a1cd76c2b80d030f71df4c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga09540dbca093793a36a8997e0d4bee77"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaecafb5996f5a44f57e34d29c8670741e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac6b161a04d2f8408fe1c9d857e8daac0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1fa0dfc8feb0fa17dab2acd43e05342b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0019500abbfa9c66eff61ca75eaaed94"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga14fd29d01dae7b08a04e9facbcc18824"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab253845f534a67136f9619843cade903"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga929427a7627940cdf3304f9c050b677d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae373b6c04fdf9879f33d63e6949c037e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga53a8a03dca2015baec4584f45b8e9cdc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3301bae94ef5bf59fbdd9a24e7d2a01"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit single-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga75930684ff2233171c573e603f216162"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit double-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada9b0bea273d3ae0286f891533b9568f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float32_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit single-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e3a2d83b131336219a0f4c7cbba2a48"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float64_t&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit double-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadbce23b9f23d77bb3884e289a574ebd5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit single-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa4deaa0dea930c393d55e7a4352b0a20"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit double-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga81bc497b2bfc6f80bab690c6ee28f0f9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada3e8f783e9d4b90006695a16c39d4d4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab8d081fac3a38d6f55fa552f32168d32"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga12fe7b9769c964c5b48dcfd8b7f40198"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaefab04611c7f8fe1fd9be3071efea6cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2543c05ba19b3bd19d45b1227390c5b4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga009afd727fd657ef33a18754d6d28f60"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2f26177e74bfb301a3d0e02ec3c3ef53"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga309f495a1d6b75ddf195b674b65cb1e4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5e185865a2217d0cd47187644683a8c3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gade4458b27b039b9ca34f8ec049f3115a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3e0f35fa0c626285a8bad41707e7316c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">dvec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga78bfec2f185d1d365ea0a9ef1e3d45b8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga01fe6fee6db5df580b6724a7e681f069"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga687d5b8f551d5af32425c0b2fba15e99"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8e842371d46842ff8f1813419ba49d0f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec1&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga32814aa0f19316b43134fc25f2aad2b9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf3d3bbc1e93909b689123b085e177a14"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga804c654cead1139bd250f90f9bb01fad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafed7d010235a3aa7ea2f88646858f2ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga17f911ee7b78ca6d1b91c4ab51ddb73c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga31940e6012b72110e26fdb0f54805033"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga01de96cd0b541c52d2b4a3faf65822e9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat2x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac88a191b004bd341e64fc53b5a4d00e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat3x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabe8c745fa2ced44a600a6e3f19991161"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat4x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga719da577361541a4c43a2dd1d0e361e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e7ee4f541e1d7db66cd1a224caacafb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae5d672d359f2a39f63f98c7975057486"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6fa2df037dbfc5fe8c8e0b4db8a34953"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0743b4f4f69a3227b82ff58f6abbad62"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1a76b325fdf70f961d835edd182c63dd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4b4e181cd041ba28c3163e7b8074aef0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga27b13f465abc8a40705698145e222c3f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2608d19cc275830a6f8c0b6405625a4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93f09768241358a287c4cca538f1f7e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7c117e3ecca089e10247b1d41d88aff9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga07c75cd04ba42dc37fa3e105f89455c5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga65ff0d690a34a4d7f46f9b2eb51525ee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadd8ddbe2bf65ccede865ba2f510176dc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf18dbff14bf13d3ff540c517659ec045"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga66339f6139bf7ff19e245beb33f61cc8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1558a48b3934011b52612809f443e46d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa52e5732daa62851627021ad551c7680"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac09663c42566bcb58d23c6781ac4e85a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3f510999e59e1b309113e1d561162b29"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2c9c94f0c89cd71ce56551db6cf4aaec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga99ce8274c750fbfdf0e70c95946a2875"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9476ef66790239df53dbe66f3989c3b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacc429b3b0b49921e12713b6d31e14e1d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga88f6c6fa06e6e64479763e69444669cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaae8e4639c991e64754145ab8e4c32083"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e9094f3feb3b5b49d0f83683a101fde"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadbd2c639c03de1c3e9591b5a39f65559"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab059d7b9fe2094acc563b7223987499f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabbc811d1c52ed2b8cfcaff1378f75c69"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9ddf5212777734d2fd841a84439f3bdf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad1dda32ed09f94bfcf0a7d8edfb6cf13"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5875e0fa72f07e271e7931811cbbf31a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga41e82cd6ac07f912ba2a2d45799dcf0d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4x2&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0892638d6ba773043b3d63d1d092622e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4x3&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga912a16432608b822f1e13607529934c1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4x4&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafd945a8ea86b042aba410e0560df9a3d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">quat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_quat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad8c4bfacff70e57dc8303634c8bfce35"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">fquat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fquat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaabc28c84a3288b697605d4688686f9a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">dquat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dquat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1ed8aeb5ca67fade269a46105f1bf273"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32quat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga95cc03b8b475993fa50e05e38e203303"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64quat&#160;</td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32&#160;</td>
- <td class="paramname">&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00239.html b/3rdparty/glm/doc/api/a00239.html
deleted file mode 100644
index 7b799024c07..00000000000
--- a/3rdparty/glm/doc/api/a00239.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_vector_angle</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_vector_angle<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template&lt;typename vecType &gt; </td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &amp;x, vecType const &amp;y)</td></tr>
-<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2&lt; T, P &gt; const &amp;x, tvec2&lt; T, P &gt; const &amp;y)</td></tr>
-<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P&gt; </td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)</td></tr>
-<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Compute angle between vectors. </p>
-<p>&lt;<a class="el" href="a00142.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/vector_angle.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab8691008a2536b681b711211816c14f7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType::value_type glm::angle </td>
- <td>(</td>
- <td class="paramtype">vecType const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the absolute angle between two vectors Parameters need to be normalized. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00239.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga82a19d474be13c92c7b10caab42a5a72"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
- <td>(</td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the oriented angle between two 2d vectors Parameters need to be normalized. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00239.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7254dba112eff55f55f9544f41cb9ece"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
- <td>(</td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>ref</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the oriented angle between two 3d vectors based from a reference axis. </p>
-<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00239.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00240.html b/3rdparty/glm/doc/api/a00240.html
deleted file mode 100644
index 3ac8e9de4c1..00000000000
--- a/3rdparty/glm/doc/api/a00240.html
+++ /dev/null
@@ -1,271 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_vector_query</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_vector_query<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
-<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType&lt; T, P &gt; const &amp;v0, vecType&lt; T, P &gt; const &amp;v1, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType&lt; bool, P &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)</td></tr>
-<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Query informations of vector types. </p>
-<p>&lt;<a class="el" href="a00143.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/vector_query.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga465b844190d1740051e45d780832ea4c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::areCollinear </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether two vectors are collinears. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaee10acefed397c11e01f2862e837754c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::areOrthogonal </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether two vectors are orthogonals. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga89c82bc60e5b84e4489b74c15a134caf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::areOrthonormal </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether two vectors are orthonormal. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93ecd4137480483ce1af0de8bbbf6546"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType&lt;bool, P&gt; glm::isCompNull </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether a each component of a vector is null. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6fa5fa2af67d14c205d24c49aad03270"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether a vector is normalized. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga81a64edc1a2b470b82896592e89c523b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">vecType&lt; T, P &gt; const &amp;&#160;</td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const &amp;&#160;</td>
- <td class="paramname"><em>epsilon</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether a vector is null. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/a00241.html b/3rdparty/glm/doc/api/a00241.html
deleted file mode 100644
index 133b8e4c71d..00000000000
--- a/3rdparty/glm/doc/api/a00241.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_wrap</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_wrap<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &amp;Texcoord)</td></tr>
-<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Wrapping mode of texture coordinates. </p>
-<p>&lt;<a class="el" href="a00145.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/wrap.hpp</a>&gt; need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga6c0cc6bd1d67ea1008d2592e998bad33"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_CLAMP OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa6856a0a048d2749252848da35e10c8b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::mirrorClamp </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga16a89b0661b60d5bea85137bbae74d73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::mirrorRepeat </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga809650c6310ea7c42666e918c117fb6f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::repeat </td>
- <td>(</td>
- <td class="paramtype">genType const &amp;&#160;</td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_REPEAT OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html b/3rdparty/glm/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html
deleted file mode 100644
index dc01ef2d637..00000000000
--- a/3rdparty/glm/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: G-Truc Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">G-Truc Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_e29b03b892e0e25920d021a614d4db9b"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html b/3rdparty/glm/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html
deleted file mode 100644
index 9b004f614ca..00000000000
--- a/3rdparty/glm/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: D: Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">D: Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_7b98f88bffbed4b390b5f8f520d9c08e"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_304be5dfae1339a7705426c0b536faf2.html b/3rdparty/glm/doc/api/dir_304be5dfae1339a7705426c0b536faf2.html
new file mode 100644
index 00000000000..36ba1969b8d
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_304be5dfae1339a7705426c0b536faf2.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: glm Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">glm Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_da256b9dd32ba43e2eaa8a2832c37f1b"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_7997edb062bdde9a99cb6835d42b0d9d"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_e8f3c1046ba4b357711397765359cd18"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:a00015"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">common.hpp</a> <a href="a00015_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00015"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00023"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html">exponential.hpp</a> <a href="a00023_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00023"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00024"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">ext.hpp</a> <a href="a00024_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00024"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> (Dependence) <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00039"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html">fwd.hpp</a> <a href="a00039_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00039"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00040"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html">geometric.hpp</a> <a href="a00040_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00040"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00041"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00041.html">glm.hpp</a> <a href="a00041_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00041"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00047"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html">integer.hpp</a> <a href="a00047_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00047"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00052"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html">mat2x2.hpp</a> <a href="a00052_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00052"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00053"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">mat2x3.hpp</a> <a href="a00053_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00053"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00054"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00054.html">mat2x4.hpp</a> <a href="a00054_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00054"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00055"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00055.html">mat3x2.hpp</a> <a href="a00055_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00055"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00056"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00056.html">mat3x3.hpp</a> <a href="a00056_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00056"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00057"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html">mat3x4.hpp</a> <a href="a00057_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00057"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00058"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">mat4x2.hpp</a> <a href="a00058_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00058"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00059"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">mat4x3.hpp</a> <a href="a00059_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00059"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00060"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00060.html">mat4x4.hpp</a> <a href="a00060_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00060"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00061"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">matrix.hpp</a> <a href="a00061_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00061"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00082"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html">packing.hpp</a> <a href="a00082_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00082"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00105"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00105.html">trigonometric.hpp</a> <a href="a00105_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00105"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00132"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html">vec2.hpp</a> <a href="a00132_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00132"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00133"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00133.html">vec3.hpp</a> <a href="a00133_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00133"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00134"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html">vec4.hpp</a> <a href="a00134_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00134"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00138"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00138.html">vector_relational.hpp</a> <a href="a00138_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00138"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_45973f864e07b2505003ae343b7c8af7.html b/3rdparty/glm/doc/api/dir_45973f864e07b2505003ae343b7c8af7.html
new file mode 100644
index 00000000000..9920acc3767
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_45973f864e07b2505003ae343b7c8af7.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: glm Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">glm Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_48eca2e6cf73effdec262031e861eeb0"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_48eca2e6cf73effdec262031e861eeb0.html">doc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_304be5dfae1339a7705426c0b536faf2"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_48eca2e6cf73effdec262031e861eeb0.html b/3rdparty/glm/doc/api/dir_48eca2e6cf73effdec262031e861eeb0.html
new file mode 100644
index 00000000000..8ad3ff3acc2
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_48eca2e6cf73effdec262031e861eeb0.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: doc Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_48eca2e6cf73effdec262031e861eeb0.html">doc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">doc Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:a00051"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>man.doxy</b> <a href="a00051_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00083"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>pages.doxy</b> <a href="a00083_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html b/3rdparty/glm/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html
deleted file mode 100644
index 1e3824dacd1..00000000000
--- a/3rdparty/glm/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: doc Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">doc Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:a00057"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>man.doxy</b> <a href="a00057_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00089"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>pages.doxy</b> <a href="a00089_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html b/3rdparty/glm/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html
deleted file mode 100644
index 664a6739f9f..00000000000
--- a/3rdparty/glm/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">glm Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_e529a619cfdec1fa4c331fb042fd332f"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:dir_9440d7c11b99dcd7e5d369c7cf9802fe"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:dir_8d176b5b7dd0ae42ea6876078f2bde49"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:a00014"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">common.hpp</a> <a href="a00014_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00022"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">exponential.hpp</a> <a href="a00022_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00023"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ext.hpp</b> <a href="a00023_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00038"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html">fwd.hpp</a> <a href="a00038_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00039"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html">geometric.hpp</a> <a href="a00039_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00040"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html">glm.hpp</a> <a href="a00040_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00046"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">integer.hpp</a> <a href="a00046_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00058"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">mat2x2.hpp</a> <a href="a00058_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00059"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">mat2x3.hpp</a> <a href="a00059_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00060"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00060.html">mat2x4.hpp</a> <a href="a00060_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00061"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">mat3x2.hpp</a> <a href="a00061_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00062"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">mat3x3.hpp</a> <a href="a00062_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00063"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">mat3x4.hpp</a> <a href="a00063_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00064"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00064.html">mat4x2.hpp</a> <a href="a00064_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00065"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>mat4x3.hpp</b> <a href="a00065_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00066"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00066.html">mat4x4.hpp</a> <a href="a00066_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00067"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">matrix.hpp</a> <a href="a00067_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00088"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html">packing.hpp</a> <a href="a00088_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00114"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00114.html">trigonometric.hpp</a> <a href="a00114_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00139"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00139.html">vec2.hpp</a> <a href="a00139_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00140"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00140.html">vec3.hpp</a> <a href="a00140_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00141"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00141.html">vec4.hpp</a> <a href="a00141_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00144"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00144.html">vector_relational.hpp</a> <a href="a00144_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_7997edb062bdde9a99cb6835d42b0d9d.html b/3rdparty/glm/doc/api/dir_7997edb062bdde9a99cb6835d42b0d9d.html
new file mode 100644
index 00000000000..9ea79f5bfa1
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_7997edb062bdde9a99cb6835d42b0d9d.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: gtc Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_7997edb062bdde9a99cb6835d42b0d9d.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtc Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:a00009"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html">bitfield.hpp</a> <a href="a00009_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00009"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00159.html">GLM_GTC_bitfield</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00011"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">color_encoding.hpp</a> <a href="a00011_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00011"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00160.html">GLM_GTC_color_encoding</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00012"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">gtc/color_space.hpp</a> <a href="a00012_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00161.html">GLM_GTC_color_space</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00019"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">constants.hpp</a> <a href="a00019_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00019"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00162.html">GLM_GTC_constants</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00021"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html">epsilon.hpp</a> <a href="a00021_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00021"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00163.html">GLM_GTC_epsilon</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00038"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html">functions.hpp</a> <a href="a00038_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00038"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00164.html">GLM_GTC_functions</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00045"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00045.html">gtc/integer.hpp</a> <a href="a00045_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00045"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00165.html">GLM_GTC_integer</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00062"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">matrix_access.hpp</a> <a href="a00062_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00062"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00166.html">GLM_GTC_matrix_access</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00065"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html">matrix_integer.hpp</a> <a href="a00065_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00065"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00067"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">matrix_inverse.hpp</a> <a href="a00067_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00067"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00071"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00071.html">matrix_transform.hpp</a> <a href="a00071_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00071"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">noise.hpp</a> <a href="a00074_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00170.html">GLM_GTC_noise</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00081"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">gtc/packing.hpp</a> <a href="a00081_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00081"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00171.html">GLM_GTC_packing</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00088"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html">gtc/quaternion.hpp</a> <a href="a00088_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00088"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00172.html">GLM_GTC_quaternion</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00090"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html">random.hpp</a> <a href="a00090_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00090"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00173.html">GLM_GTC_random</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00093"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">reciprocal.hpp</a> <a href="a00093_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00093"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00174.html">GLM_GTC_reciprocal</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00096"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html">round.hpp</a> <a href="a00096_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00096"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00175.html">GLM_GTC_round</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00106"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">gtc/type_aligned.hpp</a> <a href="a00106_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00106"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00176.html">GLM_GTC_type_aligned</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00122"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html">type_precision.hpp</a> <a href="a00122_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00122"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00177.html">GLM_GTC_type_precision</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00123"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html">type_ptr.hpp</a> <a href="a00123_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00123"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00178.html">GLM_GTC_type_ptr</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00130"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00130.html">ulp.hpp</a> <a href="a00130_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00130"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00179.html">GLM_GTC_ulp</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00131"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html">vec1.hpp</a> <a href="a00131_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00131"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00180.html">GLM_GTC_vec1</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html b/3rdparty/glm/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html
deleted file mode 100644
index 17b55007735..00000000000
--- a/3rdparty/glm/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Source Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">Source Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_1f76e953200861345293ade84ac7fb6c"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html b/3rdparty/glm/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html
deleted file mode 100644
index 1ffb8ee4ba9..00000000000
--- a/3rdparty/glm/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gtx Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">gtx Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:a00007"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html">associated_min_max.hpp</a> <a href="a00007_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00008"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html">bit.hpp</a> <a href="a00008_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00010"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html">closest_point.hpp</a> <a href="a00010_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00012"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">gtx/color_space.hpp</a> <a href="a00012_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00013"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">color_space_YCoCg.hpp</a> <a href="a00013_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00015"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">gtx/common.hpp</a> <a href="a00015_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00016"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">compatibility.hpp</a> <a href="a00016_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00017"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">component_wise.hpp</a> <a href="a00017_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00019"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">dual_quaternion.hpp</a> <a href="a00019_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00021"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html">euler_angles.hpp</a> <a href="a00021_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00024"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">extend.hpp</a> <a href="a00024_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00025"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">extented_min_max.hpp</a> <a href="a00025_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00026"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html">fast_exponential.hpp</a> <a href="a00026_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00027"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">fast_square_root.hpp</a> <a href="a00027_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00028"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html">fast_trigonometry.hpp</a> <a href="a00028_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00041"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00041.html">gradient_paint.hpp</a> <a href="a00041_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00042"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html">handed_coordinate_space.hpp</a> <a href="a00042_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00043"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">hash.hpp</a> <a href="a00043_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00045"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00045.html">gtx/integer.hpp</a> <a href="a00045_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00047"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html">intersect.hpp</a> <a href="a00047_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00055"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00055.html">io.hpp</a> <a href="a00055_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00056"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00056.html">log_base.hpp</a> <a href="a00056_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00069"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">matrix_cross_product.hpp</a> <a href="a00069_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00070"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00070.html">matrix_decompose.hpp</a> <a href="a00070_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00072"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">matrix_interpolation.hpp</a> <a href="a00072_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">matrix_major_storage.hpp</a> <a href="a00074_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00075"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">matrix_operation.hpp</a> <a href="a00075_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00076"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">matrix_query.hpp</a> <a href="a00076_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00078"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">matrix_transform_2d.hpp</a> <a href="a00078_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00079"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">mixed_product.hpp</a> <a href="a00079_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00081"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">norm.hpp</a> <a href="a00081_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00082"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html">normal.hpp</a> <a href="a00082_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00083"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html">normalize_dot.hpp</a> <a href="a00083_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00084"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html">number_precision.hpp</a> <a href="a00084_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00085"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">optimum_pow.hpp</a> <a href="a00085_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00086"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html">orthonormalize.hpp</a> <a href="a00086_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00090"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html">perpendicular.hpp</a> <a href="a00090_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00091"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html">polar_coordinates.hpp</a> <a href="a00091_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00093"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">projection.hpp</a> <a href="a00093_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00095"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html">gtx/quaternion.hpp</a> <a href="a00095_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00097"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html">range.hpp</a> <a href="a00097_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00098"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00098.html">raw_data.hpp</a> <a href="a00098_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00100"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00100.html">rotate_normalized_axis.hpp</a> <a href="a00100_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00101"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00101.html">rotate_vector.hpp</a> <a href="a00101_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00103"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00103.html">scalar_multiplication.hpp</a> <a href="a00103_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00104"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html">scalar_relational.hpp</a> <a href="a00104_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00106"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">simd_mat4.hpp</a> <a href="a00106_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00107"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00107.html">simd_quat.hpp</a> <a href="a00107_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00108"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00108.html">simd_vec4.hpp</a> <a href="a00108_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00109"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00109.html">spline.hpp</a> <a href="a00109_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00110"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html">std_based_type.hpp</a> <a href="a00110_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00111"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html">string_cast.hpp</a> <a href="a00111_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00112"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">transform.hpp</a> <a href="a00112_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00113"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">transform2.hpp</a> <a href="a00113_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00115"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html">type_aligned.hpp</a> <a href="a00115_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00142"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00142.html">vector_angle.hpp</a> <a href="a00142_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00143"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00143.html">vector_query.hpp</a> <a href="a00143_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00145"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html">wrap.hpp</a> <a href="a00145_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_9344afb825aed5e2f5be1d2015dde43c.html b/3rdparty/glm/doc/api/dir_9344afb825aed5e2f5be1d2015dde43c.html
new file mode 100644
index 00000000000..3be32eb3922
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_9344afb825aed5e2f5be1d2015dde43c.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: G-Truc Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">G-Truc Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_45973f864e07b2505003ae343b7c8af7"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_934f46a345653ef2b3014a1b37a162c1.html b/3rdparty/glm/doc/api/dir_934f46a345653ef2b3014a1b37a162c1.html
new file mode 100644
index 00000000000..da722dfe9df
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_934f46a345653ef2b3014a1b37a162c1.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: G: Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">G: Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_98f7f9d41f9d3029bd68cf237526a774"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html b/3rdparty/glm/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html
deleted file mode 100644
index 4dc04bc9ccf..00000000000
--- a/3rdparty/glm/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gtc Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">gtc Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:a00009"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html">bitfield.hpp</a> <a href="a00009_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00011"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">gtc/color_space.hpp</a> <a href="a00011_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00018"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">constants.hpp</a> <a href="a00018_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00020"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">epsilon.hpp</a> <a href="a00020_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00044"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html">gtc/integer.hpp</a> <a href="a00044_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00068"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">matrix_access.hpp</a> <a href="a00068_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00071"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00071.html">matrix_integer.hpp</a> <a href="a00071_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00073"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html">matrix_inverse.hpp</a> <a href="a00073_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00077"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html">matrix_transform.hpp</a> <a href="a00077_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00080"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">noise.hpp</a> <a href="a00080_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00087"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">gtc/packing.hpp</a> <a href="a00087_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00094"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html">gtc/quaternion.hpp</a> <a href="a00094_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00096"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html">random.hpp</a> <a href="a00096_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00099"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html">reciprocal.hpp</a> <a href="a00099_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00102"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00102.html">round.hpp</a> <a href="a00102_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00130"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00130.html">type_precision.hpp</a> <a href="a00130_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00131"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html">type_ptr.hpp</a> <a href="a00131_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00137"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00137.html">ulp.hpp</a> <a href="a00137_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00138"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00138.html">vec1.hpp</a> <a href="a00138_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_98f7f9d41f9d3029bd68cf237526a774.html b/3rdparty/glm/doc/api/dir_98f7f9d41f9d3029bd68cf237526a774.html
new file mode 100644
index 00000000000..53d3be77f1e
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_98f7f9d41f9d3029bd68cf237526a774.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: Source Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">Source Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_9344afb825aed5e2f5be1d2015dde43c"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_da256b9dd32ba43e2eaa8a2832c37f1b.html b/3rdparty/glm/doc/api/dir_da256b9dd32ba43e2eaa8a2832c37f1b.html
new file mode 100644
index 00000000000..ba729c58725
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_da256b9dd32ba43e2eaa8a2832c37f1b.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: detail Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_da256b9dd32ba43e2eaa8a2832c37f1b.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">detail Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:a00001"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00001.html">_features.hpp</a> <a href="a00001_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00001"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00002"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html">_fixes.hpp</a> <a href="a00002_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00002"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00003"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html">_noise.hpp</a> <a href="a00003_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00003"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00004"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html">_swizzle.hpp</a> <a href="a00004_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00004"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00005"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html">_swizzle_func.hpp</a> <a href="a00005_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00005"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00006"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html">_vectorize.hpp</a> <a href="a00006_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00006"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00030"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html">func_common.hpp</a> <a href="a00030_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00030"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00031"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html">func_exponential.hpp</a> <a href="a00031_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00031"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00032"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html">func_geometric.hpp</a> <a href="a00032_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00032"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00033"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html">func_integer.hpp</a> <a href="a00033_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00033"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00034"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">func_matrix.hpp</a> <a href="a00034_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00034"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00035"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html">func_packing.hpp</a> <a href="a00035_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00035"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00036"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">func_trigonometric.hpp</a> <a href="a00036_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00036"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00037"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">func_vector_relational.hpp</a> <a href="a00037_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00037"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00086"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html">precision.hpp</a> <a href="a00086_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00086"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00099"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html">setup.hpp</a> <a href="a00099_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00099"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00108"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00108.html">type_float.hpp</a> <a href="a00108_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00108"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00109"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00109.html">type_gentype.hpp</a> <a href="a00109_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00109"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00110"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html">type_half.hpp</a> <a href="a00110_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00110"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00111"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html">type_int.hpp</a> <a href="a00111_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00111"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00112"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">type_mat.hpp</a> <a href="a00112_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00112"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00113"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">type_mat2x2.hpp</a> <a href="a00113_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00113"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00114"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00114.html">type_mat2x3.hpp</a> <a href="a00114_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00114"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00115"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html">type_mat2x4.hpp</a> <a href="a00115_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00115"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00116"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html">type_mat3x2.hpp</a> <a href="a00116_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00116"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00117"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00117.html">type_mat3x3.hpp</a> <a href="a00117_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00117"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00118"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00118.html">type_mat3x4.hpp</a> <a href="a00118_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00118"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00119"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html">type_mat4x2.hpp</a> <a href="a00119_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00119"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00120"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html">type_mat4x3.hpp</a> <a href="a00120_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00120"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00121"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html">type_mat4x4.hpp</a> <a href="a00121_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00121"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00125"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html">type_vec.hpp</a> <a href="a00125_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00125"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00126"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html">type_vec1.hpp</a> <a href="a00126_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00126"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00127"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html">type_vec2.hpp</a> <a href="a00127_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00127"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00128"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html">type_vec3.hpp</a> <a href="a00128_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00128"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00129"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00129.html">type_vec4.hpp</a> <a href="a00129_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00129"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00155.html">GLM Core</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html b/3rdparty/glm/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html
deleted file mode 100644
index 6d9c3976315..00000000000
--- a/3rdparty/glm/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">glm Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_577c788b67d63fb3b3b5752bd495d0f2"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:dir_5ce58d942b2d0776e17a9a58abc01e04"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html b/3rdparty/glm/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html
deleted file mode 100644
index aaee2e3c8bb..00000000000
--- a/3rdparty/glm/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: detail Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">detail Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:a00001"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00001.html">_features.hpp</a> <a href="a00001_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00002"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html">_fixes.hpp</a> <a href="a00002_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00003"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html">_noise.hpp</a> <a href="a00003_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00004"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00004.html">_swizzle.hpp</a> <a href="a00004_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00005"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html">_swizzle_func.hpp</a> <a href="a00005_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00006"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html">_vectorize.hpp</a> <a href="a00006_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00029"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html">func_common.hpp</a> <a href="a00029_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00030"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html">func_exponential.hpp</a> <a href="a00030_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00031"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html">func_geometric.hpp</a> <a href="a00031_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00032"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html">func_integer.hpp</a> <a href="a00032_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00033"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html">func_matrix.hpp</a> <a href="a00033_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00034"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">func_noise.hpp</a> <a href="a00034_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00035"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html">func_packing.hpp</a> <a href="a00035_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00036"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">func_trigonometric.hpp</a> <a href="a00036_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00037"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">func_vector_relational.hpp</a> <a href="a00037_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00048"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">intrinsic_common.hpp</a> <a href="a00048_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00049"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">intrinsic_exponential.hpp</a> <a href="a00049_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00050"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">intrinsic_geometric.hpp</a> <a href="a00050_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00051"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html">intrinsic_integer.hpp</a> <a href="a00051_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00052"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>intrinsic_matrix.hpp</b> <a href="a00052_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00053"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">intrinsic_trigonometric.hpp</a> <a href="a00053_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00054"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00054.html">intrinsic_vector_relational.hpp</a> <a href="a00054_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00092"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">precision.hpp</a> <a href="a00092_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00105"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00105.html">setup.hpp</a> <a href="a00105_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00116"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html">type_float.hpp</a> <a href="a00116_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00117"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00117.html">type_gentype.hpp</a> <a href="a00117_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00118"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00118.html">type_half.hpp</a> <a href="a00118_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00119"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html">type_int.hpp</a> <a href="a00119_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00120"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html">type_mat.hpp</a> <a href="a00120_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00121"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html">type_mat2x2.hpp</a> <a href="a00121_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00122"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html">type_mat2x3.hpp</a> <a href="a00122_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00123"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html">type_mat2x4.hpp</a> <a href="a00123_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00124"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">type_mat3x2.hpp</a> <a href="a00124_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00125"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html">type_mat3x3.hpp</a> <a href="a00125_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00126"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html">type_mat3x4.hpp</a> <a href="a00126_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00127"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html">type_mat4x2.hpp</a> <a href="a00127_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00128"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html">type_mat4x3.hpp</a> <a href="a00128_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00129"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00129.html">type_mat4x4.hpp</a> <a href="a00129_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00132"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html">type_vec.hpp</a> <a href="a00132_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00133"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00133.html">type_vec1.hpp</a> <a href="a00133_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00134"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html">type_vec2.hpp</a> <a href="a00134_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00135"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00135.html">type_vec3.hpp</a> <a href="a00135_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00136"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00136.html">type_vec4.hpp</a> <a href="a00136_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/3rdparty/glm/doc/api/dir_e8f3c1046ba4b357711397765359cd18.html b/3rdparty/glm/doc/api/dir_e8f3c1046ba4b357711397765359cd18.html
new file mode 100644
index 00000000000..5f5f0d4a348
--- /dev/null
+++ b/3rdparty/glm/doc/api/dir_e8f3c1046ba4b357711397765359cd18.html
@@ -0,0 +1,269 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.9 API documenation: gtx Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.9 API documenation
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_45973f864e07b2505003ae343b7c8af7.html">glm</a></li><li class="navelem"><a class="el" href="dir_304be5dfae1339a7705426c0b536faf2.html">glm</a></li><li class="navelem"><a class="el" href="dir_e8f3c1046ba4b357711397765359cd18.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtx Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:a00007"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html">associated_min_max.hpp</a> <a href="a00007_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00007"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00008"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html">bit.hpp</a> <a href="a00008_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00008"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00182.html">GLM_GTX_bit</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00010"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html">closest_point.hpp</a> <a href="a00010_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00010"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00183.html">GLM_GTX_closest_point</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00013"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">gtx/color_space.hpp</a> <a href="a00013_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00013"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00184.html">GLM_GTX_color_space</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00014"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">color_space_YCoCg.hpp</a> <a href="a00014_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00014"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00016"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">gtx/common.hpp</a> <a href="a00016_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00016"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00186.html">GLM_GTX_common</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00017"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">compatibility.hpp</a> <a href="a00017_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00017"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00187.html">GLM_GTX_compatibility</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00018"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">component_wise.hpp</a> <a href="a00018_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00018"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00188.html">GLM_GTX_component_wise</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00020"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">dual_quaternion.hpp</a> <a href="a00020_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00020"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00022"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">euler_angles.hpp</a> <a href="a00022_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00022"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00190.html">GLM_GTX_euler_angles</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00025"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">extend.hpp</a> <a href="a00025_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00025"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00191.html">GLM_GTX_extend</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00026"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html">extended_min_max.hpp</a> <a href="a00026_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00026"><td class="mdescLeft">&#160;</td><td class="mdescRight">gtx_extended_min_max <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00027"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">fast_exponential.hpp</a> <a href="a00027_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00027"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00028"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html">fast_square_root.hpp</a> <a href="a00028_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00028"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00029"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html">fast_trigonometry.hpp</a> <a href="a00029_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00029"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00042"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html">gradient_paint.hpp</a> <a href="a00042_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00042"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00043"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">handed_coordinate_space.hpp</a> <a href="a00043_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00043"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00044"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html">hash.hpp</a> <a href="a00044_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00044"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00198.html">GLM_GTX_hash</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00046"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">gtx/integer.hpp</a> <a href="a00046_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00046"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00199.html">GLM_GTX_integer</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00048"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">intersect.hpp</a> <a href="a00048_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00048"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00200.html">GLM_GTX_intersect</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00049"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">io.hpp</a> <a href="a00049_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00049"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00201.html">GLM_GTX_io</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00050"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">log_base.hpp</a> <a href="a00050_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00050"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00202.html">GLM_GTX_log_base</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00063"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">matrix_cross_product.hpp</a> <a href="a00063_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00063"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00064"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00064.html">matrix_decompose.hpp</a> <a href="a00064_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00064"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00066"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00066.html">matrix_interpolation.hpp</a> <a href="a00066_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00066"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00068"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">matrix_major_storage.hpp</a> <a href="a00068_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00068"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00069"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">matrix_operation.hpp</a> <a href="a00069_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00069"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00070"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00070.html">matrix_query.hpp</a> <a href="a00070_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00070"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00208.html">GLM_GTX_matrix_query</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00072"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">matrix_transform_2d.hpp</a> <a href="a00072_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00072"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00073"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html">mixed_product.hpp</a> <a href="a00073_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00073"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00075"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">norm.hpp</a> <a href="a00075_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00075"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00211.html">GLM_GTX_norm</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00076"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">normal.hpp</a> <a href="a00076_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00076"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00212.html">GLM_GTX_normal</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00077"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html">normalize_dot.hpp</a> <a href="a00077_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00077"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00078"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">number_precision.hpp</a> <a href="a00078_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00078"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00214.html">GLM_GTX_number_precision</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00079"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">optimum_pow.hpp</a> <a href="a00079_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00079"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00080"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">orthonormalize.hpp</a> <a href="a00080_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00080"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00084"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html">perpendicular.hpp</a> <a href="a00084_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00084"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00217.html">GLM_GTX_perpendicular</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00085"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">polar_coordinates.hpp</a> <a href="a00085_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00085"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00087"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">projection.hpp</a> <a href="a00087_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00087"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00219.html">GLM_GTX_projection</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00089"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html">gtx/quaternion.hpp</a> <a href="a00089_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00089"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00220.html">GLM_GTX_quaternion</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00091"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html">range.hpp</a> <a href="a00091_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00091"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00221.html">GLM_GTX_range</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00092"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">raw_data.hpp</a> <a href="a00092_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00092"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00222.html">GLM_GTX_raw_data</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00094"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html">rotate_normalized_axis.hpp</a> <a href="a00094_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00094"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00095"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html">rotate_vector.hpp</a> <a href="a00095_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00095"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00097"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html">scalar_multiplication.hpp</a> <a href="a00097_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00097"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00098"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00098.html">scalar_relational.hpp</a> <a href="a00098_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00098"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00100"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00100.html">spline.hpp</a> <a href="a00100_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00100"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00226.html">GLM_GTX_spline</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00101"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00101.html">std_based_type.hpp</a> <a href="a00101_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00101"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00227.html">GLM_GTX_std_based_type</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00102"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00102.html">string_cast.hpp</a> <a href="a00102_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00102"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00228.html">GLM_GTX_string_cast</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00103"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00103.html">transform.hpp</a> <a href="a00103_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00103"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00229.html">GLM_GTX_transform</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00104"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html">transform2.hpp</a> <a href="a00104_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00104"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00230.html">GLM_GTX_transform2</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00107"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00107.html">gtx/type_aligned.hpp</a> <a href="a00107_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00107"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00231.html">GLM_GTX_type_aligned</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00124"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">type_trait.hpp</a> <a href="a00124_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00124"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00232.html">GLM_GTX_type_trait</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00135"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00135.html">vec_swizzle.hpp</a> <a href="a00135_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00135"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00233.html">GLM_GTX_vec_swizzle</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00136"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00136.html">vector_angle.hpp</a> <a href="a00136_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00136"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00234.html">GLM_GTX_vector_angle</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00137"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00137.html">vector_query.hpp</a> <a href="a00137_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00137"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00235.html">GLM_GTX_vector_query</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00139"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00139.html">wrap.hpp</a> <a href="a00139_source.html">[code]</a></td></tr>
+<tr class="memdesc:a00139"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00236.html">GLM_GTX_wrap</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/doxygen.css b/3rdparty/glm/doc/api/doxygen.css
index f0f4a4f2b55..1b9d11f3d0c 100644
--- a/3rdparty/glm/doc/api/doxygen.css
+++ b/3rdparty/glm/doc/api/doxygen.css
@@ -1,9 +1,7 @@
-/* The standard CSS for doxygen */
+/* The standard CSS for doxygen 1.8.10 */
-body, table, div, p, dl
-{
- font-family: Lucida Grande, Calibri, Verdana;
- font-size: 14px;
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
}
body
@@ -14,41 +12,51 @@ body
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;
+h1.groupheader {
+ color:#bf6000;
+ font-size: 150%;
}
-h2
-{
- color:#FF8000;
- font-family: Lucida Grande, Cambria, Georgia;
- font-size: 18px;
+.title {
+ color:#bf6000;
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
font-weight: bold;
+ margin: 10px 2px;
}
-h3 {
- font-family: Lucida Grande, Cambria, Georgia;
- font-size: 14px;
- font-weight: bold;
+h2.groupheader {
+ border-bottom: 1px solid #bf6000;
+ color:#bf6000;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
}
dt {
@@ -62,10 +70,14 @@ div.multicol {
-webkit-column-count: 3;
}
-p.startli, p.startdd, p.starttd {
+p.startli, p.startdd {
margin-top: 2px;
}
+p.starttd {
+ margin-top: 0px;
+}
+
p.endli {
margin-bottom: 0px;
}
@@ -96,10 +108,8 @@ h3.version {
div.qindex, div.navtab{
background-color: #FFF8F0;
- border: 0px solid #FF8000;
+ border: 1px solid #FF8000;
text-align: center;
- margin: 2px;
- padding: 2px;
}
div.qindex, div.navpath {
@@ -116,7 +126,7 @@ div.navtab {
a {
color: #000000;
font-weight: normal;
- /*text-decoration: none;*/
+ text-decoration: none;
}
.contents a:visited {
@@ -125,22 +135,16 @@ a {
.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;
+ margin:0px;
+ margin-left:auto;
+ margin-right:auto;
+ width:1216px;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
}
a:hover {
@@ -155,7 +159,7 @@ a.qindexHL {
font-weight: bold;
background-color: #9CAFD4;
color: #ffffff;
- border: 0px double #869DCA;
+ border: 1px double #869DCA;
}
.contents a.qindexHL:visited {
@@ -169,12 +173,12 @@ a.el {
a.elRef {
}
-a.code {
- color: #4665A2;
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
}
-a.codeRef {
- color: #4665A2;
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
}
/* @end */
@@ -183,22 +187,75 @@ dl.el {
margin-left: -1cm;
}
-.fragment {
- font-family: monospace, consolas, "courier new";
- font-size: 12px;
-}
-
pre.fragment {
- border: 0px solid #FF8000;
- background-color: #FFF8F0;
+ border: 1px solid #FF8000;
+ background-color: #FFF8F0;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
padding: 4px 6px;
margin: 4px 8px 4px 2px;
- overflow: auto;
- word-wrap: break-word;
- line-height: 125%;
+ background-color: #FFF8F0;
+ border: 1px solid #FF8000;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
}
-div.ah {
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah, span.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
@@ -216,6 +273,15 @@ div.ah {
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}
+div.classindex ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+div.classindex span.ai {
+ display: inline-block;
+}
+
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
@@ -227,15 +293,24 @@ div.groupText {
font-style: italic;
}
+body {
+ color: black;
+ margin: 0;
+}
+
td.indexkey {
+ background-color: #FFF8F0;
font-weight: bold;
- border: 0px solid #C4CFE5;
+ border: 1px solid #C4CFE5;
margin: 2px 0px 2px 0;
- padding: 4px 10px;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
}
td.indexvalue {
- border: 0px solid #C4CFE5;
+ background-color: #FFF8F0;
+ border: 1px solid #C4CFE5;
padding: 2px 10px;
margin: 2px 0px;
}
@@ -258,9 +333,9 @@ img.formulaInl {
div.center {
text-align: center;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
}
div.center img {
@@ -268,13 +343,7 @@ div.center img {
}
address.footer {
- margin-left:auto;
- margin-right:auto;
- width:1000px;
-
- text-align: right;
- padding-right: 12px;
- color: #FFEEDD;
+ display: none;
}
img.footer {
@@ -328,6 +397,13 @@ span.vhdllogic {
color: #ff0000
}
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
/* @end */
/*
@@ -350,13 +426,13 @@ input.search {
*/
td.tiny {
- font-size: 10px;
+ font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
- border: 0px solid #A3B4D7;
+ border: 1px solid #FF8000;
}
th.dirtab {
@@ -367,14 +443,11 @@ th.dirtab {
hr {
height: 0px;
border: none;
- border-top: 0px solid #FF8000;
+ border-top: 1px solid #4A6AAA;
}
hr.footer {
- height: 1px;
- margin-left:auto;
- margin-right:auto;
- width:1000px;
+ display: none;
}
/* @group Member Descriptions */
@@ -384,11 +457,27 @@ table.memberdecls {
padding: 0px;
}
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- font-family: monospace, consolas, "courier new";
- font-size: 12px;
background-color: #FFFCF8;
border: none;
margin: 4px;
@@ -397,20 +486,28 @@ table.memberdecls {
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
- color: #000000;
+ color: #555;
}
-.memItemLeft, .memItemRight, .memTemplParams {
- border-top: 4px solid #FFFFFF;
+.memSeparator {
+ border-bottom: 1px solid #FFF8F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
+.memItemRight {
+ width: 100%;
+}
+
.memTemplParams {
- color: #404040;
+ color: #bf6000;
white-space: nowrap;
+ font-size: 80%;
}
/* @end */
@@ -420,81 +517,107 @@ table.memberdecls {
/* Styles for detailed member documentation */
.memtemplate {
- color: #000000;
+ font-size: 80%;
+ color: #4665A2;
font-weight: normal;
margin-left: 9px;
}
.memnav {
- background-color: #000000;
- border: 0px solid #A3B4D7;
+ background-color: #FFF8F0;
+ border: 1px solid #FF8000;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
+.mempage {
+ width: 100%;
+}
+
.memitem {
- padding: 8px;
+ padding: 0;
margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
}
.memname {
- font-family: monospace, consolas, "courier new";
- font-weight: bold;
- font-size: 12px;
- white-space: nowrap;
- margin-left: 6px;
+ font-weight: bold;
+ 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));
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #bf6000;
+ border-left: 1px solid #bf6000;
+ border-right: 1px solid #bf6000;
+ padding: 6px 0px 6px 0px;
+ /*color: #253555;*/
+ font-weight: bold;
+ /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/
+ /*background-image:url('nav_f.png');*/
+ background-repeat:repeat-x;
+ background-color: #FFF8F0;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #bf6000;
+ border-left: 1px solid #bf6000;
+ border-right: 1px solid #bf6000;
+ padding: 6px 10px 2px 10px;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFDFB;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
}
.paramkey {
@@ -506,22 +629,23 @@ table.memberdecls {
}
.paramname {
- color: #FF8000;
+ color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
+.paramname code {
+ line-height: 14px;
+}
.params, .retval, .exception, .tparams {
- border-spacing: 6px 2px;
+ margin-left: 0px;
+ padding-left: 0px;
}
.params .paramname, .retval .paramname {
- color: #FF8000;
- font-family: monospace, consolas, "courier new";
font-weight: bold;
- font-size: 12px;
vertical-align: top;
}
@@ -531,144 +655,306 @@ table.memberdecls {
}
.params .paramdir {
+ font-family: "courier new",courier,monospace;
vertical-align: top;
}
+table.mlabels {
+ border-spacing: 0px;
+}
-
-
-/* @end */
-
-/* @group Directory (tree) */
-
-/* for the tree view */
-
-.ftvtree {
- /*font-family: Lucida Grande, Calibri, Verdana;*/
- margin: 0px;
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
}
-/* these are for tree view when used as main index */
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
-.directory {
- font-weight: bold;
- margin: 5px;
+span.mlabels {
+ margin-left: 8px;
}
-.directory h3 {
- margin: 0px;
- margin-top: 1em;
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
}
-/*
-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;
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #bf6000;
+ border-bottom: 1px solid #bf6000;
+ width: 100%;
}
-.directory p {
- margin: 0px;
- white-space: nowrap;
+.directory table {
+ border-collapse:collapse;
}
-.directory div {
- display: none;
+.directory td {
margin: 0px;
+ padding: 0px;
+ vertical-align: top;
}
-.directory img {
- vertical-align: -30%;
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
}
-/* these are for tree view when not used as main index */
-
-.directory-alt {
- font-size: 100%;
- font-weight: bold;
+.directory td.entry a {
+ outline:none;
}
-.directory-alt h3 {
- margin: 0px;
- margin-top: 1em;
+.directory td.entry a img {
+ border: none;
}
-.directory-alt > h3 {
- margin-top: 0;
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
}
-.directory-alt p {
- margin: 0px;
- white-space: nowrap;
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #FFFDFB;
}
-.directory-alt div {
- display: none;
- margin: 0px;
+.directory img {
+ vertical-align: -30%;
}
-.directory-alt img {
- vertical-align: -30%;
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #bf6000;
+}
+
+.arrow {
+ color: #bf6000;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #bf6000;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+table.directory {
+ font: 400 14px Roboto,sans-serif;
}
/* @end */
div.dynheader {
- margin-top: 8px;
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
}
address {
font-style: normal;
- color: #804000;
+ color: #2A3D61;
}
table.doxtable {
border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
}
table.doxtable td, table.doxtable th {
- border: 0px solid #000000;
+ border: 1px solid #2D4068;
padding: 3px 7px 2px;
}
table.doxtable th {
- background-color: #000000;
+ background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
- text-align:left;
}
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
.tabsearch {
top: 0px;
left: 10px;
height: 36px;
- /*background-image: url('tab_b.png');*/
+ background-image: url('tab_b.png');
z-index: 101;
overflow: hidden;
+ font-size: 13px;
}
.navpath ul
{
- background-color: #FFEEDD;
+ font-size: 11px;
+ /*background-image:url('tab_b.png');*/
+ background-color: #FFF8F0;
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
height:30px;
line-height:30px;
+ color:#bf6000;
+ border:solid 0px #C2CDE4;
overflow:hidden;
margin:0px;
padding:0px;
@@ -680,9 +966,10 @@ table.doxtable th {
float:left;
padding-left:10px;
padding-right:15px;
- /*background-image:url('bc_s.png');*/
+ background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
+ color:#bf6000;
}
.navpath li.navelem a
@@ -691,33 +978,37 @@ table.doxtable th {
display:block;
text-decoration: none;
outline: none;
+ color: #bf6000;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-decoration: none;
}
.navpath li.navelem a:hover
{
- color:#FF8000;
+ color:#6884BD;
}
.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;
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#bf6000;
+ font-size: 8pt;
}
div.summary
{
float: right;
- font-size: 12px;
+ font-size: 8pt;
padding-right: 5px;
- width: 160px;
+ width: 50%;
text-align: right;
-}
+}
div.summary a
{
@@ -726,7 +1017,7 @@ div.summary a
div.ingroups
{
- padding-left: 5px;
+ font-size: 8pt;
width: 50%;
text-align: left;
}
@@ -738,31 +1029,19 @@ div.ingroups a
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));
+ background-repeat:repeat-x;
+ background-color: #FFFCF8;
padding:0px;
- margin:0px;
+ margin:0px;
margin-left:auto;
margin-right:auto;
- width:1000px;
- border-bottom: 0px solid #FFC080;
+ width:1280px;
}
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;
+ padding: 5px 5px 5px 10px;
}
dl
@@ -770,48 +1049,74 @@ 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
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
{
- border-color: #FF7F00;
- border-left:4px solid;
- padding: 0 0 0 6px;
+ margin-left: 0px;
+ padding-left: 0px;
}
dl.note
{
- border-color: #FFDDBB;
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
}
dl.warning, dl.attention
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #FF0000;
}
dl.pre, dl.post, dl.invariant
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #00D000;
}
dl.deprecated
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #505050;
}
dl.todo
{
- border-color: #00C0E0;
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #E0C000;
}
dl.test
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #3030E0;
}
dl.bug
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #C08050;
}
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
#projectlogo
{
text-align: center;
@@ -824,26 +1129,29 @@ dl.bug
border: 0px none;
}
+#projectalign
+{
+ vertical-align: middle;
+}
+
#projectname
{
- /*font-family: Lucida Grande, Cambria, Georgia;*/
- font-size: 24px;
+ font: 300% Tahoma, Arial,sans-serif;
margin: 0px;
- padding: 0px;
+ padding: 2px 0px;
+ color: #FF8000;
}
#projectbrief
{
- /*font-family: Lucida Grande, Cambria, Georgia;*/
- font-size: 18px;
+ font: 120% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#projectnumber
{
- /*font-family: Lucida Grande, Cambria, Georgia;*/
- font-size: 14px;
+ font: 50% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
@@ -853,7 +1161,310 @@ dl.bug
padding: 0px;
margin: 0px;
width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#titlearea
+{
+ margin: 0px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ margin-top: 32px;
+ width: 100%;
border-bottom: 0px solid #FF8000;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
background-color:#FFFFFF;
}
@@ -861,5 +1472,25 @@ dl.bug
{
margin-left:auto;
margin-right:auto;
- width:1000px;
+ width:1280px;
}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/3rdparty/glm/doc/api/files.html b/3rdparty/glm/doc/api/files.html
index 8000ce375eb..00c29b4bb17 100644
--- a/3rdparty/glm/doc/api/files.html
+++ b/3rdparty/glm/doc/api/files.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: File List</title>
+<title>0.9.9 API documenation: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,11 +33,30 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
<div id="navrow2" class="tabs2">
@@ -40,6 +65,20 @@
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
@@ -47,151 +86,145 @@
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00001_source.html"><span class="icondoc"></span></a><a class="el" href="a00001.html" target="_self">_features.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00002_source.html"><span class="icondoc"></span></a><a class="el" href="a00002.html" target="_self">_fixes.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00003_source.html"><span class="icondoc"></span></a><a class="el" href="a00003.html" target="_self">_noise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00004_source.html"><span class="icondoc"></span></a><a class="el" href="a00004.html" target="_self">_swizzle.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00005_source.html"><span class="icondoc"></span></a><a class="el" href="a00005.html" target="_self">_swizzle_func.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00006_source.html"><span class="icondoc"></span></a><a class="el" href="a00006.html" target="_self">_vectorize.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00007_source.html"><span class="icondoc"></span></a><a class="el" href="a00007.html" target="_self">associated_min_max.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00008_source.html"><span class="icondoc"></span></a><a class="el" href="a00008.html" target="_self">bit.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00009_source.html"><span class="icondoc"></span></a><a class="el" href="a00009.html" target="_self">bitfield.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00010_source.html"><span class="icondoc"></span></a><a class="el" href="a00010.html" target="_self">closest_point.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00011_source.html"><span class="icondoc"></span></a><a class="el" href="a00011.html" target="_self">gtc/color_space.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00012_source.html"><span class="icondoc"></span></a><a class="el" href="a00012.html" target="_self">gtx/color_space.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00013_source.html"><span class="icondoc"></span></a><a class="el" href="a00013.html" target="_self">color_space_YCoCg.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00014_source.html"><span class="icondoc"></span></a><a class="el" href="a00014.html" target="_self">common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00015_source.html"><span class="icondoc"></span></a><a class="el" href="a00015.html" target="_self">gtx/common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00016_source.html"><span class="icondoc"></span></a><a class="el" href="a00016.html" target="_self">compatibility.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00017_source.html"><span class="icondoc"></span></a><a class="el" href="a00017.html" target="_self">component_wise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00018_source.html"><span class="icondoc"></span></a><a class="el" href="a00018.html" target="_self">constants.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00019_source.html"><span class="icondoc"></span></a><a class="el" href="a00019.html" target="_self">dual_quaternion.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00020_source.html"><span class="icondoc"></span></a><a class="el" href="a00020.html" target="_self">epsilon.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00021_source.html"><span class="icondoc"></span></a><a class="el" href="a00021.html" target="_self">euler_angles.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00022_source.html"><span class="icondoc"></span></a><a class="el" href="a00022.html" target="_self">exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00023_source.html"><span class="icondoc"></span></a><b>ext.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00024_source.html"><span class="icondoc"></span></a><a class="el" href="a00024.html" target="_self">extend.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00025_source.html"><span class="icondoc"></span></a><a class="el" href="a00025.html" target="_self">extented_min_max.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00026_source.html"><span class="icondoc"></span></a><a class="el" href="a00026.html" target="_self">fast_exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00027_source.html"><span class="icondoc"></span></a><a class="el" href="a00027.html" target="_self">fast_square_root.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00028_source.html"><span class="icondoc"></span></a><a class="el" href="a00028.html" target="_self">fast_trigonometry.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00029_source.html"><span class="icondoc"></span></a><a class="el" href="a00029.html" target="_self">func_common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00030_source.html"><span class="icondoc"></span></a><a class="el" href="a00030.html" target="_self">func_exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00031_source.html"><span class="icondoc"></span></a><a class="el" href="a00031.html" target="_self">func_geometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00032_source.html"><span class="icondoc"></span></a><a class="el" href="a00032.html" target="_self">func_integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00033_source.html"><span class="icondoc"></span></a><a class="el" href="a00033.html" target="_self">func_matrix.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00034_source.html"><span class="icondoc"></span></a><a class="el" href="a00034.html" target="_self">func_noise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00035_source.html"><span class="icondoc"></span></a><a class="el" href="a00035.html" target="_self">func_packing.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00036_source.html"><span class="icondoc"></span></a><a class="el" href="a00036.html" target="_self">func_trigonometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00037_source.html"><span class="icondoc"></span></a><a class="el" href="a00037.html" target="_self">func_vector_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00038_source.html"><span class="icondoc"></span></a><a class="el" href="a00038.html" target="_self">fwd.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00039_source.html"><span class="icondoc"></span></a><a class="el" href="a00039.html" target="_self">geometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00040_source.html"><span class="icondoc"></span></a><a class="el" href="a00040.html" target="_self">glm.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00041_source.html"><span class="icondoc"></span></a><a class="el" href="a00041.html" target="_self">gradient_paint.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00042_source.html"><span class="icondoc"></span></a><a class="el" href="a00042.html" target="_self">handed_coordinate_space.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00043_source.html"><span class="icondoc"></span></a><a class="el" href="a00043.html" target="_self">hash.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00044_source.html"><span class="icondoc"></span></a><a class="el" href="a00044.html" target="_self">gtc/integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00045_source.html"><span class="icondoc"></span></a><a class="el" href="a00045.html" target="_self">gtx/integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00046_source.html"><span class="icondoc"></span></a><a class="el" href="a00046.html" target="_self">integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00047_source.html"><span class="icondoc"></span></a><a class="el" href="a00047.html" target="_self">intersect.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00048_source.html"><span class="icondoc"></span></a><a class="el" href="a00048.html" target="_self">intrinsic_common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00049_source.html"><span class="icondoc"></span></a><a class="el" href="a00049.html" target="_self">intrinsic_exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00050_source.html"><span class="icondoc"></span></a><a class="el" href="a00050.html" target="_self">intrinsic_geometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00051_source.html"><span class="icondoc"></span></a><a class="el" href="a00051.html" target="_self">intrinsic_integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00052_source.html"><span class="icondoc"></span></a><b>intrinsic_matrix.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00053_source.html"><span class="icondoc"></span></a><a class="el" href="a00053.html" target="_self">intrinsic_trigonometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00054_source.html"><span class="icondoc"></span></a><a class="el" href="a00054.html" target="_self">intrinsic_vector_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00055_source.html"><span class="icondoc"></span></a><a class="el" href="a00055.html" target="_self">io.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00056_source.html"><span class="icondoc"></span></a><a class="el" href="a00056.html" target="_self">log_base.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00057_source.html"><span class="icondoc"></span></a><b>man.doxy</b></td><td class="desc"></td></tr>
-<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00058_source.html"><span class="icondoc"></span></a><a class="el" href="a00058.html" target="_self">mat2x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00059_source.html"><span class="icondoc"></span></a><a class="el" href="a00059.html" target="_self">mat2x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00060_source.html"><span class="icondoc"></span></a><a class="el" href="a00060.html" target="_self">mat2x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00061_source.html"><span class="icondoc"></span></a><a class="el" href="a00061.html" target="_self">mat3x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00062_source.html"><span class="icondoc"></span></a><a class="el" href="a00062.html" target="_self">mat3x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00063_source.html"><span class="icondoc"></span></a><a class="el" href="a00063.html" target="_self">mat3x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00064_source.html"><span class="icondoc"></span></a><a class="el" href="a00064.html" target="_self">mat4x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00065_source.html"><span class="icondoc"></span></a><b>mat4x3.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00066_source.html"><span class="icondoc"></span></a><a class="el" href="a00066.html" target="_self">mat4x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00067_source.html"><span class="icondoc"></span></a><a class="el" href="a00067.html" target="_self">matrix.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00068_source.html"><span class="icondoc"></span></a><a class="el" href="a00068.html" target="_self">matrix_access.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00069_source.html"><span class="icondoc"></span></a><a class="el" href="a00069.html" target="_self">matrix_cross_product.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00070_source.html"><span class="icondoc"></span></a><a class="el" href="a00070.html" target="_self">matrix_decompose.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00071_source.html"><span class="icondoc"></span></a><a class="el" href="a00071.html" target="_self">matrix_integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00072_source.html"><span class="icondoc"></span></a><a class="el" href="a00072.html" target="_self">matrix_interpolation.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00073_source.html"><span class="icondoc"></span></a><a class="el" href="a00073.html" target="_self">matrix_inverse.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00074_source.html"><span class="icondoc"></span></a><a class="el" href="a00074.html" target="_self">matrix_major_storage.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00075_source.html"><span class="icondoc"></span></a><a class="el" href="a00075.html" target="_self">matrix_operation.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00076_source.html"><span class="icondoc"></span></a><a class="el" href="a00076.html" target="_self">matrix_query.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00077_source.html"><span class="icondoc"></span></a><a class="el" href="a00077.html" target="_self">matrix_transform.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00078_source.html"><span class="icondoc"></span></a><a class="el" href="a00078.html" target="_self">matrix_transform_2d.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00079_source.html"><span class="icondoc"></span></a><a class="el" href="a00079.html" target="_self">mixed_product.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00080_source.html"><span class="icondoc"></span></a><a class="el" href="a00080.html" target="_self">noise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00081_source.html"><span class="icondoc"></span></a><a class="el" href="a00081.html" target="_self">norm.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00082_source.html"><span class="icondoc"></span></a><a class="el" href="a00082.html" target="_self">normal.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00083_source.html"><span class="icondoc"></span></a><a class="el" href="a00083.html" target="_self">normalize_dot.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00084_source.html"><span class="icondoc"></span></a><a class="el" href="a00084.html" target="_self">number_precision.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00085_source.html"><span class="icondoc"></span></a><a class="el" href="a00085.html" target="_self">optimum_pow.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00086_source.html"><span class="icondoc"></span></a><a class="el" href="a00086.html" target="_self">orthonormalize.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00087_source.html"><span class="icondoc"></span></a><a class="el" href="a00087.html" target="_self">gtc/packing.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00088_source.html"><span class="icondoc"></span></a><a class="el" href="a00088.html" target="_self">packing.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00089_source.html"><span class="icondoc"></span></a><b>pages.doxy</b></td><td class="desc"></td></tr>
-<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00090_source.html"><span class="icondoc"></span></a><a class="el" href="a00090.html" target="_self">perpendicular.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00091_source.html"><span class="icondoc"></span></a><a class="el" href="a00091.html" target="_self">polar_coordinates.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00092_source.html"><span class="icondoc"></span></a><a class="el" href="a00092.html" target="_self">precision.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00093_source.html"><span class="icondoc"></span></a><a class="el" href="a00093.html" target="_self">projection.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00094_source.html"><span class="icondoc"></span></a><a class="el" href="a00094.html" target="_self">gtc/quaternion.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00095_source.html"><span class="icondoc"></span></a><a class="el" href="a00095.html" target="_self">gtx/quaternion.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_95_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00096_source.html"><span class="icondoc"></span></a><a class="el" href="a00096.html" target="_self">random.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00097_source.html"><span class="icondoc"></span></a><a class="el" href="a00097.html" target="_self">range.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_97_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00098_source.html"><span class="icondoc"></span></a><a class="el" href="a00098.html" target="_self">raw_data.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00099_source.html"><span class="icondoc"></span></a><a class="el" href="a00099.html" target="_self">reciprocal.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00100_source.html"><span class="icondoc"></span></a><a class="el" href="a00100.html" target="_self">rotate_normalized_axis.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00101_source.html"><span class="icondoc"></span></a><a class="el" href="a00101.html" target="_self">rotate_vector.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00102_source.html"><span class="icondoc"></span></a><a class="el" href="a00102.html" target="_self">round.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00103_source.html"><span class="icondoc"></span></a><a class="el" href="a00103.html" target="_self">scalar_multiplication.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00104_source.html"><span class="icondoc"></span></a><a class="el" href="a00104.html" target="_self">scalar_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00105_source.html"><span class="icondoc"></span></a><a class="el" href="a00105.html" target="_self">setup.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_105_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00106_source.html"><span class="icondoc"></span></a><a class="el" href="a00106.html" target="_self">simd_mat4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00107_source.html"><span class="icondoc"></span></a><a class="el" href="a00107.html" target="_self">simd_quat.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00108_source.html"><span class="icondoc"></span></a><a class="el" href="a00108.html" target="_self">simd_vec4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00109_source.html"><span class="icondoc"></span></a><a class="el" href="a00109.html" target="_self">spline.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00110_source.html"><span class="icondoc"></span></a><a class="el" href="a00110.html" target="_self">std_based_type.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00111_source.html"><span class="icondoc"></span></a><a class="el" href="a00111.html" target="_self">string_cast.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00112_source.html"><span class="icondoc"></span></a><a class="el" href="a00112.html" target="_self">transform.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00113_source.html"><span class="icondoc"></span></a><a class="el" href="a00113.html" target="_self">transform2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00114_source.html"><span class="icondoc"></span></a><a class="el" href="a00114.html" target="_self">trigonometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00115_source.html"><span class="icondoc"></span></a><a class="el" href="a00115.html" target="_self">type_aligned.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00116_source.html"><span class="icondoc"></span></a><a class="el" href="a00116.html" target="_self">type_float.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00117_source.html"><span class="icondoc"></span></a><a class="el" href="a00117.html" target="_self">type_gentype.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00118_source.html"><span class="icondoc"></span></a><a class="el" href="a00118.html" target="_self">type_half.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00119_source.html"><span class="icondoc"></span></a><a class="el" href="a00119.html" target="_self">type_int.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_119_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00120_source.html"><span class="icondoc"></span></a><a class="el" href="a00120.html" target="_self">type_mat.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00121_source.html"><span class="icondoc"></span></a><a class="el" href="a00121.html" target="_self">type_mat2x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_121_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00122_source.html"><span class="icondoc"></span></a><a class="el" href="a00122.html" target="_self">type_mat2x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_122_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00123_source.html"><span class="icondoc"></span></a><a class="el" href="a00123.html" target="_self">type_mat2x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_123_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00124_source.html"><span class="icondoc"></span></a><a class="el" href="a00124.html" target="_self">type_mat3x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_124_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00125_source.html"><span class="icondoc"></span></a><a class="el" href="a00125.html" target="_self">type_mat3x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00126_source.html"><span class="icondoc"></span></a><a class="el" href="a00126.html" target="_self">type_mat3x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00127_source.html"><span class="icondoc"></span></a><a class="el" href="a00127.html" target="_self">type_mat4x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_127_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00128_source.html"><span class="icondoc"></span></a><a class="el" href="a00128.html" target="_self">type_mat4x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_128_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00129_source.html"><span class="icondoc"></span></a><a class="el" href="a00129.html" target="_self">type_mat4x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00130_source.html"><span class="icondoc"></span></a><a class="el" href="a00130.html" target="_self">type_precision.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_130_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00131_source.html"><span class="icondoc"></span></a><a class="el" href="a00131.html" target="_self">type_ptr.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_131_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00132_source.html"><span class="icondoc"></span></a><a class="el" href="a00132.html" target="_self">type_vec.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_132_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00133_source.html"><span class="icondoc"></span></a><a class="el" href="a00133.html" target="_self">type_vec1.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_133_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00134_source.html"><span class="icondoc"></span></a><a class="el" href="a00134.html" target="_self">type_vec2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_134_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00135_source.html"><span class="icondoc"></span></a><a class="el" href="a00135.html" target="_self">type_vec3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_135_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00136_source.html"><span class="icondoc"></span></a><a class="el" href="a00136.html" target="_self">type_vec4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_136_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00137_source.html"><span class="icondoc"></span></a><a class="el" href="a00137.html" target="_self">ulp.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_137_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00138_source.html"><span class="icondoc"></span></a><a class="el" href="a00138.html" target="_self">vec1.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_138_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00139_source.html"><span class="icondoc"></span></a><a class="el" href="a00139.html" target="_self">vec2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_139_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00140_source.html"><span class="icondoc"></span></a><a class="el" href="a00140.html" target="_self">vec3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_140_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00141_source.html"><span class="icondoc"></span></a><a class="el" href="a00141.html" target="_self">vec4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_141_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00142_source.html"><span class="icondoc"></span></a><a class="el" href="a00142.html" target="_self">vector_angle.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_142_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00143_source.html"><span class="icondoc"></span></a><a class="el" href="a00143.html" target="_self">vector_query.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_143_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00144_source.html"><span class="icondoc"></span></a><a class="el" href="a00144.html" target="_self">vector_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_144_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00145_source.html"><span class="icondoc"></span></a><a class="el" href="a00145.html" target="_self">wrap.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00001_source.html"><span class="icondoc"></span></a><a class="el" href="a00001.html" target="_self">_features.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00002_source.html"><span class="icondoc"></span></a><a class="el" href="a00002.html" target="_self">_fixes.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00003_source.html"><span class="icondoc"></span></a><a class="el" href="a00003.html" target="_self">_noise.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00004_source.html"><span class="icondoc"></span></a><a class="el" href="a00004.html" target="_self">_swizzle.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00005_source.html"><span class="icondoc"></span></a><a class="el" href="a00005.html" target="_self">_swizzle_func.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00006_source.html"><span class="icondoc"></span></a><a class="el" href="a00006.html" target="_self">_vectorize.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00007_source.html"><span class="icondoc"></span></a><a class="el" href="a00007.html" target="_self">associated_min_max.hpp</a></td><td class="desc"><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a> </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00008_source.html"><span class="icondoc"></span></a><a class="el" href="a00008.html" target="_self">bit.hpp</a></td><td class="desc"><a class="el" href="a00182.html">GLM_GTX_bit</a> </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00009_source.html"><span class="icondoc"></span></a><a class="el" href="a00009.html" target="_self">bitfield.hpp</a></td><td class="desc"><a class="el" href="a00159.html">GLM_GTC_bitfield</a> </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00010_source.html"><span class="icondoc"></span></a><a class="el" href="a00010.html" target="_self">closest_point.hpp</a></td><td class="desc"><a class="el" href="a00183.html">GLM_GTX_closest_point</a> </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00011_source.html"><span class="icondoc"></span></a><a class="el" href="a00011.html" target="_self">color_encoding.hpp</a></td><td class="desc"><a class="el" href="a00160.html">GLM_GTC_color_encoding</a> </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00012_source.html"><span class="icondoc"></span></a><a class="el" href="a00012.html" target="_self">gtc/color_space.hpp</a></td><td class="desc"><a class="el" href="a00161.html">GLM_GTC_color_space</a> </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00013_source.html"><span class="icondoc"></span></a><a class="el" href="a00013.html" target="_self">gtx/color_space.hpp</a></td><td class="desc"><a class="el" href="a00184.html">GLM_GTX_color_space</a> </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00014_source.html"><span class="icondoc"></span></a><a class="el" href="a00014.html" target="_self">color_space_YCoCg.hpp</a></td><td class="desc"><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a> </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00015_source.html"><span class="icondoc"></span></a><a class="el" href="a00015.html" target="_self">common.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00016_source.html"><span class="icondoc"></span></a><a class="el" href="a00016.html" target="_self">gtx/common.hpp</a></td><td class="desc"><a class="el" href="a00186.html">GLM_GTX_common</a> </td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00017_source.html"><span class="icondoc"></span></a><a class="el" href="a00017.html" target="_self">compatibility.hpp</a></td><td class="desc"><a class="el" href="a00187.html">GLM_GTX_compatibility</a> </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00018_source.html"><span class="icondoc"></span></a><a class="el" href="a00018.html" target="_self">component_wise.hpp</a></td><td class="desc"><a class="el" href="a00188.html">GLM_GTX_component_wise</a> </td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00019_source.html"><span class="icondoc"></span></a><a class="el" href="a00019.html" target="_self">constants.hpp</a></td><td class="desc"><a class="el" href="a00162.html">GLM_GTC_constants</a> </td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00020_source.html"><span class="icondoc"></span></a><a class="el" href="a00020.html" target="_self">dual_quaternion.hpp</a></td><td class="desc"><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a> </td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00021_source.html"><span class="icondoc"></span></a><a class="el" href="a00021.html" target="_self">epsilon.hpp</a></td><td class="desc"><a class="el" href="a00163.html">GLM_GTC_epsilon</a> </td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00022_source.html"><span class="icondoc"></span></a><a class="el" href="a00022.html" target="_self">euler_angles.hpp</a></td><td class="desc"><a class="el" href="a00190.html">GLM_GTX_euler_angles</a> </td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00023_source.html"><span class="icondoc"></span></a><a class="el" href="a00023.html" target="_self">exponential.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00024_source.html"><span class="icondoc"></span></a><a class="el" href="a00024.html" target="_self">ext.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> (Dependence) </td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00025_source.html"><span class="icondoc"></span></a><a class="el" href="a00025.html" target="_self">extend.hpp</a></td><td class="desc"><a class="el" href="a00191.html">GLM_GTX_extend</a> </td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00026_source.html"><span class="icondoc"></span></a><a class="el" href="a00026.html" target="_self">extended_min_max.hpp</a></td><td class="desc">gtx_extended_min_max </td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00027_source.html"><span class="icondoc"></span></a><a class="el" href="a00027.html" target="_self">fast_exponential.hpp</a></td><td class="desc"><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a> </td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00028_source.html"><span class="icondoc"></span></a><a class="el" href="a00028.html" target="_self">fast_square_root.hpp</a></td><td class="desc"><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a> </td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00029_source.html"><span class="icondoc"></span></a><a class="el" href="a00029.html" target="_self">fast_trigonometry.hpp</a></td><td class="desc"><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a> </td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00030_source.html"><span class="icondoc"></span></a><a class="el" href="a00030.html" target="_self">func_common.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00031_source.html"><span class="icondoc"></span></a><a class="el" href="a00031.html" target="_self">func_exponential.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00032_source.html"><span class="icondoc"></span></a><a class="el" href="a00032.html" target="_self">func_geometric.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00033_source.html"><span class="icondoc"></span></a><a class="el" href="a00033.html" target="_self">func_integer.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00034_source.html"><span class="icondoc"></span></a><a class="el" href="a00034.html" target="_self">func_matrix.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00035_source.html"><span class="icondoc"></span></a><a class="el" href="a00035.html" target="_self">func_packing.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00036_source.html"><span class="icondoc"></span></a><a class="el" href="a00036.html" target="_self">func_trigonometric.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00037_source.html"><span class="icondoc"></span></a><a class="el" href="a00037.html" target="_self">func_vector_relational.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00038_source.html"><span class="icondoc"></span></a><a class="el" href="a00038.html" target="_self">functions.hpp</a></td><td class="desc"><a class="el" href="a00164.html">GLM_GTC_functions</a> </td></tr>
+<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00039_source.html"><span class="icondoc"></span></a><a class="el" href="a00039.html" target="_self">fwd.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00040_source.html"><span class="icondoc"></span></a><a class="el" href="a00040.html" target="_self">geometric.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00041_source.html"><span class="icondoc"></span></a><a class="el" href="a00041.html" target="_self">glm.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00042_source.html"><span class="icondoc"></span></a><a class="el" href="a00042.html" target="_self">gradient_paint.hpp</a></td><td class="desc"><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a> </td></tr>
+<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00043_source.html"><span class="icondoc"></span></a><a class="el" href="a00043.html" target="_self">handed_coordinate_space.hpp</a></td><td class="desc"><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a> </td></tr>
+<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00044_source.html"><span class="icondoc"></span></a><a class="el" href="a00044.html" target="_self">hash.hpp</a></td><td class="desc"><a class="el" href="a00198.html">GLM_GTX_hash</a> </td></tr>
+<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00045_source.html"><span class="icondoc"></span></a><a class="el" href="a00045.html" target="_self">gtc/integer.hpp</a></td><td class="desc"><a class="el" href="a00165.html">GLM_GTC_integer</a> </td></tr>
+<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00046_source.html"><span class="icondoc"></span></a><a class="el" href="a00046.html" target="_self">gtx/integer.hpp</a></td><td class="desc"><a class="el" href="a00199.html">GLM_GTX_integer</a> </td></tr>
+<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00047_source.html"><span class="icondoc"></span></a><a class="el" href="a00047.html" target="_self">integer.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00048_source.html"><span class="icondoc"></span></a><a class="el" href="a00048.html" target="_self">intersect.hpp</a></td><td class="desc"><a class="el" href="a00200.html">GLM_GTX_intersect</a> </td></tr>
+<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00049_source.html"><span class="icondoc"></span></a><a class="el" href="a00049.html" target="_self">io.hpp</a></td><td class="desc"><a class="el" href="a00201.html">GLM_GTX_io</a> </td></tr>
+<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00050_source.html"><span class="icondoc"></span></a><a class="el" href="a00050.html" target="_self">log_base.hpp</a></td><td class="desc"><a class="el" href="a00202.html">GLM_GTX_log_base</a> </td></tr>
+<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00051_source.html"><span class="icondoc"></span></a><b>man.doxy</b></td><td class="desc"></td></tr>
+<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00052_source.html"><span class="icondoc"></span></a><a class="el" href="a00052.html" target="_self">mat2x2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00053_source.html"><span class="icondoc"></span></a><a class="el" href="a00053.html" target="_self">mat2x3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00054_source.html"><span class="icondoc"></span></a><a class="el" href="a00054.html" target="_self">mat2x4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00055_source.html"><span class="icondoc"></span></a><a class="el" href="a00055.html" target="_self">mat3x2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00056_source.html"><span class="icondoc"></span></a><a class="el" href="a00056.html" target="_self">mat3x3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00057_source.html"><span class="icondoc"></span></a><a class="el" href="a00057.html" target="_self">mat3x4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00058_source.html"><span class="icondoc"></span></a><a class="el" href="a00058.html" target="_self">mat4x2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00059_source.html"><span class="icondoc"></span></a><a class="el" href="a00059.html" target="_self">mat4x3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00060_source.html"><span class="icondoc"></span></a><a class="el" href="a00060.html" target="_self">mat4x4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00061_source.html"><span class="icondoc"></span></a><a class="el" href="a00061.html" target="_self">matrix.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00062_source.html"><span class="icondoc"></span></a><a class="el" href="a00062.html" target="_self">matrix_access.hpp</a></td><td class="desc"><a class="el" href="a00166.html">GLM_GTC_matrix_access</a> </td></tr>
+<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00063_source.html"><span class="icondoc"></span></a><a class="el" href="a00063.html" target="_self">matrix_cross_product.hpp</a></td><td class="desc"><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a> </td></tr>
+<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00064_source.html"><span class="icondoc"></span></a><a class="el" href="a00064.html" target="_self">matrix_decompose.hpp</a></td><td class="desc"><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a> </td></tr>
+<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00065_source.html"><span class="icondoc"></span></a><a class="el" href="a00065.html" target="_self">matrix_integer.hpp</a></td><td class="desc"><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a> </td></tr>
+<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00066_source.html"><span class="icondoc"></span></a><a class="el" href="a00066.html" target="_self">matrix_interpolation.hpp</a></td><td class="desc"><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a> </td></tr>
+<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00067_source.html"><span class="icondoc"></span></a><a class="el" href="a00067.html" target="_self">matrix_inverse.hpp</a></td><td class="desc"><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a> </td></tr>
+<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00068_source.html"><span class="icondoc"></span></a><a class="el" href="a00068.html" target="_self">matrix_major_storage.hpp</a></td><td class="desc"><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a> </td></tr>
+<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00069_source.html"><span class="icondoc"></span></a><a class="el" href="a00069.html" target="_self">matrix_operation.hpp</a></td><td class="desc"><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a> </td></tr>
+<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00070_source.html"><span class="icondoc"></span></a><a class="el" href="a00070.html" target="_self">matrix_query.hpp</a></td><td class="desc"><a class="el" href="a00208.html">GLM_GTX_matrix_query</a> </td></tr>
+<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00071_source.html"><span class="icondoc"></span></a><a class="el" href="a00071.html" target="_self">matrix_transform.hpp</a></td><td class="desc"><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a> </td></tr>
+<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00072_source.html"><span class="icondoc"></span></a><a class="el" href="a00072.html" target="_self">matrix_transform_2d.hpp</a></td><td class="desc"><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a> </td></tr>
+<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00073_source.html"><span class="icondoc"></span></a><a class="el" href="a00073.html" target="_self">mixed_product.hpp</a></td><td class="desc"><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a> </td></tr>
+<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00074_source.html"><span class="icondoc"></span></a><a class="el" href="a00074.html" target="_self">noise.hpp</a></td><td class="desc"><a class="el" href="a00170.html">GLM_GTC_noise</a> </td></tr>
+<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00075_source.html"><span class="icondoc"></span></a><a class="el" href="a00075.html" target="_self">norm.hpp</a></td><td class="desc"><a class="el" href="a00211.html">GLM_GTX_norm</a> </td></tr>
+<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00076_source.html"><span class="icondoc"></span></a><a class="el" href="a00076.html" target="_self">normal.hpp</a></td><td class="desc"><a class="el" href="a00212.html">GLM_GTX_normal</a> </td></tr>
+<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00077_source.html"><span class="icondoc"></span></a><a class="el" href="a00077.html" target="_self">normalize_dot.hpp</a></td><td class="desc"><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a> </td></tr>
+<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00078_source.html"><span class="icondoc"></span></a><a class="el" href="a00078.html" target="_self">number_precision.hpp</a></td><td class="desc"><a class="el" href="a00214.html">GLM_GTX_number_precision</a> </td></tr>
+<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00079_source.html"><span class="icondoc"></span></a><a class="el" href="a00079.html" target="_self">optimum_pow.hpp</a></td><td class="desc"><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a> </td></tr>
+<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00080_source.html"><span class="icondoc"></span></a><a class="el" href="a00080.html" target="_self">orthonormalize.hpp</a></td><td class="desc"><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a> </td></tr>
+<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00081_source.html"><span class="icondoc"></span></a><a class="el" href="a00081.html" target="_self">gtc/packing.hpp</a></td><td class="desc"><a class="el" href="a00171.html">GLM_GTC_packing</a> </td></tr>
+<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00082_source.html"><span class="icondoc"></span></a><a class="el" href="a00082.html" target="_self">packing.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00083_source.html"><span class="icondoc"></span></a><b>pages.doxy</b></td><td class="desc"></td></tr>
+<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00084_source.html"><span class="icondoc"></span></a><a class="el" href="a00084.html" target="_self">perpendicular.hpp</a></td><td class="desc"><a class="el" href="a00217.html">GLM_GTX_perpendicular</a> </td></tr>
+<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00085_source.html"><span class="icondoc"></span></a><a class="el" href="a00085.html" target="_self">polar_coordinates.hpp</a></td><td class="desc"><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a> </td></tr>
+<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00086_source.html"><span class="icondoc"></span></a><a class="el" href="a00086.html" target="_self">precision.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00087_source.html"><span class="icondoc"></span></a><a class="el" href="a00087.html" target="_self">projection.hpp</a></td><td class="desc"><a class="el" href="a00219.html">GLM_GTX_projection</a> </td></tr>
+<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00088_source.html"><span class="icondoc"></span></a><a class="el" href="a00088.html" target="_self">gtc/quaternion.hpp</a></td><td class="desc"><a class="el" href="a00172.html">GLM_GTC_quaternion</a> </td></tr>
+<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00089_source.html"><span class="icondoc"></span></a><a class="el" href="a00089.html" target="_self">gtx/quaternion.hpp</a></td><td class="desc"><a class="el" href="a00220.html">GLM_GTX_quaternion</a> </td></tr>
+<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00090_source.html"><span class="icondoc"></span></a><a class="el" href="a00090.html" target="_self">random.hpp</a></td><td class="desc"><a class="el" href="a00173.html">GLM_GTC_random</a> </td></tr>
+<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00091_source.html"><span class="icondoc"></span></a><a class="el" href="a00091.html" target="_self">range.hpp</a></td><td class="desc"><a class="el" href="a00221.html">GLM_GTX_range</a> </td></tr>
+<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00092_source.html"><span class="icondoc"></span></a><a class="el" href="a00092.html" target="_self">raw_data.hpp</a></td><td class="desc"><a class="el" href="a00222.html">GLM_GTX_raw_data</a> </td></tr>
+<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00093_source.html"><span class="icondoc"></span></a><a class="el" href="a00093.html" target="_self">reciprocal.hpp</a></td><td class="desc"><a class="el" href="a00174.html">GLM_GTC_reciprocal</a> </td></tr>
+<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00094_source.html"><span class="icondoc"></span></a><a class="el" href="a00094.html" target="_self">rotate_normalized_axis.hpp</a></td><td class="desc"><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a> </td></tr>
+<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00095_source.html"><span class="icondoc"></span></a><a class="el" href="a00095.html" target="_self">rotate_vector.hpp</a></td><td class="desc"><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a> </td></tr>
+<tr id="row_95_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00096_source.html"><span class="icondoc"></span></a><a class="el" href="a00096.html" target="_self">round.hpp</a></td><td class="desc"><a class="el" href="a00175.html">GLM_GTC_round</a> </td></tr>
+<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00097_source.html"><span class="icondoc"></span></a><a class="el" href="a00097.html" target="_self">scalar_multiplication.hpp</a></td><td class="desc"><a class="el" href="a00154.html">GTX Extensions (Experimental)</a> </td></tr>
+<tr id="row_97_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00098_source.html"><span class="icondoc"></span></a><a class="el" href="a00098.html" target="_self">scalar_relational.hpp</a></td><td class="desc"><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a> </td></tr>
+<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00099_source.html"><span class="icondoc"></span></a><a class="el" href="a00099.html" target="_self">setup.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00100_source.html"><span class="icondoc"></span></a><a class="el" href="a00100.html" target="_self">spline.hpp</a></td><td class="desc"><a class="el" href="a00226.html">GLM_GTX_spline</a> </td></tr>
+<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00101_source.html"><span class="icondoc"></span></a><a class="el" href="a00101.html" target="_self">std_based_type.hpp</a></td><td class="desc"><a class="el" href="a00227.html">GLM_GTX_std_based_type</a> </td></tr>
+<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00102_source.html"><span class="icondoc"></span></a><a class="el" href="a00102.html" target="_self">string_cast.hpp</a></td><td class="desc"><a class="el" href="a00228.html">GLM_GTX_string_cast</a> </td></tr>
+<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00103_source.html"><span class="icondoc"></span></a><a class="el" href="a00103.html" target="_self">transform.hpp</a></td><td class="desc"><a class="el" href="a00229.html">GLM_GTX_transform</a> </td></tr>
+<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00104_source.html"><span class="icondoc"></span></a><a class="el" href="a00104.html" target="_self">transform2.hpp</a></td><td class="desc"><a class="el" href="a00230.html">GLM_GTX_transform2</a> </td></tr>
+<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00105_source.html"><span class="icondoc"></span></a><a class="el" href="a00105.html" target="_self">trigonometric.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_105_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00106_source.html"><span class="icondoc"></span></a><a class="el" href="a00106.html" target="_self">gtc/type_aligned.hpp</a></td><td class="desc"><a class="el" href="a00176.html">GLM_GTC_type_aligned</a> </td></tr>
+<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00107_source.html"><span class="icondoc"></span></a><a class="el" href="a00107.html" target="_self">gtx/type_aligned.hpp</a></td><td class="desc"><a class="el" href="a00231.html">GLM_GTX_type_aligned</a> </td></tr>
+<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00108_source.html"><span class="icondoc"></span></a><a class="el" href="a00108.html" target="_self">type_float.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00109_source.html"><span class="icondoc"></span></a><a class="el" href="a00109.html" target="_self">type_gentype.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00110_source.html"><span class="icondoc"></span></a><a class="el" href="a00110.html" target="_self">type_half.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00111_source.html"><span class="icondoc"></span></a><a class="el" href="a00111.html" target="_self">type_int.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00112_source.html"><span class="icondoc"></span></a><a class="el" href="a00112.html" target="_self">type_mat.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00113_source.html"><span class="icondoc"></span></a><a class="el" href="a00113.html" target="_self">type_mat2x2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00114_source.html"><span class="icondoc"></span></a><a class="el" href="a00114.html" target="_self">type_mat2x3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00115_source.html"><span class="icondoc"></span></a><a class="el" href="a00115.html" target="_self">type_mat2x4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00116_source.html"><span class="icondoc"></span></a><a class="el" href="a00116.html" target="_self">type_mat3x2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00117_source.html"><span class="icondoc"></span></a><a class="el" href="a00117.html" target="_self">type_mat3x3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00118_source.html"><span class="icondoc"></span></a><a class="el" href="a00118.html" target="_self">type_mat3x4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00119_source.html"><span class="icondoc"></span></a><a class="el" href="a00119.html" target="_self">type_mat4x2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_119_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00120_source.html"><span class="icondoc"></span></a><a class="el" href="a00120.html" target="_self">type_mat4x3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00121_source.html"><span class="icondoc"></span></a><a class="el" href="a00121.html" target="_self">type_mat4x4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_121_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00122_source.html"><span class="icondoc"></span></a><a class="el" href="a00122.html" target="_self">type_precision.hpp</a></td><td class="desc"><a class="el" href="a00177.html">GLM_GTC_type_precision</a> </td></tr>
+<tr id="row_122_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00123_source.html"><span class="icondoc"></span></a><a class="el" href="a00123.html" target="_self">type_ptr.hpp</a></td><td class="desc"><a class="el" href="a00178.html">GLM_GTC_type_ptr</a> </td></tr>
+<tr id="row_123_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00124_source.html"><span class="icondoc"></span></a><a class="el" href="a00124.html" target="_self">type_trait.hpp</a></td><td class="desc"><a class="el" href="a00232.html">GLM_GTX_type_trait</a> </td></tr>
+<tr id="row_124_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00125_source.html"><span class="icondoc"></span></a><a class="el" href="a00125.html" target="_self">type_vec.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00126_source.html"><span class="icondoc"></span></a><a class="el" href="a00126.html" target="_self">type_vec1.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00127_source.html"><span class="icondoc"></span></a><a class="el" href="a00127.html" target="_self">type_vec2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_127_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00128_source.html"><span class="icondoc"></span></a><a class="el" href="a00128.html" target="_self">type_vec3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_128_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00129_source.html"><span class="icondoc"></span></a><a class="el" href="a00129.html" target="_self">type_vec4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00130_source.html"><span class="icondoc"></span></a><a class="el" href="a00130.html" target="_self">ulp.hpp</a></td><td class="desc"><a class="el" href="a00179.html">GLM_GTC_ulp</a> </td></tr>
+<tr id="row_130_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00131_source.html"><span class="icondoc"></span></a><a class="el" href="a00131.html" target="_self">vec1.hpp</a></td><td class="desc"><a class="el" href="a00180.html">GLM_GTC_vec1</a> </td></tr>
+<tr id="row_131_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00132_source.html"><span class="icondoc"></span></a><a class="el" href="a00132.html" target="_self">vec2.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_132_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00133_source.html"><span class="icondoc"></span></a><a class="el" href="a00133.html" target="_self">vec3.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_133_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00134_source.html"><span class="icondoc"></span></a><a class="el" href="a00134.html" target="_self">vec4.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_134_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00135_source.html"><span class="icondoc"></span></a><a class="el" href="a00135.html" target="_self">vec_swizzle.hpp</a></td><td class="desc"><a class="el" href="a00233.html">GLM_GTX_vec_swizzle</a> </td></tr>
+<tr id="row_135_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00136_source.html"><span class="icondoc"></span></a><a class="el" href="a00136.html" target="_self">vector_angle.hpp</a></td><td class="desc"><a class="el" href="a00234.html">GLM_GTX_vector_angle</a> </td></tr>
+<tr id="row_136_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00137_source.html"><span class="icondoc"></span></a><a class="el" href="a00137.html" target="_self">vector_query.hpp</a></td><td class="desc"><a class="el" href="a00235.html">GLM_GTX_vector_query</a> </td></tr>
+<tr id="row_137_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00138_source.html"><span class="icondoc"></span></a><a class="el" href="a00138.html" target="_self">vector_relational.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GLM Core</a> </td></tr>
+<tr id="row_138_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="a00139_source.html"><span class="icondoc"></span></a><a class="el" href="a00139.html" target="_self">wrap.hpp</a></td><td class="desc"><a class="el" href="a00236.html">GLM_GTX_wrap</a> </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/index.html b/3rdparty/glm/doc/api/index.html
index f0e5be72417..6bc66db9463 100644
--- a/3rdparty/glm/doc/api/index.html
+++ b/3rdparty/glm/doc/api/index.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: OpenGL Mathematics</title>
+<title>0.9.9 API documenation: OpenGL Mathematics</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,14 +33,47 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="headertitle">
<div class="title">OpenGL Mathematics </div> </div>
diff --git a/3rdparty/glm/doc/api/logo-mini.png b/3rdparty/glm/doc/api/logo-mini.png
new file mode 100644
index 00000000000..48d60ab1148
--- /dev/null
+++ b/3rdparty/glm/doc/api/logo-mini.png
Binary files differ
diff --git a/3rdparty/glm/doc/api/logo.png b/3rdparty/glm/doc/api/logo.png
deleted file mode 100644
index 80b5f9d4f9e..00000000000
--- a/3rdparty/glm/doc/api/logo.png
+++ /dev/null
Binary files differ
diff --git a/3rdparty/glm/doc/api/modules.html b/3rdparty/glm/doc/api/modules.html
index d439843b43d..7b8fa9c7b20 100644
--- a/3rdparty/glm/doc/api/modules.html
+++ b/3rdparty/glm/doc/api/modules.html
@@ -4,10 +4,16 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Modules</title>
+<title>0.9.9 API documenation: Modules</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -16,9 +22,9 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.9 API documenation
</div>
</td>
</tr>
@@ -27,14 +33,47 @@
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
</ul>
</div>
</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
<div class="header">
<div class="headertitle">
<div class="title">Modules</div> </div>
@@ -42,98 +81,99 @@
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><a class="el" href="a00160.html" target="_self">GTC Extensions (Stable)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00166.html" target="_self">GLM_GTC_bitfield</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00167.html" target="_self">GLM_GTC_color_space</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00168.html" target="_self">GLM_GTC_constants</a></td><td class="desc">Provide a list of constants and precomputed useful values </td></tr>
-<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00169.html" target="_self">GLM_GTC_epsilon</a></td><td class="desc">Comparison functions for a user defined epsilon values </td></tr>
-<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00170.html" target="_self">GLM_GTC_integer</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00171.html" target="_self">GLM_GTC_matrix_access</a></td><td class="desc">Defines functions to access rows or columns of a matrix easily </td></tr>
-<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00172.html" target="_self">GLM_GTC_matrix_integer</a></td><td class="desc">Defines a number of matrices with integer types </td></tr>
-<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00173.html" target="_self">GLM_GTC_matrix_inverse</a></td><td class="desc">Defines additional matrix inverting functions </td></tr>
-<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00174.html" target="_self">GLM_GTC_matrix_transform</a></td><td class="desc">Defines functions that generate common transformation matrices </td></tr>
-<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00175.html" target="_self">GLM_GTC_noise</a></td><td class="desc">Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> &lt;<a class="el" href="a00080.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/noise.hpp</a>&gt; need to be included to use these functionalities </td></tr>
-<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00176.html" target="_self">GLM_GTC_packing</a></td><td class="desc">This extension provides a set of function to convert vertors to packed formats </td></tr>
-<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00177.html" target="_self">GLM_GTC_quaternion</a></td><td class="desc">Defines a templated quaternion type and several quaternion operations </td></tr>
-<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00178.html" target="_self">GLM_GTC_random</a></td><td class="desc">Generate random number from various distribution methods </td></tr>
-<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00179.html" target="_self">GLM_GTC_reciprocal</a></td><td class="desc">Define secant, cosecant and cotangent functions </td></tr>
-<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00180.html" target="_self">GLM_GTC_round</a></td><td class="desc">Rounding value to specific boundings </td></tr>
-<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00181.html" target="_self">GLM_GTC_type_precision</a></td><td class="desc">Defines specific C++-based precision types </td></tr>
-<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00182.html" target="_self">GLM_GTC_type_ptr</a></td><td class="desc">Handles the interaction between pointers and vector, matrix types </td></tr>
-<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00183.html" target="_self">GLM_GTC_ulp</a></td><td class="desc">Allow the measurement of the accuracy of a function against a reference implementation </td></tr>
-<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00184.html" target="_self">GLM_GTC_vec1</a></td><td class="desc">Add vec1, ivec1, uvec1 and bvec1 types </td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><a class="el" href="a00161.html" target="_self">GTX Extensions (Experimental)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
-<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00185.html" target="_self">GLM_GTX_associated_min_max</a></td><td class="desc">Min and max functions that return associated values not the compared onces </td></tr>
-<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00186.html" target="_self">GLM_GTX_bit</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00187.html" target="_self">GLM_GTX_closest_point</a></td><td class="desc">Find the point on a straight line which is the closet of a point </td></tr>
-<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00188.html" target="_self">GLM_GTX_color_space</a></td><td class="desc">Related to RGB to HSV conversions and operations </td></tr>
-<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00189.html" target="_self">GLM_GTX_color_space_YCoCg</a></td><td class="desc">RGB to YCoCg conversions and operations </td></tr>
-<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00190.html" target="_self">GLM_GTX_common</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
-<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00191.html" target="_self">GLM_GTX_compatibility</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
-<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00192.html" target="_self">GLM_GTX_component_wise</a></td><td class="desc">Operations between components of a type </td></tr>
-<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00193.html" target="_self">GLM_GTX_dual_quaternion</a></td><td class="desc">Defines a templated dual-quaternion type and several dual-quaternion operations </td></tr>
-<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00194.html" target="_self">GLM_GTX_euler_angles</a></td><td class="desc">Build matrices from Euler angles </td></tr>
-<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00195.html" target="_self">GLM_GTX_extend</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
-<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00196.html" target="_self">GLM_GTX_extented_min_max</a></td><td class="desc">Min and max functions for 3 to 4 parameters </td></tr>
-<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00197.html" target="_self">GLM_GTX_fast_exponential</a></td><td class="desc">Fast but less accurate implementations of exponential based functions </td></tr>
-<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00198.html" target="_self">GLM_GTX_fast_square_root</a></td><td class="desc">Fast but less accurate implementations of square root based functions </td></tr>
-<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00199.html" target="_self">GLM_GTX_fast_trigonometry</a></td><td class="desc">Fast but less accurate implementations of trigonometric functions </td></tr>
-<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00200.html" target="_self">GLM_GTX_gradient_paint</a></td><td class="desc">Functions that return the color of procedural gradient for specific coordinates </td></tr>
-<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00201.html" target="_self">GLM_GTX_handed_coordinate_space</a></td><td class="desc">To know if a set of three basis vectors defines a right or left-handed coordinate system </td></tr>
-<tr id="row_1_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00202.html" target="_self">GLM_GTX_hash</a></td><td class="desc">Add std::hash support for glm types </td></tr>
-<tr id="row_1_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00203.html" target="_self">GLM_GTX_integer</a></td><td class="desc">Add support for integer for core functions </td></tr>
-<tr id="row_1_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00204.html" target="_self">GLM_GTX_intersect</a></td><td class="desc">Add intersection functions </td></tr>
-<tr id="row_1_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00205.html" target="_self">GLM_GTX_io</a></td><td class="desc">Std::[w]ostream support for glm types </td></tr>
-<tr id="row_1_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00206.html" target="_self">GLM_GTX_log_base</a></td><td class="desc">Logarithm for any base </td></tr>
-<tr id="row_1_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00207.html" target="_self">GLM_GTX_matrix_cross_product</a></td><td class="desc">Build cross product matrices </td></tr>
-<tr id="row_1_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00208.html" target="_self">GLM_GTX_matrix_decompose</a></td><td class="desc">Decomposes a model matrix to translations, rotation and scale components </td></tr>
-<tr id="row_1_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00209.html" target="_self">GLM_GTX_matrix_interpolation</a></td><td class="desc">Allows to directly interpolate two exiciting matrices </td></tr>
-<tr id="row_1_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00210.html" target="_self">GLM_GTX_matrix_major_storage</a></td><td class="desc">Build matrices with specific matrix order, row or column </td></tr>
-<tr id="row_1_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00211.html" target="_self">GLM_GTX_matrix_operation</a></td><td class="desc">Build diagonal matrices from vectors </td></tr>
-<tr id="row_1_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00212.html" target="_self">GLM_GTX_matrix_query</a></td><td class="desc">Query to evaluate matrix properties </td></tr>
-<tr id="row_1_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00213.html" target="_self">GLM_GTX_matrix_transform_2d</a></td><td class="desc">Defines functions that generate common 2d transformation matrices </td></tr>
-<tr id="row_1_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00214.html" target="_self">GLM_GTX_mixed_producte</a></td><td class="desc">Mixed product of 3 vectors </td></tr>
-<tr id="row_1_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00215.html" target="_self">GLM_GTX_norm</a></td><td class="desc">Various ways to compute vector norms </td></tr>
-<tr id="row_1_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00216.html" target="_self">GLM_GTX_normal</a></td><td class="desc">Compute the normal of a triangle </td></tr>
-<tr id="row_1_32_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00217.html" target="_self">GLM_GTX_normalize_dot</a></td><td class="desc">Dot product of vectors that need to be normalize with a single square root </td></tr>
-<tr id="row_1_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00218.html" target="_self">GLM_GTX_number_precision</a></td><td class="desc">Defined size types </td></tr>
-<tr id="row_1_34_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00219.html" target="_self">GLM_GTX_optimum_pow</a></td><td class="desc">Integer exponentiation of power functions </td></tr>
-<tr id="row_1_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00220.html" target="_self">GLM_GTX_orthonormalize</a></td><td class="desc">Orthonormalize matrices </td></tr>
-<tr id="row_1_36_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00221.html" target="_self">GLM_GTX_perpendicular</a></td><td class="desc">Perpendicular of a vector from other one </td></tr>
-<tr id="row_1_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00222.html" target="_self">GLM_GTX_polar_coordinates</a></td><td class="desc">Conversion from Euclidean space to polar space and revert </td></tr>
-<tr id="row_1_38_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00223.html" target="_self">GLM_GTX_projection</a></td><td class="desc">Projection of a vector to other one </td></tr>
-<tr id="row_1_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00224.html" target="_self">GLM_GTX_quaternion</a></td><td class="desc">Extented quaternion types and functions </td></tr>
-<tr id="row_1_40_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00225.html" target="_self">GLM_GTX_range</a></td><td class="desc">Defines begin and end for vectors and matrices </td></tr>
-<tr id="row_1_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00226.html" target="_self">GLM_GTX_raw_data</a></td><td class="desc">Projection of a vector to other one </td></tr>
-<tr id="row_1_42_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00227.html" target="_self">GLM_GTX_rotate_normalized_axis</a></td><td class="desc">Quaternions and matrices rotations around normalized axis </td></tr>
-<tr id="row_1_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00228.html" target="_self">GLM_GTX_rotate_vector</a></td><td class="desc">Function to directly rotate a vector </td></tr>
-<tr id="row_1_44_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00229.html" target="_self">GLM_GTX_scalar_relational</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
-<tr id="row_1_45_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00230.html" target="_self">GLM_GTX_simd_mat4</a></td><td class="desc">SIMD implementation of mat4 type </td></tr>
-<tr id="row_1_46_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00231.html" target="_self">GLM_GTX_simd_quat</a></td><td class="desc">SIMD implementation of quat type </td></tr>
-<tr id="row_1_47_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00232.html" target="_self">GLM_GTX_simd_vec4</a></td><td class="desc">SIMD implementation of vec4 type </td></tr>
-<tr id="row_1_48_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00233.html" target="_self">GLM_GTX_spline</a></td><td class="desc">Spline functions </td></tr>
-<tr id="row_1_49_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00234.html" target="_self">GLM_GTX_std_based_type</a></td><td class="desc">Adds vector types based on STL value types </td></tr>
-<tr id="row_1_50_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00235.html" target="_self">GLM_GTX_string_cast</a></td><td class="desc">Setup strings for GLM type values </td></tr>
-<tr id="row_1_51_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00236.html" target="_self">GLM_GTX_transform</a></td><td class="desc">Add transformation matrices </td></tr>
-<tr id="row_1_52_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00237.html" target="_self">GLM_GTX_transform2</a></td><td class="desc">Add extra transformation matrices </td></tr>
-<tr id="row_1_53_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00238.html" target="_self">GLM_GTX_type_aligned</a></td><td class="desc">Defines aligned types </td></tr>
-<tr id="row_1_54_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00239.html" target="_self">GLM_GTX_vector_angle</a></td><td class="desc">Compute angle between vectors </td></tr>
-<tr id="row_1_55_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00240.html" target="_self">GLM_GTX_vector_query</a></td><td class="desc">Query informations of vector types </td></tr>
-<tr id="row_1_56_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00241.html" target="_self">GLM_GTX_wrap</a></td><td class="desc">Wrapping mode of texture coordinates </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><a class="el" href="a00162.html" target="_self">GLM Core</a></td><td class="desc">The core of GLM, which implements exactly and only the GLSL specification to the degree possible </td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00151.html" target="_self">Common functions</a></td><td class="desc">These all operate component-wise </td></tr>
-<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00152.html" target="_self">Exponential functions</a></td><td class="desc">These all operate component-wise </td></tr>
-<tr id="row_2_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00153.html" target="_self">Geometric functions</a></td><td class="desc">These operate on vectors as vectors, not component-wise </td></tr>
-<tr id="row_2_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00154.html" target="_self">Integer functions</a></td><td class="desc">These all operate component-wise </td></tr>
-<tr id="row_2_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00155.html" target="_self">Matrix functions</a></td><td class="desc">For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision </td></tr>
-<tr id="row_2_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00156.html" target="_self">Noise functions</a></td><td class="desc">Noise functions are stochastic functions that can be used to increase visual complexity </td></tr>
-<tr id="row_2_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00157.html" target="_self">Floating-Point Pack and Unpack Functions</a></td><td class="desc">These functions do not operate component-wise, rather as described in each case </td></tr>
-<tr id="row_2_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00158.html" target="_self">Angle and Trigonometry Functions</a></td><td class="desc">Function parameters specified as angle are assumed to be in units of radians </td></tr>
-<tr id="row_2_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00159.html" target="_self">Vector Relational Functions</a></td><td class="desc">Relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, ==, !=) are defined to operate on scalars and produce scalar Boolean results </td></tr>
-<tr id="row_2_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_9_" class="arrow" onclick="toggleFolder('2_9_')">&#9660;</span><a class="el" href="a00163.html" target="_self">Types</a></td><td class="desc">The standard types defined by the specification </td></tr>
-<tr id="row_2_9_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a class="el" href="a00164.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
-<tr id="row_2_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00164.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
-<tr id="row_2_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00165.html" target="_self">Template types</a></td><td class="desc">The generic template types used as the basis for the core types </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><a class="el" href="a00153.html" target="_self">GTC Extensions (Stable)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00159.html" target="_self">GLM_GTC_bitfield</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00160.html" target="_self">GLM_GTC_color_encoding</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00161.html" target="_self">GLM_GTC_color_space</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00162.html" target="_self">GLM_GTC_constants</a></td><td class="desc">Provide a list of constants and precomputed useful values </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00163.html" target="_self">GLM_GTC_epsilon</a></td><td class="desc">Comparison functions for a user defined epsilon values </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00164.html" target="_self">GLM_GTC_functions</a></td><td class="desc">List of useful common functions </td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00165.html" target="_self">GLM_GTC_integer</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00166.html" target="_self">GLM_GTC_matrix_access</a></td><td class="desc">Defines functions to access rows or columns of a matrix easily </td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00167.html" target="_self">GLM_GTC_matrix_integer</a></td><td class="desc">Defines a number of matrices with integer types </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00168.html" target="_self">GLM_GTC_matrix_inverse</a></td><td class="desc">Defines additional matrix inverting functions </td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00169.html" target="_self">GLM_GTC_matrix_transform</a></td><td class="desc">Defines functions that generate common transformation matrices </td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00170.html" target="_self">GLM_GTC_noise</a></td><td class="desc">Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> &lt;<a class="el" href="a00074.html" title="GLM_GTC_noise ">glm/gtc/noise.hpp</a>&gt; need to be included to use these functionalities </td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00171.html" target="_self">GLM_GTC_packing</a></td><td class="desc">This extension provides a set of function to convert vertors to packed formats </td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00172.html" target="_self">GLM_GTC_quaternion</a></td><td class="desc">Defines a templated quaternion type and several quaternion operations </td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00173.html" target="_self">GLM_GTC_random</a></td><td class="desc">Generate random number from various distribution methods </td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00174.html" target="_self">GLM_GTC_reciprocal</a></td><td class="desc">Define secant, cosecant and cotangent functions </td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00175.html" target="_self">GLM_GTC_round</a></td><td class="desc">Rounding value to specific boundings </td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00176.html" target="_self">GLM_GTC_type_aligned</a></td><td class="desc">Aligned types </td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00177.html" target="_self">GLM_GTC_type_precision</a></td><td class="desc">Defines specific C++-based precision types </td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00178.html" target="_self">GLM_GTC_type_ptr</a></td><td class="desc">Handles the interaction between pointers and vector, matrix types </td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00179.html" target="_self">GLM_GTC_ulp</a></td><td class="desc">Allow the measurement of the accuracy of a function against a reference implementation </td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00180.html" target="_self">GLM_GTC_vec1</a></td><td class="desc">Add vec1, ivec1, uvec1 and bvec1 types </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><a class="el" href="a00154.html" target="_self">GTX Extensions (Experimental)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
+<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00181.html" target="_self">GLM_GTX_associated_min_max</a></td><td class="desc">Min and max functions that return associated values not the compared onces </td></tr>
+<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00182.html" target="_self">GLM_GTX_bit</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00183.html" target="_self">GLM_GTX_closest_point</a></td><td class="desc">Find the point on a straight line which is the closet of a point </td></tr>
+<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00184.html" target="_self">GLM_GTX_color_space</a></td><td class="desc">Related to RGB to HSV conversions and operations </td></tr>
+<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00185.html" target="_self">GLM_GTX_color_space_YCoCg</a></td><td class="desc">RGB to YCoCg conversions and operations </td></tr>
+<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00186.html" target="_self">GLM_GTX_common</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
+<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00187.html" target="_self">GLM_GTX_compatibility</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
+<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00188.html" target="_self">GLM_GTX_component_wise</a></td><td class="desc">Operations between components of a type </td></tr>
+<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00189.html" target="_self">GLM_GTX_dual_quaternion</a></td><td class="desc">Defines a templated dual-quaternion type and several dual-quaternion operations </td></tr>
+<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00190.html" target="_self">GLM_GTX_euler_angles</a></td><td class="desc">Build matrices from Euler angles </td></tr>
+<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00191.html" target="_self">GLM_GTX_extend</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
+<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00192.html" target="_self">GLM_GTX_extented_min_max</a></td><td class="desc">Min and max functions for 3 to 4 parameters </td></tr>
+<tr id="row_1_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00193.html" target="_self">GLM_GTX_fast_exponential</a></td><td class="desc">Fast but less accurate implementations of exponential based functions </td></tr>
+<tr id="row_1_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00194.html" target="_self">GLM_GTX_fast_square_root</a></td><td class="desc">Fast but less accurate implementations of square root based functions </td></tr>
+<tr id="row_1_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00195.html" target="_self">GLM_GTX_fast_trigonometry</a></td><td class="desc">Fast but less accurate implementations of trigonometric functions </td></tr>
+<tr id="row_1_15_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00196.html" target="_self">GLM_GTX_gradient_paint</a></td><td class="desc">Functions that return the color of procedural gradient for specific coordinates </td></tr>
+<tr id="row_1_16_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00197.html" target="_self">GLM_GTX_handed_coordinate_space</a></td><td class="desc">To know if a set of three basis vectors defines a right or left-handed coordinate system </td></tr>
+<tr id="row_1_17_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00198.html" target="_self">GLM_GTX_hash</a></td><td class="desc">Add std::hash support for glm types </td></tr>
+<tr id="row_1_18_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00199.html" target="_self">GLM_GTX_integer</a></td><td class="desc">Add support for integer for core functions </td></tr>
+<tr id="row_1_19_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00200.html" target="_self">GLM_GTX_intersect</a></td><td class="desc">Add intersection functions </td></tr>
+<tr id="row_1_20_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00201.html" target="_self">GLM_GTX_io</a></td><td class="desc">Std::[w]ostream support for glm types </td></tr>
+<tr id="row_1_21_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00202.html" target="_self">GLM_GTX_log_base</a></td><td class="desc">Logarithm for any base </td></tr>
+<tr id="row_1_22_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00203.html" target="_self">GLM_GTX_matrix_cross_product</a></td><td class="desc">Build cross product matrices </td></tr>
+<tr id="row_1_23_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00204.html" target="_self">GLM_GTX_matrix_decompose</a></td><td class="desc">Decomposes a model matrix to translations, rotation and scale components </td></tr>
+<tr id="row_1_24_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00205.html" target="_self">GLM_GTX_matrix_interpolation</a></td><td class="desc">Allows to directly interpolate two exiciting matrices </td></tr>
+<tr id="row_1_25_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00206.html" target="_self">GLM_GTX_matrix_major_storage</a></td><td class="desc">Build matrices with specific matrix order, row or column </td></tr>
+<tr id="row_1_26_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00207.html" target="_self">GLM_GTX_matrix_operation</a></td><td class="desc">Build diagonal matrices from vectors </td></tr>
+<tr id="row_1_27_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00208.html" target="_self">GLM_GTX_matrix_query</a></td><td class="desc">Query to evaluate matrix properties </td></tr>
+<tr id="row_1_28_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00209.html" target="_self">GLM_GTX_matrix_transform_2d</a></td><td class="desc">Defines functions that generate common 2d transformation matrices </td></tr>
+<tr id="row_1_29_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00210.html" target="_self">GLM_GTX_mixed_producte</a></td><td class="desc">Mixed product of 3 vectors </td></tr>
+<tr id="row_1_30_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00211.html" target="_self">GLM_GTX_norm</a></td><td class="desc">Various ways to compute vector norms </td></tr>
+<tr id="row_1_31_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00212.html" target="_self">GLM_GTX_normal</a></td><td class="desc">Compute the normal of a triangle </td></tr>
+<tr id="row_1_32_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00213.html" target="_self">GLM_GTX_normalize_dot</a></td><td class="desc">Dot product of vectors that need to be normalize with a single square root </td></tr>
+<tr id="row_1_33_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00214.html" target="_self">GLM_GTX_number_precision</a></td><td class="desc">Defined size types </td></tr>
+<tr id="row_1_34_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00215.html" target="_self">GLM_GTX_optimum_pow</a></td><td class="desc">Integer exponentiation of power functions </td></tr>
+<tr id="row_1_35_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00216.html" target="_self">GLM_GTX_orthonormalize</a></td><td class="desc">Orthonormalize matrices </td></tr>
+<tr id="row_1_36_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00217.html" target="_self">GLM_GTX_perpendicular</a></td><td class="desc">Perpendicular of a vector from other one </td></tr>
+<tr id="row_1_37_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00218.html" target="_self">GLM_GTX_polar_coordinates</a></td><td class="desc">Conversion from Euclidean space to polar space and revert </td></tr>
+<tr id="row_1_38_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00219.html" target="_self">GLM_GTX_projection</a></td><td class="desc">Projection of a vector to other one </td></tr>
+<tr id="row_1_39_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00220.html" target="_self">GLM_GTX_quaternion</a></td><td class="desc">Extented quaternion types and functions </td></tr>
+<tr id="row_1_40_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00221.html" target="_self">GLM_GTX_range</a></td><td class="desc">Defines begin and end for vectors and matrices </td></tr>
+<tr id="row_1_41_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00222.html" target="_self">GLM_GTX_raw_data</a></td><td class="desc">Projection of a vector to other one </td></tr>
+<tr id="row_1_42_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00223.html" target="_self">GLM_GTX_rotate_normalized_axis</a></td><td class="desc">Quaternions and matrices rotations around normalized axis </td></tr>
+<tr id="row_1_43_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00224.html" target="_self">GLM_GTX_rotate_vector</a></td><td class="desc">Function to directly rotate a vector </td></tr>
+<tr id="row_1_44_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00225.html" target="_self">GLM_GTX_scalar_relational</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
+<tr id="row_1_45_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00226.html" target="_self">GLM_GTX_spline</a></td><td class="desc">Spline functions </td></tr>
+<tr id="row_1_46_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00227.html" target="_self">GLM_GTX_std_based_type</a></td><td class="desc">Adds vector types based on STL value types </td></tr>
+<tr id="row_1_47_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00228.html" target="_self">GLM_GTX_string_cast</a></td><td class="desc">Setup strings for GLM type values </td></tr>
+<tr id="row_1_48_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00229.html" target="_self">GLM_GTX_transform</a></td><td class="desc">Add transformation matrices </td></tr>
+<tr id="row_1_49_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00230.html" target="_self">GLM_GTX_transform2</a></td><td class="desc">Add extra transformation matrices </td></tr>
+<tr id="row_1_50_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00231.html" target="_self">GLM_GTX_type_aligned</a></td><td class="desc">Defines aligned types </td></tr>
+<tr id="row_1_51_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00232.html" target="_self">GLM_GTX_type_trait</a></td><td class="desc">Defines traits for each type </td></tr>
+<tr id="row_1_52_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00233.html" target="_self">GLM_GTX_vec_swizzle</a></td><td class="desc">Functions to perform swizzle operation </td></tr>
+<tr id="row_1_53_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00234.html" target="_self">GLM_GTX_vector_angle</a></td><td class="desc">Compute angle between vectors </td></tr>
+<tr id="row_1_54_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00235.html" target="_self">GLM_GTX_vector_query</a></td><td class="desc">Query informations of vector types </td></tr>
+<tr id="row_1_55_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00236.html" target="_self">GLM_GTX_wrap</a></td><td class="desc">Wrapping mode of texture coordinates </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><a class="el" href="a00155.html" target="_self">GLM Core</a></td><td class="desc">The core of GLM, which implements exactly and only the GLSL specification to the degree possible </td></tr>
+<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00145.html" target="_self">Common functions</a></td><td class="desc">These all operate component-wise </td></tr>
+<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00146.html" target="_self">Exponential functions</a></td><td class="desc">These all operate component-wise </td></tr>
+<tr id="row_2_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00147.html" target="_self">Geometric functions</a></td><td class="desc">These operate on vectors as vectors, not component-wise </td></tr>
+<tr id="row_2_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00148.html" target="_self">Integer functions</a></td><td class="desc">These all operate component-wise </td></tr>
+<tr id="row_2_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00149.html" target="_self">Matrix functions</a></td><td class="desc">For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision </td></tr>
+<tr id="row_2_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00150.html" target="_self">Floating-Point Pack and Unpack Functions</a></td><td class="desc">These functions do not operate component-wise, rather as described in each case </td></tr>
+<tr id="row_2_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00151.html" target="_self">Angle and Trigonometry Functions</a></td><td class="desc">Function parameters specified as angle are assumed to be in units of radians </td></tr>
+<tr id="row_2_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00152.html" target="_self">Vector Relational Functions</a></td><td class="desc">Relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, ==, !=) are defined to operate on scalars and produce scalar Boolean results </td></tr>
+<tr id="row_2_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_8_" class="arrow" onclick="toggleFolder('2_8_')">&#9660;</span><a class="el" href="a00156.html" target="_self">Types</a></td><td class="desc">The standard types defined by the specification </td></tr>
+<tr id="row_2_8_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a class="el" href="a00157.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
+<tr id="row_2_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00157.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
+<tr id="row_2_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="a00158.html" target="_self">Template types</a></td><td class="desc">The generic template types used as the basis for the core types </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/3rdparty/glm/doc/api/search/all_0.html b/3rdparty/glm/doc/api/search/all_0.html
new file mode 100644
index 00000000000..1d4695009a5
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_0.js b/3rdparty/glm/doc/api/search/all_0.js
new file mode 100644
index 00000000000..218fa5a7eda
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_0.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['_5ffeatures_2ehpp',['_features.hpp',['../a00001.html',1,'']]],
+ ['_5ffixes_2ehpp',['_fixes.hpp',['../a00002.html',1,'']]],
+ ['_5fnoise_2ehpp',['_noise.hpp',['../a00003.html',1,'']]],
+ ['_5fswizzle_2ehpp',['_swizzle.hpp',['../a00004.html',1,'']]],
+ ['_5fswizzle_5ffunc_2ehpp',['_swizzle_func.hpp',['../a00005.html',1,'']]],
+ ['_5fvectorize_2ehpp',['_vectorize.hpp',['../a00006.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_1.html b/3rdparty/glm/doc/api/search/all_1.html
new file mode 100644
index 00000000000..1fbc509c219
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_1.js b/3rdparty/glm/doc/api/search/all_1.js
new file mode 100644
index 00000000000..d595d2efc03
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_1.js
@@ -0,0 +1,97 @@
+var searchData=
+[
+ ['abs',['abs',['../a00145.html#ga693d77696ff36572a0da79efec965acd',1,'glm']]],
+ ['acos',['acos',['../a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc',1,'glm']]],
+ ['acosh',['acosh',['../a00151.html#ga3f368ad3e1883b60748ca2634d816104',1,'glm']]],
+ ['acot',['acot',['../a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d',1,'glm']]],
+ ['acoth',['acoth',['../a00174.html#gafaca98a7100170db8841f446282debfa',1,'glm']]],
+ ['acsc',['acsc',['../a00174.html#ga1b4bed91476b9b915e76b4a30236d330',1,'glm']]],
+ ['acsch',['acsch',['../a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576',1,'glm']]],
+ ['affineinverse',['affineInverse',['../a00168.html#gae0fcc5fc8783291f9702272de428fa0e',1,'glm']]],
+ ['aligned_5fbvec1',['aligned_bvec1',['../a00176.html#ga780a35f764020f553a9601a3fcdcd059',1,'glm']]],
+ ['aligned_5fbvec2',['aligned_bvec2',['../a00176.html#gae766b317c5afec852bfb3d74a3c54bc8',1,'glm']]],
+ ['aligned_5fbvec3',['aligned_bvec3',['../a00176.html#gae1964ba70d15915e5b710926decbb3cb',1,'glm']]],
+ ['aligned_5fbvec4',['aligned_bvec4',['../a00176.html#gae164a1f7879f828bc35e50b79d786b05',1,'glm']]],
+ ['aligned_5fdvec1',['aligned_dvec1',['../a00176.html#ga4974f46ae5a19415d91316960a53617a',1,'glm']]],
+ ['aligned_5fdvec2',['aligned_dvec2',['../a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0',1,'glm']]],
+ ['aligned_5fdvec3',['aligned_dvec3',['../a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0',1,'glm']]],
+ ['aligned_5fdvec4',['aligned_dvec4',['../a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5',1,'glm']]],
+ ['aligned_5fhighp_5fbvec2',['aligned_highp_bvec2',['../a00176.html#gac5ffd9396890b64e707ba47c76435dfe',1,'glm']]],
+ ['aligned_5fhighp_5fbvec3',['aligned_highp_bvec3',['../a00176.html#ga3adba191018d2de1dc2834a2ff5597d7',1,'glm']]],
+ ['aligned_5fhighp_5fbvec4',['aligned_highp_bvec4',['../a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc',1,'glm']]],
+ ['aligned_5fhighp_5fdvec2',['aligned_highp_dvec2',['../a00176.html#ga186b90f0ba86724e080d237f3f5f9417',1,'glm']]],
+ ['aligned_5fhighp_5fdvec3',['aligned_highp_dvec3',['../a00176.html#ga54f6765716867706643bde03211d600f',1,'glm']]],
+ ['aligned_5fhighp_5fdvec4',['aligned_highp_dvec4',['../a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e',1,'glm']]],
+ ['aligned_5fhighp_5fivec2',['aligned_highp_ivec2',['../a00176.html#gab6ddd9d1421eb610ddeb32705fed7026',1,'glm']]],
+ ['aligned_5fhighp_5fivec3',['aligned_highp_ivec3',['../a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e',1,'glm']]],
+ ['aligned_5fhighp_5fivec4',['aligned_highp_ivec4',['../a00176.html#ga1e3286a27b19f25801fb435b6d1225fb',1,'glm']]],
+ ['aligned_5fhighp_5fuvec2',['aligned_highp_uvec2',['../a00176.html#ga7366a38dc888164e623fc10663e97670',1,'glm']]],
+ ['aligned_5fhighp_5fuvec3',['aligned_highp_uvec3',['../a00176.html#ga967485a7e963365642ea17de62fe2a3f',1,'glm']]],
+ ['aligned_5fhighp_5fuvec4',['aligned_highp_uvec4',['../a00176.html#gac56a4ce85b6233998139a7c1ac337440',1,'glm']]],
+ ['aligned_5fhighp_5fvec2',['aligned_highp_vec2',['../a00176.html#gaea854184b9d574fc5e75b5709a4974e8',1,'glm']]],
+ ['aligned_5fhighp_5fvec3',['aligned_highp_vec3',['../a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36',1,'glm']]],
+ ['aligned_5fhighp_5fvec4',['aligned_highp_vec4',['../a00176.html#gae2938d64c6a46f721681607c2ab3f884',1,'glm']]],
+ ['aligned_5fivec1',['aligned_ivec1',['../a00176.html#ga76298aed82a439063c3d55980c84aa0b',1,'glm']]],
+ ['aligned_5fivec2',['aligned_ivec2',['../a00176.html#gae4f38fd2c86cee6940986197777b3ca4',1,'glm']]],
+ ['aligned_5fivec3',['aligned_ivec3',['../a00176.html#ga32794322d294e5ace7fed4a61896f270',1,'glm']]],
+ ['aligned_5fivec4',['aligned_ivec4',['../a00176.html#ga7f79eae5927c9033d84617e49f6f34e4',1,'glm']]],
+ ['aligned_5flowp_5fbvec2',['aligned_lowp_bvec2',['../a00176.html#ga524c702b82ae7ccaca896d374808c6d7',1,'glm']]],
+ ['aligned_5flowp_5fbvec3',['aligned_lowp_bvec3',['../a00176.html#ga21fb6238997b4a21848411b16bc34e93',1,'glm']]],
+ ['aligned_5flowp_5fbvec4',['aligned_lowp_bvec4',['../a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692',1,'glm']]],
+ ['aligned_5flowp_5fdvec2',['aligned_lowp_dvec2',['../a00176.html#gab70c189b4691715b3f7f0abb35c65b2f',1,'glm']]],
+ ['aligned_5flowp_5fdvec3',['aligned_lowp_dvec3',['../a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee',1,'glm']]],
+ ['aligned_5flowp_5fdvec4',['aligned_lowp_dvec4',['../a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71',1,'glm']]],
+ ['aligned_5flowp_5fivec2',['aligned_lowp_ivec2',['../a00176.html#gad69bf7c406a3cec994307473cb3da032',1,'glm']]],
+ ['aligned_5flowp_5fivec3',['aligned_lowp_ivec3',['../a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b',1,'glm']]],
+ ['aligned_5flowp_5fivec4',['aligned_lowp_ivec4',['../a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae',1,'glm']]],
+ ['aligned_5flowp_5fuvec2',['aligned_lowp_uvec2',['../a00176.html#ga15355ffc7ec7931b81ba76736b65e51a',1,'glm']]],
+ ['aligned_5flowp_5fuvec3',['aligned_lowp_uvec3',['../a00176.html#ga48c85299d98e8248f547a2c07ea609cf',1,'glm']]],
+ ['aligned_5flowp_5fuvec4',['aligned_lowp_uvec4',['../a00176.html#ga40b0e05306f666f835ac97c963302ecb',1,'glm']]],
+ ['aligned_5flowp_5fvec2',['aligned_lowp_vec2',['../a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367',1,'glm']]],
+ ['aligned_5flowp_5fvec3',['aligned_lowp_vec3',['../a00176.html#gae003f8f3071a8bc734a70c6d4978f968',1,'glm']]],
+ ['aligned_5flowp_5fvec4',['aligned_lowp_vec4',['../a00176.html#ga689f103781a795e919fddfa47d89170d',1,'glm']]],
+ ['aligned_5fmediump_5fbvec2',['aligned_mediump_bvec2',['../a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e',1,'glm']]],
+ ['aligned_5fmediump_5fbvec3',['aligned_mediump_bvec3',['../a00176.html#ga4f78cd6d9c5827771e35921b4a92855a',1,'glm']]],
+ ['aligned_5fmediump_5fbvec4',['aligned_mediump_bvec4',['../a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9',1,'glm']]],
+ ['aligned_5fmediump_5fdvec2',['aligned_mediump_dvec2',['../a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd',1,'glm']]],
+ ['aligned_5fmediump_5fdvec3',['aligned_mediump_dvec3',['../a00176.html#ga22efc7f84ab79eef640e00fc59d07478',1,'glm']]],
+ ['aligned_5fmediump_5fdvec4',['aligned_mediump_dvec4',['../a00176.html#gad6f422f8871685ee467a575238e4ece4',1,'glm']]],
+ ['aligned_5fmediump_5fivec2',['aligned_mediump_ivec2',['../a00176.html#ga389d12dcc8d57a444944a72646d17efa',1,'glm']]],
+ ['aligned_5fmediump_5fivec3',['aligned_mediump_ivec3',['../a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26',1,'glm']]],
+ ['aligned_5fmediump_5fivec4',['aligned_mediump_ivec4',['../a00176.html#gae640082d0ffdb52fb2d658916c5815db',1,'glm']]],
+ ['aligned_5fmediump_5fuvec2',['aligned_mediump_uvec2',['../a00176.html#ga88c56fde67f035d80b2d0d6d568af30b',1,'glm']]],
+ ['aligned_5fmediump_5fuvec3',['aligned_mediump_uvec3',['../a00176.html#gaee29d3a28f634b03f0a20e79e600f5df',1,'glm']]],
+ ['aligned_5fmediump_5fuvec4',['aligned_mediump_uvec4',['../a00176.html#ga717763c480dcf3ecf66121426287d08a',1,'glm']]],
+ ['aligned_5fmediump_5fvec2',['aligned_mediump_vec2',['../a00176.html#ga57549b1281d99ba1825b1ef0dae6227d',1,'glm']]],
+ ['aligned_5fmediump_5fvec3',['aligned_mediump_vec3',['../a00176.html#gaed5d4dd2755cc5141a9533488edd9e82',1,'glm']]],
+ ['aligned_5fmediump_5fvec4',['aligned_mediump_vec4',['../a00176.html#gae4ab68a8c32574bff14e62f95185d295',1,'glm']]],
+ ['aligned_5fuvec1',['aligned_uvec1',['../a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548',1,'glm']]],
+ ['aligned_5fuvec2',['aligned_uvec2',['../a00176.html#ga074137e3be58528d67041c223d49f398',1,'glm']]],
+ ['aligned_5fuvec3',['aligned_uvec3',['../a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0',1,'glm']]],
+ ['aligned_5fuvec4',['aligned_uvec4',['../a00176.html#gabf842c45eea186170c267a328e3f3b7d',1,'glm']]],
+ ['aligned_5fvec1',['aligned_vec1',['../a00176.html#ga05e6d4c908965d04191c2070a8d0a65e',1,'glm']]],
+ ['aligned_5fvec2',['aligned_vec2',['../a00176.html#ga0682462f8096a226773e20fac993cde5',1,'glm']]],
+ ['aligned_5fvec3',['aligned_vec3',['../a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0',1,'glm']]],
+ ['aligned_5fvec4',['aligned_vec4',['../a00176.html#ga85d89e83cb8137e1be1446de8c3b643a',1,'glm']]],
+ ['all',['all',['../a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e',1,'glm']]],
+ ['angle',['angle',['../a00172.html#gad4a4448baedb198b2b1e7880d2544dc9',1,'glm::angle(tquat&lt; T, P &gt; const &amp;x)'],['../a00234.html#gab8691008a2536b681b711211816c14f7',1,'glm::angle(vecType const &amp;x, vecType const &amp;y)']]],
+ ['angleaxis',['angleAxis',['../a00172.html#ga37ae19405f1ccf766f27e4fcd035d859',1,'glm']]],
+ ['any',['any',['../a00152.html#ga632a2644532d9332011c8860400d30b2',1,'glm']]],
+ ['arecollinear',['areCollinear',['../a00235.html#ga465b844190d1740051e45d780832ea4c',1,'glm']]],
+ ['areorthogonal',['areOrthogonal',['../a00235.html#gaee10acefed397c11e01f2862e837754c',1,'glm']]],
+ ['areorthonormal',['areOrthonormal',['../a00235.html#ga89c82bc60e5b84e4489b74c15a134caf',1,'glm']]],
+ ['asec',['asec',['../a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10',1,'glm']]],
+ ['asech',['asech',['../a00174.html#gaec7586dccfe431f850d006f3824b8ca6',1,'glm']]],
+ ['asin',['asin',['../a00151.html#ga88e29b8289e882859d76a25798dd9490',1,'glm']]],
+ ['asinh',['asinh',['../a00151.html#ga72bf44c1984e1afb63acf821ba33cac7',1,'glm']]],
+ ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]],
+ ['associatedmax',['associatedMax',['../a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45',1,'glm::associatedMax(T x, U a, T y, U b)'],['../a00181.html#ga10ba6001798f42a0f941f19ff30e066a',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)'],['../a00181.html#ga62ca63cca6b21387b8a25474f441a869',1,'glm::associatedMax(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b)'],['../a00181.html#ga5364520173815b66a9d9e452c38bf312',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)'],['../a00181.html#gaec891e363d91abbf3a4443cf2f652209',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c)'],['../a00181.html#ga065a0c1eb7837118ef79be88dfd78487',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)'],['../a00181.html#ga553431a468e251623408603bcb51c9cb',1,'glm::associatedMax(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c)'],['../a00181.html#ga327136e6a568569c03a056f90814b656',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c)'],['../a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00181.html#gaf607886421c35cd7e4f41a50d7c330e3',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga7a165de1af9a3f9193516a3b47407086',1,'glm::associatedMax(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga3122fbe8133ea54749b10fb93e8a167e',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)']]],
+ ['associatedmin',['associatedMin',['../a00181.html#gacc01bd272359572fc28437ae214a02df',1,'glm::associatedMin(T x, U a, T y, U b)'],['../a00181.html#ga8b538d10872626668a078e2bd495af25',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)'],['../a00181.html#ga1dccff48fa5650c746533de83467da6e',1,'glm::associatedMin(T x, const vecType&lt; U, P &gt; &amp;a, T y, const vecType&lt; U, P &gt; &amp;b)'],['../a00181.html#ga076717f4e07c6ae725cc1382d1ac4869',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)'],['../a00181.html#gad0aa8f86259a26d839d34a3577a923fc',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c)'],['../a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)'],['../a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00181.html#ga88e031f22b80215505928900d3dde549',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1',1,'glm::associatedMin(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)']]],
+ ['atan',['atan',['../a00151.html#ga461e769acb8b8cb695a5a89334546611',1,'glm::atan(vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)'],['../a00151.html#gae8f22458bba8f2321ceb1bfc4a543216',1,'glm::atan(vecType&lt; T, P &gt; const &amp;y_over_x)']]],
+ ['atan2',['atan2',['../a00187.html#gac63011205bf6d0be82589dc56dd26708',1,'glm::atan2(T x, T y)'],['../a00187.html#ga525f3e849d0fc64807f8ab571b4545f9',1,'glm::atan2(const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y)'],['../a00187.html#gad328042b6734d3f2c49c0ec1328b14c0',1,'glm::atan2(const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y)'],['../a00187.html#ga09d39c391a509a045b6c7061f15bdff5',1,'glm::atan2(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)']]],
+ ['atanh',['atanh',['../a00151.html#gaffa8decdd8620759f4e6fe4834768b87',1,'glm']]],
+ ['axis',['axis',['../a00172.html#ga0b3e87a13b2708154b72259e50789a19',1,'glm']]],
+ ['axisangle',['axisAngle',['../a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92',1,'glm']]],
+ ['axisanglematrix',['axisAngleMatrix',['../a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39',1,'glm']]],
+ ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00151.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_10.html b/3rdparty/glm/doc/api/search/all_10.html
new file mode 100644
index 00000000000..80581d5aab5
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_10.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_10.js b/3rdparty/glm/doc/api/search/all_10.js
new file mode 100644
index 00000000000..88a9c9e8187
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_10.js
@@ -0,0 +1,41 @@
+var searchData=
+[
+ ['radialgradient',['radialGradient',['../a00196.html#ga166d43d567a4cf150579a92f69b0dc9f',1,'glm']]],
+ ['radians',['radians',['../a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c',1,'glm']]],
+ ['random_2ehpp',['random.hpp',['../a00090.html',1,'']]],
+ ['range_2ehpp',['range.hpp',['../a00091.html',1,'']]],
+ ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00092.html',1,'']]],
+ ['reciprocal_2ehpp',['reciprocal.hpp',['../a00093.html',1,'']]],
+ ['reflect',['reflect',['../a00147.html#gab63646fc36b81cf69d3ce123a72f76f2',1,'glm']]],
+ ['refract',['refract',['../a00147.html#gab7e7cdf4403931a5f7b74560ad64159b',1,'glm']]],
+ ['repeat',['repeat',['../a00236.html#ga809650c6310ea7c42666e918c117fb6f',1,'glm']]],
+ ['rgb2ycocg',['rgb2YCoCg',['../a00185.html#ga19481f6947c5b5482debd41e71b8c941',1,'glm']]],
+ ['rgb2ycocgr',['rgb2YCoCgR',['../a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2',1,'glm']]],
+ ['rgbcolor',['rgbColor',['../a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7',1,'glm']]],
+ ['righthanded',['rightHanded',['../a00197.html#ga17cd83888de8755c0435c589fafd3603',1,'glm']]],
+ ['roll',['roll',['../a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec',1,'glm']]],
+ ['root_5ffive',['root_five',['../a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2',1,'glm']]],
+ ['root_5fhalf_5fpi',['root_half_pi',['../a00162.html#ga4e276cb823cc5e612d4f89ed99c75039',1,'glm']]],
+ ['root_5fln_5ffour',['root_ln_four',['../a00162.html#ga4129412e96b33707a77c1a07652e23e2',1,'glm']]],
+ ['root_5fpi',['root_pi',['../a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9',1,'glm']]],
+ ['root_5fthree',['root_three',['../a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e',1,'glm']]],
+ ['root_5ftwo',['root_two',['../a00162.html#ga74e607d29020f100c0d0dc46ce2ca950',1,'glm']]],
+ ['root_5ftwo_5fpi',['root_two_pi',['../a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3',1,'glm']]],
+ ['rotate',['rotate',['../a00169.html#ga161b1df124348f232d994ba7958e4815',1,'glm::rotate(tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)'],['../a00172.html#gaa8f42979c921e450ff2812fb43c25702',1,'glm::rotate(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)'],['../a00209.html#gab4f798c6048db91a6d0686812fd54022',1,'glm::rotate(tmat3x3&lt; T, P &gt; const &amp;m, T angle)'],['../a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2',1,'glm::rotate(tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)'],['../a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3',1,'glm::rotate(tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)'],['../a00224.html#ga9bff444fb191e2e089a906b899cd033d',1,'glm::rotate(tvec2&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6',1,'glm::rotate(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)'],['../a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd',1,'glm::rotate(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)'],['../a00229.html#ga2020c91bf61e050882b3a5c18eada700',1,'glm::rotate(T angle, tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00094.html',1,'']]],
+ ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00095.html',1,'']]],
+ ['rotatenormalizedaxis',['rotateNormalizedAxis',['../a00223.html#gaada623964a895def5a8b77b5b7887dc4',1,'glm::rotateNormalizedAxis(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)'],['../a00223.html#ga6c00234d844faef36a6a94669fbd1639',1,'glm::rotateNormalizedAxis(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)']]],
+ ['rotatex',['rotateX',['../a00224.html#ga0c2dc9f8507bffcbb957db9818b18508',1,'glm::rotateX(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#gadab312d430a564741ae02215255027a0',1,'glm::rotateX(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)']]],
+ ['rotatey',['rotateY',['../a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3',1,'glm::rotateY(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#gae2507577c4bffa3548b32852791dd90c',1,'glm::rotateY(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)']]],
+ ['rotatez',['rotateZ',['../a00224.html#gae30ac01b89d4f16a972fee696c964908',1,'glm::rotateZ(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#ga034e5d197ab4bd8685624bc2cf16e586',1,'glm::rotateZ(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)']]],
+ ['rotation',['rotation',['../a00220.html#gac4856d356c5c97cec74e9b672ea89240',1,'glm']]],
+ ['round',['round',['../a00145.html#gada0165544c0618d634c8056a88082ce9',1,'glm']]],
+ ['round_2ehpp',['round.hpp',['../a00096.html',1,'']]],
+ ['roundeven',['roundEven',['../a00145.html#ga655598104195a60a950291485e84a97e',1,'glm']]],
+ ['roundmultiple',['roundMultiple',['../a00175.html#ga6739d1de04b2cea7c78675b365644bce',1,'glm::roundMultiple(genType Source, genType Multiple)'],['../a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661',1,'glm::roundMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['roundpoweroftwo',['roundPowerOfTwo',['../a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0',1,'glm::roundPowerOfTwo(genIUType Value)'],['../a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485',1,'glm::roundPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['row',['row',['../a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba',1,'glm::row(genType const &amp;m, length_t index)'],['../a00166.html#gaadcc64829aadf4103477679e48c7594f',1,'glm::row(genType const &amp;m, length_t index, typename genType::row_type const &amp;x)']]],
+ ['rowmajor2',['rowMajor2',['../a00206.html#ga0c7f4d56a85865f0002127119ab7d551',1,'glm::rowMajor2(tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)'],['../a00206.html#ga42a006aa66198452bd3c89415f892196',1,'glm::rowMajor2(tmat2x2&lt; T, P &gt; const &amp;m)']]],
+ ['rowmajor3',['rowMajor3',['../a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f',1,'glm::rowMajor3(tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)'],['../a00206.html#ga38537061135b55e7a053926ca55e6e20',1,'glm::rowMajor3(tmat3x3&lt; T, P &gt; const &amp;m)']]],
+ ['rowmajor4',['rowMajor4',['../a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8',1,'glm::rowMajor4(tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)'],['../a00206.html#ga85771a88c114a088a0414bcfce55e729',1,'glm::rowMajor4(tmat4x4&lt; T, P &gt; const &amp;m)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_11.html b/3rdparty/glm/doc/api/search/all_11.html
new file mode 100644
index 00000000000..bb6241befae
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_11.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_11.js b/3rdparty/glm/doc/api/search/all_11.js
new file mode 100644
index 00000000000..471bfe9c01c
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_11.js
@@ -0,0 +1,42 @@
+var searchData=
+[
+ ['saturate',['saturate',['../a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7',1,'glm::saturate(T x)'],['../a00187.html#ga5815a26488231dfdf92242cf0c2d2107',1,'glm::saturate(const tvec2&lt; T, P &gt; &amp;x)'],['../a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b',1,'glm::saturate(const tvec3&lt; T, P &gt; &amp;x)'],['../a00187.html#ga63791409bdef9745b956406afe3157f1',1,'glm::saturate(const tvec4&lt; T, P &gt; &amp;x)']]],
+ ['saturation',['saturation',['../a00184.html#gafecfb15d58da8445103745af3348e516',1,'glm::saturation(T const s)'],['../a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c',1,'glm::saturation(T const s, tvec3&lt; T, P &gt; const &amp;color)'],['../a00184.html#ga2033e0566c595230714af396744e8a61',1,'glm::saturation(T const s, tvec4&lt; T, P &gt; const &amp;color)']]],
+ ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00097.html',1,'']]],
+ ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00098.html',1,'']]],
+ ['scale',['scale',['../a00169.html#ga8f062fcc07e2445500793f2803afebb0',1,'glm::scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)'],['../a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240',1,'glm::scale(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)'],['../a00229.html#ga1972d4a66a2e92637c8aaee598417a71',1,'glm::scale(tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['scalebias',['scaleBias',['../a00230.html#ga2874abd228989556d610a0bff993667a',1,'glm::scaleBias(valType scale, valType bias)'],['../a00230.html#gac1a1139e2980021422d1fc1c42dc74f2',1,'glm::scaleBias(tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)']]],
+ ['sec',['sec',['../a00174.html#gae4bcbebee670c5ea155f0777b3acbd84',1,'glm']]],
+ ['sech',['sech',['../a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae',1,'glm']]],
+ ['setup_2ehpp',['setup.hpp',['../a00099.html',1,'']]],
+ ['shearx',['shearX',['../a00209.html#ga3da9ea234fdb2a96c75a97a18c903489',1,'glm']]],
+ ['shearx2d',['shearX2D',['../a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2',1,'glm']]],
+ ['shearx3d',['shearX3D',['../a00230.html#gae06ce274e4754f925d5d68440e89452e',1,'glm']]],
+ ['sheary',['shearY',['../a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91',1,'glm']]],
+ ['sheary2d',['shearY2D',['../a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b',1,'glm']]],
+ ['sheary3d',['shearY3D',['../a00230.html#ga31253ea18fdcdfde08c134c8b67688f7',1,'glm']]],
+ ['shearz3d',['shearZ3D',['../a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51',1,'glm']]],
+ ['shortmix',['shortMix',['../a00220.html#ga3534443de2a1a806f386976546cddc81',1,'glm']]],
+ ['sign',['sign',['../a00145.html#gac3446b4138e0b8757561c07cd19f084d',1,'glm::sign(vecType&lt; T, P &gt; const &amp;x)'],['../a00202.html#ga1842004a127a9f3573764362ff639191',1,'glm::sign(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)']]],
+ ['simplex',['simplex',['../a00170.html#ga05f5ab240c9a3fdeee353636e464c285',1,'glm']]],
+ ['sin',['sin',['../a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5',1,'glm']]],
+ ['sinh',['sinh',['../a00151.html#gad8f89c12efe6f8d3ae8046625b266254',1,'glm']]],
+ ['sint',['sint',['../a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]],
+ ['size1',['size1',['../a00227.html#ga47c940f279a6b97ffc301eb4526a445a',1,'glm']]],
+ ['size1_5ft',['size1_t',['../a00227.html#ga77d0b061efa41cb2ed2285d09294314e',1,'glm']]],
+ ['size2',['size2',['../a00227.html#gac0ef172641a1555684da0beb735c2a79',1,'glm']]],
+ ['size2_5ft',['size2_t',['../a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e',1,'glm']]],
+ ['size3',['size3',['../a00227.html#ga51b5e9650c459973134ffb4236ae88b6',1,'glm']]],
+ ['size3_5ft',['size3_t',['../a00227.html#gad364e6c302642e3bb89d756df5d0c8c6',1,'glm']]],
+ ['size4',['size4',['../a00227.html#gaf07a3f432e328c99d35637225c988121',1,'glm']]],
+ ['size4_5ft',['size4_t',['../a00227.html#ga06862b7d59094244025d34407b2cb796',1,'glm']]],
+ ['slerp',['slerp',['../a00172.html#ga22b438c7252f3fa5b773c9882471652a',1,'glm::slerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)'],['../a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09',1,'glm::slerp(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)']]],
+ ['smoothstep',['smoothstep',['../a00145.html#ga562edf7eca082cc5b7a0aaf180436daf',1,'glm']]],
+ ['sphericalrand',['sphericalRand',['../a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d',1,'glm']]],
+ ['spline_2ehpp',['spline.hpp',['../a00100.html',1,'']]],
+ ['sqrt',['sqrt',['../a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8',1,'glm::sqrt(vecType&lt; T, P &gt; const &amp;v)'],['../a00199.html#ga7ce36693a75879ccd9bb10167cfa722d',1,'glm::sqrt(int x)'],['../a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc',1,'glm::sqrt(uint x)']]],
+ ['squad',['squad',['../a00220.html#gae75f537becdf2b1381b4482ec96e6c82',1,'glm']]],
+ ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00101.html',1,'']]],
+ ['step',['step',['../a00145.html#ga015a1261ff23e12650211aa872863cce',1,'glm::step(genType edge, genType x)'],['../a00145.html#gaf15b74ab672af2c7d7b535a9b4803700',1,'glm::step(T edge, vecType&lt; T, P &gt; const &amp;x)'],['../a00145.html#ga6d84170051fb87c183c38883ec85b411',1,'glm::step(vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)']]],
+ ['string_5fcast_2ehpp',['string_cast.hpp',['../a00102.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_12.html b/3rdparty/glm/doc/api/search/all_12.html
new file mode 100644
index 00000000000..fe93a5bfb50
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_12.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_12.js b/3rdparty/glm/doc/api/search/all_12.js
new file mode 100644
index 00000000000..21fa549caf2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_12.js
@@ -0,0 +1,46 @@
+var searchData=
+[
+ ['template_20types',['Template types',['../a00158.html',1,'']]],
+ ['types',['Types',['../a00156.html',1,'']]],
+ ['tan',['tan',['../a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2',1,'glm']]],
+ ['tanh',['tanh',['../a00151.html#ga234e904a0075f88654a594b5f837711f',1,'glm']]],
+ ['third',['third',['../a00162.html#ga3077c6311010a214b69ddc8214ec13b5',1,'glm']]],
+ ['three_5fover_5ftwo_5fpi',['three_over_two_pi',['../a00162.html#gae94950df74b0ce382b1fc1d978ef7394',1,'glm']]],
+ ['to_5fstring',['to_string',['../a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6',1,'glm']]],
+ ['tomat3',['toMat3',['../a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b',1,'glm']]],
+ ['tomat4',['toMat4',['../a00220.html#gaedc9fba6485eade37cc26c16df9d7aad',1,'glm']]],
+ ['toquat',['toQuat',['../a00220.html#gac9e3109ca60b644ce508d6b71a1697bc',1,'glm::toQuat(tmat3x3&lt; T, P &gt; const &amp;x)'],['../a00220.html#ga808dd0f83ee8150db7e652313bde8eb2',1,'glm::toQuat(tmat4x4&lt; T, P &gt; const &amp;x)']]],
+ ['transform_2ehpp',['transform.hpp',['../a00103.html',1,'']]],
+ ['transform2_2ehpp',['transform2.hpp',['../a00104.html',1,'']]],
+ ['translate',['translate',['../a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed',1,'glm::translate(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)'],['../a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51',1,'glm::translate(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)'],['../a00229.html#ga838c4505ef7f254ed05117b1ac9691fb',1,'glm::translate(tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['trianglenormal',['triangleNormal',['../a00212.html#ga7842850bcda582f1756883e3ed950e14',1,'glm']]],
+ ['trigonometric_2ehpp',['trigonometric.hpp',['../a00105.html',1,'']]],
+ ['trunc',['trunc',['../a00145.html#ga634cdbf8b37edca03f2248450570fd54',1,'glm']]],
+ ['tweakedinfiniteperspective',['tweakedInfinitePerspective',['../a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00169.html#gaa50fce7f50b5d5da881ed30f5532a921',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]],
+ ['two_5fover_5fpi',['two_over_pi',['../a00162.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]],
+ ['two_5fover_5froot_5fpi',['two_over_root_pi',['../a00162.html#ga5827301817640843cf02026a8d493894',1,'glm']]],
+ ['two_5fpi',['two_pi',['../a00162.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]],
+ ['two_5fthirds',['two_thirds',['../a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]],
+ ['type_5ffloat_2ehpp',['type_float.hpp',['../a00108.html',1,'']]],
+ ['type_5fgentype_2ehpp',['type_gentype.hpp',['../a00109.html',1,'']]],
+ ['type_5fhalf_2ehpp',['type_half.hpp',['../a00110.html',1,'']]],
+ ['type_5fint_2ehpp',['type_int.hpp',['../a00111.html',1,'']]],
+ ['type_5fmat_2ehpp',['type_mat.hpp',['../a00112.html',1,'']]],
+ ['type_5fmat2x2_2ehpp',['type_mat2x2.hpp',['../a00113.html',1,'']]],
+ ['type_5fmat2x3_2ehpp',['type_mat2x3.hpp',['../a00114.html',1,'']]],
+ ['type_5fmat2x4_2ehpp',['type_mat2x4.hpp',['../a00115.html',1,'']]],
+ ['type_5fmat3x2_2ehpp',['type_mat3x2.hpp',['../a00116.html',1,'']]],
+ ['type_5fmat3x3_2ehpp',['type_mat3x3.hpp',['../a00117.html',1,'']]],
+ ['type_5fmat3x4_2ehpp',['type_mat3x4.hpp',['../a00118.html',1,'']]],
+ ['type_5fmat4x2_2ehpp',['type_mat4x2.hpp',['../a00119.html',1,'']]],
+ ['type_5fmat4x3_2ehpp',['type_mat4x3.hpp',['../a00120.html',1,'']]],
+ ['type_5fmat4x4_2ehpp',['type_mat4x4.hpp',['../a00121.html',1,'']]],
+ ['type_5fprecision_2ehpp',['type_precision.hpp',['../a00122.html',1,'']]],
+ ['type_5fptr_2ehpp',['type_ptr.hpp',['../a00123.html',1,'']]],
+ ['type_5ftrait_2ehpp',['type_trait.hpp',['../a00124.html',1,'']]],
+ ['type_5fvec_2ehpp',['type_vec.hpp',['../a00125.html',1,'']]],
+ ['type_5fvec1_2ehpp',['type_vec1.hpp',['../a00126.html',1,'']]],
+ ['type_5fvec2_2ehpp',['type_vec2.hpp',['../a00127.html',1,'']]],
+ ['type_5fvec3_2ehpp',['type_vec3.hpp',['../a00128.html',1,'']]],
+ ['type_5fvec4_2ehpp',['type_vec4.hpp',['../a00129.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_13.html b/3rdparty/glm/doc/api/search/all_13.html
new file mode 100644
index 00000000000..cb938b917b0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_13.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_13.js b/3rdparty/glm/doc/api/search/all_13.js
new file mode 100644
index 00000000000..cd5c4485d64
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_13.js
@@ -0,0 +1,85 @@
+var searchData=
+[
+ ['u16',['u16',['../a00177.html#gaa2d7acc0adb536fab71fe261232a40ff',1,'glm']]],
+ ['u16vec1',['u16vec1',['../a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907',1,'glm::u16vec1()'],['../a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0',1,'glm::gtx::u16vec1()']]],
+ ['u16vec2',['u16vec2',['../a00177.html#ga426030555085ed6c39a54e73afbef962',1,'glm']]],
+ ['u16vec3',['u16vec3',['../a00177.html#ga7f5dbe417199277e449b8db0210acb71',1,'glm']]],
+ ['u16vec4',['u16vec4',['../a00177.html#gaf524c9059f0342668d8eea359bcceaae',1,'glm']]],
+ ['u32',['u32',['../a00177.html#ga8165913e068444f7842302d40ba897b9',1,'glm']]],
+ ['u32vec1',['u32vec1',['../a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9',1,'glm::u32vec1()'],['../a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3',1,'glm::gtx::u32vec1()']]],
+ ['u32vec2',['u32vec2',['../a00177.html#ga0741d40e2b0fea4f1c50cb325114f075',1,'glm']]],
+ ['u32vec3',['u32vec3',['../a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23',1,'glm']]],
+ ['u32vec4',['u32vec4',['../a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6',1,'glm']]],
+ ['u64',['u64',['../a00177.html#gaf3f312156984c365e9f65620354da70b',1,'glm']]],
+ ['u64vec1',['u64vec1',['../a00177.html#ga793c9293cc687a0e342396a377c5df77',1,'glm::u64vec1()'],['../a00214.html#ga818de170e2584ab037130f2881925974',1,'glm::gtx::u64vec1()']]],
+ ['u64vec2',['u64vec2',['../a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e',1,'glm']]],
+ ['u64vec3',['u64vec3',['../a00177.html#ga3460933f040f59f0fedb29df1e9be71c',1,'glm']]],
+ ['u64vec4',['u64vec4',['../a00177.html#gafb6ca34df28889a5db9d244aed375411',1,'glm']]],
+ ['u8',['u8',['../a00177.html#gaecc7082561fc9028b844b6cf3d305d36',1,'glm']]],
+ ['u8vec1',['u8vec1',['../a00177.html#ga92e0c191e5cc326255284d08be3af7c5',1,'glm::u8vec1()'],['../a00214.html#ga5853fe457f4c8a6bc09343d0e9833980',1,'glm::gtx::u8vec1()']]],
+ ['u8vec2',['u8vec2',['../a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d',1,'glm']]],
+ ['u8vec3',['u8vec3',['../a00177.html#ga8ca60d0ba6d438892be6017f43747661',1,'glm']]],
+ ['u8vec4',['u8vec4',['../a00177.html#ga114e005014d910bea07954eee24b7efb',1,'glm']]],
+ ['uaddcarry',['uaddCarry',['../a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa',1,'glm']]],
+ ['uint',['uint',['../a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14',1,'glm']]],
+ ['uint16',['uint16',['../a00177.html#ga13471cbbe74e4303a57f3743d007b74d',1,'glm']]],
+ ['uint16_5ft',['uint16_t',['../a00177.html#ga91f91f411080c37730856ff5887f5bcf',1,'glm']]],
+ ['uint32',['uint32',['../a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d',1,'glm']]],
+ ['uint32_5ft',['uint32_t',['../a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac',1,'glm']]],
+ ['uint64',['uint64',['../a00177.html#gab630f76c26b50298187f7889104d4b9c',1,'glm']]],
+ ['uint64_5ft',['uint64_t',['../a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee',1,'glm']]],
+ ['uint8',['uint8',['../a00177.html#ga36475e31b1992cfde54c1a6f5a148865',1,'glm']]],
+ ['uint8_5ft',['uint8_t',['../a00177.html#ga28d97808322d3c92186e4a0c067d7e8e',1,'glm']]],
+ ['uintbitstofloat',['uintBitsToFloat',['../a00145.html#gab2bae0d15dcdca6093f88f76b3975d97',1,'glm::uintBitsToFloat(uint const &amp;v)'],['../a00145.html#ga3acab37650ecd792dc84548094b58684',1,'glm::uintBitsToFloat(vecType&lt; uint, P &gt; const &amp;v)']]],
+ ['ulp_2ehpp',['ulp.hpp',['../a00130.html',1,'']]],
+ ['umat2',['umat2',['../a00167.html#ga4cae85566f900debf930c41944b64691',1,'glm']]],
+ ['umat2x2',['umat2x2',['../a00167.html#gabf8acdd33ce8951051edbca5200898aa',1,'glm']]],
+ ['umat2x3',['umat2x3',['../a00167.html#ga1870da7578d5022b973a83155d386ab3',1,'glm']]],
+ ['umat2x4',['umat2x4',['../a00167.html#ga57936a3998e992370e59a223e0ee4fd4',1,'glm']]],
+ ['umat3',['umat3',['../a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6',1,'glm']]],
+ ['umat3x2',['umat3x2',['../a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a',1,'glm']]],
+ ['umat3x3',['umat3x3',['../a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb',1,'glm']]],
+ ['umat3x4',['umat3x4',['../a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba',1,'glm']]],
+ ['umat4',['umat4',['../a00167.html#ga38bc7bb6494e344185df596deeb4544c',1,'glm']]],
+ ['umat4x2',['umat4x2',['../a00167.html#ga70fa2d05896aa83cbc8c07672a429b53',1,'glm']]],
+ ['umat4x3',['umat4x3',['../a00167.html#ga87581417945411f75cb31dd6ca1dba98',1,'glm']]],
+ ['umat4x4',['umat4x4',['../a00167.html#gaf72e6d399c42985db6872c50f53d7eb8',1,'glm']]],
+ ['umulextended',['umulExtended',['../a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1',1,'glm']]],
+ ['unpackdouble2x32',['unpackDouble2x32',['../a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483',1,'glm']]],
+ ['unpackf2x11_5f1x10',['unpackF2x11_1x10',['../a00171.html#ga2b1fd1e854705b1345e98409e0a25e50',1,'glm']]],
+ ['unpackf3x9_5fe1x5',['unpackF3x9_E1x5',['../a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e',1,'glm']]],
+ ['unpackhalf',['unpackHalf',['../a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7',1,'glm']]],
+ ['unpackhalf1x16',['unpackHalf1x16',['../a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf',1,'glm']]],
+ ['unpackhalf2x16',['unpackHalf2x16',['../a00150.html#gaf59b52e6b28da9335322c4ae19b5d745',1,'glm']]],
+ ['unpackhalf4x16',['unpackHalf4x16',['../a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd',1,'glm']]],
+ ['unpacki3x10_5f1x2',['unpackI3x10_1x2',['../a00171.html#ga9a05330e5490be0908d3b117d82aff56',1,'glm']]],
+ ['unpackrgbm',['unpackRGBM',['../a00171.html#ga44274002723e379ad5c4ece8300a9308',1,'glm']]],
+ ['unpacksnorm',['unpackSnorm',['../a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe',1,'glm']]],
+ ['unpacksnorm1x16',['unpackSnorm1x16',['../a00171.html#ga96dd15002370627a443c835ab03a766c',1,'glm']]],
+ ['unpacksnorm1x8',['unpackSnorm1x8',['../a00171.html#ga4851ff86678aa1c7ace9d67846894285',1,'glm']]],
+ ['unpacksnorm2x16',['unpackSnorm2x16',['../a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38',1,'glm']]],
+ ['unpacksnorm2x8',['unpackSnorm2x8',['../a00171.html#ga8b128e89be449fc71336968a66bf6e1a',1,'glm']]],
+ ['unpacksnorm3x10_5f1x2',['unpackSnorm3x10_1x2',['../a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b',1,'glm']]],
+ ['unpacksnorm4x16',['unpackSnorm4x16',['../a00171.html#gaaddf9c353528fe896106f7181219c7f4',1,'glm']]],
+ ['unpacksnorm4x8',['unpackSnorm4x8',['../a00150.html#ga2db488646d48b7c43d3218954523fe82',1,'glm']]],
+ ['unpacku3x10_5f1x2',['unpackU3x10_1x2',['../a00171.html#ga48df3042a7d079767f5891a1bfd8a60a',1,'glm']]],
+ ['unpackunorm',['unpackUnorm',['../a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9',1,'glm']]],
+ ['unpackunorm1x16',['unpackUnorm1x16',['../a00171.html#ga83d34160a5cb7bcb5339823210fc7501',1,'glm']]],
+ ['unpackunorm1x5_5f1x6_5f1x5',['unpackUnorm1x5_1x6_1x5',['../a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a',1,'glm']]],
+ ['unpackunorm1x8',['unpackUnorm1x8',['../a00171.html#ga1319207e30874fb4931a9ee913983ee1',1,'glm']]],
+ ['unpackunorm2x16',['unpackUnorm2x16',['../a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007',1,'glm']]],
+ ['unpackunorm2x3_5f1x2',['unpackUnorm2x3_1x2',['../a00171.html#ga6abd5a9014df3b5ce4059008d2491260',1,'glm']]],
+ ['unpackunorm2x4',['unpackUnorm2x4',['../a00171.html#ga2e50476132fe5f27f08e273d9c70d85b',1,'glm']]],
+ ['unpackunorm2x8',['unpackUnorm2x8',['../a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f',1,'glm']]],
+ ['unpackunorm3x10_5f1x2',['unpackUnorm3x10_1x2',['../a00171.html#ga5156d3060355fe332865da2c7f78815f',1,'glm']]],
+ ['unpackunorm3x5_5f1x1',['unpackUnorm3x5_1x1',['../a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d',1,'glm']]],
+ ['unpackunorm4x16',['unpackUnorm4x16',['../a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d',1,'glm']]],
+ ['unpackunorm4x4',['unpackUnorm4x4',['../a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d',1,'glm']]],
+ ['unpackunorm4x8',['unpackUnorm4x8',['../a00150.html#ga7f903259150b67e9466f5f8edffcd197',1,'glm']]],
+ ['unproject',['unProject',['../a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3',1,'glm']]],
+ ['uround',['uround',['../a00165.html#gab61b8546aafdf58f119eb892b212607c',1,'glm']]],
+ ['usubborrow',['usubBorrow',['../a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4',1,'glm']]],
+ ['uvec2',['uvec2',['../a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84',1,'glm']]],
+ ['uvec3',['uvec3',['../a00156.html#gae85537b672ffe0b3218cbdf1823e1c72',1,'glm']]],
+ ['uvec4',['uvec4',['../a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_14.html b/3rdparty/glm/doc/api/search/all_14.html
new file mode 100644
index 00000000000..2fcfb13a03a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_14.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_14.js b/3rdparty/glm/doc/api/search/all_14.js
new file mode 100644
index 00000000000..cfd61cff98b
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_14.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+ ['vector_20relational_20functions',['Vector Relational Functions',['../a00152.html',1,'']]],
+ ['value_5fptr',['value_ptr',['../a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc',1,'glm']]],
+ ['vec1_2ehpp',['vec1.hpp',['../a00131.html',1,'']]],
+ ['vec2',['vec2',['../a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da',1,'glm']]],
+ ['vec2_2ehpp',['vec2.hpp',['../a00132.html',1,'']]],
+ ['vec3',['vec3',['../a00156.html#gaa8ea2429bb3cb41a715258a447f39897',1,'glm']]],
+ ['vec3_2ehpp',['vec3.hpp',['../a00133.html',1,'']]],
+ ['vec4',['vec4',['../a00156.html#gafbab23070ca47932487d25332adc7d7c',1,'glm']]],
+ ['vec4_2ehpp',['vec4.hpp',['../a00134.html',1,'']]],
+ ['vec_5fswizzle_2ehpp',['vec_swizzle.hpp',['../a00135.html',1,'']]],
+ ['vector_5fangle_2ehpp',['vector_angle.hpp',['../a00136.html',1,'']]],
+ ['vector_5fquery_2ehpp',['vector_query.hpp',['../a00137.html',1,'']]],
+ ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00138.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_15.html b/3rdparty/glm/doc/api/search/all_15.html
new file mode 100644
index 00000000000..a31c6e8f79d
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_15.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_15.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_15.js b/3rdparty/glm/doc/api/search/all_15.js
new file mode 100644
index 00000000000..952cc9212a0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_15.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['word',['word',['../a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]],
+ ['wrap_2ehpp',['wrap.hpp',['../a00139.html',1,'']]],
+ ['wrapangle',['wrapAngle',['../a00195.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_16.html b/3rdparty/glm/doc/api/search/all_16.html
new file mode 100644
index 00000000000..6343dec5f37
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_16.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_16.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_16.js b/3rdparty/glm/doc/api/search/all_16.js
new file mode 100644
index 00000000000..f0cd137382a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_16.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['yaw',['yaw',['../a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6',1,'glm']]],
+ ['yawpitchroll',['yawPitchRoll',['../a00190.html#gaf9c8d0f1df88c5344165600774489bc5',1,'glm']]],
+ ['ycocg2rgb',['YCoCg2rgb',['../a00185.html#ga6d7e988a79b299ca1fa59f537e13800b',1,'glm']]],
+ ['ycocgr2rgb',['YCoCgR2rgb',['../a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_17.html b/3rdparty/glm/doc/api/search/all_17.html
new file mode 100644
index 00000000000..2c65394adcb
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_17.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_17.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_17.js b/3rdparty/glm/doc/api/search/all_17.js
new file mode 100644
index 00000000000..b3e192e4885
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_17.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['zero',['zero',['../a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_2.html b/3rdparty/glm/doc/api/search/all_2.html
new file mode 100644
index 00000000000..93962b7243d
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_2.js b/3rdparty/glm/doc/api/search/all_2.js
new file mode 100644
index 00000000000..9543dd51607
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_2.js
@@ -0,0 +1,33 @@
+var searchData=
+[
+ ['ballrand',['ballRand',['../a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83',1,'glm']]],
+ ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]],
+ ['bitcount',['bitCount',['../a00148.html#ga44abfe3379e11cbd29425a843420d0d6',1,'glm::bitCount(genType v)'],['../a00148.html#ga1f29640969a3c54564da06ac67a5392e',1,'glm::bitCount(vecType&lt; T, P &gt; const &amp;v)']]],
+ ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]],
+ ['bitfieldextract',['bitfieldExtract',['../a00148.html#gab84b88f3a8e367774e5dd1c618c353cf',1,'glm']]],
+ ['bitfieldfillone',['bitfieldFillOne',['../a00159.html#ga46f9295abe3b5c7658f5b13c7f819f0a',1,'glm::bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)'],['../a00159.html#gad789042e84e8292ae95dc1af856f2ad5',1,'glm::bitfieldFillOne(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)']]],
+ ['bitfieldfillzero',['bitfieldFillZero',['../a00159.html#ga697b86998b7d74ee0a69d8e9f8819fee',1,'glm::bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)'],['../a00159.html#gaddba3196316b0bd240295b09b43c2958',1,'glm::bitfieldFillZero(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)']]],
+ ['bitfieldinsert',['bitfieldInsert',['../a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7',1,'glm']]],
+ ['bitfieldinterleave',['bitfieldInterleave',['../a00159.html#ga24cad0069f9a0450abd80b3e89501adf',1,'glm::bitfieldInterleave(int8 x, int8 y)'],['../a00159.html#ga9a4976a529aec2cee56525e1165da484',1,'glm::bitfieldInterleave(uint8 x, uint8 y)'],['../a00159.html#gac51c33a394593f0631fa3aa5bb778809',1,'glm::bitfieldInterleave(int16 x, int16 y)'],['../a00159.html#ga94f3646a5667f4be56f8dcf3310e963f',1,'glm::bitfieldInterleave(uint16 x, uint16 y)'],['../a00159.html#gaebb756a24a0784e3d6fba8bd011ab77a',1,'glm::bitfieldInterleave(int32 x, int32 y)'],['../a00159.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd',1,'glm::bitfieldInterleave(uint32 x, uint32 y)'],['../a00159.html#ga8fdb724dccd4a07d57efc01147102137',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z)'],['../a00159.html#ga9fc2a0dd5dcf8b00e113f272a5feca93',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z)'],['../a00159.html#gaa901c36a842fa5d126ea650549f17b24',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z)'],['../a00159.html#ga3afd6d38881fe3948c53d4214d2197fd',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z)'],['../a00159.html#gad2075d96a6640121edaa98ea534102ca',1,'glm::bitfieldInterleave(int32 x, int32 y, int32 z)'],['../a00159.html#gab19fbc739fc0cf7247978602c36f7da8',1,'glm::bitfieldInterleave(uint32 x, uint32 y, uint32 z)'],['../a00159.html#ga8a44ae22f5c953b296c42d067dccbe6d',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z, int8 w)'],['../a00159.html#ga14bb274d54a3c26f4919dd7ed0dd0c36',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w)'],['../a00159.html#ga180a63161e1319fbd5a53c84d0429c7a',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z, int16 w)'],['../a00159.html#gafca8768671a14c8016facccb66a89f26',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)']]],
+ ['bitfieldreverse',['bitfieldReverse',['../a00148.html#ga153e7e8d0c035f83cce50fc3e580930f',1,'glm']]],
+ ['bitfieldrotateleft',['bitfieldRotateLeft',['../a00159.html#ga2eb49678a344ce1495bdb5586d9896b9',1,'glm::bitfieldRotateLeft(genIUType In, int Shift)'],['../a00159.html#ga410d130917d85b865718e3ebc32cf0ef',1,'glm::bitfieldRotateLeft(vecType&lt; T, P &gt; const &amp;In, int Shift)']]],
+ ['bitfieldrotateright',['bitfieldRotateRight',['../a00159.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca',1,'glm::bitfieldRotateRight(genIUType In, int Shift)'],['../a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba',1,'glm::bitfieldRotateRight(vecType&lt; T, P &gt; const &amp;In, int Shift)']]],
+ ['bool1',['bool1',['../a00187.html#gaddcd7aa2e30e61af5b38660613d3979e',1,'glm']]],
+ ['bool1x1',['bool1x1',['../a00187.html#ga7f895c936f0c29c8729afbbf22806090',1,'glm']]],
+ ['bool2',['bool2',['../a00187.html#gafa8d0bc8dfa7eeb928208305714f648d',1,'glm']]],
+ ['bool2x2',['bool2x2',['../a00187.html#ga2bfb53bc320966c85149934fffb0329d',1,'glm']]],
+ ['bool2x3',['bool2x3',['../a00187.html#gad02e7dff74039bb1454643e293d85dfe',1,'glm']]],
+ ['bool2x4',['bool2x4',['../a00187.html#ga379c0869949e8a69c3d06d7637caa5d7',1,'glm']]],
+ ['bool3',['bool3',['../a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659',1,'glm']]],
+ ['bool3x2',['bool3x2',['../a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7',1,'glm']]],
+ ['bool3x3',['bool3x3',['../a00187.html#gae621c9eabcba552eea5f6ade1f403605',1,'glm']]],
+ ['bool3x4',['bool3x4',['../a00187.html#gad13f8250579ebf79760dcf64215ddb17',1,'glm']]],
+ ['bool4',['bool4',['../a00187.html#ga6e79dbfab5917c467a154638ba27898e',1,'glm']]],
+ ['bool4x2',['bool4x2',['../a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db',1,'glm']]],
+ ['bool4x3',['bool4x3',['../a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb',1,'glm']]],
+ ['bool4x4',['bool4x4',['../a00187.html#ga9770607032813e7b0ca7362a47efea1e',1,'glm']]],
+ ['bvec2',['bvec2',['../a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60',1,'glm']]],
+ ['bvec3',['bvec3',['../a00156.html#ga150731e2a148eff8752114a0e450505e',1,'glm']]],
+ ['bvec4',['bvec4',['../a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6',1,'glm']]],
+ ['byte',['byte',['../a00222.html#ga3005cb0d839d546c616becfa6602c607',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_3.html b/3rdparty/glm/doc/api/search/all_3.html
new file mode 100644
index 00000000000..679f93ca9d5
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_3.js b/3rdparty/glm/doc/api/search/all_3.js
new file mode 100644
index 00000000000..d3852000595
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_3.js
@@ -0,0 +1,43 @@
+var searchData=
+[
+ ['catmullrom',['catmullRom',['../a00226.html#ga8119c04f8210fd0d292757565cd6918d',1,'glm']]],
+ ['ceil',['ceil',['../a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8',1,'glm']]],
+ ['ceilmultiple',['ceilMultiple',['../a00175.html#gac84898c466e609cdd2e81d9ba907d9e8',1,'glm::ceilMultiple(genType Source, genType Multiple)'],['../a00175.html#gafe632af669ac57d670ca18e3665a12ca',1,'glm::ceilMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['ceilpoweroftwo',['ceilPowerOfTwo',['../a00175.html#gaa73c7690c787086fa3ac1c312264acab',1,'glm::ceilPowerOfTwo(genIUType Value)'],['../a00175.html#ga76ec9b214ea1376fe09a903e34bab847',1,'glm::ceilPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['circularrand',['circularRand',['../a00173.html#gae989c26a2899b2fb7444abe7c275c29c',1,'glm']]],
+ ['clamp',['clamp',['../a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c',1,'glm::clamp(genType x, genType minVal, genType maxVal)'],['../a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33',1,'glm::clamp(genType const &amp;Texcoord)']]],
+ ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]],
+ ['closestpointonline',['closestPointOnLine',['../a00183.html#gac26353282a8213e469f5e33560c1200f',1,'glm::closestPointOnLine(tvec3&lt; T, P &gt; const &amp;point, tvec3&lt; T, P &gt; const &amp;a, tvec3&lt; T, P &gt; const &amp;b)'],['../a00183.html#gadc7010070bb0cacd284f560299b21660',1,'glm::closestPointOnLine(tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)']]],
+ ['colmajor2',['colMajor2',['../a00206.html#ga599fff4f1c65912b256a82138ebcca37',1,'glm::colMajor2(tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)'],['../a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7',1,'glm::colMajor2(tmat2x2&lt; T, P &gt; const &amp;m)']]],
+ ['colmajor3',['colMajor3',['../a00206.html#ga3a55e2948193e91733e434e7cc3c1540',1,'glm::colMajor3(tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)'],['../a00206.html#gaa93f3dcc47ced18e5db4a853363d9386',1,'glm::colMajor3(tmat3x3&lt; T, P &gt; const &amp;m)']]],
+ ['colmajor4',['colMajor4',['../a00206.html#ga2829de096bb67ab5cd670958f3d402b6',1,'glm::colMajor4(tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)'],['../a00206.html#ga7592acfd27da055e2d7c39564cf8803d',1,'glm::colMajor4(tmat4x4&lt; T, P &gt; const &amp;m)']]],
+ ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]],
+ ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]],
+ ['column',['column',['../a00166.html#ga96022eb0d3fae39d89fc7a954e59b374',1,'glm::column(genType const &amp;m, length_t index)'],['../a00166.html#ga9e757377523890e8b80c5843dbe4dd15',1,'glm::column(genType const &amp;m, length_t index, typename genType::col_type const &amp;x)']]],
+ ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]],
+ ['compadd',['compAdd',['../a00188.html#gaf71833350e15e74d31cbf8a3e7f27051',1,'glm']]],
+ ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]],
+ ['compmax',['compMax',['../a00188.html#gabfa4bb19298c8c73d4217ba759c496b6',1,'glm']]],
+ ['compmin',['compMin',['../a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425',1,'glm']]],
+ ['compmul',['compMul',['../a00188.html#gae8ab88024197202c9479d33bdc5a8a5d',1,'glm']]],
+ ['compnormalize',['compNormalize',['../a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e',1,'glm']]],
+ ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]],
+ ['compscale',['compScale',['../a00188.html#gaea99a3271016bfd331d9fa7587f3db37',1,'glm']]],
+ ['conjugate',['conjugate',['../a00172.html#gab1ace864fbf189ffa368950001808a3c',1,'glm']]],
+ ['constants_2ehpp',['constants.hpp',['../a00019.html',1,'']]],
+ ['convertd50xyztod65xyz',['convertD50XYZToD65XYZ',['../a00160.html#gaf2829bca5bbbd99da0cb1d20170f0096',1,'glm']]],
+ ['convertd65xyztod50xyz',['convertD65XYZToD50XYZ',['../a00160.html#gaee1990d4fdb1088c433e9ae4977795d2',1,'glm']]],
+ ['convertd65xyztolinearsrgb',['convertD65XYZToLinearSRGB',['../a00160.html#ga395041b0447f08dd581496720a0a1eac',1,'glm']]],
+ ['convertlinearsrgbtod65xyz',['convertLinearSRGBToD65XYZ',['../a00160.html#gaa367a13bbf5d9775d6a96a4c2a398fb7',1,'glm']]],
+ ['convertlineartosrgb',['convertLinearToSRGB',['../a00161.html#gad813dcd99644cafc775e83d6504ccb93',1,'glm::convertLinearToSRGB(vecType&lt; T, P &gt; const &amp;ColorLinear)'],['../a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42',1,'glm::convertLinearToSRGB(vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)']]],
+ ['convertsrgbtolinear',['convertSRGBToLinear',['../a00161.html#ga28e98e64347cf385cadc1ceb4def55c9',1,'glm::convertSRGBToLinear(vecType&lt; T, P &gt; const &amp;ColorSRGB)'],['../a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8',1,'glm::convertSRGBToLinear(vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)']]],
+ ['common_20functions',['Common functions',['../a00145.html',1,'']]],
+ ['cos',['cos',['../a00151.html#ga728fd86f14609e37d83f82429995b7b3',1,'glm']]],
+ ['cosh',['cosh',['../a00151.html#ga660582a4e5e843b6c1cd535777e8c295',1,'glm']]],
+ ['cot',['cot',['../a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314',1,'glm']]],
+ ['coth',['coth',['../a00174.html#ga6b8b770eb7198e4dea59d52e6db81442',1,'glm']]],
+ ['cross',['cross',['../a00147.html#gafe2cae8cb26fd44be62aee97369d0af8',1,'glm::cross(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)'],['../a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b',1,'glm::cross(tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)'],['../a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5',1,'glm::cross(tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)']]],
+ ['csc',['csc',['../a00174.html#ga59dd0005b6474eea48af743b4f14ebbb',1,'glm']]],
+ ['csch',['csch',['../a00174.html#ga6d95843ff3ca6472ab399ba171d290a0',1,'glm']]],
+ ['cubic',['cubic',['../a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_4.html b/3rdparty/glm/doc/api/search/all_4.html
new file mode 100644
index 00000000000..adc99fbbf9e
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_4.js b/3rdparty/glm/doc/api/search/all_4.js
new file mode 100644
index 00000000000..cef9aaaa2ce
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_4.js
@@ -0,0 +1,53 @@
+var searchData=
+[
+ ['ddualquat',['ddualquat',['../a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6',1,'glm']]],
+ ['decompose',['decompose',['../a00204.html#ga0f1245817507156b337798a253577c8b',1,'glm']]],
+ ['degrees',['degrees',['../a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1',1,'glm']]],
+ ['determinant',['determinant',['../a00149.html#ga26ea77c574802bc6fc193c40478718d2',1,'glm']]],
+ ['diagonal2x2',['diagonal2x2',['../a00207.html#ga01dc503262dba9c457113d131fc8c024',1,'glm']]],
+ ['diagonal2x3',['diagonal2x3',['../a00207.html#ga763817f07d6a94b722a48adfa87a35db',1,'glm']]],
+ ['diagonal2x4',['diagonal2x4',['../a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3',1,'glm']]],
+ ['diagonal3x2',['diagonal3x2',['../a00207.html#ga586e1ced91fd8a7c414186a200f13532',1,'glm']]],
+ ['diagonal3x3',['diagonal3x3',['../a00207.html#ga8e817dba22f2305cdebae07bbbe0360c',1,'glm']]],
+ ['diagonal3x4',['diagonal3x4',['../a00207.html#gae3f85af86c18c80f2acbe3223feb8e81',1,'glm']]],
+ ['diagonal4x2',['diagonal4x2',['../a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6',1,'glm']]],
+ ['diagonal4x3',['diagonal4x3',['../a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf',1,'glm']]],
+ ['diagonal4x4',['diagonal4x4',['../a00207.html#gade576e044d8e52f343166f665589d782',1,'glm']]],
+ ['diskrand',['diskRand',['../a00173.html#gad3a3ee7d26502a31ba552cb627a68606',1,'glm']]],
+ ['distance',['distance',['../a00147.html#ga7ca317dde0d7e94d920153554d4a02a8',1,'glm']]],
+ ['distance2',['distance2',['../a00211.html#ga647d2602008801d6ed78f9708eb439cc',1,'glm']]],
+ ['dmat2',['dmat2',['../a00156.html#gac7f51e23c8802d867f564dfd146bdb44',1,'glm']]],
+ ['dmat2x2',['dmat2x2',['../a00156.html#gacc27b39853a2ecb538c8b3afc20c359e',1,'glm']]],
+ ['dmat2x3',['dmat2x3',['../a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7',1,'glm']]],
+ ['dmat2x4',['dmat2x4',['../a00156.html#gaddd230c88fbd6ec33242329be3a1b738',1,'glm']]],
+ ['dmat3',['dmat3',['../a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff',1,'glm']]],
+ ['dmat3x2',['dmat3x2',['../a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8',1,'glm']]],
+ ['dmat3x3',['dmat3x3',['../a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8',1,'glm']]],
+ ['dmat3x4',['dmat3x4',['../a00156.html#ga38d9bfca882ec542b1928cf77b5c2091',1,'glm']]],
+ ['dmat4',['dmat4',['../a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27',1,'glm']]],
+ ['dmat4x2',['dmat4x2',['../a00156.html#ga6ddab280c735a2139133b4164b99a68a',1,'glm']]],
+ ['dmat4x3',['dmat4x3',['../a00156.html#gab6c8974496fc7c72dad09219118ba89e',1,'glm']]],
+ ['dmat4x4',['dmat4x4',['../a00156.html#ga41c2da87ca627c1b2da5e895435a508e',1,'glm']]],
+ ['dot',['dot',['../a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b',1,'glm::dot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#gac54dfc83de465a2d03e90d342242ab3d',1,'glm::dot(quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)']]],
+ ['double1',['double1',['../a00187.html#ga20b861a9b6e2a300323671c57a02525b',1,'glm']]],
+ ['double1x1',['double1x1',['../a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8',1,'glm']]],
+ ['double2',['double2',['../a00187.html#gaa16a13c6f2768e83ca133430e82ab89e',1,'glm']]],
+ ['double2x2',['double2x2',['../a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7',1,'glm']]],
+ ['double2x3',['double2x3',['../a00187.html#gade37cf30c69bacb41ceea7e32717eac7',1,'glm']]],
+ ['double2x4',['double2x4',['../a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e',1,'glm']]],
+ ['double3',['double3',['../a00187.html#gaed4bc64196bd25d46f6a1f417320a391',1,'glm']]],
+ ['double3x2',['double3x2',['../a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6',1,'glm']]],
+ ['double3x3',['double3x3',['../a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a',1,'glm']]],
+ ['double3x4',['double3x4',['../a00187.html#gaad84a1ea83be8fce04c1570c5e719413',1,'glm']]],
+ ['double4',['double4',['../a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56',1,'glm']]],
+ ['double4x2',['double4x2',['../a00187.html#ga2f87500119da15e35e4a74780ba512bd',1,'glm']]],
+ ['double4x3',['double4x3',['../a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37',1,'glm']]],
+ ['double4x4',['double4x4',['../a00187.html#ga686a3a5590f0a0e721faba08bda301d6',1,'glm']]],
+ ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00020.html',1,'']]],
+ ['dualquat',['dualquat',['../a00189.html#gae93abee0c979902fbec6a7bee0f6fae1',1,'glm']]],
+ ['dualquat_5fcast',['dualquat_cast',['../a00189.html#gada9799afe2b62394dc498534beb5bc78',1,'glm::dualquat_cast(tmat2x4&lt; T, P &gt; const &amp;x)'],['../a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20',1,'glm::dualquat_cast(tmat3x4&lt; T, P &gt; const &amp;x)']]],
+ ['dvec2',['dvec2',['../a00156.html#ga15ade901680b29b78c1f9d1796db6e0e',1,'glm']]],
+ ['dvec3',['dvec3',['../a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4',1,'glm']]],
+ ['dvec4',['dvec4',['../a00156.html#ga9503f809789bda7e8852a6abde3ae5c1',1,'glm']]],
+ ['dword',['dword',['../a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_5.html b/3rdparty/glm/doc/api/search/all_5.html
new file mode 100644
index 00000000000..a9fcd170298
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_5.js b/3rdparty/glm/doc/api/search/all_5.js
new file mode 100644
index 00000000000..923c3fbcea3
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_5.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+ ['exponential_20functions',['Exponential functions',['../a00146.html',1,'']]],
+ ['e',['e',['../a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139',1,'glm']]],
+ ['epsilon',['epsilon',['../a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429',1,'glm']]],
+ ['epsilon_2ehpp',['epsilon.hpp',['../a00021.html',1,'']]],
+ ['epsilonequal',['epsilonEqual',['../a00163.html#gaca9443f217dc36587624247245522331',1,'glm::epsilonEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, T const &amp;epsilon)'],['../a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb',1,'glm::epsilonEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)']]],
+ ['epsilonnotequal',['epsilonNotEqual',['../a00163.html#ga14e2888a304654ade8a3996024e2739c',1,'glm::epsilonNotEqual(genType const &amp;x, genType const &amp;y, typename genType::value_type const &amp;epsilon)'],['../a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf',1,'glm::epsilonNotEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)']]],
+ ['equal',['equal',['../a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801',1,'glm::equal(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#gac187115710365e0b2902220b9611e7b6',1,'glm::equal(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['euclidean',['euclidean',['../a00218.html#ga45ece1fbf7260c43e0f873c498202581',1,'glm']]],
+ ['euler',['euler',['../a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42',1,'glm']]],
+ ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00022.html',1,'']]],
+ ['eulerangles',['eulerAngles',['../a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64',1,'glm']]],
+ ['euleranglex',['eulerAngleX',['../a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8',1,'glm']]],
+ ['euleranglexy',['eulerAngleXY',['../a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd',1,'glm']]],
+ ['euleranglexyz',['eulerAngleXYZ',['../a00190.html#gaaedda1657a1aebe0a904d864b33844e8',1,'glm']]],
+ ['euleranglexz',['eulerAngleXZ',['../a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b',1,'glm']]],
+ ['eulerangley',['eulerAngleY',['../a00190.html#gaeb193af1184bdf39c23636d756e1ff33',1,'glm']]],
+ ['eulerangleyx',['eulerAngleYX',['../a00190.html#gafdd02f9a37511190962119adef5c1c25',1,'glm']]],
+ ['eulerangleyxz',['eulerAngleYXZ',['../a00190.html#ga0242b5ab68651db70c6025815549427f',1,'glm']]],
+ ['eulerangleyz',['eulerAngleYZ',['../a00190.html#ga1033f84f51d61646145352ef0c1bb58c',1,'glm']]],
+ ['euleranglez',['eulerAngleZ',['../a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd',1,'glm']]],
+ ['euleranglezx',['eulerAngleZX',['../a00190.html#gaef83cf40bd9ae780011b29970f16f622',1,'glm']]],
+ ['euleranglezy',['eulerAngleZY',['../a00190.html#ga02f037926568bbd12dfece3b28b20343',1,'glm']]],
+ ['exp',['exp',['../a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a',1,'glm::exp(vecType&lt; T, P &gt; const &amp;v)'],['../a00220.html#ga17295173d4c2b5ae49b84e9993b63a62',1,'glm::exp(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['exp2',['exp2',['../a00146.html#ga42ca440d9062f1f456f5a9e896378f9c',1,'glm']]],
+ ['exponential_2ehpp',['exponential.hpp',['../a00023.html',1,'']]],
+ ['ext_2ehpp',['ext.hpp',['../a00024.html',1,'']]],
+ ['extend',['extend',['../a00191.html#ga8140caae613b0f847ab0d7175dc03a37',1,'glm']]],
+ ['extend_2ehpp',['extend.hpp',['../a00025.html',1,'']]],
+ ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00026.html',1,'']]],
+ ['extracteuleranglexyz',['extractEulerAngleXYZ',['../a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14',1,'glm']]],
+ ['extractmatrixrotation',['extractMatrixRotation',['../a00205.html#ga6b8170aa4cf43caf81400696ebb38afe',1,'glm']]],
+ ['extractrealcomponent',['extractRealComponent',['../a00220.html#ga90de879d97487ec804522dd418e5d8a0',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_6.html b/3rdparty/glm/doc/api/search/all_6.html
new file mode 100644
index 00000000000..821c374d8cc
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_6.js b/3rdparty/glm/doc/api/search/all_6.js
new file mode 100644
index 00000000000..00b1781ceab
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_6.js
@@ -0,0 +1,129 @@
+var searchData=
+[
+ ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00150.html',1,'']]],
+ ['f32',['f32',['../a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7',1,'glm']]],
+ ['f32mat1',['f32mat1',['../a00214.html#ga145ad477a2a3e152855511c3b52469a6',1,'glm::gtx']]],
+ ['f32mat1x1',['f32mat1x1',['../a00214.html#gac88c6a4dbfc380aa26e3adbbade36348',1,'glm::gtx']]],
+ ['f32mat2',['f32mat2',['../a00177.html#ga1fedd5d29746afdaf2d3303a4442704e',1,'glm']]],
+ ['f32mat2x2',['f32mat2x2',['../a00177.html#gaf3a5016bf360977ce114deb2e01ae10a',1,'glm']]],
+ ['f32mat2x3',['f32mat2x3',['../a00177.html#gad5f1043adbe803928fe7bf1a90a1f767',1,'glm']]],
+ ['f32mat2x4',['f32mat2x4',['../a00177.html#ga5ed667d0247cce477f013ea31982843d',1,'glm']]],
+ ['f32mat3',['f32mat3',['../a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c',1,'glm']]],
+ ['f32mat3x2',['f32mat3x2',['../a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1',1,'glm']]],
+ ['f32mat3x3',['f32mat3x3',['../a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0',1,'glm']]],
+ ['f32mat3x4',['f32mat3x4',['../a00177.html#ga0100666c90176eaba80e49357d123c7f',1,'glm']]],
+ ['f32mat4',['f32mat4',['../a00177.html#ga797fa3ab16e04456174c36238e091341',1,'glm']]],
+ ['f32mat4x2',['f32mat4x2',['../a00177.html#ga27f897bdfe4bbded9481b8947553d1ff',1,'glm']]],
+ ['f32mat4x3',['f32mat4x3',['../a00177.html#gaa69e73ffb01a52499071391d395908fb',1,'glm']]],
+ ['f32mat4x4',['f32mat4x4',['../a00177.html#gafe2e08549805a7ded26da2a868bedbf5',1,'glm']]],
+ ['f32quat',['f32quat',['../a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0',1,'glm']]],
+ ['f32vec1',['f32vec1',['../a00177.html#ga3174a49dc84a977cad7012a62f4af02f',1,'glm::f32vec1()'],['../a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943',1,'glm::gtx::f32vec1()']]],
+ ['f32vec2',['f32vec2',['../a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3',1,'glm']]],
+ ['f32vec3',['f32vec3',['../a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad',1,'glm']]],
+ ['f32vec4',['f32vec4',['../a00177.html#gaeb25dbb0261f82cb08da23e26d343704',1,'glm']]],
+ ['f64',['f64',['../a00177.html#ga1d794d240091678f602e8de225b8d8c9',1,'glm']]],
+ ['f64mat1',['f64mat1',['../a00214.html#ga59bfa589419b5265d01314fcecd33435',1,'glm::gtx']]],
+ ['f64mat1x1',['f64mat1x1',['../a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd',1,'glm::gtx']]],
+ ['f64mat2',['f64mat2',['../a00177.html#ga74b9918c90ea60ce58b3979cde963a38',1,'glm']]],
+ ['f64mat2x2',['f64mat2x2',['../a00177.html#gaeb817419c76a0766c88713d2754e6cb3',1,'glm']]],
+ ['f64mat2x3',['f64mat2x3',['../a00177.html#ga87d256f4719417e311cd0ea14264678d',1,'glm']]],
+ ['f64mat2x4',['f64mat2x4',['../a00177.html#gafb18822e2eac88fa861a76cefd25d550',1,'glm']]],
+ ['f64mat3',['f64mat3',['../a00177.html#ga68894201dd511792a7af6cff7b5adf71',1,'glm']]],
+ ['f64mat3x2',['f64mat3x2',['../a00177.html#ga11e5684b10e098f573ff484c1a569ae2',1,'glm']]],
+ ['f64mat3x3',['f64mat3x3',['../a00177.html#gae1a5081181c96cc37ce9418f6e856cb6',1,'glm']]],
+ ['f64mat3x4',['f64mat3x4',['../a00177.html#gad37a55a8ce1154083a721b4ecfd55293',1,'glm']]],
+ ['f64mat4',['f64mat4',['../a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95',1,'glm']]],
+ ['f64mat4x2',['f64mat4x2',['../a00177.html#gaa669dfb59031a441de19b34a92704d57',1,'glm']]],
+ ['f64mat4x3',['f64mat4x3',['../a00177.html#gaba137814a509704937746cc1e82edc32',1,'glm']]],
+ ['f64mat4x4',['f64mat4x4',['../a00177.html#ga489163773b021f1800a33cc2fa730c3b',1,'glm']]],
+ ['f64quat',['f64quat',['../a00177.html#ga14c583bd625eda8cf4935a14d5dd544d',1,'glm']]],
+ ['f64vec1',['f64vec1',['../a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae',1,'glm::f64vec1()'],['../a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1',1,'glm::gtx::f64vec1()']]],
+ ['f64vec2',['f64vec2',['../a00177.html#gafaad77b464b5a35626c31205ac6780e3',1,'glm']]],
+ ['f64vec3',['f64vec3',['../a00177.html#gafacc3614bb1136a7756293e67d34de22',1,'glm']]],
+ ['f64vec4',['f64vec4',['../a00177.html#ga8723186104dc02eb85da386105fba75f',1,'glm']]],
+ ['faceforward',['faceforward',['../a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d',1,'glm']]],
+ ['factorial',['factorial',['../a00199.html#ga8cbd3120905f398ec321b5d1836e08fb',1,'glm']]],
+ ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00027.html',1,'']]],
+ ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00028.html',1,'']]],
+ ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00029.html',1,'']]],
+ ['fastacos',['fastAcos',['../a00195.html#ga9721d63356e5d94fdc4b393a426ab26b',1,'glm']]],
+ ['fastasin',['fastAsin',['../a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f',1,'glm']]],
+ ['fastatan',['fastAtan',['../a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c',1,'glm::fastAtan(T y, T x)'],['../a00195.html#gae25de86a968490ff56856fa425ec9d30',1,'glm::fastAtan(T angle)']]],
+ ['fastcos',['fastCos',['../a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a',1,'glm']]],
+ ['fastdistance',['fastDistance',['../a00194.html#gaac333418d0c4e0cc6d3d219ed606c238',1,'glm::fastDistance(genType x, genType y)'],['../a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5',1,'glm::fastDistance(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)']]],
+ ['fastexp',['fastExp',['../a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10',1,'glm::fastExp(T x)'],['../a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa',1,'glm::fastExp(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastexp2',['fastExp2',['../a00193.html#ga0af50585955eb14c60bb286297fabab2',1,'glm::fastExp2(T x)'],['../a00193.html#ga9e6219327b7a33077dbec7620d981fff',1,'glm::fastExp2(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastinversesqrt',['fastInverseSqrt',['../a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f',1,'glm::fastInverseSqrt(genType x)'],['../a00194.html#ga903878071f92e51e551791e584a171a1',1,'glm::fastInverseSqrt(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastlength',['fastLength',['../a00194.html#gafe697d6287719538346bbdf8b1367c59',1,'glm::fastLength(genType x)'],['../a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0',1,'glm::fastLength(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastlog',['fastLog',['../a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a',1,'glm::fastLog(T x)'],['../a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3',1,'glm::fastLog(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastlog2',['fastLog2',['../a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e',1,'glm::fastLog2(T x)'],['../a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58',1,'glm::fastLog2(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastmix',['fastMix',['../a00220.html#gac11bf550f17d1da14423595a27575084',1,'glm']]],
+ ['fastnormalize',['fastNormalize',['../a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c',1,'glm']]],
+ ['fastnormalizedot',['fastNormalizeDot',['../a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024',1,'glm']]],
+ ['fastpow',['fastPow',['../a00193.html#ga5340e98a11fcbbd936ba6e983a154d50',1,'glm::fastPow(genType x, genType y)'],['../a00193.html#ga07b73976a9af4005945bc338b45d8466',1,'glm::fastPow(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6',1,'glm::fastPow(genTypeT x, genTypeU y)'],['../a00193.html#ga29924aea1aa11c5c504fb2d621221906',1,'glm::fastPow(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastsin',['fastSin',['../a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915',1,'glm']]],
+ ['fastsqrt',['fastSqrt',['../a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9',1,'glm::fastSqrt(genType x)'],['../a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c',1,'glm::fastSqrt(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fasttan',['fastTan',['../a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2',1,'glm']]],
+ ['fdualquat',['fdualquat',['../a00189.html#ga237c2b9b42c9a930e49de5840ae0f930',1,'glm']]],
+ ['findlsb',['findLSB',['../a00148.html#gaf74c4d969fa34ab8acb9d390f5ca5274',1,'glm::findLSB(genIUType x)'],['../a00148.html#ga014a72009e68233c34c06a6dc2251b8c',1,'glm::findLSB(vecType&lt; T, P &gt; const &amp;v)']]],
+ ['findmsb',['findMSB',['../a00148.html#ga7e4a794d766861c70bc961630f8ef621',1,'glm::findMSB(genIUType x)'],['../a00148.html#ga433104d77ec2ba58888aaefb77e9183f',1,'glm::findMSB(vecType&lt; T, P &gt; const &amp;v)']]],
+ ['float1',['float1',['../a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead',1,'glm']]],
+ ['float1x1',['float1x1',['../a00187.html#ga73720b8dc4620835b17f74d428f98c0c',1,'glm']]],
+ ['float2',['float2',['../a00187.html#ga872a70333dd25af68b1ebba485be9e42',1,'glm']]],
+ ['float2x2',['float2x2',['../a00187.html#gaad93cbc2b863e363d53d405d0451d03e',1,'glm']]],
+ ['float2x3',['float2x3',['../a00187.html#ga098c33a30f901f4f6a76969d6db6b01b',1,'glm']]],
+ ['float2x4',['float2x4',['../a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde',1,'glm']]],
+ ['float3',['float3',['../a00187.html#ga2bfa618285894e34f299e4984f092d56',1,'glm']]],
+ ['float32',['float32',['../a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1',1,'glm']]],
+ ['float32_5ft',['float32_t',['../a00177.html#ga41d579d81c3d98edd0532244fa02da77',1,'glm']]],
+ ['float3x2',['float3x2',['../a00187.html#gaf30014e7b6874f45d58eb580d04764ff',1,'glm']]],
+ ['float3x3',['float3x3',['../a00187.html#ga2692a729a69615d72dbebbdd0eba2363',1,'glm']]],
+ ['float3x4',['float3x4',['../a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e',1,'glm']]],
+ ['float4',['float4',['../a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b',1,'glm']]],
+ ['float4x2',['float4x2',['../a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8',1,'glm']]],
+ ['float4x3',['float4x3',['../a00187.html#gad749b26be059f35394fd71c7f7a44034',1,'glm']]],
+ ['float4x4',['float4x4',['../a00187.html#gaf40529862492ded2f3b96a6c886f6136',1,'glm']]],
+ ['float64',['float64',['../a00177.html#gab5596d48586414c91ccb270962dc14d3',1,'glm']]],
+ ['float64_5ft',['float64_t',['../a00177.html#ga6957c7b22f405683bb276554ca40dc37',1,'glm']]],
+ ['float_5fdistance',['float_distance',['../a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634',1,'glm::float_distance(T const &amp;x, T const &amp;y)'],['../a00179.html#ga85355f2549d75789eb66e5d565d8ad26',1,'glm::float_distance(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)']]],
+ ['floatbitstoint',['floatBitsToInt',['../a00145.html#ga1425c1c3160ec51214b03a0469a3013d',1,'glm::floatBitsToInt(float const &amp;v)'],['../a00145.html#gac4a0710238ae54c67931dd29a0b0f873',1,'glm::floatBitsToInt(vecType&lt; float, P &gt; const &amp;v)']]],
+ ['floatbitstouint',['floatBitsToUint',['../a00145.html#ga70e0271c34af52f3100c7960e18c3f2b',1,'glm::floatBitsToUint(float const &amp;v)'],['../a00145.html#ga1804d4c443605d8a27be644aa461afe4',1,'glm::floatBitsToUint(vecType&lt; float, P &gt; const &amp;v)']]],
+ ['floor',['floor',['../a00145.html#ga568b822b78f045f77c3325e165b44d5d',1,'glm']]],
+ ['floor_5flog2',['floor_log2',['../a00199.html#ga7011b4e1c1e1ed492149b028feacc00e',1,'glm']]],
+ ['floormultiple',['floorMultiple',['../a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d',1,'glm::floorMultiple(genType Source, genType Multiple)'],['../a00175.html#ga6912db42d43873fe1dedb3aed2b7a239',1,'glm::floorMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['floorpoweroftwo',['floorPowerOfTwo',['../a00175.html#gac80f6519c31baae10d8d7bea6735d1fa',1,'glm::floorPowerOfTwo(genIUType Value)'],['../a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37',1,'glm::floorPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['fma',['fma',['../a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2',1,'glm']]],
+ ['fmat2',['fmat2',['../a00177.html#gabb01d4ff646ee07241934b1a0cc0f985',1,'glm']]],
+ ['fmat2x2',['fmat2x2',['../a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711',1,'glm']]],
+ ['fmat2x3',['fmat2x3',['../a00177.html#gaf17b2604c0d92bffb92375d8aa588756',1,'glm']]],
+ ['fmat2x4',['fmat2x4',['../a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5',1,'glm']]],
+ ['fmat3',['fmat3',['../a00177.html#ga5165fbee2d78f342950265b69a07353d',1,'glm']]],
+ ['fmat3x2',['fmat3x2',['../a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca',1,'glm']]],
+ ['fmat3x3',['fmat3x3',['../a00177.html#gad339e25c32fe6665acf028f26c1b3e22',1,'glm']]],
+ ['fmat3x4',['fmat3x4',['../a00177.html#gab04bc97371cb6b5f54b3688e0c81578b',1,'glm']]],
+ ['fmat4',['fmat4',['../a00177.html#gab3f31d867df4874e42172ebf188a3ebd',1,'glm']]],
+ ['fmat4x2',['fmat4x2',['../a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732',1,'glm']]],
+ ['fmat4x3',['fmat4x3',['../a00177.html#ga1a11c170f030ab34ddf037714e936cba',1,'glm']]],
+ ['fmat4x4',['fmat4x4',['../a00177.html#gabd79752ff357d83b49136b6299ea62d9',1,'glm']]],
+ ['fmod',['fmod',['../a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3',1,'glm']]],
+ ['four_5fover_5fpi',['four_over_pi',['../a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09',1,'glm']]],
+ ['fract',['fract',['../a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7',1,'glm']]],
+ ['frexp',['frexp',['../a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d',1,'glm']]],
+ ['frustum',['frustum',['../a00169.html#gada6deb989d4b553fe0f7e3279f3afae1',1,'glm']]],
+ ['frustumlh',['frustumLH',['../a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c',1,'glm']]],
+ ['frustumrh',['frustumRH',['../a00169.html#gad0e184273bdacbe769e5cd81069e48ed',1,'glm']]],
+ ['func_5fcommon_2ehpp',['func_common.hpp',['../a00030.html',1,'']]],
+ ['func_5fexponential_2ehpp',['func_exponential.hpp',['../a00031.html',1,'']]],
+ ['func_5fgeometric_2ehpp',['func_geometric.hpp',['../a00032.html',1,'']]],
+ ['func_5finteger_2ehpp',['func_integer.hpp',['../a00033.html',1,'']]],
+ ['func_5fmatrix_2ehpp',['func_matrix.hpp',['../a00034.html',1,'']]],
+ ['func_5fpacking_2ehpp',['func_packing.hpp',['../a00035.html',1,'']]],
+ ['func_5ftrigonometric_2ehpp',['func_trigonometric.hpp',['../a00036.html',1,'']]],
+ ['func_5fvector_5frelational_2ehpp',['func_vector_relational.hpp',['../a00037.html',1,'']]],
+ ['functions_2ehpp',['functions.hpp',['../a00038.html',1,'']]],
+ ['fvec1',['fvec1',['../a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f',1,'glm']]],
+ ['fvec2',['fvec2',['../a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6',1,'glm']]],
+ ['fvec3',['fvec3',['../a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084',1,'glm']]],
+ ['fvec4',['fvec4',['../a00177.html#ga981b63d5c5f7233a29364e0a968d139b',1,'glm']]],
+ ['fwd_2ehpp',['fwd.hpp',['../a00039.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_7.html b/3rdparty/glm/doc/api/search/all_7.html
new file mode 100644
index 00000000000..38c6c000626
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_7.js b/3rdparty/glm/doc/api/search/all_7.js
new file mode 100644
index 00000000000..9abeccacc40
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_7.js
@@ -0,0 +1,104 @@
+var searchData=
+[
+ ['color_5fspace_2ehpp',['color_space.hpp',['../a00012.html',1,'']]],
+ ['color_5fspace_2ehpp',['color_space.hpp',['../a00013.html',1,'']]],
+ ['common_2ehpp',['common.hpp',['../a00016.html',1,'']]],
+ ['glm_20core',['GLM Core',['../a00155.html',1,'']]],
+ ['geometric_20functions',['Geometric functions',['../a00147.html',1,'']]],
+ ['gauss',['gauss',['../a00164.html#ga0b50b197ff74261a0fad90f4b8d24702',1,'glm::gauss(T x, T ExpectedValue, T StandardDeviation)'],['../a00164.html#ga7448f9eb74bb5924f6330ab532f2899c',1,'glm::gauss(tvec2&lt; T, P &gt; const &amp;Coord, tvec2&lt; T, P &gt; const &amp;ExpectedValue, tvec2&lt; T, P &gt; const &amp;StandardDeviation)']]],
+ ['gaussrand',['gaussRand',['../a00173.html#ga5193a83e49e4fdc5652c084711083574',1,'glm']]],
+ ['geometric_2ehpp',['geometric.hpp',['../a00040.html',1,'']]],
+ ['glm_2ehpp',['glm.hpp',['../a00041.html',1,'']]],
+ ['glm_5faligned_5ftypedef',['GLM_ALIGNED_TYPEDEF',['../a00231.html#gab5cd5c5fad228b25c782084f1cc30114',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1)'],['../a00231.html#ga5bb5dd895ef625c1b113f2cf400186b0',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2)'],['../a00231.html#gac6efa54cf7c6c86f7158922abdb1a430',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4)'],['../a00231.html#ga6612eb77c8607048e7552279a11eeb5f',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8)'],['../a00231.html#ga7ddc1848ff2223026db8968ce0c97497',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1)'],['../a00231.html#ga22240dd9458b0f8c11fbcc4f48714f68',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2)'],['../a00231.html#ga8130ea381d76a2cc34a93ccbb6cf487d',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4)'],['../a00231.html#ga7ccb60f3215d293fd62b33b31ed0e7be',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8)'],['../a00231.html#gac20d508d2ef5cc95ad3daf083c57ec2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1)'],['../a00231.html#ga50257b48069a31d0c8d9c1f644d267de',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2)'],['../a00231.html#gaa07e98e67b7a3435c0746018c7a2a839',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4)'],['../a00231.html#ga62601fc6f8ca298b77285bedf03faffd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8)'],['../a00231.html#gac8cff825951aeb54dd846037113c72db',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1)'],['../a00231.html#ga78f443d88f438575a62b5df497cdf66b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2)'],['../a00231.html#ga0680cd3b5d4e8006985fb41a4f9b57af',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4)'],['../a00231.html#gad9e5babb1dd3e3531b42c37bf25dd951',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8)'],['../a00231.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1)'],['../a00231.html#ga2196442c0e5c5e8c77842de388c42521',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2)'],['../a00231.html#ga1284488189daf897cf095c5eefad9744',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4)'],['../a00231.html#ga73fdc86a539808af58808b7c60a1c4d8',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8)'],['../a00231.html#gafafeea923e1983262c972e2b83922d3b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1)'],['../a00231.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2)'],['../a00231.html#ga63b882e29170d428463d99c3d630acc6',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4)'],['../a00231.html#ga8b20507bb048c1edea2d441cc953e6f0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8)'],['../a00231.html#ga56c5ca60813027b603c7b61425a0479d',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1)'],['../a00231.html#ga7a751b3aff24c0259f4a7357c2969089',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2)'],['../a00231.html#ga70cd2144351c556469ee6119e59971fc',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4)'],['../a00231.html#ga46bbf08dc004d8c433041e0b5018a5d3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8)'],['../a00231.html#gab3e10c77a20d1abad2de1c561c7a5c18',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1)'],['../a00231.html#ga968f30319ebeaca9ebcd3a25a8e139fb',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2)'],['../a00231.html#gaae773c28e6390c6aa76f5b678b7098a3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4)'],['../a00231.html#ga790cfff1ca39d0ed696ffed980809311',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8)'],['../a00231.html#ga8265b91eb23c120a9b0c3e381bc37b96',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1)'],['../a00231.html#gae6d384de17588d8edb894fbe06e0d410',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2)'],['../a00231.html#ga9c8172b745ee03fc5b2b91c350c2922f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4)'],['../a00231.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8)'],['../a00231.html#gabd82b9faa9d4d618dbbe0fc8a1efee63',1,'glm::GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1)'],['../a00231.html#ga285649744560be21000cfd81bbb5d507',1,'glm::GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2)'],['../a00231.html#ga07732da630b2deda428ce95c0ecaf3ff',1,'glm::GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4)'],['../a00231.html#ga1a8da2a8c51f69c07a2e7f473aa420f4',1,'glm::GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8)'],['../a00231.html#ga848aedf13e2d9738acf0bb482c590174',1,'glm::GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1)'],['../a00231.html#gafd2803d39049dd45a37a63931e25d943',1,'glm::GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2)'],['../a00231.html#gae553b33349d6da832cf0724f1e024094',1,'glm::GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4)'],['../a00231.html#ga16d223a2b3409e812e1d3bd87f0e9e5c',1,'glm::GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8)'],['../a00231.html#ga2de065d2ddfdb366bcd0febca79ae2ad',1,'glm::GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1)'],['../a00231.html#gabd786bdc20a11c8cb05c92c8212e28d3',1,'glm::GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2)'],['../a00231.html#gad4aefe56691cdb640c72f0d46d3fb532',1,'glm::GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4)'],['../a00231.html#ga8fe9745f7de24a8394518152ff9fccdc',1,'glm::GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8)'],['../a00231.html#gaaad735483450099f7f882d4e3a3569bd',1,'glm::GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4)'],['../a00231.html#gac7b6f823802edbd6edbaf70ea25bf068',1,'glm::GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8)'],['../a00231.html#ga3e235bcd2b8029613f25b8d40a2d3ef7',1,'glm::GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16)'],['../a00231.html#ga50d8a9523968c77f8325b4c9bfbff41e',1,'glm::GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16)'],['../a00231.html#ga9ec20fdfb729c702032da9378c79679f',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1)'],['../a00231.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2)'],['../a00231.html#ga2958f907719d94d8109b562540c910e2',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4)'],['../a00231.html#ga1fe6fc032a978f1c845fac9aa0668714',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4)'],['../a00231.html#gaa4161e7a496dc96972254143fe873e55',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2)'],['../a00231.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4)'],['../a00231.html#gaaee91dd2ab34423bcc11072ef6bd0f02',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8)'],['../a00231.html#ga49f047ccaa8b31fad9f26c67bf9b3510',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8)'],['../a00231.html#ga904e9c2436bb099397c0823506a0771f',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4)'],['../a00231.html#gaf90651cf2f5e7ee2b11cfdc5a6749534',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8)'],['../a00231.html#ga7354a4ead8cb17868aec36b9c30d6010',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16)'],['../a00231.html#gad2ecbdea18732163e2636e27b37981ee',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16)'],['../a00231.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8)'],['../a00231.html#ga1f9e9c2ea2768675dff9bae5cde2d829',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16)'],['../a00231.html#gad77c317b7d942322cd5be4c8127b3187',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32)'],['../a00231.html#ga716f8ea809bdb11b5b542d8b71aeb04f',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32)'],['../a00231.html#gad46f8e9082d5878b1bc04f9c1471cdaa',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1)'],['../a00231.html#ga1246094581af624aca6c7499aaabf801',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2)'],['../a00231.html#ga7a5009a1d0196bbf21dd7518f61f0249',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4)'],['../a00231.html#ga45213fd18b3bb1df391671afefe4d1e7',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8)'],['../a00231.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1)'],['../a00231.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2)'],['../a00231.html#gadc246401847dcba155f0699425e49dcd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4)'],['../a00231.html#gaace64bddf51a9def01498da9a94fb01c',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8)'],['../a00231.html#gad7bb97c29d664bd86ffb1bed4abc5534',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1)'],['../a00231.html#ga404bba7785130e0b1384d695a9450b28',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2)'],['../a00231.html#ga31ba41fd896257536958ec6080203d2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4)'],['../a00231.html#gacca5f13627f57b3505676e40a6e43e5e',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8)'],['../a00231.html#ga5faf1d3e70bf33174dd7f3d01d5b883b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1)'],['../a00231.html#ga727e2bf2c433bb3b0182605860a48363',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2)'],['../a00231.html#ga12566ca66d5962dadb4a5eb4c74e891e',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4)'],['../a00231.html#ga7b66a97a8acaa35c5a377b947318c6bc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8)'],['../a00231.html#gaa9cde002439b74fa66120a16a9f55fcc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1)'],['../a00231.html#ga1ca98c67f7d1e975f7c5202f1da1df1f',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2)'],['../a00231.html#ga1dc8bc6199d785f235576948d80a597c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4)'],['../a00231.html#gad14a0f2ec93519682b73d70b8e401d81',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8)'],['../a00231.html#gada8b996eb6526dc1ead813bd49539d1b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1)'],['../a00231.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2)'],['../a00231.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4)'],['../a00231.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8)'],['../a00231.html#ga0ee829f7b754b262bbfe6317c0d678ac',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1)'],['../a00231.html#ga447848a817a626cae08cedc9778b331c',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2)'],['../a00231.html#ga6027ae13b2734f542a6e7beee11b8820',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4)'],['../a00231.html#ga2aca46c8608c95ef991ee4c332acde5f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8)'],['../a00231.html#gaff50b10dd1c48be324fdaffd18e2c7ea',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1)'],['../a00231.html#ga9fc4421dbb833d5461e6d4e59dcfde55',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2)'],['../a00231.html#ga329f1e2b94b33ba5e3918197030bcf03',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4)'],['../a00231.html#ga71e646f7e301aa422328194162c9c998',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8)'],['../a00231.html#ga8942e09f479489441a7a5004c6d8cb66',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1)'],['../a00231.html#gaab32497d6e4db16ee439dbedd64c5865',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2)'],['../a00231.html#gaaadbb34952eca8e3d7fe122c3e167742',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4)'],['../a00231.html#ga92024d27c74a3650afb55ec8e024ed25',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8)'],['../a00231.html#gabde1d0b4072df35453db76075ab896a6',1,'glm::GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1)'],['../a00231.html#ga06c296c9e398b294c8c9dd2a7693dcbb',1,'glm::GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2)'],['../a00231.html#gacf1744488c96ebd33c9f36ad33b2010a',1,'glm::GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4)'],['../a00231.html#ga3328061a64c20ba59d5f9da24c2cd059',1,'glm::GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8)'],['../a00231.html#gaf6ced36f13bae57f377bafa6f5fcc299',1,'glm::GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1)'],['../a00231.html#gafbc7fb7847bfc78a339d1d371c915c73',1,'glm::GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2)'],['../a00231.html#gaa86bc56a73fd8120b1121b5f5e6245ae',1,'glm::GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4)'],['../a00231.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8',1,'glm::GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8)'],['../a00231.html#ga4f3bab577daf3343e99cc005134bce86',1,'glm::GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1)'],['../a00231.html#ga13a2391339d0790d43b76d00a7611c4f',1,'glm::GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2)'],['../a00231.html#ga197570e03acbc3d18ab698e342971e8f',1,'glm::GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4)'],['../a00231.html#ga0f033b21e145a1faa32c62ede5878993',1,'glm::GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8)'],['../a00231.html#ga509af83527f5cd512e9a7873590663aa',1,'glm::GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4)'],['../a00231.html#ga94e86186978c502c6dc0c0d9c4a30679',1,'glm::GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8)'],['../a00231.html#ga5cec574686a7f3c8ed24bb195c5e2d0a',1,'glm::GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16)'],['../a00231.html#ga47edfdcee9c89b1ebdaf20450323b1d4',1,'glm::GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16)'],['../a00231.html#ga5611d6718e3a00096918a64192e73a45',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1)'],['../a00231.html#ga19837e6f72b60d994a805ef564c6c326',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2)'],['../a00231.html#ga9740cf8e34f068049b42a2753f9601c2',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4)'],['../a00231.html#ga8b8588bb221448f5541a858903822a57',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4)'],['../a00231.html#ga991abe990c16de26b2129d6bc2f4c051',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2)'],['../a00231.html#gac01bb9fc32a1cd76c2b80d030f71df4c',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4)'],['../a00231.html#ga09540dbca093793a36a8997e0d4bee77',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8)'],['../a00231.html#gaecafb5996f5a44f57e34d29c8670741e',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8)'],['../a00231.html#gac6b161a04d2f8408fe1c9d857e8daac0',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4)'],['../a00231.html#ga1fa0dfc8feb0fa17dab2acd43e05342b',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8)'],['../a00231.html#ga0019500abbfa9c66eff61ca75eaaed94',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16)'],['../a00231.html#ga14fd29d01dae7b08a04e9facbcc18824',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16)'],['../a00231.html#gab253845f534a67136f9619843cade903',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8)'],['../a00231.html#ga929427a7627940cdf3304f9c050b677d',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16)'],['../a00231.html#gae373b6c04fdf9879f33d63e6949c037e',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32)'],['../a00231.html#ga53a8a03dca2015baec4584f45b8e9cdc',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32)'],['../a00231.html#gab3301bae94ef5bf59fbdd9a24e7d2a01',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4)'],['../a00231.html#ga75930684ff2233171c573e603f216162',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8)'],['../a00231.html#gada9b0bea273d3ae0286f891533b9568f',1,'glm::GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4)'],['../a00231.html#ga6e3a2d83b131336219a0f4c7cbba2a48',1,'glm::GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8)'],['../a00231.html#gadbce23b9f23d77bb3884e289a574ebd5',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4)'],['../a00231.html#gaa4deaa0dea930c393d55e7a4352b0a20',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8)'],['../a00231.html#ga81bc497b2bfc6f80bab690c6ee28f0f9',1,'glm::GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4)'],['../a00231.html#gada3e8f783e9d4b90006695a16c39d4d4',1,'glm::GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8)'],['../a00231.html#gab8d081fac3a38d6f55fa552f32168d32',1,'glm::GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16)'],['../a00231.html#ga12fe7b9769c964c5b48dcfd8b7f40198',1,'glm::GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16)'],['../a00231.html#gaefab04611c7f8fe1fd9be3071efea6cc',1,'glm::GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4)'],['../a00231.html#ga2543c05ba19b3bd19d45b1227390c5b4',1,'glm::GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8)'],['../a00231.html#ga009afd727fd657ef33a18754d6d28f60',1,'glm::GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16)'],['../a00231.html#ga2f26177e74bfb301a3d0e02ec3c3ef53',1,'glm::GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16)'],['../a00231.html#ga309f495a1d6b75ddf195b674b65cb1e4',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4)'],['../a00231.html#ga5e185865a2217d0cd47187644683a8c3',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8)'],['../a00231.html#gade4458b27b039b9ca34f8ec049f3115a',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16)'],['../a00231.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16)'],['../a00231.html#ga3e0f35fa0c626285a8bad41707e7316c',1,'glm::GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8)'],['../a00231.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8',1,'glm::GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16)'],['../a00231.html#ga01fe6fee6db5df580b6724a7e681f069',1,'glm::GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32)'],['../a00231.html#ga687d5b8f551d5af32425c0b2fba15e99',1,'glm::GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32)'],['../a00231.html#ga8e842371d46842ff8f1813419ba49d0f',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8)'],['../a00231.html#ga32814aa0f19316b43134fc25f2aad2b9',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16)'],['../a00231.html#gaf3d3bbc1e93909b689123b085e177a14',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32)'],['../a00231.html#ga804c654cead1139bd250f90f9bb01fad',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32)'],['../a00231.html#gafed7d010235a3aa7ea2f88646858f2ae',1,'glm::GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16)'],['../a00231.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c',1,'glm::GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16)'],['../a00231.html#ga31940e6012b72110e26fdb0f54805033',1,'glm::GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16)'],['../a00231.html#ga01de96cd0b541c52d2b4a3faf65822e9',1,'glm::GLM_ALIGNED_TYPEDEF(mat2x2, aligned_mat2x2, 16)'],['../a00231.html#gac88a191b004bd341e64fc53b5a4d00e3',1,'glm::GLM_ALIGNED_TYPEDEF(mat3x3, aligned_mat3x3, 16)'],['../a00231.html#gabe8c745fa2ced44a600a6e3f19991161',1,'glm::GLM_ALIGNED_TYPEDEF(mat4x4, aligned_mat4x4, 16)'],['../a00231.html#ga719da577361541a4c43a2dd1d0e361e1',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16)'],['../a00231.html#ga6e7ee4f541e1d7db66cd1a224caacafb',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16)'],['../a00231.html#gae5d672d359f2a39f63f98c7975057486',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16)'],['../a00231.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16)'],['../a00231.html#ga0743b4f4f69a3227b82ff58f6abbad62',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16)'],['../a00231.html#ga1a76b325fdf70f961d835edd182c63dd',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16)'],['../a00231.html#ga4b4e181cd041ba28c3163e7b8074aef0',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16)'],['../a00231.html#ga27b13f465abc8a40705698145e222c3f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16)'],['../a00231.html#ga2608d19cc275830a6f8c0b6405625a4f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16)'],['../a00231.html#ga93f09768241358a287c4cca538f1f7e7',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16)'],['../a00231.html#ga7c117e3ecca089e10247b1d41d88aff9',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16)'],['../a00231.html#ga07c75cd04ba42dc37fa3e105f89455c5',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16)'],['../a00231.html#ga65ff0d690a34a4d7f46f9b2eb51525ee',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16)'],['../a00231.html#gadd8ddbe2bf65ccede865ba2f510176dc',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16)'],['../a00231.html#gaf18dbff14bf13d3ff540c517659ec045',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16)'],['../a00231.html#ga66339f6139bf7ff19e245beb33f61cc8',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16)'],['../a00231.html#ga1558a48b3934011b52612809f443e46d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16)'],['../a00231.html#gaa52e5732daa62851627021ad551c7680',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16)'],['../a00231.html#gac09663c42566bcb58d23c6781ac4e85a',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16)'],['../a00231.html#ga3f510999e59e1b309113e1d561162b29',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16)'],['../a00231.html#ga2c9c94f0c89cd71ce56551db6cf4aaec',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16)'],['../a00231.html#ga99ce8274c750fbfdf0e70c95946a2875',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16)'],['../a00231.html#ga9476ef66790239df53dbe66f3989c3b5',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16)'],['../a00231.html#gacc429b3b0b49921e12713b6d31e14e1d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16)'],['../a00231.html#ga88f6c6fa06e6e64479763e69444669cf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32)'],['../a00231.html#gaae8e4639c991e64754145ab8e4c32083',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32)'],['../a00231.html#ga6e9094f3feb3b5b49d0f83683a101fde',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32)'],['../a00231.html#gadbd2c639c03de1c3e9591b5a39f65559',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32)'],['../a00231.html#gab059d7b9fe2094acc563b7223987499f',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32)'],['../a00231.html#gabbc811d1c52ed2b8cfcaff1378f75c69',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32)'],['../a00231.html#ga9ddf5212777734d2fd841a84439f3bdf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32)'],['../a00231.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32)'],['../a00231.html#ga5875e0fa72f07e271e7931811cbbf31a',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32)'],['../a00231.html#ga41e82cd6ac07f912ba2a2d45799dcf0d',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32)'],['../a00231.html#ga0892638d6ba773043b3d63d1d092622e',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32)'],['../a00231.html#ga912a16432608b822f1e13607529934c1',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32)'],['../a00231.html#gafd945a8ea86b042aba410e0560df9a3d',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16)'],['../a00231.html#gad8c4bfacff70e57dc8303634c8bfce35',1,'glm::GLM_ALIGNED_TYPEDEF(fquat, aligned_fquat, 16)'],['../a00231.html#gaabc28c84a3288b697605d4688686f9a9',1,'glm::GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32)'],['../a00231.html#ga1ed8aeb5ca67fade269a46105f1bf273',1,'glm::GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16)'],['../a00231.html#ga95cc03b8b475993fa50e05e38e203303',1,'glm::GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)']]],
+ ['golden_5fratio',['golden_ratio',['../a00162.html#ga748cf8642830657c5b7eae04d0a80899',1,'glm']]],
+ ['gradient_5fpaint_2ehpp',['gradient_paint.hpp',['../a00042.html',1,'']]],
+ ['greaterthan',['greaterThan',['../a00152.html#gadd80263161a308462d3e3e287e79cccd',1,'glm::greaterThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae',1,'glm::greaterThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['greaterthanequal',['greaterThanEqual',['../a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26',1,'glm::greaterThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e',1,'glm::greaterThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['gtc_20extensions_20_28stable_29',['GTC Extensions (Stable)',['../a00153.html',1,'']]],
+ ['glm_5fgtc_5fbitfield',['GLM_GTC_bitfield',['../a00159.html',1,'']]],
+ ['glm_5fgtc_5fcolor_5fencoding',['GLM_GTC_color_encoding',['../a00160.html',1,'']]],
+ ['glm_5fgtc_5fcolor_5fspace',['GLM_GTC_color_space',['../a00161.html',1,'']]],
+ ['glm_5fgtc_5fconstants',['GLM_GTC_constants',['../a00162.html',1,'']]],
+ ['glm_5fgtc_5fepsilon',['GLM_GTC_epsilon',['../a00163.html',1,'']]],
+ ['glm_5fgtc_5ffunctions',['GLM_GTC_functions',['../a00164.html',1,'']]],
+ ['glm_5fgtc_5finteger',['GLM_GTC_integer',['../a00165.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5faccess',['GLM_GTC_matrix_access',['../a00166.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5finteger',['GLM_GTC_matrix_integer',['../a00167.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5finverse',['GLM_GTC_matrix_inverse',['../a00168.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5ftransform',['GLM_GTC_matrix_transform',['../a00169.html',1,'']]],
+ ['glm_5fgtc_5fnoise',['GLM_GTC_noise',['../a00170.html',1,'']]],
+ ['glm_5fgtc_5fpacking',['GLM_GTC_packing',['../a00171.html',1,'']]],
+ ['glm_5fgtc_5fquaternion',['GLM_GTC_quaternion',['../a00172.html',1,'']]],
+ ['glm_5fgtc_5frandom',['GLM_GTC_random',['../a00173.html',1,'']]],
+ ['glm_5fgtc_5freciprocal',['GLM_GTC_reciprocal',['../a00174.html',1,'']]],
+ ['glm_5fgtc_5fround',['GLM_GTC_round',['../a00175.html',1,'']]],
+ ['glm_5fgtc_5ftype_5faligned',['GLM_GTC_type_aligned',['../a00176.html',1,'']]],
+ ['glm_5fgtc_5ftype_5fprecision',['GLM_GTC_type_precision',['../a00177.html',1,'']]],
+ ['glm_5fgtc_5ftype_5fptr',['GLM_GTC_type_ptr',['../a00178.html',1,'']]],
+ ['glm_5fgtc_5fulp',['GLM_GTC_ulp',['../a00179.html',1,'']]],
+ ['glm_5fgtc_5fvec1',['GLM_GTC_vec1',['../a00180.html',1,'']]],
+ ['gtx_20extensions_20_28experimental_29',['GTX Extensions (Experimental)',['../a00154.html',1,'']]],
+ ['glm_5fgtx_5fassociated_5fmin_5fmax',['GLM_GTX_associated_min_max',['../a00181.html',1,'']]],
+ ['glm_5fgtx_5fbit',['GLM_GTX_bit',['../a00182.html',1,'']]],
+ ['glm_5fgtx_5fclosest_5fpoint',['GLM_GTX_closest_point',['../a00183.html',1,'']]],
+ ['glm_5fgtx_5fcolor_5fspace',['GLM_GTX_color_space',['../a00184.html',1,'']]],
+ ['glm_5fgtx_5fcolor_5fspace_5fycocg',['GLM_GTX_color_space_YCoCg',['../a00185.html',1,'']]],
+ ['glm_5fgtx_5fcommon',['GLM_GTX_common',['../a00186.html',1,'']]],
+ ['glm_5fgtx_5fcompatibility',['GLM_GTX_compatibility',['../a00187.html',1,'']]],
+ ['glm_5fgtx_5fcomponent_5fwise',['GLM_GTX_component_wise',['../a00188.html',1,'']]],
+ ['glm_5fgtx_5fdual_5fquaternion',['GLM_GTX_dual_quaternion',['../a00189.html',1,'']]],
+ ['glm_5fgtx_5feuler_5fangles',['GLM_GTX_euler_angles',['../a00190.html',1,'']]],
+ ['glm_5fgtx_5fextend',['GLM_GTX_extend',['../a00191.html',1,'']]],
+ ['glm_5fgtx_5fextented_5fmin_5fmax',['GLM_GTX_extented_min_max',['../a00192.html',1,'']]],
+ ['glm_5fgtx_5ffast_5fexponential',['GLM_GTX_fast_exponential',['../a00193.html',1,'']]],
+ ['glm_5fgtx_5ffast_5fsquare_5froot',['GLM_GTX_fast_square_root',['../a00194.html',1,'']]],
+ ['glm_5fgtx_5ffast_5ftrigonometry',['GLM_GTX_fast_trigonometry',['../a00195.html',1,'']]],
+ ['glm_5fgtx_5fgradient_5fpaint',['GLM_GTX_gradient_paint',['../a00196.html',1,'']]],
+ ['glm_5fgtx_5fhanded_5fcoordinate_5fspace',['GLM_GTX_handed_coordinate_space',['../a00197.html',1,'']]],
+ ['glm_5fgtx_5fhash',['GLM_GTX_hash',['../a00198.html',1,'']]],
+ ['glm_5fgtx_5finteger',['GLM_GTX_integer',['../a00199.html',1,'']]],
+ ['glm_5fgtx_5fintersect',['GLM_GTX_intersect',['../a00200.html',1,'']]],
+ ['glm_5fgtx_5fio',['GLM_GTX_io',['../a00201.html',1,'']]],
+ ['glm_5fgtx_5flog_5fbase',['GLM_GTX_log_base',['../a00202.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fcross_5fproduct',['GLM_GTX_matrix_cross_product',['../a00203.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fdecompose',['GLM_GTX_matrix_decompose',['../a00204.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5finterpolation',['GLM_GTX_matrix_interpolation',['../a00205.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fmajor_5fstorage',['GLM_GTX_matrix_major_storage',['../a00206.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5foperation',['GLM_GTX_matrix_operation',['../a00207.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fquery',['GLM_GTX_matrix_query',['../a00208.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5ftransform_5f2d',['GLM_GTX_matrix_transform_2d',['../a00209.html',1,'']]],
+ ['glm_5fgtx_5fmixed_5fproducte',['GLM_GTX_mixed_producte',['../a00210.html',1,'']]],
+ ['glm_5fgtx_5fnorm',['GLM_GTX_norm',['../a00211.html',1,'']]],
+ ['glm_5fgtx_5fnormal',['GLM_GTX_normal',['../a00212.html',1,'']]],
+ ['glm_5fgtx_5fnormalize_5fdot',['GLM_GTX_normalize_dot',['../a00213.html',1,'']]],
+ ['glm_5fgtx_5fnumber_5fprecision',['GLM_GTX_number_precision',['../a00214.html',1,'']]],
+ ['glm_5fgtx_5foptimum_5fpow',['GLM_GTX_optimum_pow',['../a00215.html',1,'']]],
+ ['glm_5fgtx_5forthonormalize',['GLM_GTX_orthonormalize',['../a00216.html',1,'']]],
+ ['glm_5fgtx_5fperpendicular',['GLM_GTX_perpendicular',['../a00217.html',1,'']]],
+ ['glm_5fgtx_5fpolar_5fcoordinates',['GLM_GTX_polar_coordinates',['../a00218.html',1,'']]],
+ ['glm_5fgtx_5fprojection',['GLM_GTX_projection',['../a00219.html',1,'']]],
+ ['glm_5fgtx_5fquaternion',['GLM_GTX_quaternion',['../a00220.html',1,'']]],
+ ['glm_5fgtx_5frange',['GLM_GTX_range',['../a00221.html',1,'']]],
+ ['glm_5fgtx_5fraw_5fdata',['GLM_GTX_raw_data',['../a00222.html',1,'']]],
+ ['glm_5fgtx_5frotate_5fnormalized_5faxis',['GLM_GTX_rotate_normalized_axis',['../a00223.html',1,'']]],
+ ['glm_5fgtx_5frotate_5fvector',['GLM_GTX_rotate_vector',['../a00224.html',1,'']]],
+ ['glm_5fgtx_5fscalar_5frelational',['GLM_GTX_scalar_relational',['../a00225.html',1,'']]],
+ ['glm_5fgtx_5fspline',['GLM_GTX_spline',['../a00226.html',1,'']]],
+ ['glm_5fgtx_5fstd_5fbased_5ftype',['GLM_GTX_std_based_type',['../a00227.html',1,'']]],
+ ['glm_5fgtx_5fstring_5fcast',['GLM_GTX_string_cast',['../a00228.html',1,'']]],
+ ['glm_5fgtx_5ftransform',['GLM_GTX_transform',['../a00229.html',1,'']]],
+ ['glm_5fgtx_5ftransform2',['GLM_GTX_transform2',['../a00230.html',1,'']]],
+ ['glm_5fgtx_5ftype_5faligned',['GLM_GTX_type_aligned',['../a00231.html',1,'']]],
+ ['glm_5fgtx_5ftype_5ftrait',['GLM_GTX_type_trait',['../a00232.html',1,'']]],
+ ['glm_5fgtx_5fvec_5fswizzle',['GLM_GTX_vec_swizzle',['../a00233.html',1,'']]],
+ ['glm_5fgtx_5fvector_5fangle',['GLM_GTX_vector_angle',['../a00234.html',1,'']]],
+ ['glm_5fgtx_5fvector_5fquery',['GLM_GTX_vector_query',['../a00235.html',1,'']]],
+ ['glm_5fgtx_5fwrap',['GLM_GTX_wrap',['../a00236.html',1,'']]],
+ ['integer_2ehpp',['integer.hpp',['../a00046.html',1,'']]],
+ ['integer_2ehpp',['integer.hpp',['../a00045.html',1,'']]],
+ ['packing_2ehpp',['packing.hpp',['../a00081.html',1,'']]],
+ ['quaternion_2ehpp',['quaternion.hpp',['../a00089.html',1,'']]],
+ ['quaternion_2ehpp',['quaternion.hpp',['../a00088.html',1,'']]],
+ ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00107.html',1,'']]],
+ ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00106.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_8.html b/3rdparty/glm/doc/api/search/all_8.html
new file mode 100644
index 00000000000..2a22cd52c17
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_8.js b/3rdparty/glm/doc/api/search/all_8.js
new file mode 100644
index 00000000000..f464994951a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_8.js
@@ -0,0 +1,102 @@
+var searchData=
+[
+ ['half_5fpi',['half_pi',['../a00162.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]],
+ ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00043.html',1,'']]],
+ ['hash_2ehpp',['hash.hpp',['../a00044.html',1,'']]],
+ ['hermite',['hermite',['../a00226.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]],
+ ['highestbitvalue',['highestBitValue',['../a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73',1,'glm::highestBitValue(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['highp_5fbvec2',['highp_bvec2',['../a00157.html#ga829f39950549881a08c534946c0487e1',1,'glm']]],
+ ['highp_5fbvec3',['highp_bvec3',['../a00157.html#gaca7c2a58eb926799c30ad547a290fccf',1,'glm']]],
+ ['highp_5fbvec4',['highp_bvec4',['../a00157.html#gae5f9c57d04b338c9a51a9af39e50795b',1,'glm']]],
+ ['highp_5fddualquat',['highp_ddualquat',['../a00189.html#ga8f67eafa7197d7a668dad5105a463d2a',1,'glm']]],
+ ['highp_5fdmat2',['highp_dmat2',['../a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8',1,'glm']]],
+ ['highp_5fdmat2x2',['highp_dmat2x2',['../a00157.html#ga518f28c64881fafaaf14ec0d867a9bba',1,'glm']]],
+ ['highp_5fdmat2x3',['highp_dmat2x3',['../a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6',1,'glm']]],
+ ['highp_5fdmat2x4',['highp_dmat2x4',['../a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30',1,'glm']]],
+ ['highp_5fdmat3',['highp_dmat3',['../a00157.html#ga605c7863807ac2e9c2db4cf13405f34d',1,'glm']]],
+ ['highp_5fdmat3x2',['highp_dmat3x2',['../a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21',1,'glm']]],
+ ['highp_5fdmat3x3',['highp_dmat3x3',['../a00157.html#ga2d7911a43241a5ce2472421255e5930f',1,'glm']]],
+ ['highp_5fdmat3x4',['highp_dmat3x4',['../a00157.html#ga51bfd2f3f5a12464d5934323db9116e7',1,'glm']]],
+ ['highp_5fdmat4',['highp_dmat4',['../a00157.html#ga4607e33c40a3c03256e0bf9c586b456a',1,'glm']]],
+ ['highp_5fdmat4x2',['highp_dmat4x2',['../a00157.html#ga5ee028f50629bf451973b3a910973357',1,'glm']]],
+ ['highp_5fdmat4x3',['highp_dmat4x3',['../a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a',1,'glm']]],
+ ['highp_5fdmat4x4',['highp_dmat4x4',['../a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432',1,'glm']]],
+ ['highp_5fdualquat',['highp_dualquat',['../a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf',1,'glm']]],
+ ['highp_5fdvec2',['highp_dvec2',['../a00157.html#ga435eb408e8dfa4f7185368109d432c14',1,'glm']]],
+ ['highp_5fdvec3',['highp_dvec3',['../a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa',1,'glm']]],
+ ['highp_5fdvec4',['highp_dvec4',['../a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39',1,'glm']]],
+ ['highp_5ffdualquat',['highp_fdualquat',['../a00189.html#ga4c4e55e9c99dc57b299ed590968da564',1,'glm']]],
+ ['highp_5ffloat',['highp_float',['../a00157.html#ga6e95694987ba35af6f736638be39626a',1,'glm']]],
+ ['highp_5fi16',['highp_i16',['../a00177.html#ga0336abc2604dd2c20c30e036454b64f8',1,'glm']]],
+ ['highp_5fi32',['highp_i32',['../a00177.html#ga727675ac6b5d2fc699520e0059735e25',1,'glm']]],
+ ['highp_5fi64',['highp_i64',['../a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd',1,'glm']]],
+ ['highp_5fi8',['highp_i8',['../a00177.html#gacb88796f2d08ef253d0345aff20c3aee',1,'glm']]],
+ ['highp_5fimat2',['highp_imat2',['../a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a',1,'glm']]],
+ ['highp_5fimat2x2',['highp_imat2x2',['../a00167.html#gac455e55e7cb32e31396a9d4613da046a',1,'glm']]],
+ ['highp_5fimat2x3',['highp_imat2x3',['../a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e',1,'glm']]],
+ ['highp_5fimat2x4',['highp_imat2x4',['../a00167.html#ga73b855cc40e5d8202b7ab38461326d65',1,'glm']]],
+ ['highp_5fimat3',['highp_imat3',['../a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9',1,'glm']]],
+ ['highp_5fimat3x2',['highp_imat3x2',['../a00167.html#ga0413bf87605b9247be2533c439127a1c',1,'glm']]],
+ ['highp_5fimat3x3',['highp_imat3x3',['../a00167.html#gacce460d54216438bb577bf8c9d68299c',1,'glm']]],
+ ['highp_5fimat3x4',['highp_imat3x4',['../a00167.html#gad4fea24b4100e21ed7742c91e5458d49',1,'glm']]],
+ ['highp_5fimat4',['highp_imat4',['../a00167.html#ga159ce04cc638ff4db755542cd8f758cb',1,'glm']]],
+ ['highp_5fimat4x2',['highp_imat4x2',['../a00167.html#ga7d43dd8332000f7f19379efa1b303599',1,'glm']]],
+ ['highp_5fimat4x3',['highp_imat4x3',['../a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73',1,'glm']]],
+ ['highp_5fimat4x4',['highp_imat4x4',['../a00167.html#gae53db595d36f49a299e180302795e3c9',1,'glm']]],
+ ['highp_5fint',['highp_int',['../a00157.html#gaaabe7eb044941ebf308b53a447d692dc',1,'glm']]],
+ ['highp_5fint16',['highp_int16',['../a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718',1,'glm']]],
+ ['highp_5fint16_5ft',['highp_int16_t',['../a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff',1,'glm']]],
+ ['highp_5fint32',['highp_int32',['../a00177.html#ga84ed04b4e0de18c977e932d617e7c223',1,'glm']]],
+ ['highp_5fint32_5ft',['highp_int32_t',['../a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f',1,'glm']]],
+ ['highp_5fint64',['highp_int64',['../a00177.html#ga226a8d52b4e3f77aaa6231135e886aac',1,'glm']]],
+ ['highp_5fint64_5ft',['highp_int64_t',['../a00177.html#ga73c6abb280a45feeff60f9accaee91f3',1,'glm']]],
+ ['highp_5fint8',['highp_int8',['../a00177.html#gad0549c902a96a7164e4ac858d5f39dbf',1,'glm']]],
+ ['highp_5fint8_5ft',['highp_int8_t',['../a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5',1,'glm']]],
+ ['highp_5fivec2',['highp_ivec2',['../a00157.html#gaa015a3707413de20c03948308dba2f2e',1,'glm']]],
+ ['highp_5fivec3',['highp_ivec3',['../a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f',1,'glm']]],
+ ['highp_5fivec4',['highp_ivec4',['../a00157.html#ga0424a75bb400571489b8528897f35258',1,'glm']]],
+ ['highp_5fmat2',['highp_mat2',['../a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0',1,'glm']]],
+ ['highp_5fmat2x2',['highp_mat2x2',['../a00157.html#gae6a747cfc33928652abcb1347712b231',1,'glm']]],
+ ['highp_5fmat2x3',['highp_mat2x3',['../a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b',1,'glm']]],
+ ['highp_5fmat2x4',['highp_mat2x4',['../a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493',1,'glm']]],
+ ['highp_5fmat3',['highp_mat3',['../a00157.html#gaac1bde847d053902c27bad811b76e9fd',1,'glm']]],
+ ['highp_5fmat3x2',['highp_mat3x2',['../a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a',1,'glm']]],
+ ['highp_5fmat3x3',['highp_mat3x3',['../a00157.html#ga223de5d0549b215566dfb977d4bb45bd',1,'glm']]],
+ ['highp_5fmat3x4',['highp_mat3x4',['../a00157.html#ga117d8a040e738396a3d60368605623d2',1,'glm']]],
+ ['highp_5fmat4',['highp_mat4',['../a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0',1,'glm']]],
+ ['highp_5fmat4x2',['highp_mat4x2',['../a00157.html#gaeea75c96b308be4114e0badf49f58075',1,'glm']]],
+ ['highp_5fmat4x3',['highp_mat4x3',['../a00157.html#ga046e59c57aaa185a8b0b012164ce707f',1,'glm']]],
+ ['highp_5fmat4x4',['highp_mat4x4',['../a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead',1,'glm']]],
+ ['highp_5fu16',['highp_u16',['../a00177.html#ga8e62c883d13f47015f3b70ed88751369',1,'glm']]],
+ ['highp_5fu32',['highp_u32',['../a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf',1,'glm']]],
+ ['highp_5fu64',['highp_u64',['../a00177.html#ga0c181fdf06a309691999926b6690c969',1,'glm']]],
+ ['highp_5fu8',['highp_u8',['../a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c',1,'glm']]],
+ ['highp_5fuint',['highp_uint',['../a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf',1,'glm']]],
+ ['highp_5fuint16',['highp_uint16',['../a00177.html#ga746dc6da204f5622e395f492997dbf57',1,'glm']]],
+ ['highp_5fuint16_5ft',['highp_uint16_t',['../a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7',1,'glm']]],
+ ['highp_5fuint32',['highp_uint32',['../a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3',1,'glm']]],
+ ['highp_5fuint32_5ft',['highp_uint32_t',['../a00177.html#gae978599c9711ac263ba732d4ac225b0e',1,'glm']]],
+ ['highp_5fuint64',['highp_uint64',['../a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce',1,'glm']]],
+ ['highp_5fuint64_5ft',['highp_uint64_t',['../a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08',1,'glm']]],
+ ['highp_5fuint8',['highp_uint8',['../a00177.html#ga97432f9979e73e66567361fd01e4cffb',1,'glm']]],
+ ['highp_5fuint8_5ft',['highp_uint8_t',['../a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5',1,'glm']]],
+ ['highp_5fumat2',['highp_umat2',['../a00167.html#gae7b96c808a36fbe87f41af1c77b7941c',1,'glm']]],
+ ['highp_5fumat2x2',['highp_umat2x2',['../a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb',1,'glm']]],
+ ['highp_5fumat2x3',['highp_umat2x3',['../a00167.html#gac351446661e5a8168473ff7b3b5ac3b5',1,'glm']]],
+ ['highp_5fumat2x4',['highp_umat2x4',['../a00167.html#ga815eb9fdf70edc45687cbcda07e97213',1,'glm']]],
+ ['highp_5fumat3',['highp_umat3',['../a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147',1,'glm']]],
+ ['highp_5fumat3x2',['highp_umat3x2',['../a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f',1,'glm']]],
+ ['highp_5fumat3x3',['highp_umat3x3',['../a00167.html#gacf71e9abe57bcfd18b4b003421e306aa',1,'glm']]],
+ ['highp_5fumat3x4',['highp_umat3x4',['../a00167.html#ga6edbf193ad6c4309e31262165f2655e7',1,'glm']]],
+ ['highp_5fumat4',['highp_umat4',['../a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c',1,'glm']]],
+ ['highp_5fumat4x2',['highp_umat4x2',['../a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292',1,'glm']]],
+ ['highp_5fumat4x3',['highp_umat4x3',['../a00167.html#ga899a376888652fe3c03718641812bb27',1,'glm']]],
+ ['highp_5fumat4x4',['highp_umat4x4',['../a00167.html#gab8068521c0ad6990373d27d87d333084',1,'glm']]],
+ ['highp_5fuvec2',['highp_uvec2',['../a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad',1,'glm']]],
+ ['highp_5fuvec3',['highp_uvec3',['../a00157.html#gaf564d5be1e65bd2204754043b218c9a4',1,'glm']]],
+ ['highp_5fuvec4',['highp_uvec4',['../a00157.html#ga61359f5531550e45871a97589d8dcce1',1,'glm']]],
+ ['highp_5fvec2',['highp_vec2',['../a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997',1,'glm']]],
+ ['highp_5fvec3',['highp_vec3',['../a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a',1,'glm']]],
+ ['highp_5fvec4',['highp_vec4',['../a00157.html#gade7cb496ed3d78b2a11f1651cce77239',1,'glm']]],
+ ['hsvcolor',['hsvColor',['../a00184.html#gae72039c00a7be2f03a3b94b37a54349a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_9.html b/3rdparty/glm/doc/api/search/all_9.html
new file mode 100644
index 00000000000..bd9b05c38e9
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_9.js b/3rdparty/glm/doc/api/search/all_9.js
new file mode 100644
index 00000000000..e6f1de30f6a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_9.js
@@ -0,0 +1,91 @@
+var searchData=
+[
+ ['integer_20functions',['Integer functions',['../a00148.html',1,'']]],
+ ['i16',['i16',['../a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699',1,'glm']]],
+ ['i16vec1',['i16vec1',['../a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b',1,'glm']]],
+ ['i16vec2',['i16vec2',['../a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79',1,'glm']]],
+ ['i16vec3',['i16vec3',['../a00177.html#ga973b226a9914db682c9372fc761fb535',1,'glm']]],
+ ['i16vec4',['i16vec4',['../a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426',1,'glm']]],
+ ['i32',['i32',['../a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb',1,'glm']]],
+ ['i32vec1',['i32vec1',['../a00177.html#ga4cca6bbd117c45f046291fc8e9d03765',1,'glm']]],
+ ['i32vec2',['i32vec2',['../a00177.html#ga3c12cef4135603fd77d8fda85808730c',1,'glm']]],
+ ['i32vec3',['i32vec3',['../a00177.html#ga40cd3f391c03512f158d10a70062264e',1,'glm']]],
+ ['i32vec4',['i32vec4',['../a00177.html#gae3364a8090e7e1408056e00403dfecab',1,'glm']]],
+ ['i64',['i64',['../a00177.html#gadb997e409103d4da18abd837e636a496',1,'glm']]],
+ ['i64vec1',['i64vec1',['../a00177.html#ga5b4a3e499ee165efc0dc05add9c48235',1,'glm']]],
+ ['i64vec2',['i64vec2',['../a00177.html#gade69872a31f066e5ae212f1af6008edb',1,'glm']]],
+ ['i64vec3',['i64vec3',['../a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e',1,'glm']]],
+ ['i64vec4',['i64vec4',['../a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c',1,'glm']]],
+ ['i8',['i8',['../a00177.html#ga302ec977b0c0c3ea245b6c9275495355',1,'glm']]],
+ ['i8vec1',['i8vec1',['../a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409',1,'glm']]],
+ ['i8vec2',['i8vec2',['../a00177.html#ga6414484477e4c1b4863cf91af8fd4185',1,'glm']]],
+ ['i8vec3',['i8vec3',['../a00177.html#gaf4b5993e794e252607f91535b62a7e0c',1,'glm']]],
+ ['i8vec4',['i8vec4',['../a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e',1,'glm']]],
+ ['imat2',['imat2',['../a00167.html#gaabe04f9948d4a213bb1c20137de03e01',1,'glm']]],
+ ['imat2x2',['imat2x2',['../a00167.html#gaa4732a240522ad9bc28144fda2fc14ec',1,'glm']]],
+ ['imat2x3',['imat2x3',['../a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605',1,'glm']]],
+ ['imat2x4',['imat2x4',['../a00167.html#ga9d8faafdca42583d67e792dd038fc668',1,'glm']]],
+ ['imat3',['imat3',['../a00167.html#ga038f68437155ffa3c2583a15264a8195',1,'glm']]],
+ ['imat3x2',['imat3x2',['../a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f',1,'glm']]],
+ ['imat3x3',['imat3x3',['../a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4',1,'glm']]],
+ ['imat3x4',['imat3x4',['../a00167.html#ga6e9ce23496d8b08dfc302d4039694b58',1,'glm']]],
+ ['imat4',['imat4',['../a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb',1,'glm']]],
+ ['imat4x2',['imat4x2',['../a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa',1,'glm']]],
+ ['imat4x3',['imat4x3',['../a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5',1,'glm']]],
+ ['imat4x4',['imat4x4',['../a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b',1,'glm']]],
+ ['imulextended',['imulExtended',['../a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426',1,'glm']]],
+ ['infiniteperspective',['infinitePerspective',['../a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5',1,'glm']]],
+ ['infiniteperspectivelh',['infinitePerspectiveLH',['../a00169.html#ga47af534da2b28effa4c7945ec82ccd9d',1,'glm']]],
+ ['infiniteperspectiverh',['infinitePerspectiveRH',['../a00169.html#ga79575023763df88dff1bf8255a42d0be',1,'glm']]],
+ ['int1',['int1',['../a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3',1,'glm']]],
+ ['int16',['int16',['../a00177.html#ga302041c186d0d028bea31b711fe16759',1,'glm']]],
+ ['int16_5ft',['int16_t',['../a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede',1,'glm']]],
+ ['int1x1',['int1x1',['../a00187.html#ga056ffe02d3a45af626f8e62221881c7a',1,'glm']]],
+ ['int2',['int2',['../a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700',1,'glm']]],
+ ['int2x2',['int2x2',['../a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc',1,'glm']]],
+ ['int2x3',['int2x3',['../a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434',1,'glm']]],
+ ['int2x4',['int2x4',['../a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e',1,'glm']]],
+ ['int3',['int3',['../a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88',1,'glm']]],
+ ['int32',['int32',['../a00177.html#ga8df669f4e7698dfe0c0354d92578d74f',1,'glm']]],
+ ['int32_5ft',['int32_t',['../a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710',1,'glm']]],
+ ['int3x2',['int3x2',['../a00187.html#gaa98b1a06b802c975f02a5583f43632db',1,'glm']]],
+ ['int3x3',['int3x3',['../a00187.html#ga20c4d23defbc123ac4745c9b4262156f',1,'glm']]],
+ ['int3x4',['int3x4',['../a00187.html#ga7b00c53838143bce963177122ab92c39',1,'glm']]],
+ ['int4',['int4',['../a00187.html#gab19c2df22e9b14081390fabd074081f1',1,'glm']]],
+ ['int4x2',['int4x2',['../a00187.html#gaa53815539021200c4e10fd282832dcd3',1,'glm']]],
+ ['int4x3',['int4x3',['../a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe',1,'glm']]],
+ ['int4x4',['int4x4',['../a00187.html#ga3bacf576b4b29f2f2959abff7a36652d',1,'glm']]],
+ ['int64',['int64',['../a00177.html#gaff5189f97f9e842d9636a0f240001b2e',1,'glm']]],
+ ['int64_5ft',['int64_t',['../a00177.html#ga322a7d7d2c2c68994dc872a33de63c61',1,'glm']]],
+ ['int8',['int8',['../a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0',1,'glm']]],
+ ['int8_5ft',['int8_t',['../a00177.html#ga4bf09d8838a86866b39ee6e109341645',1,'glm']]],
+ ['intbitstofloat',['intBitsToFloat',['../a00145.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4',1,'glm::intBitsToFloat(int const &amp;v)'],['../a00145.html#gad21ab176dd0e6b59d923db5efca87f4e',1,'glm::intBitsToFloat(vecType&lt; int, P &gt; const &amp;v)']]],
+ ['integer_2ehpp',['integer.hpp',['../a00047.html',1,'']]],
+ ['intermediate',['intermediate',['../a00220.html#ga56abae85b3669c866e91f3c57b298b9c',1,'glm']]],
+ ['interpolate',['interpolate',['../a00205.html#ga45099a92c5c704503565619ac2bcd5c6',1,'glm']]],
+ ['intersect_2ehpp',['intersect.hpp',['../a00048.html',1,'']]],
+ ['intersectlinesphere',['intersectLineSphere',['../a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7',1,'glm']]],
+ ['intersectlinetriangle',['intersectLineTriangle',['../a00200.html#ga9d29b9b3acb504d43986502f42740df4',1,'glm']]],
+ ['intersectrayplane',['intersectRayPlane',['../a00200.html#gad3697a9700ea379739a667ea02573488',1,'glm']]],
+ ['intersectraysphere',['intersectRaySphere',['../a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e',1,'glm::intersectRaySphere(genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &amp;intersectionDistance)'],['../a00200.html#gad28c00515b823b579c608aafa1100c1d',1,'glm::intersectRaySphere(genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)']]],
+ ['intersectraytriangle',['intersectRayTriangle',['../a00200.html#gab16c1b47c10451e7604b51b39a7ef21d',1,'glm']]],
+ ['inverse',['inverse',['../a00149.html#gaa7e1d5586cd499126cec76e0f11871e3',1,'glm::inverse(matType&lt; T, P &gt; const &amp;m)'],['../a00172.html#ga5f47300c024c2d809944e6ac661d6d14',1,'glm::inverse(tquat&lt; T, P &gt; const &amp;q)'],['../a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2',1,'glm::inverse(tdualquat&lt; T, P &gt; const &amp;q)']]],
+ ['inversesqrt',['inversesqrt',['../a00146.html#ga599103d4fe4ef2234761ba8da7268627',1,'glm']]],
+ ['inversetranspose',['inverseTranspose',['../a00168.html#gab213cd0e3ead5f316d583f99d6312008',1,'glm']]],
+ ['io_2ehpp',['io.hpp',['../a00049.html',1,'']]],
+ ['iround',['iround',['../a00165.html#ga0a42ffb863cc980e91f98d2f5766de20',1,'glm']]],
+ ['iscompnull',['isCompNull',['../a00235.html#ga93ecd4137480483ce1af0de8bbbf6546',1,'glm']]],
+ ['isdenormal',['isdenormal',['../a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91',1,'glm']]],
+ ['isfinite',['isfinite',['../a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657',1,'glm::isfinite(genType const &amp;x)'],['../a00187.html#ga553e2e95b06a0f70c718605998889d3b',1,'glm::isfinite(const tvec1&lt; T, P &gt; &amp;x)'],['../a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a',1,'glm::isfinite(const tvec2&lt; T, P &gt; &amp;x)'],['../a00187.html#ga1be9593d810fceb278a2854da8a25273',1,'glm::isfinite(const tvec3&lt; T, P &gt; &amp;x)'],['../a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a',1,'glm::isfinite(const tvec4&lt; T, P &gt; &amp;x)']]],
+ ['isidentity',['isIdentity',['../a00208.html#gafc1ce12c738b8c5d007179e615609330',1,'glm']]],
+ ['isinf',['isinf',['../a00145.html#gaf28f7a4696746f081685c9fd05c7e2de',1,'glm::isinf(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#ga0a850f06736d25887536d0da88e63c70',1,'glm::isinf(tquat&lt; T, P &gt; const &amp;x)']]],
+ ['ismultiple',['isMultiple',['../a00175.html#gaf7444a7b2eb524f373463ceba76b9326',1,'glm::isMultiple(genIUType Value, genIUType Multiple)'],['../a00175.html#ga50ea5d5dc33fffba39ad6002a3784123',1,'glm::isMultiple(vecType&lt; T, P &gt; const &amp;Value, T Multiple)'],['../a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48',1,'glm::isMultiple(vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['isnan',['isnan',['../a00145.html#ga6cb8f202a52eed2331724a3800198ebf',1,'glm::isnan(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed',1,'glm::isnan(tquat&lt; T, P &gt; const &amp;x)']]],
+ ['isnormalized',['isNormalized',['../a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c',1,'glm::isNormalized(tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#ga351bcc8d485d329b78cfa875e084964d',1,'glm::isNormalized(tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b',1,'glm::isNormalized(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00235.html#ga6fa5fa2af67d14c205d24c49aad03270',1,'glm::isNormalized(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)']]],
+ ['isnull',['isNull',['../a00208.html#ga37e535cbeaea383b8c1247b98875cd4b',1,'glm::isNull(tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#gac67a5c7e029a84b74b02ac9599b8972d',1,'glm::isNull(tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#ga326de496972051413c7b44b85fc9cb6e',1,'glm::isNull(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00235.html#ga81a64edc1a2b470b82896592e89c523b',1,'glm::isNull(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)']]],
+ ['isorthogonal',['isOrthogonal',['../a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3',1,'glm']]],
+ ['ispoweroftwo',['isPowerOfTwo',['../a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec',1,'glm::isPowerOfTwo(genIUType Value)'],['../a00175.html#gad454e4c8d8cd73ddc7de855f733a1465',1,'glm::isPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['ivec2',['ivec2',['../a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f',1,'glm']]],
+ ['ivec3',['ivec3',['../a00156.html#ga34aee73784bcc247d426250540c1911c',1,'glm']]],
+ ['ivec4',['ivec4',['../a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_a.html b/3rdparty/glm/doc/api/search/all_a.html
new file mode 100644
index 00000000000..4a25af1cad0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_a.js b/3rdparty/glm/doc/api/search/all_a.js
new file mode 100644
index 00000000000..7e45fc8d94f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_a.js
@@ -0,0 +1,119 @@
+var searchData=
+[
+ ['l1norm',['l1Norm',['../a00211.html#gaebe5a39b06e262e615622129f37da4f4',1,'glm::l1Norm(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)'],['../a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb',1,'glm::l1Norm(tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['l2norm',['l2Norm',['../a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64',1,'glm::l2Norm(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)'],['../a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610',1,'glm::l2Norm(tvec3&lt; T, P &gt; const &amp;x)']]],
+ ['ldexp',['ldexp',['../a00145.html#ga52e319d7289b849ec92055abd4830533',1,'glm']]],
+ ['lefthanded',['leftHanded',['../a00197.html#ga7425e0ebfe6a56919900a072ae1f8017',1,'glm']]],
+ ['length',['length',['../a00147.html#ga18d45e3d4c7705e67ccfabd99e521604',1,'glm::length(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#gac682181783027544c8d251b4d3a60cf8',1,'glm::length(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['length2',['length2',['../a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4',1,'glm::length2(vecType&lt; T, P &gt; const &amp;x)'],['../a00220.html#ga02b45352c7ac345cabc9e877314acda6',1,'glm::length2(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['lerp',['lerp',['../a00172.html#ga5692804fa4db9e762a1c19b607e54435',1,'glm::lerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)'],['../a00187.html#ga5494ba3a95ea6594c86fc75236886864',1,'glm::lerp(T x, T y, T a)'],['../a00187.html#ga0aa79a146332650a1eb18ae996c653fe',1,'glm::lerp(const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, T a)'],['../a00187.html#gaf4c885ac72b8879b05777cb516c555c9',1,'glm::lerp(const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, T a)'],['../a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60',1,'glm::lerp(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, T a)'],['../a00187.html#ga7609b44d8aefc5a277efe73395ff4070',1,'glm::lerp(const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, const tvec2&lt; T, P &gt; &amp;a)'],['../a00187.html#ga90a1d1364a8d078846857178bdcc9af1',1,'glm::lerp(const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, const tvec3&lt; T, P &gt; &amp;a)'],['../a00187.html#gae4b0244b0d882657bed0a99dfa33f379',1,'glm::lerp(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)'],['../a00189.html#ga8039b88397ca09275be924a26a806a59',1,'glm::lerp(tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)']]],
+ ['lessthan',['lessThan',['../a00152.html#ga6261970937a70b0b747ae0d3ade1c188',1,'glm::lessThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa',1,'glm::lessThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['lessthanequal',['lessThanEqual',['../a00152.html#gaaf1d88119f11200c32011de7c5ec0102',1,'glm::lessThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga7c81996ed2724f26fe76faf352c76294',1,'glm::lessThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['lineargradient',['linearGradient',['../a00196.html#gacde26d5e0c4a1856467bded9dfad9040',1,'glm']]],
+ ['linearrand',['linearRand',['../a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716',1,'glm::linearRand(genTYpe Min, genTYpe Max)'],['../a00173.html#gaba9cec867916d894d794a32897b7fdfd',1,'glm::linearRand(vecType&lt; T, P &gt; const &amp;Min, vecType&lt; T, P &gt; const &amp;Max)']]],
+ ['ln_5fln_5ftwo',['ln_ln_two',['../a00162.html#gaca94292c839ed31a405ab7a81ae7e850',1,'glm']]],
+ ['ln_5ften',['ln_ten',['../a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c',1,'glm']]],
+ ['ln_5ftwo',['ln_two',['../a00162.html#ga24f4d27765678116f41a2f336ab7975c',1,'glm']]],
+ ['log',['log',['../a00146.html#ga21efca311e62d233de0ae96bab126b83',1,'glm::log(vecType&lt; T, P &gt; const &amp;v)'],['../a00202.html#ga60a7b0a401da660869946b2b77c710c9',1,'glm::log(genType const &amp;x, genType const &amp;base)'],['../a00220.html#ga791f42e134bfe97fc9c96f4668dd7489',1,'glm::log(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['log2',['log2',['../a00146.html#gabae30945338a555a03733f00dad95d0d',1,'glm::log2(vecType&lt; T, P &gt; const &amp;v)'],['../a00165.html#ga9bd682e74bfacb005c735305207ec417',1,'glm::log2(genIUType x)']]],
+ ['log_5fbase_2ehpp',['log_base.hpp',['../a00050.html',1,'']]],
+ ['lookat',['lookAt',['../a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4',1,'glm']]],
+ ['lookatlh',['lookAtLH',['../a00169.html#gacd0c077ec7b58a575855e29cb5fb586d',1,'glm']]],
+ ['lookatrh',['lookAtRH',['../a00169.html#ga2876d9313334980b94292d2ec169088e',1,'glm']]],
+ ['lowestbitvalue',['lowestBitValue',['../a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f',1,'glm']]],
+ ['lowp_5fbvec2',['lowp_bvec2',['../a00157.html#ga28dcda102dd8c94ec500ee786af7a30a',1,'glm']]],
+ ['lowp_5fbvec3',['lowp_bvec3',['../a00157.html#ga76c0948546deeeb18bfda36f18b3e673',1,'glm']]],
+ ['lowp_5fbvec4',['lowp_bvec4',['../a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85',1,'glm']]],
+ ['lowp_5fddualquat',['lowp_ddualquat',['../a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a',1,'glm']]],
+ ['lowp_5fdmat2',['lowp_dmat2',['../a00157.html#gae0a526a0143fc69d7b317c078d591654',1,'glm']]],
+ ['lowp_5fdmat2x2',['lowp_dmat2x2',['../a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd',1,'glm']]],
+ ['lowp_5fdmat2x3',['lowp_dmat2x3',['../a00157.html#gaaf2d7cf98b74a43fc432725887685dc0',1,'glm']]],
+ ['lowp_5fdmat2x4',['lowp_dmat2x4',['../a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3',1,'glm']]],
+ ['lowp_5fdmat3',['lowp_dmat3',['../a00157.html#ga19b0c9580b447443cf3fe589bd661e03',1,'glm']]],
+ ['lowp_5fdmat3x2',['lowp_dmat3x2',['../a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab',1,'glm']]],
+ ['lowp_5fdmat3x3',['lowp_dmat3x3',['../a00157.html#gae37a4275ffa68d0c3527a345e76598c0',1,'glm']]],
+ ['lowp_5fdmat3x4',['lowp_dmat3x4',['../a00157.html#ga813bff547772bcefebc026e5deba0fe3',1,'glm']]],
+ ['lowp_5fdmat4',['lowp_dmat4',['../a00157.html#gaac3aee10bee5fa5206de8bf024a8b301',1,'glm']]],
+ ['lowp_5fdmat4x2',['lowp_dmat4x2',['../a00157.html#ga05c2d27aeca091e369fca027e72177e8',1,'glm']]],
+ ['lowp_5fdmat4x3',['lowp_dmat4x3',['../a00157.html#ga2b5b1b810f3b9988f49f985387e35e03',1,'glm']]],
+ ['lowp_5fdmat4x4',['lowp_dmat4x4',['../a00157.html#gaea9e20c3668305cf0de5334d217408d9',1,'glm']]],
+ ['lowp_5fdualquat',['lowp_dualquat',['../a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa',1,'glm']]],
+ ['lowp_5fdvec2',['lowp_dvec2',['../a00157.html#ga96eb13864627c7c832b5af36aa73bda6',1,'glm']]],
+ ['lowp_5fdvec3',['lowp_dvec3',['../a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9',1,'glm']]],
+ ['lowp_5fdvec4',['lowp_dvec4',['../a00157.html#gab5d6a45e1bbb13314b47793865a4c072',1,'glm']]],
+ ['lowp_5ffdualquat',['lowp_fdualquat',['../a00189.html#gaa38f671be25a7f3b136a452a8bb42860',1,'glm']]],
+ ['lowp_5ffloat',['lowp_float',['../a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1',1,'glm']]],
+ ['lowp_5fi16',['lowp_i16',['../a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7',1,'glm']]],
+ ['lowp_5fi32',['lowp_i32',['../a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac',1,'glm']]],
+ ['lowp_5fi64',['lowp_i64',['../a00177.html#ga354736e0c645099cd44c42fb2f87c2b8',1,'glm']]],
+ ['lowp_5fi8',['lowp_i8',['../a00177.html#ga552a6bde5e75984efb0f863278da2e54',1,'glm']]],
+ ['lowp_5fimat2',['lowp_imat2',['../a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0',1,'glm']]],
+ ['lowp_5fimat2x2',['lowp_imat2x2',['../a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31',1,'glm']]],
+ ['lowp_5fimat2x3',['lowp_imat2x3',['../a00167.html#ga3f8fb92b62e31528886cc728d3404ecc',1,'glm']]],
+ ['lowp_5fimat2x4',['lowp_imat2x4',['../a00167.html#ga892b53e26d36763f380b08a5768dee6b',1,'glm']]],
+ ['lowp_5fimat3',['lowp_imat3',['../a00167.html#ga148f3a81d15a570b9460158e6964f41c',1,'glm']]],
+ ['lowp_5fimat3x2',['lowp_imat3x2',['../a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35',1,'glm']]],
+ ['lowp_5fimat3x3',['lowp_imat3x3',['../a00167.html#gab3d5c6aaeb5815f8f080305888f6828f',1,'glm']]],
+ ['lowp_5fimat3x4',['lowp_imat3x4',['../a00167.html#ga3d913d70c629aa7ad504739286328f1b',1,'glm']]],
+ ['lowp_5fimat4',['lowp_imat4',['../a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4',1,'glm']]],
+ ['lowp_5fimat4x2',['lowp_imat4x2',['../a00167.html#ga3fdfce509d30bdd7778b8b156cb968df',1,'glm']]],
+ ['lowp_5fimat4x3',['lowp_imat4x3',['../a00167.html#ga6a9945878f99294cfde40c6c3a867d69',1,'glm']]],
+ ['lowp_5fimat4x4',['lowp_imat4x4',['../a00167.html#ga330140b22a9449caab308f2c69bf4c80',1,'glm']]],
+ ['lowp_5fint',['lowp_int',['../a00157.html#gad0fa1e32e8b3552ed63556eca51c620e',1,'glm']]],
+ ['lowp_5fint16',['lowp_int16',['../a00177.html#ga698e36b01167fc0f037889334dce8def',1,'glm']]],
+ ['lowp_5fint16_5ft',['lowp_int16_t',['../a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a',1,'glm']]],
+ ['lowp_5fint32',['lowp_int32',['../a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02',1,'glm']]],
+ ['lowp_5fint32_5ft',['lowp_int32_t',['../a00177.html#ga0350631d35ff800e6133ac6243b13cbc',1,'glm']]],
+ ['lowp_5fint64',['lowp_int64',['../a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c',1,'glm']]],
+ ['lowp_5fint64_5ft',['lowp_int64_t',['../a00177.html#gaebf341fc4a5be233f7dde962c2e33847',1,'glm']]],
+ ['lowp_5fint8',['lowp_int8',['../a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6',1,'glm']]],
+ ['lowp_5fint8_5ft',['lowp_int8_t',['../a00177.html#ga119c41d73fe9977358174eb3ac1035a3',1,'glm']]],
+ ['lowp_5fivec2',['lowp_ivec2',['../a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57',1,'glm']]],
+ ['lowp_5fivec3',['lowp_ivec3',['../a00157.html#gaa040f25233c314adc9560dcdb9dadac2',1,'glm']]],
+ ['lowp_5fivec4',['lowp_ivec4',['../a00157.html#ga8b7483dc67dc332f9d874c6cf7172203',1,'glm']]],
+ ['lowp_5fmat2',['lowp_mat2',['../a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85',1,'glm']]],
+ ['lowp_5fmat2x2',['lowp_mat2x2',['../a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981',1,'glm']]],
+ ['lowp_5fmat2x3',['lowp_mat2x3',['../a00157.html#gae8fe30d421bc141fa84ad414b803947d',1,'glm']]],
+ ['lowp_5fmat2x4',['lowp_mat2x4',['../a00157.html#gad64a0179b75508142a72917854034b9b',1,'glm']]],
+ ['lowp_5fmat3',['lowp_mat3',['../a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783',1,'glm']]],
+ ['lowp_5fmat3x2',['lowp_mat3x2',['../a00157.html#gaa2542e884ac7d05ada8ebb078b721924',1,'glm']]],
+ ['lowp_5fmat3x3',['lowp_mat3x3',['../a00157.html#gab7ca36023fa56d8006341a192ee09260',1,'glm']]],
+ ['lowp_5fmat3x4',['lowp_mat3x4',['../a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e',1,'glm']]],
+ ['lowp_5fmat4',['lowp_mat4',['../a00157.html#gabb754302a1ff8736ec7814d860c9a3c0',1,'glm']]],
+ ['lowp_5fmat4x2',['lowp_mat4x2',['../a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93',1,'glm']]],
+ ['lowp_5fmat4x3',['lowp_mat4x3',['../a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f',1,'glm']]],
+ ['lowp_5fmat4x4',['lowp_mat4x4',['../a00157.html#gafff11cbd0abc762e8a340870a31d5bfa',1,'glm']]],
+ ['lowp_5fu16',['lowp_u16',['../a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126',1,'glm']]],
+ ['lowp_5fu32',['lowp_u32',['../a00177.html#ga4f072ada9552e1e480bbb3b1acde5250',1,'glm']]],
+ ['lowp_5fu64',['lowp_u64',['../a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed',1,'glm']]],
+ ['lowp_5fu8',['lowp_u8',['../a00177.html#ga1b09f03da7ac43055c68a349d5445083',1,'glm']]],
+ ['lowp_5fuint',['lowp_uint',['../a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97',1,'glm']]],
+ ['lowp_5fuint16',['lowp_uint16',['../a00177.html#gad68bfd9f881856fc863a6ebca0b67f78',1,'glm']]],
+ ['lowp_5fuint16_5ft',['lowp_uint16_t',['../a00177.html#ga91c4815f93177eb423362fd296a87e9f',1,'glm']]],
+ ['lowp_5fuint32',['lowp_uint32',['../a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b',1,'glm']]],
+ ['lowp_5fuint32_5ft',['lowp_uint32_t',['../a00177.html#gaf1b735b4b1145174f4e4167d13778f9b',1,'glm']]],
+ ['lowp_5fuint64',['lowp_uint64',['../a00177.html#gaa212b805736a759998e312cbdd550fae',1,'glm']]],
+ ['lowp_5fuint64_5ft',['lowp_uint64_t',['../a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153',1,'glm']]],
+ ['lowp_5fuint8',['lowp_uint8',['../a00177.html#gaf49470869e9be2c059629b250619804e',1,'glm']]],
+ ['lowp_5fuint8_5ft',['lowp_uint8_t',['../a00177.html#ga667b2ece2b258be898812dc2177995d1',1,'glm']]],
+ ['lowp_5fumat2',['lowp_umat2',['../a00167.html#ga1406406e396b56bde3c7c0722f657064',1,'glm']]],
+ ['lowp_5fumat2x2',['lowp_umat2x2',['../a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3',1,'glm']]],
+ ['lowp_5fumat2x3',['lowp_umat2x3',['../a00167.html#gaa86bd9dc8463b46a46ee944948111676',1,'glm']]],
+ ['lowp_5fumat2x4',['lowp_umat2x4',['../a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4',1,'glm']]],
+ ['lowp_5fumat3',['lowp_umat3',['../a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033',1,'glm']]],
+ ['lowp_5fumat3x2',['lowp_umat3x2',['../a00167.html#gad73943020bb49a072317ecfc52d587f0',1,'glm']]],
+ ['lowp_5fumat3x3',['lowp_umat3x3',['../a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67',1,'glm']]],
+ ['lowp_5fumat3x4',['lowp_umat3x4',['../a00167.html#ga2dce1c00ed50fd09fe349de3713d96db',1,'glm']]],
+ ['lowp_5fumat4',['lowp_umat4',['../a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884',1,'glm']]],
+ ['lowp_5fumat4x2',['lowp_umat4x2',['../a00167.html#ga76cab31d492ea214c693ab9132b4de95',1,'glm']]],
+ ['lowp_5fumat4x3',['lowp_umat4x3',['../a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d',1,'glm']]],
+ ['lowp_5fumat4x4',['lowp_umat4x4',['../a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2',1,'glm']]],
+ ['lowp_5fuvec2',['lowp_uvec2',['../a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309',1,'glm']]],
+ ['lowp_5fuvec3',['lowp_uvec3',['../a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820',1,'glm']]],
+ ['lowp_5fuvec4',['lowp_uvec4',['../a00157.html#ga6efcd4574e112cfcda320db58e649ee3',1,'glm']]],
+ ['lowp_5fvec2',['lowp_vec2',['../a00157.html#ga51e835b2aa735782f0174328acffa521',1,'glm']]],
+ ['lowp_5fvec3',['lowp_vec3',['../a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e',1,'glm']]],
+ ['lowp_5fvec4',['lowp_vec4',['../a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395',1,'glm']]],
+ ['luminosity',['luminosity',['../a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe',1,'glm']]],
+ ['lxnorm',['lxNorm',['../a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7',1,'glm::lxNorm(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, unsigned int Depth)'],['../a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc',1,'glm::lxNorm(tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_b.html b/3rdparty/glm/doc/api/search/all_b.html
new file mode 100644
index 00000000000..a92de48513f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_b.js b/3rdparty/glm/doc/api/search/all_b.js
new file mode 100644
index 00000000000..213c0af40d2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_b.js
@@ -0,0 +1,163 @@
+var searchData=
+[
+ ['matrix_20functions',['Matrix functions',['../a00149.html',1,'']]],
+ ['make_5fmat2',['make_mat2',['../a00178.html#ga52a16e333fef7e33ca740779482a8693',1,'glm']]],
+ ['make_5fmat2x2',['make_mat2x2',['../a00178.html#gadb29e510762e1042069cb28bf24ae990',1,'glm']]],
+ ['make_5fmat2x3',['make_mat2x3',['../a00178.html#ga37988c6dd941f617cdfab86d54375fc1',1,'glm']]],
+ ['make_5fmat2x4',['make_mat2x4',['../a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5',1,'glm']]],
+ ['make_5fmat3',['make_mat3',['../a00178.html#gac2bc10c519ffc8db9e24f325f23787ea',1,'glm']]],
+ ['make_5fmat3x2',['make_mat3x2',['../a00178.html#gabe1e5066608a66da7a94f802b57b4eed',1,'glm']]],
+ ['make_5fmat3x3',['make_mat3x3',['../a00178.html#ga3cbe7adf857c867cee77eae4617abadd',1,'glm']]],
+ ['make_5fmat3x4',['make_mat3x4',['../a00178.html#gac083edd180ab4d4b817acc60c516209b',1,'glm']]],
+ ['make_5fmat4',['make_mat4',['../a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60',1,'glm']]],
+ ['make_5fmat4x2',['make_mat4x2',['../a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264',1,'glm']]],
+ ['make_5fmat4x3',['make_mat4x3',['../a00178.html#ga4d42daced532b33cc672280e48670a51',1,'glm']]],
+ ['make_5fmat4x4',['make_mat4x4',['../a00178.html#gaf605a5f5e2ff594e8d404b2855b09541',1,'glm']]],
+ ['make_5fquat',['make_quat',['../a00178.html#gaadafb6600af2633e4c98cc64c72f5269',1,'glm']]],
+ ['make_5fvec2',['make_vec2',['../a00178.html#ga5f7393c30970c5949be13ceb525093a6',1,'glm']]],
+ ['make_5fvec3',['make_vec3',['../a00178.html#ga86f4bc63570db86346db2e567fb760f6',1,'glm']]],
+ ['make_5fvec4',['make_vec4',['../a00178.html#ga152345176b8951c15711f6ed4f6fc237',1,'glm']]],
+ ['mask',['mask',['../a00159.html#gad7eba518a0b71662114571ee76939f8a',1,'glm::mask(genIUType Bits)'],['../a00159.html#ga073dbd8642f550b51da3572541431c1c',1,'glm::mask(vecIUType&lt; T, P &gt; const &amp;v)']]],
+ ['mat2',['mat2',['../a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450',1,'glm']]],
+ ['mat2x2',['mat2x2',['../a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5',1,'glm']]],
+ ['mat2x2_2ehpp',['mat2x2.hpp',['../a00052.html',1,'']]],
+ ['mat2x3',['mat2x3',['../a00156.html#gafb063d734266e92915d87f8943560471',1,'glm']]],
+ ['mat2x3_2ehpp',['mat2x3.hpp',['../a00053.html',1,'']]],
+ ['mat2x4',['mat2x4',['../a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac',1,'glm']]],
+ ['mat2x4_2ehpp',['mat2x4.hpp',['../a00054.html',1,'']]],
+ ['mat2x4_5fcast',['mat2x4_cast',['../a00189.html#ga2d124748183e12db8288eeaca350298e',1,'glm']]],
+ ['mat3',['mat3',['../a00156.html#ga6dd3ec98a548755676267e59142911f8',1,'glm']]],
+ ['mat3_5fcast',['mat3_cast',['../a00172.html#gae04c39422eb4e450ec8c4f45a1057b40',1,'glm']]],
+ ['mat3x2',['mat3x2',['../a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4',1,'glm']]],
+ ['mat3x2_2ehpp',['mat3x2.hpp',['../a00055.html',1,'']]],
+ ['mat3x3',['mat3x3',['../a00156.html#ga378921b6a07bcdad946858b340f69ab1',1,'glm']]],
+ ['mat3x3_2ehpp',['mat3x3.hpp',['../a00056.html',1,'']]],
+ ['mat3x4',['mat3x4',['../a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf',1,'glm']]],
+ ['mat3x4_2ehpp',['mat3x4.hpp',['../a00057.html',1,'']]],
+ ['mat3x4_5fcast',['mat3x4_cast',['../a00189.html#ga576745d979e3c079a64152490c816954',1,'glm']]],
+ ['mat4',['mat4',['../a00156.html#gade0eb47c01f79384a6f38017ede17446',1,'glm']]],
+ ['mat4_5fcast',['mat4_cast',['../a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef',1,'glm']]],
+ ['mat4x2',['mat4x2',['../a00156.html#ga1b3f6a5cbc17362141f9781262ed838f',1,'glm']]],
+ ['mat4x2_2ehpp',['mat4x2.hpp',['../a00058.html',1,'']]],
+ ['mat4x3',['mat4x3',['../a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd',1,'glm']]],
+ ['mat4x3_2ehpp',['mat4x3.hpp',['../a00059.html',1,'']]],
+ ['mat4x4',['mat4x4',['../a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81',1,'glm']]],
+ ['mat4x4_2ehpp',['mat4x4.hpp',['../a00060.html',1,'']]],
+ ['matrix_2ehpp',['matrix.hpp',['../a00061.html',1,'']]],
+ ['matrix_5faccess_2ehpp',['matrix_access.hpp',['../a00062.html',1,'']]],
+ ['matrix_5fcross_5fproduct_2ehpp',['matrix_cross_product.hpp',['../a00063.html',1,'']]],
+ ['matrix_5fdecompose_2ehpp',['matrix_decompose.hpp',['../a00064.html',1,'']]],
+ ['matrix_5finteger_2ehpp',['matrix_integer.hpp',['../a00065.html',1,'']]],
+ ['matrix_5finterpolation_2ehpp',['matrix_interpolation.hpp',['../a00066.html',1,'']]],
+ ['matrix_5finverse_2ehpp',['matrix_inverse.hpp',['../a00067.html',1,'']]],
+ ['matrix_5fmajor_5fstorage_2ehpp',['matrix_major_storage.hpp',['../a00068.html',1,'']]],
+ ['matrix_5foperation_2ehpp',['matrix_operation.hpp',['../a00069.html',1,'']]],
+ ['matrix_5fquery_2ehpp',['matrix_query.hpp',['../a00070.html',1,'']]],
+ ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00071.html',1,'']]],
+ ['matrix_5ftransform_5f2d_2ehpp',['matrix_transform_2d.hpp',['../a00072.html',1,'']]],
+ ['matrixcompmult',['matrixCompMult',['../a00149.html#ga4a54992e4741188ee624b21e3ba91814',1,'glm']]],
+ ['matrixcross3',['matrixCross3',['../a00203.html#ga04385b2e3a93c78d116b51af2d8d708e',1,'glm']]],
+ ['matrixcross4',['matrixCross4',['../a00203.html#ga2d46cc5253761c214aa5c782865156b1',1,'glm']]],
+ ['max',['max',['../a00145.html#ga98caa7f95a94c86a86ebce893a45326c',1,'glm::max(genType x, genType y)'],['../a00192.html#ga04991ccb9865c4c4e58488cfb209ce69',1,'glm::max(T const &amp;x, T const &amp;y, T const &amp;z)'],['../a00192.html#gae1b7bbe5c91de4924835ea3e14530744',1,'glm::max(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)'],['../a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4',1,'glm::max(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)'],['../a00192.html#ga78e04a0cef1c4863fcae1a2130500d87',1,'glm::max(T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)'],['../a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a',1,'glm::max(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)'],['../a00192.html#gaacffbc466c2d08c140b181e7fd8a4858',1,'glm::max(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)']]],
+ ['mediump_5fbvec2',['mediump_bvec2',['../a00157.html#gae1f4f68346474246eb4a9952af49e72b',1,'glm']]],
+ ['mediump_5fbvec3',['mediump_bvec3',['../a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0',1,'glm']]],
+ ['mediump_5fbvec4',['mediump_bvec4',['../a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57',1,'glm']]],
+ ['mediump_5fddualquat',['mediump_ddualquat',['../a00189.html#ga0fb11e48e2d16348ccb06a25213641b4',1,'glm']]],
+ ['mediump_5fdmat2',['mediump_dmat2',['../a00157.html#ga330077a4cb3707329120b5bddcd7db2d',1,'glm']]],
+ ['mediump_5fdmat2x2',['mediump_dmat2x2',['../a00157.html#ga78987759d40d7cb03ebe948fb1dcd879',1,'glm']]],
+ ['mediump_5fdmat2x3',['mediump_dmat2x3',['../a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246',1,'glm']]],
+ ['mediump_5fdmat2x4',['mediump_dmat2x4',['../a00157.html#gaccf963b117beeadf8c5c057000762dd3',1,'glm']]],
+ ['mediump_5fdmat3',['mediump_dmat3',['../a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5',1,'glm']]],
+ ['mediump_5fdmat3x2',['mediump_dmat3x2',['../a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b',1,'glm']]],
+ ['mediump_5fdmat3x3',['mediump_dmat3x3',['../a00157.html#ga5e5de055b7af150796e1c017de84cdb1',1,'glm']]],
+ ['mediump_5fdmat3x4',['mediump_dmat3x4',['../a00157.html#ga187d10ddab0492545b78ea1dd108f28d',1,'glm']]],
+ ['mediump_5fdmat4',['mediump_dmat4',['../a00157.html#ga27be34d618d20fbd70d4c62c21256b0c',1,'glm']]],
+ ['mediump_5fdmat4x2',['mediump_dmat4x2',['../a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9',1,'glm']]],
+ ['mediump_5fdmat4x3',['mediump_dmat4x3',['../a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc',1,'glm']]],
+ ['mediump_5fdmat4x4',['mediump_dmat4x4',['../a00157.html#ga857947b2eef2c9144c34b8e3031f2f12',1,'glm']]],
+ ['mediump_5fdualquat',['mediump_dualquat',['../a00189.html#gaa7aeb54c167712b38f2178a1be2360ad',1,'glm']]],
+ ['mediump_5fdvec2',['mediump_dvec2',['../a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9',1,'glm']]],
+ ['mediump_5fdvec3',['mediump_dvec3',['../a00157.html#ga0b4741d444b131ef1fc54b19c37f72be',1,'glm']]],
+ ['mediump_5fdvec4',['mediump_dvec4',['../a00157.html#ga3e804226444dfe246133fc6ec4a3912f',1,'glm']]],
+ ['mediump_5ffdualquat',['mediump_fdualquat',['../a00189.html#ga4a6b594ff7e81150d8143001367a9431',1,'glm']]],
+ ['mediump_5ffloat',['mediump_float',['../a00157.html#ga280c68f537f4b1e03a00b23e62573b98',1,'glm']]],
+ ['mediump_5fi16',['mediump_i16',['../a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a',1,'glm']]],
+ ['mediump_5fi32',['mediump_i32',['../a00177.html#gaf5e94bf2a20af7601787c154751dc2e1',1,'glm']]],
+ ['mediump_5fi64',['mediump_i64',['../a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f',1,'glm']]],
+ ['mediump_5fi8',['mediump_i8',['../a00177.html#gacf1ded173e1e2d049c511d095b259e21',1,'glm']]],
+ ['mediump_5fimat2',['mediump_imat2',['../a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655',1,'glm']]],
+ ['mediump_5fimat2x2',['mediump_imat2x2',['../a00167.html#gabc572d47b60f7e595d7aad945f5d13a8',1,'glm']]],
+ ['mediump_5fimat2x3',['mediump_imat2x3',['../a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a',1,'glm']]],
+ ['mediump_5fimat2x4',['mediump_imat2x4',['../a00167.html#gaa08e27efc514088315ccbaf818f01880',1,'glm']]],
+ ['mediump_5fimat3',['mediump_imat3',['../a00167.html#gac2b0985b576fe0eba47227499aed2b3c',1,'glm']]],
+ ['mediump_5fimat3x2',['mediump_imat3x2',['../a00167.html#ga1a61c706b31aa60fd7012b2b27765983',1,'glm']]],
+ ['mediump_5fimat3x3',['mediump_imat3x3',['../a00167.html#ga05064e28b911be1af0503ddf6e6204a3',1,'glm']]],
+ ['mediump_5fimat3x4',['mediump_imat3x4',['../a00167.html#ga8e0f797a57fec255f0eec7da1511bc38',1,'glm']]],
+ ['mediump_5fimat4',['mediump_imat4',['../a00167.html#ga551ad2e4e0304c67451ffbadeef0d615',1,'glm']]],
+ ['mediump_5fimat4x2',['mediump_imat4x2',['../a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54',1,'glm']]],
+ ['mediump_5fimat4x3',['mediump_imat4x3',['../a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d',1,'glm']]],
+ ['mediump_5fimat4x4',['mediump_imat4x4',['../a00167.html#ga655bfcca624f422aff308dcc99688ce8',1,'glm']]],
+ ['mediump_5fint',['mediump_int',['../a00157.html#ga212ef8f883878cb7430228a279a7d866',1,'glm']]],
+ ['mediump_5fint16',['mediump_int16',['../a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d',1,'glm']]],
+ ['mediump_5fint16_5ft',['mediump_int16_t',['../a00177.html#ga80e72fe94c88498537e8158ba7591c54',1,'glm']]],
+ ['mediump_5fint32',['mediump_int32',['../a00177.html#ga5244cef85d6e870e240c76428a262ae8',1,'glm']]],
+ ['mediump_5fint32_5ft',['mediump_int32_t',['../a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180',1,'glm']]],
+ ['mediump_5fint64',['mediump_int64',['../a00177.html#ga7b968f2b86a0442a89c7359171e1d866',1,'glm']]],
+ ['mediump_5fint64_5ft',['mediump_int64_t',['../a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64',1,'glm']]],
+ ['mediump_5fint8',['mediump_int8',['../a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e',1,'glm']]],
+ ['mediump_5fint8_5ft',['mediump_int8_t',['../a00177.html#ga6d7b3789ecb932c26430009478cac7ae',1,'glm']]],
+ ['mediump_5fivec2',['mediump_ivec2',['../a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef',1,'glm']]],
+ ['mediump_5fivec3',['mediump_ivec3',['../a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0',1,'glm']]],
+ ['mediump_5fivec4',['mediump_ivec4',['../a00157.html#ga14614613c8e79772c8a6d25dd1c45995',1,'glm']]],
+ ['mediump_5fmat2',['mediump_mat2',['../a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47',1,'glm']]],
+ ['mediump_5fmat2x2',['mediump_mat2x2',['../a00157.html#ga1b77963ca2812ac2653624fa0f81ba74',1,'glm']]],
+ ['mediump_5fmat2x3',['mediump_mat2x3',['../a00157.html#ga8c17198123baf6bfb59582ec42a3ca09',1,'glm']]],
+ ['mediump_5fmat2x4',['mediump_mat2x4',['../a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe',1,'glm']]],
+ ['mediump_5fmat3',['mediump_mat3',['../a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b',1,'glm']]],
+ ['mediump_5fmat3x2',['mediump_mat3x2',['../a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9',1,'glm']]],
+ ['mediump_5fmat3x3',['mediump_mat3x3',['../a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec',1,'glm']]],
+ ['mediump_5fmat3x4',['mediump_mat3x4',['../a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24',1,'glm']]],
+ ['mediump_5fmat4',['mediump_mat4',['../a00157.html#ga6259813853e4253f80c2a08672e9fb6a',1,'glm']]],
+ ['mediump_5fmat4x2',['mediump_mat4x2',['../a00157.html#ga22194c68bc3d798bb68a22f635558c8d',1,'glm']]],
+ ['mediump_5fmat4x3',['mediump_mat4x3',['../a00157.html#ga38a01cba69e3db9b1a1056b362519acb',1,'glm']]],
+ ['mediump_5fmat4x4',['mediump_mat4x4',['../a00157.html#ga535614d97234065ab44b2513667c8563',1,'glm']]],
+ ['mediump_5fu16',['mediump_u16',['../a00177.html#ga9df98857be695d5a30cb30f5bfa38a80',1,'glm']]],
+ ['mediump_5fu32',['mediump_u32',['../a00177.html#ga1bd0e914158bf03135f8a317de6debe9',1,'glm']]],
+ ['mediump_5fu64',['mediump_u64',['../a00177.html#ga2af9490085ae3bdf36a544e9dd073610',1,'glm']]],
+ ['mediump_5fu8',['mediump_u8',['../a00177.html#gad1213a22bbb9e4107f07eaa4956f8281',1,'glm']]],
+ ['mediump_5fuint',['mediump_uint',['../a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e',1,'glm']]],
+ ['mediump_5fuint16',['mediump_uint16',['../a00177.html#ga2885a6c89916911e418c06bb76b9bdbb',1,'glm']]],
+ ['mediump_5fuint16_5ft',['mediump_uint16_t',['../a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e',1,'glm']]],
+ ['mediump_5fuint32',['mediump_uint32',['../a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f',1,'glm']]],
+ ['mediump_5fuint32_5ft',['mediump_uint32_t',['../a00177.html#gaf4dae276fd29623950de14a6ca2586b5',1,'glm']]],
+ ['mediump_5fuint64',['mediump_uint64',['../a00177.html#ga30652709815ad9404272a31957daa59e',1,'glm']]],
+ ['mediump_5fuint64_5ft',['mediump_uint64_t',['../a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9',1,'glm']]],
+ ['mediump_5fuint8',['mediump_uint8',['../a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3',1,'glm']]],
+ ['mediump_5fuint8_5ft',['mediump_uint8_t',['../a00177.html#gadfe65c78231039e90507770db50c98c7',1,'glm']]],
+ ['mediump_5fumat2',['mediump_umat2',['../a00167.html#ga7322b97f1be10c83290ab57ef784d493',1,'glm']]],
+ ['mediump_5fumat2x2',['mediump_umat2x2',['../a00167.html#ga0ffed083b64e4f764db0f446d2c49163',1,'glm']]],
+ ['mediump_5fumat2x3',['mediump_umat2x3',['../a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb',1,'glm']]],
+ ['mediump_5fumat2x4',['mediump_umat2x4',['../a00167.html#gac4abd549f2e521c7f40f53b6235c450e',1,'glm']]],
+ ['mediump_5fumat3',['mediump_umat3',['../a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6',1,'glm']]],
+ ['mediump_5fumat3x2',['mediump_umat3x2',['../a00167.html#ga3fb358a947f8ceaefddd75bce22cd947',1,'glm']]],
+ ['mediump_5fumat3x3',['mediump_umat3x3',['../a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5',1,'glm']]],
+ ['mediump_5fumat3x4',['mediump_umat3x4',['../a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc',1,'glm']]],
+ ['mediump_5fumat4',['mediump_umat4',['../a00167.html#gac23667a99ae1ec649b5e55cd5a05b833',1,'glm']]],
+ ['mediump_5fumat4x2',['mediump_umat4x2',['../a00167.html#gac8d1db85d62244fd90d240227c7f51ad',1,'glm']]],
+ ['mediump_5fumat4x3',['mediump_umat4x3',['../a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39',1,'glm']]],
+ ['mediump_5fumat4x4',['mediump_umat4x4',['../a00167.html#ga24716579cf155f4e042542808f83978c',1,'glm']]],
+ ['mediump_5fuvec2',['mediump_uvec2',['../a00157.html#ga392c0761c8bef616801e0d81a6867ed7',1,'glm']]],
+ ['mediump_5fuvec3',['mediump_uvec3',['../a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e',1,'glm']]],
+ ['mediump_5fuvec4',['mediump_uvec4',['../a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7',1,'glm']]],
+ ['mediump_5fvec2',['mediump_vec2',['../a00157.html#gac37a3fd0ecdcab044853c039409c9af7',1,'glm']]],
+ ['mediump_5fvec3',['mediump_vec3',['../a00157.html#ga591478a77e4324e0836abc17cbb13e83',1,'glm']]],
+ ['mediump_5fvec4',['mediump_vec4',['../a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae',1,'glm']]],
+ ['min',['min',['../a00145.html#ga2c2bde1cec025b7ddff83c74a1113719',1,'glm::min(genType x, genType y)'],['../a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6',1,'glm::min(T const &amp;x, T const &amp;y, T const &amp;z)'],['../a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4',1,'glm::min(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)'],['../a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0',1,'glm::min(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)'],['../a00192.html#ga95466987024d03039607f09e69813d69',1,'glm::min(T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)'],['../a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47',1,'glm::min(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)'],['../a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead',1,'glm::min(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)']]],
+ ['mirrorclamp',['mirrorClamp',['../a00236.html#gaa6856a0a048d2749252848da35e10c8b',1,'glm']]],
+ ['mirrorrepeat',['mirrorRepeat',['../a00236.html#ga16a89b0661b60d5bea85137bbae74d73',1,'glm']]],
+ ['mix',['mix',['../a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd',1,'glm::mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)'],['../a00172.html#ga31cc82178742c36450f5662bd4fb30b0',1,'glm::mix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)']]],
+ ['mixed_5fproduct_2ehpp',['mixed_product.hpp',['../a00073.html',1,'']]],
+ ['mixedproduct',['mixedProduct',['../a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af',1,'glm']]],
+ ['mod',['mod',['../a00145.html#ga12201563ef902e3b07e0d1d7656efdb1',1,'glm::mod(genType x, genType y)'],['../a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3',1,'glm::mod(vecType&lt; T, P &gt; const &amp;x, T y)'],['../a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134',1,'glm::mod(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0',1,'glm::mod(genIUType x, genIUType y)'],['../a00199.html#gaabfbb41531ab7ad8d06fc176edfba785',1,'glm::mod(int x, int y)'],['../a00199.html#ga63fc8d63e7da1706439233b386ba8b6f',1,'glm::mod(uint x, uint y)']]],
+ ['modf',['modf',['../a00145.html#ga85e33f139b8db1b39b590a5713b9e679',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_c.html b/3rdparty/glm/doc/api/search/all_c.html
new file mode 100644
index 00000000000..20cdfbcf329
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_c.js b/3rdparty/glm/doc/api/search/all_c.js
new file mode 100644
index 00000000000..054e289b2ee
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_c.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['next_5ffloat',['next_float',['../a00179.html#gae516ae554faa6117660828240e8bdaf0',1,'glm::next_float(genType const &amp;x)'],['../a00179.html#gad107ec3d9697ef82032a33338a73ebdd',1,'glm::next_float(genType const &amp;x, uint const &amp;Distance)']]],
+ ['nlz',['nlz',['../a00199.html#ga78dff8bdb361bf0061194c93e003d189',1,'glm']]],
+ ['noise_2ehpp',['noise.hpp',['../a00074.html',1,'']]],
+ ['norm_2ehpp',['norm.hpp',['../a00075.html',1,'']]],
+ ['normal_2ehpp',['normal.hpp',['../a00076.html',1,'']]],
+ ['normalize',['normalize',['../a00147.html#gada9451ec170a36fe53552812b9c03a68',1,'glm::normalize(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86',1,'glm::normalize(tquat&lt; T, P &gt; const &amp;q)'],['../a00189.html#ga495818aa48c23e9e730f87a3c337d1d5',1,'glm::normalize(tdualquat&lt; T, P &gt; const &amp;q)']]],
+ ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00077.html',1,'']]],
+ ['normalizedot',['normalizeDot',['../a00213.html#gaffbc2f2cb15838de8886a68048f9004d',1,'glm']]],
+ ['not_5f',['not_',['../a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177',1,'glm']]],
+ ['notequal',['notEqual',['../a00152.html#ga5aca2b745e5eb0096716bbc394846309',1,'glm::notEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga484c4633f7c05d8e29ee8b452350f539',1,'glm::notEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00078.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_d.html b/3rdparty/glm/doc/api/search/all_d.html
new file mode 100644
index 00000000000..00b28ed86ec
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_d.js b/3rdparty/glm/doc/api/search/all_d.js
new file mode 100644
index 00000000000..c35e4b4830e
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_d.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+ ['opengl_20mathematics',['OpenGL Mathematics',['../index.html',1,'']]],
+ ['one',['one',['../a00162.html#ga39c2fb227631ca25894326529bdd1ee5',1,'glm']]],
+ ['one_5fover_5fpi',['one_over_pi',['../a00162.html#ga555150da2b06d23c8738981d5013e0eb',1,'glm']]],
+ ['one_5fover_5froot_5ftwo',['one_over_root_two',['../a00162.html#ga788fa23a0939bac4d1d0205fb4f35818',1,'glm']]],
+ ['one_5fover_5ftwo_5fpi',['one_over_two_pi',['../a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc',1,'glm']]],
+ ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00079.html',1,'']]],
+ ['orientate2',['orientate2',['../a00190.html#ga6f465681cbbc575ad93a53ec918dacf3',1,'glm']]],
+ ['orientate3',['orientate3',['../a00190.html#gab188e2526dea3c003e86e298f618085e',1,'glm::orientate3(T const &amp;angle)'],['../a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11',1,'glm::orientate3(tvec3&lt; T, P &gt; const &amp;angles)']]],
+ ['orientate4',['orientate4',['../a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503',1,'glm']]],
+ ['orientation',['orientation',['../a00224.html#ga49b4d082305cdfcfe0a5c184f684a902',1,'glm']]],
+ ['orientedangle',['orientedAngle',['../a00234.html#ga82a19d474be13c92c7b10caab42a5a72',1,'glm::orientedAngle(tvec2&lt; T, P &gt; const &amp;x, tvec2&lt; T, P &gt; const &amp;y)'],['../a00234.html#ga7254dba112eff55f55f9544f41cb9ece',1,'glm::orientedAngle(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)']]],
+ ['ortho',['ortho',['../a00169.html#ga65280251de6e38580110a0577a43d8f8',1,'glm::ortho(T left, T right, T bottom, T top, T zNear, T zFar)'],['../a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7',1,'glm::ortho(T left, T right, T bottom, T top)']]],
+ ['ortholh',['orthoLH',['../a00169.html#ga71503df1e691b12cc2d45e64fd0628fe',1,'glm']]],
+ ['orthonormalize',['orthonormalize',['../a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97',1,'glm::orthonormalize(tmat3x3&lt; T, P &gt; const &amp;m)'],['../a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596',1,'glm::orthonormalize(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)']]],
+ ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00080.html',1,'']]],
+ ['orthorh',['orthoRH',['../a00169.html#gada0aaaee76f1fd3c272698c8eca735a1',1,'glm']]],
+ ['outerproduct',['outerProduct',['../a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_e.html b/3rdparty/glm/doc/api/search/all_e.html
new file mode 100644
index 00000000000..07d5259992c
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_e.js b/3rdparty/glm/doc/api/search/all_e.js
new file mode 100644
index 00000000000..5d38da2309d
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_e.js
@@ -0,0 +1,64 @@
+var searchData=
+[
+ ['precision_20types',['Precision types',['../a00157.html',1,'']]],
+ ['packdouble2x32',['packDouble2x32',['../a00150.html#gaa916ca426b2bb0343ba17e3753e245c2',1,'glm']]],
+ ['packf2x11_5f1x10',['packF2x11_1x10',['../a00171.html#ga4944ad465ff950e926d49621f916c78d',1,'glm']]],
+ ['packf3x9_5fe1x5',['packF3x9_E1x5',['../a00171.html#ga3f648fc205467792dc6d8c59c748f8a6',1,'glm']]],
+ ['packhalf',['packHalf',['../a00171.html#ga896d806b72e390eb953786cca3632ec9',1,'glm']]],
+ ['packhalf1x16',['packHalf1x16',['../a00171.html#ga43f2093b6ff192a79058ff7834fc3528',1,'glm']]],
+ ['packhalf2x16',['packHalf2x16',['../a00150.html#ga20f134b07db3a3d3a38efb2617388c92',1,'glm']]],
+ ['packhalf4x16',['packHalf4x16',['../a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6',1,'glm']]],
+ ['packi3x10_5f1x2',['packI3x10_1x2',['../a00171.html#ga06ecb6afb902dba45419008171db9023',1,'glm']]],
+ ['packing_2ehpp',['packing.hpp',['../a00082.html',1,'']]],
+ ['packrgbm',['packRGBM',['../a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1',1,'glm']]],
+ ['packsnorm',['packSnorm',['../a00171.html#ga1be760860697db386b36513aeafe9d5e',1,'glm']]],
+ ['packsnorm1x16',['packSnorm1x16',['../a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af',1,'glm']]],
+ ['packsnorm1x8',['packSnorm1x8',['../a00171.html#gae3592e0795e62aaa1865b3a10496a7a1',1,'glm']]],
+ ['packsnorm2x16',['packSnorm2x16',['../a00150.html#ga977ab172da5494e5ac63e952afacfbe2',1,'glm']]],
+ ['packsnorm2x8',['packSnorm2x8',['../a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e',1,'glm']]],
+ ['packsnorm3x10_5f1x2',['packSnorm3x10_1x2',['../a00171.html#gab997545661877d2c7362a5084d3897d3',1,'glm']]],
+ ['packsnorm4x16',['packSnorm4x16',['../a00171.html#ga358943934d21da947d5bcc88c2ab7832',1,'glm']]],
+ ['packsnorm4x8',['packSnorm4x8',['../a00150.html#ga85e8f17627516445026ab7a9c2e3531a',1,'glm']]],
+ ['packu3x10_5f1x2',['packU3x10_1x2',['../a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0',1,'glm']]],
+ ['packunorm',['packUnorm',['../a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b',1,'glm']]],
+ ['packunorm1x16',['packUnorm1x16',['../a00171.html#ga9f82737bf2a44bedff1d286b76837886',1,'glm']]],
+ ['packunorm1x5_5f1x6_5f1x5',['packUnorm1x5_1x6_1x5',['../a00171.html#ga768e0337dd6246773f14aa0a421fe9a8',1,'glm']]],
+ ['packunorm1x8',['packUnorm1x8',['../a00171.html#ga4b2fa60df3460403817d28b082ee0736',1,'glm']]],
+ ['packunorm2x16',['packUnorm2x16',['../a00150.html#ga0e2d107039fe608a209497af867b85fb',1,'glm']]],
+ ['packunorm2x3_5f1x2',['packUnorm2x3_1x2',['../a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d',1,'glm']]],
+ ['packunorm2x4',['packUnorm2x4',['../a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c',1,'glm']]],
+ ['packunorm2x8',['packUnorm2x8',['../a00171.html#ga9a666b1c688ab54100061ed06526de6e',1,'glm']]],
+ ['packunorm3x10_5f1x2',['packUnorm3x10_1x2',['../a00171.html#ga8a1ee625d2707c60530fb3fca2980b19',1,'glm']]],
+ ['packunorm3x5_5f1x1',['packUnorm3x5_1x1',['../a00171.html#gaec4112086d7fb133bea104a7c237de52',1,'glm']]],
+ ['packunorm4x16',['packUnorm4x16',['../a00171.html#ga1f63c264e7ab63264e2b2a99fd393897',1,'glm']]],
+ ['packunorm4x4',['packUnorm4x4',['../a00171.html#gad3e7e3ce521513584a53aedc5f9765c1',1,'glm']]],
+ ['packunorm4x8',['packUnorm4x8',['../a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2',1,'glm']]],
+ ['perlin',['perlin',['../a00170.html#ga14e5975486b2b36e747861d3c65b16c1',1,'glm::perlin(vecType&lt; T, P &gt; const &amp;p)'],['../a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd',1,'glm::perlin(vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)']]],
+ ['perp',['perp',['../a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07',1,'glm']]],
+ ['perpendicular_2ehpp',['perpendicular.hpp',['../a00084.html',1,'']]],
+ ['perspective',['perspective',['../a00169.html#gac3613dcb6c6916465ad5b7ad5a786175',1,'glm']]],
+ ['perspectivefov',['perspectiveFov',['../a00169.html#gae9146e2c550fc8646299e4b900238145',1,'glm']]],
+ ['perspectivefovlh',['perspectiveFovLH',['../a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d',1,'glm']]],
+ ['perspectivefovrh',['perspectiveFovRH',['../a00169.html#ga07cd8df791bf90dcb782645fe0b21261',1,'glm']]],
+ ['perspectivelh',['perspectiveLH',['../a00169.html#ga34048da27c559f1ac8e9550d169dd6f3',1,'glm']]],
+ ['perspectiverh',['perspectiveRH',['../a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f',1,'glm']]],
+ ['pi',['pi',['../a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45',1,'glm']]],
+ ['pickmatrix',['pickMatrix',['../a00169.html#ga9026c77505b99990f68826f27c267dc5',1,'glm']]],
+ ['pitch',['pitch',['../a00172.html#ga2c08b93a4261c10748fd4d2104346f17',1,'glm']]],
+ ['polar',['polar',['../a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb',1,'glm']]],
+ ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00085.html',1,'']]],
+ ['pow',['pow',['../a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd',1,'glm::pow(vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)'],['../a00199.html#ga89c591b970882714bd1e89a4e2f249f1',1,'glm::pow(int x, int y)'],['../a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0',1,'glm::pow(uint x, uint y)'],['../a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580',1,'glm::pow(tquat&lt; T, P &gt; const &amp;x, T const &amp;y)']]],
+ ['pow2',['pow2',['../a00215.html#ga19aaff3213bf23bdec3ef124ace237e9',1,'glm::gtx']]],
+ ['pow3',['pow3',['../a00215.html#ga35689d03cd434d6ea819f1942d3bf82e',1,'glm::gtx']]],
+ ['pow4',['pow4',['../a00215.html#gacef0968763026e180e53e735007dbf5a',1,'glm::gtx']]],
+ ['poweroftwoabove',['powerOfTwoAbove',['../a00182.html#ga8cda2459871f574a0aecbe702ac93291',1,'glm::powerOfTwoAbove(genIUType Value)'],['../a00182.html#gafe08808a50226b75b50e640a08b32ddc',1,'glm::powerOfTwoAbove(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['poweroftwobelow',['powerOfTwoBelow',['../a00182.html#ga3de7df63c589325101a2817a56f8e29d',1,'glm::powerOfTwoBelow(genIUType Value)'],['../a00182.html#gae33bb1ca2b55846b23a0f0796a679195',1,'glm::powerOfTwoBelow(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['poweroftwonearest',['powerOfTwoNearest',['../a00182.html#ga5f65973a5d2ea38c719e6a663149ead9',1,'glm::powerOfTwoNearest(genIUType Value)'],['../a00182.html#ga2d7e85995d097518b8d70cd409bda39e',1,'glm::powerOfTwoNearest(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['precision_2ehpp',['precision.hpp',['../a00086.html',1,'']]],
+ ['prev_5ffloat',['prev_float',['../a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07',1,'glm::prev_float(genType const &amp;x)'],['../a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec',1,'glm::prev_float(genType const &amp;x, uint const &amp;Distance)']]],
+ ['proj',['proj',['../a00219.html#gadf29123bcf748fc9d6fb0998192184cf',1,'glm']]],
+ ['proj2d',['proj2D',['../a00230.html#gacfce1085167a8bfb71a55ea14d22752f',1,'glm']]],
+ ['proj3d',['proj3D',['../a00230.html#gafab0418f2503ec2133cb2de828cc482a',1,'glm']]],
+ ['project',['project',['../a00169.html#gad743556abd138264d4f06f4ca27f1d7e',1,'glm']]],
+ ['projection_2ehpp',['projection.hpp',['../a00087.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/all_f.html b/3rdparty/glm/doc/api/search/all_f.html
new file mode 100644
index 00000000000..2213eb20890
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/all_f.js b/3rdparty/glm/doc/api/search/all_f.js
new file mode 100644
index 00000000000..fc0961ef3e2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/all_f.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['quarter_5fpi',['quarter_pi',['../a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0',1,'glm']]],
+ ['quat_5fcast',['quat_cast',['../a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce',1,'glm::quat_cast(tmat3x3&lt; T, P &gt; const &amp;x)'],['../a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c',1,'glm::quat_cast(tmat4x4&lt; T, P &gt; const &amp;x)']]],
+ ['qword',['qword',['../a00222.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/close.png b/3rdparty/glm/doc/api/search/close.png
new file mode 100644
index 00000000000..9342d3dfeea
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/close.png
Binary files differ
diff --git a/3rdparty/glm/doc/api/search/files_0.html b/3rdparty/glm/doc/api/search/files_0.html
new file mode 100644
index 00000000000..a2ec540b412
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_0.js b/3rdparty/glm/doc/api/search/files_0.js
new file mode 100644
index 00000000000..218fa5a7eda
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_0.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['_5ffeatures_2ehpp',['_features.hpp',['../a00001.html',1,'']]],
+ ['_5ffixes_2ehpp',['_fixes.hpp',['../a00002.html',1,'']]],
+ ['_5fnoise_2ehpp',['_noise.hpp',['../a00003.html',1,'']]],
+ ['_5fswizzle_2ehpp',['_swizzle.hpp',['../a00004.html',1,'']]],
+ ['_5fswizzle_5ffunc_2ehpp',['_swizzle_func.hpp',['../a00005.html',1,'']]],
+ ['_5fvectorize_2ehpp',['_vectorize.hpp',['../a00006.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_1.html b/3rdparty/glm/doc/api/search/files_1.html
new file mode 100644
index 00000000000..9e974daa73d
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_1.js b/3rdparty/glm/doc/api/search/files_1.js
new file mode 100644
index 00000000000..982f2481d97
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_10.html b/3rdparty/glm/doc/api/search/files_10.html
new file mode 100644
index 00000000000..940ba517809
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_10.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_10.js b/3rdparty/glm/doc/api/search/files_10.js
new file mode 100644
index 00000000000..2aa14485582
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_10.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00097.html',1,'']]],
+ ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00098.html',1,'']]],
+ ['setup_2ehpp',['setup.hpp',['../a00099.html',1,'']]],
+ ['spline_2ehpp',['spline.hpp',['../a00100.html',1,'']]],
+ ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00101.html',1,'']]],
+ ['string_5fcast_2ehpp',['string_cast.hpp',['../a00102.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_11.html b/3rdparty/glm/doc/api/search/files_11.html
new file mode 100644
index 00000000000..f00dc5e1847
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_11.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_11.js b/3rdparty/glm/doc/api/search/files_11.js
new file mode 100644
index 00000000000..343e9a399a6
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_11.js
@@ -0,0 +1,28 @@
+var searchData=
+[
+ ['transform_2ehpp',['transform.hpp',['../a00103.html',1,'']]],
+ ['transform2_2ehpp',['transform2.hpp',['../a00104.html',1,'']]],
+ ['trigonometric_2ehpp',['trigonometric.hpp',['../a00105.html',1,'']]],
+ ['type_5ffloat_2ehpp',['type_float.hpp',['../a00108.html',1,'']]],
+ ['type_5fgentype_2ehpp',['type_gentype.hpp',['../a00109.html',1,'']]],
+ ['type_5fhalf_2ehpp',['type_half.hpp',['../a00110.html',1,'']]],
+ ['type_5fint_2ehpp',['type_int.hpp',['../a00111.html',1,'']]],
+ ['type_5fmat_2ehpp',['type_mat.hpp',['../a00112.html',1,'']]],
+ ['type_5fmat2x2_2ehpp',['type_mat2x2.hpp',['../a00113.html',1,'']]],
+ ['type_5fmat2x3_2ehpp',['type_mat2x3.hpp',['../a00114.html',1,'']]],
+ ['type_5fmat2x4_2ehpp',['type_mat2x4.hpp',['../a00115.html',1,'']]],
+ ['type_5fmat3x2_2ehpp',['type_mat3x2.hpp',['../a00116.html',1,'']]],
+ ['type_5fmat3x3_2ehpp',['type_mat3x3.hpp',['../a00117.html',1,'']]],
+ ['type_5fmat3x4_2ehpp',['type_mat3x4.hpp',['../a00118.html',1,'']]],
+ ['type_5fmat4x2_2ehpp',['type_mat4x2.hpp',['../a00119.html',1,'']]],
+ ['type_5fmat4x3_2ehpp',['type_mat4x3.hpp',['../a00120.html',1,'']]],
+ ['type_5fmat4x4_2ehpp',['type_mat4x4.hpp',['../a00121.html',1,'']]],
+ ['type_5fprecision_2ehpp',['type_precision.hpp',['../a00122.html',1,'']]],
+ ['type_5fptr_2ehpp',['type_ptr.hpp',['../a00123.html',1,'']]],
+ ['type_5ftrait_2ehpp',['type_trait.hpp',['../a00124.html',1,'']]],
+ ['type_5fvec_2ehpp',['type_vec.hpp',['../a00125.html',1,'']]],
+ ['type_5fvec1_2ehpp',['type_vec1.hpp',['../a00126.html',1,'']]],
+ ['type_5fvec2_2ehpp',['type_vec2.hpp',['../a00127.html',1,'']]],
+ ['type_5fvec3_2ehpp',['type_vec3.hpp',['../a00128.html',1,'']]],
+ ['type_5fvec4_2ehpp',['type_vec4.hpp',['../a00129.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_12.html b/3rdparty/glm/doc/api/search/files_12.html
new file mode 100644
index 00000000000..7f023c91226
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_12.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_12.js b/3rdparty/glm/doc/api/search/files_12.js
new file mode 100644
index 00000000000..0889004766a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_12.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['ulp_2ehpp',['ulp.hpp',['../a00130.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_13.html b/3rdparty/glm/doc/api/search/files_13.html
new file mode 100644
index 00000000000..dc6bd8a96f2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_13.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_13.js b/3rdparty/glm/doc/api/search/files_13.js
new file mode 100644
index 00000000000..42711e59f62
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_13.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['vec1_2ehpp',['vec1.hpp',['../a00131.html',1,'']]],
+ ['vec2_2ehpp',['vec2.hpp',['../a00132.html',1,'']]],
+ ['vec3_2ehpp',['vec3.hpp',['../a00133.html',1,'']]],
+ ['vec4_2ehpp',['vec4.hpp',['../a00134.html',1,'']]],
+ ['vec_5fswizzle_2ehpp',['vec_swizzle.hpp',['../a00135.html',1,'']]],
+ ['vector_5fangle_2ehpp',['vector_angle.hpp',['../a00136.html',1,'']]],
+ ['vector_5fquery_2ehpp',['vector_query.hpp',['../a00137.html',1,'']]],
+ ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00138.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_14.html b/3rdparty/glm/doc/api/search/files_14.html
new file mode 100644
index 00000000000..6f6f1a2ebd0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_14.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_14.js b/3rdparty/glm/doc/api/search/files_14.js
new file mode 100644
index 00000000000..8cf26e45a90
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_14.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['wrap_2ehpp',['wrap.hpp',['../a00139.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_2.html b/3rdparty/glm/doc/api/search/files_2.html
new file mode 100644
index 00000000000..04348f907db
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_2.js b/3rdparty/glm/doc/api/search/files_2.js
new file mode 100644
index 00000000000..dbaf52174f7
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]],
+ ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_3.html b/3rdparty/glm/doc/api/search/files_3.html
new file mode 100644
index 00000000000..77942003d68
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_3.js b/3rdparty/glm/doc/api/search/files_3.js
new file mode 100644
index 00000000000..0979003cd02
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_3.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]],
+ ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]],
+ ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]],
+ ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]],
+ ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]],
+ ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]],
+ ['constants_2ehpp',['constants.hpp',['../a00019.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_4.html b/3rdparty/glm/doc/api/search/files_4.html
new file mode 100644
index 00000000000..e6bc2852dfe
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_4.js b/3rdparty/glm/doc/api/search/files_4.js
new file mode 100644
index 00000000000..35441b07187
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00020.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_5.html b/3rdparty/glm/doc/api/search/files_5.html
new file mode 100644
index 00000000000..5ab2ed6a5b6
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_5.js b/3rdparty/glm/doc/api/search/files_5.js
new file mode 100644
index 00000000000..85cb029a634
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_5.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['epsilon_2ehpp',['epsilon.hpp',['../a00021.html',1,'']]],
+ ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00022.html',1,'']]],
+ ['exponential_2ehpp',['exponential.hpp',['../a00023.html',1,'']]],
+ ['ext_2ehpp',['ext.hpp',['../a00024.html',1,'']]],
+ ['extend_2ehpp',['extend.hpp',['../a00025.html',1,'']]],
+ ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00026.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_6.html b/3rdparty/glm/doc/api/search/files_6.html
new file mode 100644
index 00000000000..9453495a2eb
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_6.js b/3rdparty/glm/doc/api/search/files_6.js
new file mode 100644
index 00000000000..7890e249438
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_6.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+ ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00027.html',1,'']]],
+ ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00028.html',1,'']]],
+ ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00029.html',1,'']]],
+ ['func_5fcommon_2ehpp',['func_common.hpp',['../a00030.html',1,'']]],
+ ['func_5fexponential_2ehpp',['func_exponential.hpp',['../a00031.html',1,'']]],
+ ['func_5fgeometric_2ehpp',['func_geometric.hpp',['../a00032.html',1,'']]],
+ ['func_5finteger_2ehpp',['func_integer.hpp',['../a00033.html',1,'']]],
+ ['func_5fmatrix_2ehpp',['func_matrix.hpp',['../a00034.html',1,'']]],
+ ['func_5fpacking_2ehpp',['func_packing.hpp',['../a00035.html',1,'']]],
+ ['func_5ftrigonometric_2ehpp',['func_trigonometric.hpp',['../a00036.html',1,'']]],
+ ['func_5fvector_5frelational_2ehpp',['func_vector_relational.hpp',['../a00037.html',1,'']]],
+ ['functions_2ehpp',['functions.hpp',['../a00038.html',1,'']]],
+ ['fwd_2ehpp',['fwd.hpp',['../a00039.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_7.html b/3rdparty/glm/doc/api/search/files_7.html
new file mode 100644
index 00000000000..d3f65339880
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_7.js b/3rdparty/glm/doc/api/search/files_7.js
new file mode 100644
index 00000000000..fdee3660820
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_7.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+ ['color_5fspace_2ehpp',['color_space.hpp',['../a00012.html',1,'']]],
+ ['color_5fspace_2ehpp',['color_space.hpp',['../a00013.html',1,'']]],
+ ['common_2ehpp',['common.hpp',['../a00016.html',1,'']]],
+ ['geometric_2ehpp',['geometric.hpp',['../a00040.html',1,'']]],
+ ['glm_2ehpp',['glm.hpp',['../a00041.html',1,'']]],
+ ['gradient_5fpaint_2ehpp',['gradient_paint.hpp',['../a00042.html',1,'']]],
+ ['integer_2ehpp',['integer.hpp',['../a00046.html',1,'']]],
+ ['integer_2ehpp',['integer.hpp',['../a00045.html',1,'']]],
+ ['packing_2ehpp',['packing.hpp',['../a00081.html',1,'']]],
+ ['quaternion_2ehpp',['quaternion.hpp',['../a00089.html',1,'']]],
+ ['quaternion_2ehpp',['quaternion.hpp',['../a00088.html',1,'']]],
+ ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00107.html',1,'']]],
+ ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00106.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_8.html b/3rdparty/glm/doc/api/search/files_8.html
new file mode 100644
index 00000000000..ec56765feae
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_8.js b/3rdparty/glm/doc/api/search/files_8.js
new file mode 100644
index 00000000000..04f3b4c4743
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00043.html',1,'']]],
+ ['hash_2ehpp',['hash.hpp',['../a00044.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_9.html b/3rdparty/glm/doc/api/search/files_9.html
new file mode 100644
index 00000000000..62a6c97a150
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_9.js b/3rdparty/glm/doc/api/search/files_9.js
new file mode 100644
index 00000000000..ec835217f7e
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_9.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['integer_2ehpp',['integer.hpp',['../a00047.html',1,'']]],
+ ['intersect_2ehpp',['intersect.hpp',['../a00048.html',1,'']]],
+ ['io_2ehpp',['io.hpp',['../a00049.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_a.html b/3rdparty/glm/doc/api/search/files_a.html
new file mode 100644
index 00000000000..d0b6fa89328
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_a.js b/3rdparty/glm/doc/api/search/files_a.js
new file mode 100644
index 00000000000..332c49d22c0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['log_5fbase_2ehpp',['log_base.hpp',['../a00050.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_b.html b/3rdparty/glm/doc/api/search/files_b.html
new file mode 100644
index 00000000000..5d4f023113b
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_b.js b/3rdparty/glm/doc/api/search/files_b.js
new file mode 100644
index 00000000000..489f50e352a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_b.js
@@ -0,0 +1,25 @@
+var searchData=
+[
+ ['mat2x2_2ehpp',['mat2x2.hpp',['../a00052.html',1,'']]],
+ ['mat2x3_2ehpp',['mat2x3.hpp',['../a00053.html',1,'']]],
+ ['mat2x4_2ehpp',['mat2x4.hpp',['../a00054.html',1,'']]],
+ ['mat3x2_2ehpp',['mat3x2.hpp',['../a00055.html',1,'']]],
+ ['mat3x3_2ehpp',['mat3x3.hpp',['../a00056.html',1,'']]],
+ ['mat3x4_2ehpp',['mat3x4.hpp',['../a00057.html',1,'']]],
+ ['mat4x2_2ehpp',['mat4x2.hpp',['../a00058.html',1,'']]],
+ ['mat4x3_2ehpp',['mat4x3.hpp',['../a00059.html',1,'']]],
+ ['mat4x4_2ehpp',['mat4x4.hpp',['../a00060.html',1,'']]],
+ ['matrix_2ehpp',['matrix.hpp',['../a00061.html',1,'']]],
+ ['matrix_5faccess_2ehpp',['matrix_access.hpp',['../a00062.html',1,'']]],
+ ['matrix_5fcross_5fproduct_2ehpp',['matrix_cross_product.hpp',['../a00063.html',1,'']]],
+ ['matrix_5fdecompose_2ehpp',['matrix_decompose.hpp',['../a00064.html',1,'']]],
+ ['matrix_5finteger_2ehpp',['matrix_integer.hpp',['../a00065.html',1,'']]],
+ ['matrix_5finterpolation_2ehpp',['matrix_interpolation.hpp',['../a00066.html',1,'']]],
+ ['matrix_5finverse_2ehpp',['matrix_inverse.hpp',['../a00067.html',1,'']]],
+ ['matrix_5fmajor_5fstorage_2ehpp',['matrix_major_storage.hpp',['../a00068.html',1,'']]],
+ ['matrix_5foperation_2ehpp',['matrix_operation.hpp',['../a00069.html',1,'']]],
+ ['matrix_5fquery_2ehpp',['matrix_query.hpp',['../a00070.html',1,'']]],
+ ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00071.html',1,'']]],
+ ['matrix_5ftransform_5f2d_2ehpp',['matrix_transform_2d.hpp',['../a00072.html',1,'']]],
+ ['mixed_5fproduct_2ehpp',['mixed_product.hpp',['../a00073.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_c.html b/3rdparty/glm/doc/api/search/files_c.html
new file mode 100644
index 00000000000..888d5dfd4f1
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_c.js b/3rdparty/glm/doc/api/search/files_c.js
new file mode 100644
index 00000000000..604255fbcff
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_c.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['noise_2ehpp',['noise.hpp',['../a00074.html',1,'']]],
+ ['norm_2ehpp',['norm.hpp',['../a00075.html',1,'']]],
+ ['normal_2ehpp',['normal.hpp',['../a00076.html',1,'']]],
+ ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00077.html',1,'']]],
+ ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00078.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_d.html b/3rdparty/glm/doc/api/search/files_d.html
new file mode 100644
index 00000000000..b4496e5aa49
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_d.js b/3rdparty/glm/doc/api/search/files_d.js
new file mode 100644
index 00000000000..db1f0ff0add
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_d.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00079.html',1,'']]],
+ ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00080.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_e.html b/3rdparty/glm/doc/api/search/files_e.html
new file mode 100644
index 00000000000..52be6aaa343
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_e.js b/3rdparty/glm/doc/api/search/files_e.js
new file mode 100644
index 00000000000..74ad1b327d6
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_e.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['packing_2ehpp',['packing.hpp',['../a00082.html',1,'']]],
+ ['perpendicular_2ehpp',['perpendicular.hpp',['../a00084.html',1,'']]],
+ ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00085.html',1,'']]],
+ ['precision_2ehpp',['precision.hpp',['../a00086.html',1,'']]],
+ ['projection_2ehpp',['projection.hpp',['../a00087.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/files_f.html b/3rdparty/glm/doc/api/search/files_f.html
new file mode 100644
index 00000000000..3249d4250a4
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/files_f.js b/3rdparty/glm/doc/api/search/files_f.js
new file mode 100644
index 00000000000..ebd6ffea213
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/files_f.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['random_2ehpp',['random.hpp',['../a00090.html',1,'']]],
+ ['range_2ehpp',['range.hpp',['../a00091.html',1,'']]],
+ ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00092.html',1,'']]],
+ ['reciprocal_2ehpp',['reciprocal.hpp',['../a00093.html',1,'']]],
+ ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00094.html',1,'']]],
+ ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00095.html',1,'']]],
+ ['round_2ehpp',['round.hpp',['../a00096.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_0.html b/3rdparty/glm/doc/api/search/functions_0.html
new file mode 100644
index 00000000000..246d1672102
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_0.js b/3rdparty/glm/doc/api/search/functions_0.js
new file mode 100644
index 00000000000..4131ae9364c
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_0.js
@@ -0,0 +1,30 @@
+var searchData=
+[
+ ['abs',['abs',['../a00145.html#ga693d77696ff36572a0da79efec965acd',1,'glm']]],
+ ['acos',['acos',['../a00151.html#ga58ad259b788528fe0a4bd2eeb5e381cc',1,'glm']]],
+ ['acosh',['acosh',['../a00151.html#ga3f368ad3e1883b60748ca2634d816104',1,'glm']]],
+ ['acot',['acot',['../a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d',1,'glm']]],
+ ['acoth',['acoth',['../a00174.html#gafaca98a7100170db8841f446282debfa',1,'glm']]],
+ ['acsc',['acsc',['../a00174.html#ga1b4bed91476b9b915e76b4a30236d330',1,'glm']]],
+ ['acsch',['acsch',['../a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576',1,'glm']]],
+ ['affineinverse',['affineInverse',['../a00168.html#gae0fcc5fc8783291f9702272de428fa0e',1,'glm']]],
+ ['all',['all',['../a00152.html#ga14bbc94f2ae2774a1d64d91f8767773e',1,'glm']]],
+ ['angle',['angle',['../a00172.html#gad4a4448baedb198b2b1e7880d2544dc9',1,'glm::angle(tquat&lt; T, P &gt; const &amp;x)'],['../a00234.html#gab8691008a2536b681b711211816c14f7',1,'glm::angle(vecType const &amp;x, vecType const &amp;y)']]],
+ ['angleaxis',['angleAxis',['../a00172.html#ga37ae19405f1ccf766f27e4fcd035d859',1,'glm']]],
+ ['any',['any',['../a00152.html#ga632a2644532d9332011c8860400d30b2',1,'glm']]],
+ ['arecollinear',['areCollinear',['../a00235.html#ga465b844190d1740051e45d780832ea4c',1,'glm']]],
+ ['areorthogonal',['areOrthogonal',['../a00235.html#gaee10acefed397c11e01f2862e837754c',1,'glm']]],
+ ['areorthonormal',['areOrthonormal',['../a00235.html#ga89c82bc60e5b84e4489b74c15a134caf',1,'glm']]],
+ ['asec',['asec',['../a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10',1,'glm']]],
+ ['asech',['asech',['../a00174.html#gaec7586dccfe431f850d006f3824b8ca6',1,'glm']]],
+ ['asin',['asin',['../a00151.html#ga88e29b8289e882859d76a25798dd9490',1,'glm']]],
+ ['asinh',['asinh',['../a00151.html#ga72bf44c1984e1afb63acf821ba33cac7',1,'glm']]],
+ ['associatedmax',['associatedMax',['../a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45',1,'glm::associatedMax(T x, U a, T y, U b)'],['../a00181.html#ga10ba6001798f42a0f941f19ff30e066a',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)'],['../a00181.html#ga62ca63cca6b21387b8a25474f441a869',1,'glm::associatedMax(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b)'],['../a00181.html#ga5364520173815b66a9d9e452c38bf312',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)'],['../a00181.html#gaec891e363d91abbf3a4443cf2f652209',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c)'],['../a00181.html#ga065a0c1eb7837118ef79be88dfd78487',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)'],['../a00181.html#ga553431a468e251623408603bcb51c9cb',1,'glm::associatedMax(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c)'],['../a00181.html#ga327136e6a568569c03a056f90814b656',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c)'],['../a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00181.html#gaf607886421c35cd7e4f41a50d7c330e3',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga7a165de1af9a3f9193516a3b47407086',1,'glm::associatedMax(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga3122fbe8133ea54749b10fb93e8a167e',1,'glm::associatedMax(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)']]],
+ ['associatedmin',['associatedMin',['../a00181.html#gacc01bd272359572fc28437ae214a02df',1,'glm::associatedMin(T x, U a, T y, U b)'],['../a00181.html#ga8b538d10872626668a078e2bd495af25',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b)'],['../a00181.html#ga1dccff48fa5650c746533de83467da6e',1,'glm::associatedMin(T x, const vecType&lt; U, P &gt; &amp;a, T y, const vecType&lt; U, P &gt; &amp;b)'],['../a00181.html#ga076717f4e07c6ae725cc1382d1ac4869',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b)'],['../a00181.html#gad0aa8f86259a26d839d34a3577a923fc',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c)'],['../a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c)'],['../a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00181.html#ga88e031f22b80215505928900d3dde549',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, vecType&lt; U, P &gt; const &amp;a, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;b, vecType&lt; T, P &gt; const &amp;z, vecType&lt; U, P &gt; const &amp;c, vecType&lt; T, P &gt; const &amp;w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1',1,'glm::associatedMin(T x, vecType&lt; U, P &gt; const &amp;a, T y, vecType&lt; U, P &gt; const &amp;b, T z, vecType&lt; U, P &gt; const &amp;c, T w, vecType&lt; U, P &gt; const &amp;d)'],['../a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c',1,'glm::associatedMin(vecType&lt; T, P &gt; const &amp;x, U a, vecType&lt; T, P &gt; const &amp;y, U b, vecType&lt; T, P &gt; const &amp;z, U c, vecType&lt; T, P &gt; const &amp;w, U d)']]],
+ ['atan',['atan',['../a00151.html#ga461e769acb8b8cb695a5a89334546611',1,'glm::atan(vecType&lt; T, P &gt; const &amp;y, vecType&lt; T, P &gt; const &amp;x)'],['../a00151.html#gae8f22458bba8f2321ceb1bfc4a543216',1,'glm::atan(vecType&lt; T, P &gt; const &amp;y_over_x)']]],
+ ['atan2',['atan2',['../a00187.html#gac63011205bf6d0be82589dc56dd26708',1,'glm::atan2(T x, T y)'],['../a00187.html#ga525f3e849d0fc64807f8ab571b4545f9',1,'glm::atan2(const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y)'],['../a00187.html#gad328042b6734d3f2c49c0ec1328b14c0',1,'glm::atan2(const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y)'],['../a00187.html#ga09d39c391a509a045b6c7061f15bdff5',1,'glm::atan2(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y)']]],
+ ['atanh',['atanh',['../a00151.html#gaffa8decdd8620759f4e6fe4834768b87',1,'glm']]],
+ ['axis',['axis',['../a00172.html#ga0b3e87a13b2708154b72259e50789a19',1,'glm']]],
+ ['axisangle',['axisAngle',['../a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92',1,'glm']]],
+ ['axisanglematrix',['axisAngleMatrix',['../a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_1.html b/3rdparty/glm/doc/api/search/functions_1.html
new file mode 100644
index 00000000000..5f14d674ee1
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_1.js b/3rdparty/glm/doc/api/search/functions_1.js
new file mode 100644
index 00000000000..830a2fdb3c7
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_1.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+ ['ballrand',['ballRand',['../a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83',1,'glm']]],
+ ['bitcount',['bitCount',['../a00148.html#ga44abfe3379e11cbd29425a843420d0d6',1,'glm::bitCount(genType v)'],['../a00148.html#ga1f29640969a3c54564da06ac67a5392e',1,'glm::bitCount(vecType&lt; T, P &gt; const &amp;v)']]],
+ ['bitfieldextract',['bitfieldExtract',['../a00148.html#gab84b88f3a8e367774e5dd1c618c353cf',1,'glm']]],
+ ['bitfieldfillone',['bitfieldFillOne',['../a00159.html#ga46f9295abe3b5c7658f5b13c7f819f0a',1,'glm::bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)'],['../a00159.html#gad789042e84e8292ae95dc1af856f2ad5',1,'glm::bitfieldFillOne(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)']]],
+ ['bitfieldfillzero',['bitfieldFillZero',['../a00159.html#ga697b86998b7d74ee0a69d8e9f8819fee',1,'glm::bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)'],['../a00159.html#gaddba3196316b0bd240295b09b43c2958',1,'glm::bitfieldFillZero(vecType&lt; T, P &gt; const &amp;Value, int FirstBit, int BitCount)']]],
+ ['bitfieldinsert',['bitfieldInsert',['../a00148.html#ga5681dfac9239beb1b8bd995e3c6496d7',1,'glm']]],
+ ['bitfieldinterleave',['bitfieldInterleave',['../a00159.html#ga24cad0069f9a0450abd80b3e89501adf',1,'glm::bitfieldInterleave(int8 x, int8 y)'],['../a00159.html#ga9a4976a529aec2cee56525e1165da484',1,'glm::bitfieldInterleave(uint8 x, uint8 y)'],['../a00159.html#gac51c33a394593f0631fa3aa5bb778809',1,'glm::bitfieldInterleave(int16 x, int16 y)'],['../a00159.html#ga94f3646a5667f4be56f8dcf3310e963f',1,'glm::bitfieldInterleave(uint16 x, uint16 y)'],['../a00159.html#gaebb756a24a0784e3d6fba8bd011ab77a',1,'glm::bitfieldInterleave(int32 x, int32 y)'],['../a00159.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd',1,'glm::bitfieldInterleave(uint32 x, uint32 y)'],['../a00159.html#ga8fdb724dccd4a07d57efc01147102137',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z)'],['../a00159.html#ga9fc2a0dd5dcf8b00e113f272a5feca93',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z)'],['../a00159.html#gaa901c36a842fa5d126ea650549f17b24',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z)'],['../a00159.html#ga3afd6d38881fe3948c53d4214d2197fd',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z)'],['../a00159.html#gad2075d96a6640121edaa98ea534102ca',1,'glm::bitfieldInterleave(int32 x, int32 y, int32 z)'],['../a00159.html#gab19fbc739fc0cf7247978602c36f7da8',1,'glm::bitfieldInterleave(uint32 x, uint32 y, uint32 z)'],['../a00159.html#ga8a44ae22f5c953b296c42d067dccbe6d',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z, int8 w)'],['../a00159.html#ga14bb274d54a3c26f4919dd7ed0dd0c36',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w)'],['../a00159.html#ga180a63161e1319fbd5a53c84d0429c7a',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z, int16 w)'],['../a00159.html#gafca8768671a14c8016facccb66a89f26',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)']]],
+ ['bitfieldreverse',['bitfieldReverse',['../a00148.html#ga153e7e8d0c035f83cce50fc3e580930f',1,'glm']]],
+ ['bitfieldrotateleft',['bitfieldRotateLeft',['../a00159.html#ga2eb49678a344ce1495bdb5586d9896b9',1,'glm::bitfieldRotateLeft(genIUType In, int Shift)'],['../a00159.html#ga410d130917d85b865718e3ebc32cf0ef',1,'glm::bitfieldRotateLeft(vecType&lt; T, P &gt; const &amp;In, int Shift)']]],
+ ['bitfieldrotateright',['bitfieldRotateRight',['../a00159.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca',1,'glm::bitfieldRotateRight(genIUType In, int Shift)'],['../a00159.html#ga96b56fd2adad1eeaee9e10dfe83904ba',1,'glm::bitfieldRotateRight(vecType&lt; T, P &gt; const &amp;In, int Shift)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_10.html b/3rdparty/glm/doc/api/search/functions_10.html
new file mode 100644
index 00000000000..c322f4084fb
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_10.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_10.js b/3rdparty/glm/doc/api/search/functions_10.js
new file mode 100644
index 00000000000..76e0343bfdf
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_10.js
@@ -0,0 +1,27 @@
+var searchData=
+[
+ ['saturate',['saturate',['../a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7',1,'glm::saturate(T x)'],['../a00187.html#ga5815a26488231dfdf92242cf0c2d2107',1,'glm::saturate(const tvec2&lt; T, P &gt; &amp;x)'],['../a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b',1,'glm::saturate(const tvec3&lt; T, P &gt; &amp;x)'],['../a00187.html#ga63791409bdef9745b956406afe3157f1',1,'glm::saturate(const tvec4&lt; T, P &gt; &amp;x)']]],
+ ['saturation',['saturation',['../a00184.html#gafecfb15d58da8445103745af3348e516',1,'glm::saturation(T const s)'],['../a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c',1,'glm::saturation(T const s, tvec3&lt; T, P &gt; const &amp;color)'],['../a00184.html#ga2033e0566c595230714af396744e8a61',1,'glm::saturation(T const s, tvec4&lt; T, P &gt; const &amp;color)']]],
+ ['scale',['scale',['../a00169.html#ga8f062fcc07e2445500793f2803afebb0',1,'glm::scale(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)'],['../a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240',1,'glm::scale(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)'],['../a00229.html#ga1972d4a66a2e92637c8aaee598417a71',1,'glm::scale(tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['scalebias',['scaleBias',['../a00230.html#ga2874abd228989556d610a0bff993667a',1,'glm::scaleBias(valType scale, valType bias)'],['../a00230.html#gac1a1139e2980021422d1fc1c42dc74f2',1,'glm::scaleBias(tmat4x4&lt; valType, P &gt; const &amp;m, valType scale, valType bias)']]],
+ ['sec',['sec',['../a00174.html#gae4bcbebee670c5ea155f0777b3acbd84',1,'glm']]],
+ ['sech',['sech',['../a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae',1,'glm']]],
+ ['shearx',['shearX',['../a00209.html#ga3da9ea234fdb2a96c75a97a18c903489',1,'glm']]],
+ ['shearx2d',['shearX2D',['../a00230.html#ga10f6c62d8f827c4cacedb71fd05e4ba2',1,'glm']]],
+ ['shearx3d',['shearX3D',['../a00230.html#gae06ce274e4754f925d5d68440e89452e',1,'glm']]],
+ ['sheary',['shearY',['../a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91',1,'glm']]],
+ ['sheary2d',['shearY2D',['../a00230.html#ga21ade82859e09a5cdaf4a01fbf8dc61b',1,'glm']]],
+ ['sheary3d',['shearY3D',['../a00230.html#ga31253ea18fdcdfde08c134c8b67688f7',1,'glm']]],
+ ['shearz3d',['shearZ3D',['../a00230.html#ga5558ac64a7144685bf2eb4483a0e2f51',1,'glm']]],
+ ['shortmix',['shortMix',['../a00220.html#ga3534443de2a1a806f386976546cddc81',1,'glm']]],
+ ['sign',['sign',['../a00145.html#gac3446b4138e0b8757561c07cd19f084d',1,'glm::sign(vecType&lt; T, P &gt; const &amp;x)'],['../a00202.html#ga1842004a127a9f3573764362ff639191',1,'glm::sign(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;base)']]],
+ ['simplex',['simplex',['../a00170.html#ga05f5ab240c9a3fdeee353636e464c285',1,'glm']]],
+ ['sin',['sin',['../a00151.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5',1,'glm']]],
+ ['sinh',['sinh',['../a00151.html#gad8f89c12efe6f8d3ae8046625b266254',1,'glm']]],
+ ['slerp',['slerp',['../a00172.html#ga22b438c7252f3fa5b773c9882471652a',1,'glm::slerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)'],['../a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09',1,'glm::slerp(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, T const &amp;a)']]],
+ ['smoothstep',['smoothstep',['../a00145.html#ga562edf7eca082cc5b7a0aaf180436daf',1,'glm']]],
+ ['sphericalrand',['sphericalRand',['../a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d',1,'glm']]],
+ ['sqrt',['sqrt',['../a00146.html#gae7ac2e44c14d4e8004098d0bfba6e2b8',1,'glm::sqrt(vecType&lt; T, P &gt; const &amp;v)'],['../a00199.html#ga7ce36693a75879ccd9bb10167cfa722d',1,'glm::sqrt(int x)'],['../a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc',1,'glm::sqrt(uint x)']]],
+ ['squad',['squad',['../a00220.html#gae75f537becdf2b1381b4482ec96e6c82',1,'glm']]],
+ ['step',['step',['../a00145.html#ga015a1261ff23e12650211aa872863cce',1,'glm::step(genType edge, genType x)'],['../a00145.html#gaf15b74ab672af2c7d7b535a9b4803700',1,'glm::step(T edge, vecType&lt; T, P &gt; const &amp;x)'],['../a00145.html#ga6d84170051fb87c183c38883ec85b411',1,'glm::step(vecType&lt; T, P &gt; const &amp;edge, vecType&lt; T, P &gt; const &amp;x)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_11.html b/3rdparty/glm/doc/api/search/functions_11.html
new file mode 100644
index 00000000000..c49fcd4ce1f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_11.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_11.js b/3rdparty/glm/doc/api/search/functions_11.js
new file mode 100644
index 00000000000..7b4033e9f8f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_11.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+ ['tan',['tan',['../a00151.html#gab3ae890c38b7d3aa4d5e00998fd296b2',1,'glm']]],
+ ['tanh',['tanh',['../a00151.html#ga234e904a0075f88654a594b5f837711f',1,'glm']]],
+ ['third',['third',['../a00162.html#ga3077c6311010a214b69ddc8214ec13b5',1,'glm']]],
+ ['three_5fover_5ftwo_5fpi',['three_over_two_pi',['../a00162.html#gae94950df74b0ce382b1fc1d978ef7394',1,'glm']]],
+ ['to_5fstring',['to_string',['../a00228.html#ga7b4f9233593bbf1d53762f801ef56fe6',1,'glm']]],
+ ['tomat3',['toMat3',['../a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b',1,'glm']]],
+ ['tomat4',['toMat4',['../a00220.html#gaedc9fba6485eade37cc26c16df9d7aad',1,'glm']]],
+ ['toquat',['toQuat',['../a00220.html#gac9e3109ca60b644ce508d6b71a1697bc',1,'glm::toQuat(tmat3x3&lt; T, P &gt; const &amp;x)'],['../a00220.html#ga808dd0f83ee8150db7e652313bde8eb2',1,'glm::toQuat(tmat4x4&lt; T, P &gt; const &amp;x)']]],
+ ['translate',['translate',['../a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed',1,'glm::translate(tmat4x4&lt; T, P &gt; const &amp;m, tvec3&lt; T, P &gt; const &amp;v)'],['../a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51',1,'glm::translate(tmat3x3&lt; T, P &gt; const &amp;m, tvec2&lt; T, P &gt; const &amp;v)'],['../a00229.html#ga838c4505ef7f254ed05117b1ac9691fb',1,'glm::translate(tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['trianglenormal',['triangleNormal',['../a00212.html#ga7842850bcda582f1756883e3ed950e14',1,'glm']]],
+ ['trunc',['trunc',['../a00145.html#ga634cdbf8b37edca03f2248450570fd54',1,'glm']]],
+ ['tweakedinfiniteperspective',['tweakedInfinitePerspective',['../a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00169.html#gaa50fce7f50b5d5da881ed30f5532a921',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]],
+ ['two_5fover_5fpi',['two_over_pi',['../a00162.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]],
+ ['two_5fover_5froot_5fpi',['two_over_root_pi',['../a00162.html#ga5827301817640843cf02026a8d493894',1,'glm']]],
+ ['two_5fpi',['two_pi',['../a00162.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]],
+ ['two_5fthirds',['two_thirds',['../a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_12.html b/3rdparty/glm/doc/api/search/functions_12.html
new file mode 100644
index 00000000000..6a02772012f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_12.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_12.js b/3rdparty/glm/doc/api/search/functions_12.js
new file mode 100644
index 00000000000..525a545fa1e
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_12.js
@@ -0,0 +1,40 @@
+var searchData=
+[
+ ['uaddcarry',['uaddCarry',['../a00148.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa',1,'glm']]],
+ ['uintbitstofloat',['uintBitsToFloat',['../a00145.html#gab2bae0d15dcdca6093f88f76b3975d97',1,'glm::uintBitsToFloat(uint const &amp;v)'],['../a00145.html#ga3acab37650ecd792dc84548094b58684',1,'glm::uintBitsToFloat(vecType&lt; uint, P &gt; const &amp;v)']]],
+ ['umulextended',['umulExtended',['../a00148.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1',1,'glm']]],
+ ['unpackdouble2x32',['unpackDouble2x32',['../a00150.html#ga5f4296dc5f12f0aa67ac05b8bb322483',1,'glm']]],
+ ['unpackf2x11_5f1x10',['unpackF2x11_1x10',['../a00171.html#ga2b1fd1e854705b1345e98409e0a25e50',1,'glm']]],
+ ['unpackf3x9_5fe1x5',['unpackF3x9_E1x5',['../a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e',1,'glm']]],
+ ['unpackhalf',['unpackHalf',['../a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7',1,'glm']]],
+ ['unpackhalf1x16',['unpackHalf1x16',['../a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf',1,'glm']]],
+ ['unpackhalf2x16',['unpackHalf2x16',['../a00150.html#gaf59b52e6b28da9335322c4ae19b5d745',1,'glm']]],
+ ['unpackhalf4x16',['unpackHalf4x16',['../a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd',1,'glm']]],
+ ['unpacki3x10_5f1x2',['unpackI3x10_1x2',['../a00171.html#ga9a05330e5490be0908d3b117d82aff56',1,'glm']]],
+ ['unpackrgbm',['unpackRGBM',['../a00171.html#ga44274002723e379ad5c4ece8300a9308',1,'glm']]],
+ ['unpacksnorm',['unpackSnorm',['../a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe',1,'glm']]],
+ ['unpacksnorm1x16',['unpackSnorm1x16',['../a00171.html#ga96dd15002370627a443c835ab03a766c',1,'glm']]],
+ ['unpacksnorm1x8',['unpackSnorm1x8',['../a00171.html#ga4851ff86678aa1c7ace9d67846894285',1,'glm']]],
+ ['unpacksnorm2x16',['unpackSnorm2x16',['../a00150.html#gacd8f8971a3fe28418be0d0fa1f786b38',1,'glm']]],
+ ['unpacksnorm2x8',['unpackSnorm2x8',['../a00171.html#ga8b128e89be449fc71336968a66bf6e1a',1,'glm']]],
+ ['unpacksnorm3x10_5f1x2',['unpackSnorm3x10_1x2',['../a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b',1,'glm']]],
+ ['unpacksnorm4x16',['unpackSnorm4x16',['../a00171.html#gaaddf9c353528fe896106f7181219c7f4',1,'glm']]],
+ ['unpacksnorm4x8',['unpackSnorm4x8',['../a00150.html#ga2db488646d48b7c43d3218954523fe82',1,'glm']]],
+ ['unpacku3x10_5f1x2',['unpackU3x10_1x2',['../a00171.html#ga48df3042a7d079767f5891a1bfd8a60a',1,'glm']]],
+ ['unpackunorm',['unpackUnorm',['../a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9',1,'glm']]],
+ ['unpackunorm1x16',['unpackUnorm1x16',['../a00171.html#ga83d34160a5cb7bcb5339823210fc7501',1,'glm']]],
+ ['unpackunorm1x5_5f1x6_5f1x5',['unpackUnorm1x5_1x6_1x5',['../a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a',1,'glm']]],
+ ['unpackunorm1x8',['unpackUnorm1x8',['../a00171.html#ga1319207e30874fb4931a9ee913983ee1',1,'glm']]],
+ ['unpackunorm2x16',['unpackUnorm2x16',['../a00150.html#ga1f66188e5d65afeb9ffba1ad971e4007',1,'glm']]],
+ ['unpackunorm2x3_5f1x2',['unpackUnorm2x3_1x2',['../a00171.html#ga6abd5a9014df3b5ce4059008d2491260',1,'glm']]],
+ ['unpackunorm2x4',['unpackUnorm2x4',['../a00171.html#ga2e50476132fe5f27f08e273d9c70d85b',1,'glm']]],
+ ['unpackunorm2x8',['unpackUnorm2x8',['../a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f',1,'glm']]],
+ ['unpackunorm3x10_5f1x2',['unpackUnorm3x10_1x2',['../a00171.html#ga5156d3060355fe332865da2c7f78815f',1,'glm']]],
+ ['unpackunorm3x5_5f1x1',['unpackUnorm3x5_1x1',['../a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d',1,'glm']]],
+ ['unpackunorm4x16',['unpackUnorm4x16',['../a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d',1,'glm']]],
+ ['unpackunorm4x4',['unpackUnorm4x4',['../a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d',1,'glm']]],
+ ['unpackunorm4x8',['unpackUnorm4x8',['../a00150.html#ga7f903259150b67e9466f5f8edffcd197',1,'glm']]],
+ ['unproject',['unProject',['../a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3',1,'glm']]],
+ ['uround',['uround',['../a00165.html#gab61b8546aafdf58f119eb892b212607c',1,'glm']]],
+ ['usubborrow',['usubBorrow',['../a00148.html#ga22a889bf08313b7e547e2cdb8bb15ee4',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_13.html b/3rdparty/glm/doc/api/search/functions_13.html
new file mode 100644
index 00000000000..23ac5dac518
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_13.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_13.js b/3rdparty/glm/doc/api/search/functions_13.js
new file mode 100644
index 00000000000..e6b51b01839
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_13.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['value_5fptr',['value_ptr',['../a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_14.html b/3rdparty/glm/doc/api/search/functions_14.html
new file mode 100644
index 00000000000..16e2625ac18
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_14.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_14.js b/3rdparty/glm/doc/api/search/functions_14.js
new file mode 100644
index 00000000000..d18662ebd7f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_14.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['wrapangle',['wrapAngle',['../a00195.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_15.html b/3rdparty/glm/doc/api/search/functions_15.html
new file mode 100644
index 00000000000..9c2374c9692
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_15.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_15.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_15.js b/3rdparty/glm/doc/api/search/functions_15.js
new file mode 100644
index 00000000000..f0cd137382a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_15.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['yaw',['yaw',['../a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6',1,'glm']]],
+ ['yawpitchroll',['yawPitchRoll',['../a00190.html#gaf9c8d0f1df88c5344165600774489bc5',1,'glm']]],
+ ['ycocg2rgb',['YCoCg2rgb',['../a00185.html#ga6d7e988a79b299ca1fa59f537e13800b',1,'glm']]],
+ ['ycocgr2rgb',['YCoCgR2rgb',['../a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_16.html b/3rdparty/glm/doc/api/search/functions_16.html
new file mode 100644
index 00000000000..39a0e6444d2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_16.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_16.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_16.js b/3rdparty/glm/doc/api/search/functions_16.js
new file mode 100644
index 00000000000..b3e192e4885
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_16.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['zero',['zero',['../a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_2.html b/3rdparty/glm/doc/api/search/functions_2.html
new file mode 100644
index 00000000000..3995cf8c5f8
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_2.js b/3rdparty/glm/doc/api/search/functions_2.js
new file mode 100644
index 00000000000..edc421b00ce
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_2.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+ ['catmullrom',['catmullRom',['../a00226.html#ga8119c04f8210fd0d292757565cd6918d',1,'glm']]],
+ ['ceil',['ceil',['../a00145.html#ga9189b2bec45ff301923ea8f8dd157fb8',1,'glm']]],
+ ['ceilmultiple',['ceilMultiple',['../a00175.html#gac84898c466e609cdd2e81d9ba907d9e8',1,'glm::ceilMultiple(genType Source, genType Multiple)'],['../a00175.html#gafe632af669ac57d670ca18e3665a12ca',1,'glm::ceilMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['ceilpoweroftwo',['ceilPowerOfTwo',['../a00175.html#gaa73c7690c787086fa3ac1c312264acab',1,'glm::ceilPowerOfTwo(genIUType Value)'],['../a00175.html#ga76ec9b214ea1376fe09a903e34bab847',1,'glm::ceilPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['circularrand',['circularRand',['../a00173.html#gae989c26a2899b2fb7444abe7c275c29c',1,'glm']]],
+ ['clamp',['clamp',['../a00145.html#ga93bce26c7d80d30a62f5c508f8498a6c',1,'glm::clamp(genType x, genType minVal, genType maxVal)'],['../a00236.html#ga6c0cc6bd1d67ea1008d2592e998bad33',1,'glm::clamp(genType const &amp;Texcoord)']]],
+ ['closestpointonline',['closestPointOnLine',['../a00183.html#gac26353282a8213e469f5e33560c1200f',1,'glm::closestPointOnLine(tvec3&lt; T, P &gt; const &amp;point, tvec3&lt; T, P &gt; const &amp;a, tvec3&lt; T, P &gt; const &amp;b)'],['../a00183.html#gadc7010070bb0cacd284f560299b21660',1,'glm::closestPointOnLine(tvec2&lt; T, P &gt; const &amp;point, tvec2&lt; T, P &gt; const &amp;a, tvec2&lt; T, P &gt; const &amp;b)']]],
+ ['colmajor2',['colMajor2',['../a00206.html#ga599fff4f1c65912b256a82138ebcca37',1,'glm::colMajor2(tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)'],['../a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7',1,'glm::colMajor2(tmat2x2&lt; T, P &gt; const &amp;m)']]],
+ ['colmajor3',['colMajor3',['../a00206.html#ga3a55e2948193e91733e434e7cc3c1540',1,'glm::colMajor3(tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)'],['../a00206.html#gaa93f3dcc47ced18e5db4a853363d9386',1,'glm::colMajor3(tmat3x3&lt; T, P &gt; const &amp;m)']]],
+ ['colmajor4',['colMajor4',['../a00206.html#ga2829de096bb67ab5cd670958f3d402b6',1,'glm::colMajor4(tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)'],['../a00206.html#ga7592acfd27da055e2d7c39564cf8803d',1,'glm::colMajor4(tmat4x4&lt; T, P &gt; const &amp;m)']]],
+ ['column',['column',['../a00166.html#ga96022eb0d3fae39d89fc7a954e59b374',1,'glm::column(genType const &amp;m, length_t index)'],['../a00166.html#ga9e757377523890e8b80c5843dbe4dd15',1,'glm::column(genType const &amp;m, length_t index, typename genType::col_type const &amp;x)']]],
+ ['compadd',['compAdd',['../a00188.html#gaf71833350e15e74d31cbf8a3e7f27051',1,'glm']]],
+ ['compmax',['compMax',['../a00188.html#gabfa4bb19298c8c73d4217ba759c496b6',1,'glm']]],
+ ['compmin',['compMin',['../a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425',1,'glm']]],
+ ['compmul',['compMul',['../a00188.html#gae8ab88024197202c9479d33bdc5a8a5d',1,'glm']]],
+ ['compnormalize',['compNormalize',['../a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e',1,'glm']]],
+ ['compscale',['compScale',['../a00188.html#gaea99a3271016bfd331d9fa7587f3db37',1,'glm']]],
+ ['conjugate',['conjugate',['../a00172.html#gab1ace864fbf189ffa368950001808a3c',1,'glm']]],
+ ['convertd50xyztod65xyz',['convertD50XYZToD65XYZ',['../a00160.html#gaf2829bca5bbbd99da0cb1d20170f0096',1,'glm']]],
+ ['convertd65xyztod50xyz',['convertD65XYZToD50XYZ',['../a00160.html#gaee1990d4fdb1088c433e9ae4977795d2',1,'glm']]],
+ ['convertd65xyztolinearsrgb',['convertD65XYZToLinearSRGB',['../a00160.html#ga395041b0447f08dd581496720a0a1eac',1,'glm']]],
+ ['convertlinearsrgbtod65xyz',['convertLinearSRGBToD65XYZ',['../a00160.html#gaa367a13bbf5d9775d6a96a4c2a398fb7',1,'glm']]],
+ ['convertlineartosrgb',['convertLinearToSRGB',['../a00161.html#gad813dcd99644cafc775e83d6504ccb93',1,'glm::convertLinearToSRGB(vecType&lt; T, P &gt; const &amp;ColorLinear)'],['../a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42',1,'glm::convertLinearToSRGB(vecType&lt; T, P &gt; const &amp;ColorLinear, T Gamma)']]],
+ ['convertsrgbtolinear',['convertSRGBToLinear',['../a00161.html#ga28e98e64347cf385cadc1ceb4def55c9',1,'glm::convertSRGBToLinear(vecType&lt; T, P &gt; const &amp;ColorSRGB)'],['../a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8',1,'glm::convertSRGBToLinear(vecType&lt; T, P &gt; const &amp;ColorSRGB, T Gamma)']]],
+ ['cos',['cos',['../a00151.html#ga728fd86f14609e37d83f82429995b7b3',1,'glm']]],
+ ['cosh',['cosh',['../a00151.html#ga660582a4e5e843b6c1cd535777e8c295',1,'glm']]],
+ ['cot',['cot',['../a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314',1,'glm']]],
+ ['coth',['coth',['../a00174.html#ga6b8b770eb7198e4dea59d52e6db81442',1,'glm']]],
+ ['cross',['cross',['../a00147.html#gafe2cae8cb26fd44be62aee97369d0af8',1,'glm::cross(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)'],['../a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b',1,'glm::cross(tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)'],['../a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5',1,'glm::cross(tvec3&lt; T, P &gt; const &amp;v, tquat&lt; T, P &gt; const &amp;q)']]],
+ ['csc',['csc',['../a00174.html#ga59dd0005b6474eea48af743b4f14ebbb',1,'glm']]],
+ ['csch',['csch',['../a00174.html#ga6d95843ff3ca6472ab399ba171d290a0',1,'glm']]],
+ ['cubic',['cubic',['../a00226.html#ga6b867eb52e2fc933d2e0bf26aabc9a70',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_3.html b/3rdparty/glm/doc/api/search/functions_3.html
new file mode 100644
index 00000000000..4e302d69b95
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_3.js b/3rdparty/glm/doc/api/search/functions_3.js
new file mode 100644
index 00000000000..a70ff2b419e
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_3.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+ ['decompose',['decompose',['../a00204.html#ga0f1245817507156b337798a253577c8b',1,'glm']]],
+ ['degrees',['degrees',['../a00151.html#gabccdcc282134fd62af0ff3d6e4bb21f1',1,'glm']]],
+ ['determinant',['determinant',['../a00149.html#ga26ea77c574802bc6fc193c40478718d2',1,'glm']]],
+ ['diagonal2x2',['diagonal2x2',['../a00207.html#ga01dc503262dba9c457113d131fc8c024',1,'glm']]],
+ ['diagonal2x3',['diagonal2x3',['../a00207.html#ga763817f07d6a94b722a48adfa87a35db',1,'glm']]],
+ ['diagonal2x4',['diagonal2x4',['../a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3',1,'glm']]],
+ ['diagonal3x2',['diagonal3x2',['../a00207.html#ga586e1ced91fd8a7c414186a200f13532',1,'glm']]],
+ ['diagonal3x3',['diagonal3x3',['../a00207.html#ga8e817dba22f2305cdebae07bbbe0360c',1,'glm']]],
+ ['diagonal3x4',['diagonal3x4',['../a00207.html#gae3f85af86c18c80f2acbe3223feb8e81',1,'glm']]],
+ ['diagonal4x2',['diagonal4x2',['../a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6',1,'glm']]],
+ ['diagonal4x3',['diagonal4x3',['../a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf',1,'glm']]],
+ ['diagonal4x4',['diagonal4x4',['../a00207.html#gade576e044d8e52f343166f665589d782',1,'glm']]],
+ ['diskrand',['diskRand',['../a00173.html#gad3a3ee7d26502a31ba552cb627a68606',1,'glm']]],
+ ['distance',['distance',['../a00147.html#ga7ca317dde0d7e94d920153554d4a02a8',1,'glm']]],
+ ['distance2',['distance2',['../a00211.html#ga647d2602008801d6ed78f9708eb439cc',1,'glm']]],
+ ['dot',['dot',['../a00147.html#ga7dada304da2ba7dd3376ab4f178c3f6b',1,'glm::dot(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#gac54dfc83de465a2d03e90d342242ab3d',1,'glm::dot(quatType&lt; T, P &gt; const &amp;x, quatType&lt; T, P &gt; const &amp;y)']]],
+ ['dualquat_5fcast',['dualquat_cast',['../a00189.html#gada9799afe2b62394dc498534beb5bc78',1,'glm::dualquat_cast(tmat2x4&lt; T, P &gt; const &amp;x)'],['../a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20',1,'glm::dualquat_cast(tmat3x4&lt; T, P &gt; const &amp;x)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_4.html b/3rdparty/glm/doc/api/search/functions_4.html
new file mode 100644
index 00000000000..58ca83a6165
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_4.js b/3rdparty/glm/doc/api/search/functions_4.js
new file mode 100644
index 00000000000..ea51154db4a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_4.js
@@ -0,0 +1,28 @@
+var searchData=
+[
+ ['e',['e',['../a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139',1,'glm']]],
+ ['epsilon',['epsilon',['../a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429',1,'glm']]],
+ ['epsilonequal',['epsilonEqual',['../a00163.html#gaca9443f217dc36587624247245522331',1,'glm::epsilonEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, T const &amp;epsilon)'],['../a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb',1,'glm::epsilonEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)']]],
+ ['epsilonnotequal',['epsilonNotEqual',['../a00163.html#ga14e2888a304654ade8a3996024e2739c',1,'glm::epsilonNotEqual(genType const &amp;x, genType const &amp;y, typename genType::value_type const &amp;epsilon)'],['../a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf',1,'glm::epsilonNotEqual(genType const &amp;x, genType const &amp;y, genType const &amp;epsilon)']]],
+ ['equal',['equal',['../a00152.html#ga39c80d8baf49b0ce69f2bb22d45b3801',1,'glm::equal(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#gac187115710365e0b2902220b9611e7b6',1,'glm::equal(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['euclidean',['euclidean',['../a00218.html#ga45ece1fbf7260c43e0f873c498202581',1,'glm']]],
+ ['euler',['euler',['../a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42',1,'glm']]],
+ ['eulerangles',['eulerAngles',['../a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64',1,'glm']]],
+ ['euleranglex',['eulerAngleX',['../a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8',1,'glm']]],
+ ['euleranglexy',['eulerAngleXY',['../a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd',1,'glm']]],
+ ['euleranglexyz',['eulerAngleXYZ',['../a00190.html#gaaedda1657a1aebe0a904d864b33844e8',1,'glm']]],
+ ['euleranglexz',['eulerAngleXZ',['../a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b',1,'glm']]],
+ ['eulerangley',['eulerAngleY',['../a00190.html#gaeb193af1184bdf39c23636d756e1ff33',1,'glm']]],
+ ['eulerangleyx',['eulerAngleYX',['../a00190.html#gafdd02f9a37511190962119adef5c1c25',1,'glm']]],
+ ['eulerangleyxz',['eulerAngleYXZ',['../a00190.html#ga0242b5ab68651db70c6025815549427f',1,'glm']]],
+ ['eulerangleyz',['eulerAngleYZ',['../a00190.html#ga1033f84f51d61646145352ef0c1bb58c',1,'glm']]],
+ ['euleranglez',['eulerAngleZ',['../a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd',1,'glm']]],
+ ['euleranglezx',['eulerAngleZX',['../a00190.html#gaef83cf40bd9ae780011b29970f16f622',1,'glm']]],
+ ['euleranglezy',['eulerAngleZY',['../a00190.html#ga02f037926568bbd12dfece3b28b20343',1,'glm']]],
+ ['exp',['exp',['../a00146.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a',1,'glm::exp(vecType&lt; T, P &gt; const &amp;v)'],['../a00220.html#ga17295173d4c2b5ae49b84e9993b63a62',1,'glm::exp(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['exp2',['exp2',['../a00146.html#ga42ca440d9062f1f456f5a9e896378f9c',1,'glm']]],
+ ['extend',['extend',['../a00191.html#ga8140caae613b0f847ab0d7175dc03a37',1,'glm']]],
+ ['extracteuleranglexyz',['extractEulerAngleXYZ',['../a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14',1,'glm']]],
+ ['extractmatrixrotation',['extractMatrixRotation',['../a00205.html#ga6b8170aa4cf43caf81400696ebb38afe',1,'glm']]],
+ ['extractrealcomponent',['extractRealComponent',['../a00220.html#ga90de879d97487ec804522dd418e5d8a0',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_5.html b/3rdparty/glm/doc/api/search/functions_5.html
new file mode 100644
index 00000000000..5f9f05aeb23
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_5.js b/3rdparty/glm/doc/api/search/functions_5.js
new file mode 100644
index 00000000000..84e4f89e0cb
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_5.js
@@ -0,0 +1,40 @@
+var searchData=
+[
+ ['faceforward',['faceforward',['../a00147.html#gaea854e5aec1b5839832ac2dfc7cd3c0d',1,'glm']]],
+ ['factorial',['factorial',['../a00199.html#ga8cbd3120905f398ec321b5d1836e08fb',1,'glm']]],
+ ['fastacos',['fastAcos',['../a00195.html#ga9721d63356e5d94fdc4b393a426ab26b',1,'glm']]],
+ ['fastasin',['fastAsin',['../a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f',1,'glm']]],
+ ['fastatan',['fastAtan',['../a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c',1,'glm::fastAtan(T y, T x)'],['../a00195.html#gae25de86a968490ff56856fa425ec9d30',1,'glm::fastAtan(T angle)']]],
+ ['fastcos',['fastCos',['../a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a',1,'glm']]],
+ ['fastdistance',['fastDistance',['../a00194.html#gaac333418d0c4e0cc6d3d219ed606c238',1,'glm::fastDistance(genType x, genType y)'],['../a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5',1,'glm::fastDistance(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)']]],
+ ['fastexp',['fastExp',['../a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10',1,'glm::fastExp(T x)'],['../a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa',1,'glm::fastExp(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastexp2',['fastExp2',['../a00193.html#ga0af50585955eb14c60bb286297fabab2',1,'glm::fastExp2(T x)'],['../a00193.html#ga9e6219327b7a33077dbec7620d981fff',1,'glm::fastExp2(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastinversesqrt',['fastInverseSqrt',['../a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f',1,'glm::fastInverseSqrt(genType x)'],['../a00194.html#ga903878071f92e51e551791e584a171a1',1,'glm::fastInverseSqrt(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastlength',['fastLength',['../a00194.html#gafe697d6287719538346bbdf8b1367c59',1,'glm::fastLength(genType x)'],['../a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0',1,'glm::fastLength(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastlog',['fastLog',['../a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a',1,'glm::fastLog(T x)'],['../a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3',1,'glm::fastLog(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastlog2',['fastLog2',['../a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e',1,'glm::fastLog2(T x)'],['../a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58',1,'glm::fastLog2(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastmix',['fastMix',['../a00220.html#gac11bf550f17d1da14423595a27575084',1,'glm']]],
+ ['fastnormalize',['fastNormalize',['../a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c',1,'glm']]],
+ ['fastnormalizedot',['fastNormalizeDot',['../a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024',1,'glm']]],
+ ['fastpow',['fastPow',['../a00193.html#ga5340e98a11fcbbd936ba6e983a154d50',1,'glm::fastPow(genType x, genType y)'],['../a00193.html#ga07b73976a9af4005945bc338b45d8466',1,'glm::fastPow(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6',1,'glm::fastPow(genTypeT x, genTypeU y)'],['../a00193.html#ga29924aea1aa11c5c504fb2d621221906',1,'glm::fastPow(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fastsin',['fastSin',['../a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915',1,'glm']]],
+ ['fastsqrt',['fastSqrt',['../a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9',1,'glm::fastSqrt(genType x)'],['../a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c',1,'glm::fastSqrt(vecType&lt; T, P &gt; const &amp;x)']]],
+ ['fasttan',['fastTan',['../a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2',1,'glm']]],
+ ['findlsb',['findLSB',['../a00148.html#gaf74c4d969fa34ab8acb9d390f5ca5274',1,'glm::findLSB(genIUType x)'],['../a00148.html#ga014a72009e68233c34c06a6dc2251b8c',1,'glm::findLSB(vecType&lt; T, P &gt; const &amp;v)']]],
+ ['findmsb',['findMSB',['../a00148.html#ga7e4a794d766861c70bc961630f8ef621',1,'glm::findMSB(genIUType x)'],['../a00148.html#ga433104d77ec2ba58888aaefb77e9183f',1,'glm::findMSB(vecType&lt; T, P &gt; const &amp;v)']]],
+ ['float_5fdistance',['float_distance',['../a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634',1,'glm::float_distance(T const &amp;x, T const &amp;y)'],['../a00179.html#ga85355f2549d75789eb66e5d565d8ad26',1,'glm::float_distance(vecType&lt; T &gt; const &amp;x, vecType&lt; T &gt; const &amp;y)']]],
+ ['floatbitstoint',['floatBitsToInt',['../a00145.html#ga1425c1c3160ec51214b03a0469a3013d',1,'glm::floatBitsToInt(float const &amp;v)'],['../a00145.html#gac4a0710238ae54c67931dd29a0b0f873',1,'glm::floatBitsToInt(vecType&lt; float, P &gt; const &amp;v)']]],
+ ['floatbitstouint',['floatBitsToUint',['../a00145.html#ga70e0271c34af52f3100c7960e18c3f2b',1,'glm::floatBitsToUint(float const &amp;v)'],['../a00145.html#ga1804d4c443605d8a27be644aa461afe4',1,'glm::floatBitsToUint(vecType&lt; float, P &gt; const &amp;v)']]],
+ ['floor',['floor',['../a00145.html#ga568b822b78f045f77c3325e165b44d5d',1,'glm']]],
+ ['floor_5flog2',['floor_log2',['../a00199.html#ga7011b4e1c1e1ed492149b028feacc00e',1,'glm']]],
+ ['floormultiple',['floorMultiple',['../a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d',1,'glm::floorMultiple(genType Source, genType Multiple)'],['../a00175.html#ga6912db42d43873fe1dedb3aed2b7a239',1,'glm::floorMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['floorpoweroftwo',['floorPowerOfTwo',['../a00175.html#gac80f6519c31baae10d8d7bea6735d1fa',1,'glm::floorPowerOfTwo(genIUType Value)'],['../a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37',1,'glm::floorPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['fma',['fma',['../a00145.html#gad0f444d4b81cc53c3b6edf5aa25078c2',1,'glm']]],
+ ['fmod',['fmod',['../a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3',1,'glm']]],
+ ['four_5fover_5fpi',['four_over_pi',['../a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09',1,'glm']]],
+ ['fract',['fract',['../a00145.html#ga8ba89e40e55ae5cdf228548f9b7639c7',1,'glm']]],
+ ['frexp',['frexp',['../a00145.html#ga20620e83544d1a988857a3bc4ebe0e1d',1,'glm']]],
+ ['frustum',['frustum',['../a00169.html#gada6deb989d4b553fe0f7e3279f3afae1',1,'glm']]],
+ ['frustumlh',['frustumLH',['../a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c',1,'glm']]],
+ ['frustumrh',['frustumRH',['../a00169.html#gad0e184273bdacbe769e5cd81069e48ed',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_6.html b/3rdparty/glm/doc/api/search/functions_6.html
new file mode 100644
index 00000000000..c980da25be5
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_6.js b/3rdparty/glm/doc/api/search/functions_6.js
new file mode 100644
index 00000000000..61af976ae1b
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_6.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['gauss',['gauss',['../a00164.html#ga0b50b197ff74261a0fad90f4b8d24702',1,'glm::gauss(T x, T ExpectedValue, T StandardDeviation)'],['../a00164.html#ga7448f9eb74bb5924f6330ab532f2899c',1,'glm::gauss(tvec2&lt; T, P &gt; const &amp;Coord, tvec2&lt; T, P &gt; const &amp;ExpectedValue, tvec2&lt; T, P &gt; const &amp;StandardDeviation)']]],
+ ['gaussrand',['gaussRand',['../a00173.html#ga5193a83e49e4fdc5652c084711083574',1,'glm']]],
+ ['glm_5faligned_5ftypedef',['GLM_ALIGNED_TYPEDEF',['../a00231.html#gab5cd5c5fad228b25c782084f1cc30114',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1)'],['../a00231.html#ga5bb5dd895ef625c1b113f2cf400186b0',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2)'],['../a00231.html#gac6efa54cf7c6c86f7158922abdb1a430',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4)'],['../a00231.html#ga6612eb77c8607048e7552279a11eeb5f',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8)'],['../a00231.html#ga7ddc1848ff2223026db8968ce0c97497',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1)'],['../a00231.html#ga22240dd9458b0f8c11fbcc4f48714f68',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2)'],['../a00231.html#ga8130ea381d76a2cc34a93ccbb6cf487d',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4)'],['../a00231.html#ga7ccb60f3215d293fd62b33b31ed0e7be',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8)'],['../a00231.html#gac20d508d2ef5cc95ad3daf083c57ec2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1)'],['../a00231.html#ga50257b48069a31d0c8d9c1f644d267de',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2)'],['../a00231.html#gaa07e98e67b7a3435c0746018c7a2a839',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4)'],['../a00231.html#ga62601fc6f8ca298b77285bedf03faffd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8)'],['../a00231.html#gac8cff825951aeb54dd846037113c72db',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1)'],['../a00231.html#ga78f443d88f438575a62b5df497cdf66b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2)'],['../a00231.html#ga0680cd3b5d4e8006985fb41a4f9b57af',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4)'],['../a00231.html#gad9e5babb1dd3e3531b42c37bf25dd951',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8)'],['../a00231.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1)'],['../a00231.html#ga2196442c0e5c5e8c77842de388c42521',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2)'],['../a00231.html#ga1284488189daf897cf095c5eefad9744',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4)'],['../a00231.html#ga73fdc86a539808af58808b7c60a1c4d8',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8)'],['../a00231.html#gafafeea923e1983262c972e2b83922d3b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1)'],['../a00231.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2)'],['../a00231.html#ga63b882e29170d428463d99c3d630acc6',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4)'],['../a00231.html#ga8b20507bb048c1edea2d441cc953e6f0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8)'],['../a00231.html#ga56c5ca60813027b603c7b61425a0479d',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1)'],['../a00231.html#ga7a751b3aff24c0259f4a7357c2969089',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2)'],['../a00231.html#ga70cd2144351c556469ee6119e59971fc',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4)'],['../a00231.html#ga46bbf08dc004d8c433041e0b5018a5d3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8)'],['../a00231.html#gab3e10c77a20d1abad2de1c561c7a5c18',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1)'],['../a00231.html#ga968f30319ebeaca9ebcd3a25a8e139fb',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2)'],['../a00231.html#gaae773c28e6390c6aa76f5b678b7098a3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4)'],['../a00231.html#ga790cfff1ca39d0ed696ffed980809311',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8)'],['../a00231.html#ga8265b91eb23c120a9b0c3e381bc37b96',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1)'],['../a00231.html#gae6d384de17588d8edb894fbe06e0d410',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2)'],['../a00231.html#ga9c8172b745ee03fc5b2b91c350c2922f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4)'],['../a00231.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8)'],['../a00231.html#gabd82b9faa9d4d618dbbe0fc8a1efee63',1,'glm::GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1)'],['../a00231.html#ga285649744560be21000cfd81bbb5d507',1,'glm::GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2)'],['../a00231.html#ga07732da630b2deda428ce95c0ecaf3ff',1,'glm::GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4)'],['../a00231.html#ga1a8da2a8c51f69c07a2e7f473aa420f4',1,'glm::GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8)'],['../a00231.html#ga848aedf13e2d9738acf0bb482c590174',1,'glm::GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1)'],['../a00231.html#gafd2803d39049dd45a37a63931e25d943',1,'glm::GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2)'],['../a00231.html#gae553b33349d6da832cf0724f1e024094',1,'glm::GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4)'],['../a00231.html#ga16d223a2b3409e812e1d3bd87f0e9e5c',1,'glm::GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8)'],['../a00231.html#ga2de065d2ddfdb366bcd0febca79ae2ad',1,'glm::GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1)'],['../a00231.html#gabd786bdc20a11c8cb05c92c8212e28d3',1,'glm::GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2)'],['../a00231.html#gad4aefe56691cdb640c72f0d46d3fb532',1,'glm::GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4)'],['../a00231.html#ga8fe9745f7de24a8394518152ff9fccdc',1,'glm::GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8)'],['../a00231.html#gaaad735483450099f7f882d4e3a3569bd',1,'glm::GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4)'],['../a00231.html#gac7b6f823802edbd6edbaf70ea25bf068',1,'glm::GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8)'],['../a00231.html#ga3e235bcd2b8029613f25b8d40a2d3ef7',1,'glm::GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16)'],['../a00231.html#ga50d8a9523968c77f8325b4c9bfbff41e',1,'glm::GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16)'],['../a00231.html#ga9ec20fdfb729c702032da9378c79679f',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1)'],['../a00231.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2)'],['../a00231.html#ga2958f907719d94d8109b562540c910e2',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4)'],['../a00231.html#ga1fe6fc032a978f1c845fac9aa0668714',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4)'],['../a00231.html#gaa4161e7a496dc96972254143fe873e55',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2)'],['../a00231.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4)'],['../a00231.html#gaaee91dd2ab34423bcc11072ef6bd0f02',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8)'],['../a00231.html#ga49f047ccaa8b31fad9f26c67bf9b3510',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8)'],['../a00231.html#ga904e9c2436bb099397c0823506a0771f',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4)'],['../a00231.html#gaf90651cf2f5e7ee2b11cfdc5a6749534',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8)'],['../a00231.html#ga7354a4ead8cb17868aec36b9c30d6010',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16)'],['../a00231.html#gad2ecbdea18732163e2636e27b37981ee',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16)'],['../a00231.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8)'],['../a00231.html#ga1f9e9c2ea2768675dff9bae5cde2d829',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16)'],['../a00231.html#gad77c317b7d942322cd5be4c8127b3187',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32)'],['../a00231.html#ga716f8ea809bdb11b5b542d8b71aeb04f',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32)'],['../a00231.html#gad46f8e9082d5878b1bc04f9c1471cdaa',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1)'],['../a00231.html#ga1246094581af624aca6c7499aaabf801',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2)'],['../a00231.html#ga7a5009a1d0196bbf21dd7518f61f0249',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4)'],['../a00231.html#ga45213fd18b3bb1df391671afefe4d1e7',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8)'],['../a00231.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1)'],['../a00231.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2)'],['../a00231.html#gadc246401847dcba155f0699425e49dcd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4)'],['../a00231.html#gaace64bddf51a9def01498da9a94fb01c',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8)'],['../a00231.html#gad7bb97c29d664bd86ffb1bed4abc5534',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1)'],['../a00231.html#ga404bba7785130e0b1384d695a9450b28',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2)'],['../a00231.html#ga31ba41fd896257536958ec6080203d2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4)'],['../a00231.html#gacca5f13627f57b3505676e40a6e43e5e',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8)'],['../a00231.html#ga5faf1d3e70bf33174dd7f3d01d5b883b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1)'],['../a00231.html#ga727e2bf2c433bb3b0182605860a48363',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2)'],['../a00231.html#ga12566ca66d5962dadb4a5eb4c74e891e',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4)'],['../a00231.html#ga7b66a97a8acaa35c5a377b947318c6bc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8)'],['../a00231.html#gaa9cde002439b74fa66120a16a9f55fcc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1)'],['../a00231.html#ga1ca98c67f7d1e975f7c5202f1da1df1f',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2)'],['../a00231.html#ga1dc8bc6199d785f235576948d80a597c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4)'],['../a00231.html#gad14a0f2ec93519682b73d70b8e401d81',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8)'],['../a00231.html#gada8b996eb6526dc1ead813bd49539d1b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1)'],['../a00231.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2)'],['../a00231.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4)'],['../a00231.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8)'],['../a00231.html#ga0ee829f7b754b262bbfe6317c0d678ac',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1)'],['../a00231.html#ga447848a817a626cae08cedc9778b331c',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2)'],['../a00231.html#ga6027ae13b2734f542a6e7beee11b8820',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4)'],['../a00231.html#ga2aca46c8608c95ef991ee4c332acde5f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8)'],['../a00231.html#gaff50b10dd1c48be324fdaffd18e2c7ea',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1)'],['../a00231.html#ga9fc4421dbb833d5461e6d4e59dcfde55',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2)'],['../a00231.html#ga329f1e2b94b33ba5e3918197030bcf03',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4)'],['../a00231.html#ga71e646f7e301aa422328194162c9c998',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8)'],['../a00231.html#ga8942e09f479489441a7a5004c6d8cb66',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1)'],['../a00231.html#gaab32497d6e4db16ee439dbedd64c5865',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2)'],['../a00231.html#gaaadbb34952eca8e3d7fe122c3e167742',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4)'],['../a00231.html#ga92024d27c74a3650afb55ec8e024ed25',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8)'],['../a00231.html#gabde1d0b4072df35453db76075ab896a6',1,'glm::GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1)'],['../a00231.html#ga06c296c9e398b294c8c9dd2a7693dcbb',1,'glm::GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2)'],['../a00231.html#gacf1744488c96ebd33c9f36ad33b2010a',1,'glm::GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4)'],['../a00231.html#ga3328061a64c20ba59d5f9da24c2cd059',1,'glm::GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8)'],['../a00231.html#gaf6ced36f13bae57f377bafa6f5fcc299',1,'glm::GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1)'],['../a00231.html#gafbc7fb7847bfc78a339d1d371c915c73',1,'glm::GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2)'],['../a00231.html#gaa86bc56a73fd8120b1121b5f5e6245ae',1,'glm::GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4)'],['../a00231.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8',1,'glm::GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8)'],['../a00231.html#ga4f3bab577daf3343e99cc005134bce86',1,'glm::GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1)'],['../a00231.html#ga13a2391339d0790d43b76d00a7611c4f',1,'glm::GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2)'],['../a00231.html#ga197570e03acbc3d18ab698e342971e8f',1,'glm::GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4)'],['../a00231.html#ga0f033b21e145a1faa32c62ede5878993',1,'glm::GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8)'],['../a00231.html#ga509af83527f5cd512e9a7873590663aa',1,'glm::GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4)'],['../a00231.html#ga94e86186978c502c6dc0c0d9c4a30679',1,'glm::GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8)'],['../a00231.html#ga5cec574686a7f3c8ed24bb195c5e2d0a',1,'glm::GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16)'],['../a00231.html#ga47edfdcee9c89b1ebdaf20450323b1d4',1,'glm::GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16)'],['../a00231.html#ga5611d6718e3a00096918a64192e73a45',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1)'],['../a00231.html#ga19837e6f72b60d994a805ef564c6c326',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2)'],['../a00231.html#ga9740cf8e34f068049b42a2753f9601c2',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4)'],['../a00231.html#ga8b8588bb221448f5541a858903822a57',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4)'],['../a00231.html#ga991abe990c16de26b2129d6bc2f4c051',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2)'],['../a00231.html#gac01bb9fc32a1cd76c2b80d030f71df4c',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4)'],['../a00231.html#ga09540dbca093793a36a8997e0d4bee77',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8)'],['../a00231.html#gaecafb5996f5a44f57e34d29c8670741e',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8)'],['../a00231.html#gac6b161a04d2f8408fe1c9d857e8daac0',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4)'],['../a00231.html#ga1fa0dfc8feb0fa17dab2acd43e05342b',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8)'],['../a00231.html#ga0019500abbfa9c66eff61ca75eaaed94',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16)'],['../a00231.html#ga14fd29d01dae7b08a04e9facbcc18824',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16)'],['../a00231.html#gab253845f534a67136f9619843cade903',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8)'],['../a00231.html#ga929427a7627940cdf3304f9c050b677d',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16)'],['../a00231.html#gae373b6c04fdf9879f33d63e6949c037e',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32)'],['../a00231.html#ga53a8a03dca2015baec4584f45b8e9cdc',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32)'],['../a00231.html#gab3301bae94ef5bf59fbdd9a24e7d2a01',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4)'],['../a00231.html#ga75930684ff2233171c573e603f216162',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8)'],['../a00231.html#gada9b0bea273d3ae0286f891533b9568f',1,'glm::GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4)'],['../a00231.html#ga6e3a2d83b131336219a0f4c7cbba2a48',1,'glm::GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8)'],['../a00231.html#gadbce23b9f23d77bb3884e289a574ebd5',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4)'],['../a00231.html#gaa4deaa0dea930c393d55e7a4352b0a20',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8)'],['../a00231.html#ga81bc497b2bfc6f80bab690c6ee28f0f9',1,'glm::GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4)'],['../a00231.html#gada3e8f783e9d4b90006695a16c39d4d4',1,'glm::GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8)'],['../a00231.html#gab8d081fac3a38d6f55fa552f32168d32',1,'glm::GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16)'],['../a00231.html#ga12fe7b9769c964c5b48dcfd8b7f40198',1,'glm::GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16)'],['../a00231.html#gaefab04611c7f8fe1fd9be3071efea6cc',1,'glm::GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4)'],['../a00231.html#ga2543c05ba19b3bd19d45b1227390c5b4',1,'glm::GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8)'],['../a00231.html#ga009afd727fd657ef33a18754d6d28f60',1,'glm::GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16)'],['../a00231.html#ga2f26177e74bfb301a3d0e02ec3c3ef53',1,'glm::GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16)'],['../a00231.html#ga309f495a1d6b75ddf195b674b65cb1e4',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4)'],['../a00231.html#ga5e185865a2217d0cd47187644683a8c3',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8)'],['../a00231.html#gade4458b27b039b9ca34f8ec049f3115a',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16)'],['../a00231.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16)'],['../a00231.html#ga3e0f35fa0c626285a8bad41707e7316c',1,'glm::GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8)'],['../a00231.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8',1,'glm::GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16)'],['../a00231.html#ga01fe6fee6db5df580b6724a7e681f069',1,'glm::GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32)'],['../a00231.html#ga687d5b8f551d5af32425c0b2fba15e99',1,'glm::GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32)'],['../a00231.html#ga8e842371d46842ff8f1813419ba49d0f',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8)'],['../a00231.html#ga32814aa0f19316b43134fc25f2aad2b9',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16)'],['../a00231.html#gaf3d3bbc1e93909b689123b085e177a14',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32)'],['../a00231.html#ga804c654cead1139bd250f90f9bb01fad',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32)'],['../a00231.html#gafed7d010235a3aa7ea2f88646858f2ae',1,'glm::GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16)'],['../a00231.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c',1,'glm::GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16)'],['../a00231.html#ga31940e6012b72110e26fdb0f54805033',1,'glm::GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16)'],['../a00231.html#ga01de96cd0b541c52d2b4a3faf65822e9',1,'glm::GLM_ALIGNED_TYPEDEF(mat2x2, aligned_mat2x2, 16)'],['../a00231.html#gac88a191b004bd341e64fc53b5a4d00e3',1,'glm::GLM_ALIGNED_TYPEDEF(mat3x3, aligned_mat3x3, 16)'],['../a00231.html#gabe8c745fa2ced44a600a6e3f19991161',1,'glm::GLM_ALIGNED_TYPEDEF(mat4x4, aligned_mat4x4, 16)'],['../a00231.html#ga719da577361541a4c43a2dd1d0e361e1',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16)'],['../a00231.html#ga6e7ee4f541e1d7db66cd1a224caacafb',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16)'],['../a00231.html#gae5d672d359f2a39f63f98c7975057486',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16)'],['../a00231.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16)'],['../a00231.html#ga0743b4f4f69a3227b82ff58f6abbad62',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16)'],['../a00231.html#ga1a76b325fdf70f961d835edd182c63dd',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16)'],['../a00231.html#ga4b4e181cd041ba28c3163e7b8074aef0',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16)'],['../a00231.html#ga27b13f465abc8a40705698145e222c3f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16)'],['../a00231.html#ga2608d19cc275830a6f8c0b6405625a4f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16)'],['../a00231.html#ga93f09768241358a287c4cca538f1f7e7',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16)'],['../a00231.html#ga7c117e3ecca089e10247b1d41d88aff9',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16)'],['../a00231.html#ga07c75cd04ba42dc37fa3e105f89455c5',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16)'],['../a00231.html#ga65ff0d690a34a4d7f46f9b2eb51525ee',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16)'],['../a00231.html#gadd8ddbe2bf65ccede865ba2f510176dc',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16)'],['../a00231.html#gaf18dbff14bf13d3ff540c517659ec045',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16)'],['../a00231.html#ga66339f6139bf7ff19e245beb33f61cc8',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16)'],['../a00231.html#ga1558a48b3934011b52612809f443e46d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16)'],['../a00231.html#gaa52e5732daa62851627021ad551c7680',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16)'],['../a00231.html#gac09663c42566bcb58d23c6781ac4e85a',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16)'],['../a00231.html#ga3f510999e59e1b309113e1d561162b29',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16)'],['../a00231.html#ga2c9c94f0c89cd71ce56551db6cf4aaec',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16)'],['../a00231.html#ga99ce8274c750fbfdf0e70c95946a2875',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16)'],['../a00231.html#ga9476ef66790239df53dbe66f3989c3b5',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16)'],['../a00231.html#gacc429b3b0b49921e12713b6d31e14e1d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16)'],['../a00231.html#ga88f6c6fa06e6e64479763e69444669cf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32)'],['../a00231.html#gaae8e4639c991e64754145ab8e4c32083',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32)'],['../a00231.html#ga6e9094f3feb3b5b49d0f83683a101fde',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32)'],['../a00231.html#gadbd2c639c03de1c3e9591b5a39f65559',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32)'],['../a00231.html#gab059d7b9fe2094acc563b7223987499f',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32)'],['../a00231.html#gabbc811d1c52ed2b8cfcaff1378f75c69',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32)'],['../a00231.html#ga9ddf5212777734d2fd841a84439f3bdf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32)'],['../a00231.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32)'],['../a00231.html#ga5875e0fa72f07e271e7931811cbbf31a',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32)'],['../a00231.html#ga41e82cd6ac07f912ba2a2d45799dcf0d',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32)'],['../a00231.html#ga0892638d6ba773043b3d63d1d092622e',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32)'],['../a00231.html#ga912a16432608b822f1e13607529934c1',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32)'],['../a00231.html#gafd945a8ea86b042aba410e0560df9a3d',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16)'],['../a00231.html#gad8c4bfacff70e57dc8303634c8bfce35',1,'glm::GLM_ALIGNED_TYPEDEF(fquat, aligned_fquat, 16)'],['../a00231.html#gaabc28c84a3288b697605d4688686f9a9',1,'glm::GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32)'],['../a00231.html#ga1ed8aeb5ca67fade269a46105f1bf273',1,'glm::GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16)'],['../a00231.html#ga95cc03b8b475993fa50e05e38e203303',1,'glm::GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)']]],
+ ['golden_5fratio',['golden_ratio',['../a00162.html#ga748cf8642830657c5b7eae04d0a80899',1,'glm']]],
+ ['greaterthan',['greaterThan',['../a00152.html#gadd80263161a308462d3e3e287e79cccd',1,'glm::greaterThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae',1,'glm::greaterThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['greaterthanequal',['greaterThanEqual',['../a00152.html#gaee7e101f8cc4ea43924f14dcdeb2ef26',1,'glm::greaterThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e',1,'glm::greaterThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_7.html b/3rdparty/glm/doc/api/search/functions_7.html
new file mode 100644
index 00000000000..385732931d2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_7.js b/3rdparty/glm/doc/api/search/functions_7.js
new file mode 100644
index 00000000000..5658ff81572
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_7.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['half_5fpi',['half_pi',['../a00162.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]],
+ ['hermite',['hermite',['../a00226.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]],
+ ['highestbitvalue',['highestBitValue',['../a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73',1,'glm::highestBitValue(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['hsvcolor',['hsvColor',['../a00184.html#gae72039c00a7be2f03a3b94b37a54349a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_8.html b/3rdparty/glm/doc/api/search/functions_8.html
new file mode 100644
index 00000000000..088e437fbdf
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_8.js b/3rdparty/glm/doc/api/search/functions_8.js
new file mode 100644
index 00000000000..bf3c7050cef
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_8.js
@@ -0,0 +1,30 @@
+var searchData=
+[
+ ['imulextended',['imulExtended',['../a00148.html#ga6e6e8b29ca40d8ca2df10b58ed17d426',1,'glm']]],
+ ['infiniteperspective',['infinitePerspective',['../a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5',1,'glm']]],
+ ['infiniteperspectivelh',['infinitePerspectiveLH',['../a00169.html#ga47af534da2b28effa4c7945ec82ccd9d',1,'glm']]],
+ ['infiniteperspectiverh',['infinitePerspectiveRH',['../a00169.html#ga79575023763df88dff1bf8255a42d0be',1,'glm']]],
+ ['intbitstofloat',['intBitsToFloat',['../a00145.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4',1,'glm::intBitsToFloat(int const &amp;v)'],['../a00145.html#gad21ab176dd0e6b59d923db5efca87f4e',1,'glm::intBitsToFloat(vecType&lt; int, P &gt; const &amp;v)']]],
+ ['intermediate',['intermediate',['../a00220.html#ga56abae85b3669c866e91f3c57b298b9c',1,'glm']]],
+ ['interpolate',['interpolate',['../a00205.html#ga45099a92c5c704503565619ac2bcd5c6',1,'glm']]],
+ ['intersectlinesphere',['intersectLineSphere',['../a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7',1,'glm']]],
+ ['intersectlinetriangle',['intersectLineTriangle',['../a00200.html#ga9d29b9b3acb504d43986502f42740df4',1,'glm']]],
+ ['intersectrayplane',['intersectRayPlane',['../a00200.html#gad3697a9700ea379739a667ea02573488',1,'glm']]],
+ ['intersectraysphere',['intersectRaySphere',['../a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e',1,'glm::intersectRaySphere(genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &amp;intersectionDistance)'],['../a00200.html#gad28c00515b823b579c608aafa1100c1d',1,'glm::intersectRaySphere(genType const &amp;rayStarting, genType const &amp;rayNormalizedDirection, genType const &amp;sphereCenter, const typename genType::value_type sphereRadius, genType &amp;intersectionPosition, genType &amp;intersectionNormal)']]],
+ ['intersectraytriangle',['intersectRayTriangle',['../a00200.html#gab16c1b47c10451e7604b51b39a7ef21d',1,'glm']]],
+ ['inverse',['inverse',['../a00149.html#gaa7e1d5586cd499126cec76e0f11871e3',1,'glm::inverse(matType&lt; T, P &gt; const &amp;m)'],['../a00172.html#ga5f47300c024c2d809944e6ac661d6d14',1,'glm::inverse(tquat&lt; T, P &gt; const &amp;q)'],['../a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2',1,'glm::inverse(tdualquat&lt; T, P &gt; const &amp;q)']]],
+ ['inversesqrt',['inversesqrt',['../a00146.html#ga599103d4fe4ef2234761ba8da7268627',1,'glm']]],
+ ['inversetranspose',['inverseTranspose',['../a00168.html#gab213cd0e3ead5f316d583f99d6312008',1,'glm']]],
+ ['iround',['iround',['../a00165.html#ga0a42ffb863cc980e91f98d2f5766de20',1,'glm']]],
+ ['iscompnull',['isCompNull',['../a00235.html#ga93ecd4137480483ce1af0de8bbbf6546',1,'glm']]],
+ ['isdenormal',['isdenormal',['../a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91',1,'glm']]],
+ ['isfinite',['isfinite',['../a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657',1,'glm::isfinite(genType const &amp;x)'],['../a00187.html#ga553e2e95b06a0f70c718605998889d3b',1,'glm::isfinite(const tvec1&lt; T, P &gt; &amp;x)'],['../a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a',1,'glm::isfinite(const tvec2&lt; T, P &gt; &amp;x)'],['../a00187.html#ga1be9593d810fceb278a2854da8a25273',1,'glm::isfinite(const tvec3&lt; T, P &gt; &amp;x)'],['../a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a',1,'glm::isfinite(const tvec4&lt; T, P &gt; &amp;x)']]],
+ ['isidentity',['isIdentity',['../a00208.html#gafc1ce12c738b8c5d007179e615609330',1,'glm']]],
+ ['isinf',['isinf',['../a00145.html#gaf28f7a4696746f081685c9fd05c7e2de',1,'glm::isinf(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#ga0a850f06736d25887536d0da88e63c70',1,'glm::isinf(tquat&lt; T, P &gt; const &amp;x)']]],
+ ['ismultiple',['isMultiple',['../a00175.html#gaf7444a7b2eb524f373463ceba76b9326',1,'glm::isMultiple(genIUType Value, genIUType Multiple)'],['../a00175.html#ga50ea5d5dc33fffba39ad6002a3784123',1,'glm::isMultiple(vecType&lt; T, P &gt; const &amp;Value, T Multiple)'],['../a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48',1,'glm::isMultiple(vecType&lt; T, P &gt; const &amp;Value, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['isnan',['isnan',['../a00145.html#ga6cb8f202a52eed2331724a3800198ebf',1,'glm::isnan(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed',1,'glm::isnan(tquat&lt; T, P &gt; const &amp;x)']]],
+ ['isnormalized',['isNormalized',['../a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c',1,'glm::isNormalized(tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#ga351bcc8d485d329b78cfa875e084964d',1,'glm::isNormalized(tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b',1,'glm::isNormalized(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00235.html#ga6fa5fa2af67d14c205d24c49aad03270',1,'glm::isNormalized(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)']]],
+ ['isnull',['isNull',['../a00208.html#ga37e535cbeaea383b8c1247b98875cd4b',1,'glm::isNull(tmat2x2&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#gac67a5c7e029a84b74b02ac9599b8972d',1,'glm::isNull(tmat3x3&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00208.html#ga326de496972051413c7b44b85fc9cb6e',1,'glm::isNull(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;epsilon)'],['../a00235.html#ga81a64edc1a2b470b82896592e89c523b',1,'glm::isNull(vecType&lt; T, P &gt; const &amp;v, T const &amp;epsilon)']]],
+ ['isorthogonal',['isOrthogonal',['../a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3',1,'glm']]],
+ ['ispoweroftwo',['isPowerOfTwo',['../a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec',1,'glm::isPowerOfTwo(genIUType Value)'],['../a00175.html#gad454e4c8d8cd73ddc7de855f733a1465',1,'glm::isPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_9.html b/3rdparty/glm/doc/api/search/functions_9.html
new file mode 100644
index 00000000000..61de44ad4ea
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_9.js b/3rdparty/glm/doc/api/search/functions_9.js
new file mode 100644
index 00000000000..bff5692c41f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_9.js
@@ -0,0 +1,25 @@
+var searchData=
+[
+ ['l1norm',['l1Norm',['../a00211.html#gaebe5a39b06e262e615622129f37da4f4',1,'glm::l1Norm(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)'],['../a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb',1,'glm::l1Norm(tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['l2norm',['l2Norm',['../a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64',1,'glm::l2Norm(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)'],['../a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610',1,'glm::l2Norm(tvec3&lt; T, P &gt; const &amp;x)']]],
+ ['ldexp',['ldexp',['../a00145.html#ga52e319d7289b849ec92055abd4830533',1,'glm']]],
+ ['lefthanded',['leftHanded',['../a00197.html#ga7425e0ebfe6a56919900a072ae1f8017',1,'glm']]],
+ ['length',['length',['../a00147.html#ga18d45e3d4c7705e67ccfabd99e521604',1,'glm::length(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#gac682181783027544c8d251b4d3a60cf8',1,'glm::length(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['length2',['length2',['../a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4',1,'glm::length2(vecType&lt; T, P &gt; const &amp;x)'],['../a00220.html#ga02b45352c7ac345cabc9e877314acda6',1,'glm::length2(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['lerp',['lerp',['../a00172.html#ga5692804fa4db9e762a1c19b607e54435',1,'glm::lerp(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)'],['../a00187.html#ga5494ba3a95ea6594c86fc75236886864',1,'glm::lerp(T x, T y, T a)'],['../a00187.html#ga0aa79a146332650a1eb18ae996c653fe',1,'glm::lerp(const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, T a)'],['../a00187.html#gaf4c885ac72b8879b05777cb516c555c9',1,'glm::lerp(const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, T a)'],['../a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60',1,'glm::lerp(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, T a)'],['../a00187.html#ga7609b44d8aefc5a277efe73395ff4070',1,'glm::lerp(const tvec2&lt; T, P &gt; &amp;x, const tvec2&lt; T, P &gt; &amp;y, const tvec2&lt; T, P &gt; &amp;a)'],['../a00187.html#ga90a1d1364a8d078846857178bdcc9af1',1,'glm::lerp(const tvec3&lt; T, P &gt; &amp;x, const tvec3&lt; T, P &gt; &amp;y, const tvec3&lt; T, P &gt; &amp;a)'],['../a00187.html#gae4b0244b0d882657bed0a99dfa33f379',1,'glm::lerp(const tvec4&lt; T, P &gt; &amp;x, const tvec4&lt; T, P &gt; &amp;y, const tvec4&lt; T, P &gt; &amp;a)'],['../a00189.html#ga8039b88397ca09275be924a26a806a59',1,'glm::lerp(tdualquat&lt; T, P &gt; const &amp;x, tdualquat&lt; T, P &gt; const &amp;y, T const &amp;a)']]],
+ ['lessthan',['lessThan',['../a00152.html#ga6261970937a70b0b747ae0d3ade1c188',1,'glm::lessThan(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa',1,'glm::lessThan(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['lessthanequal',['lessThanEqual',['../a00152.html#gaaf1d88119f11200c32011de7c5ec0102',1,'glm::lessThanEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga7c81996ed2724f26fe76faf352c76294',1,'glm::lessThanEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]],
+ ['lineargradient',['linearGradient',['../a00196.html#gacde26d5e0c4a1856467bded9dfad9040',1,'glm']]],
+ ['linearrand',['linearRand',['../a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716',1,'glm::linearRand(genTYpe Min, genTYpe Max)'],['../a00173.html#gaba9cec867916d894d794a32897b7fdfd',1,'glm::linearRand(vecType&lt; T, P &gt; const &amp;Min, vecType&lt; T, P &gt; const &amp;Max)']]],
+ ['ln_5fln_5ftwo',['ln_ln_two',['../a00162.html#gaca94292c839ed31a405ab7a81ae7e850',1,'glm']]],
+ ['ln_5ften',['ln_ten',['../a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c',1,'glm']]],
+ ['ln_5ftwo',['ln_two',['../a00162.html#ga24f4d27765678116f41a2f336ab7975c',1,'glm']]],
+ ['log',['log',['../a00146.html#ga21efca311e62d233de0ae96bab126b83',1,'glm::log(vecType&lt; T, P &gt; const &amp;v)'],['../a00202.html#ga60a7b0a401da660869946b2b77c710c9',1,'glm::log(genType const &amp;x, genType const &amp;base)'],['../a00220.html#ga791f42e134bfe97fc9c96f4668dd7489',1,'glm::log(tquat&lt; T, P &gt; const &amp;q)']]],
+ ['log2',['log2',['../a00146.html#gabae30945338a555a03733f00dad95d0d',1,'glm::log2(vecType&lt; T, P &gt; const &amp;v)'],['../a00165.html#ga9bd682e74bfacb005c735305207ec417',1,'glm::log2(genIUType x)']]],
+ ['lookat',['lookAt',['../a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4',1,'glm']]],
+ ['lookatlh',['lookAtLH',['../a00169.html#gacd0c077ec7b58a575855e29cb5fb586d',1,'glm']]],
+ ['lookatrh',['lookAtRH',['../a00169.html#ga2876d9313334980b94292d2ec169088e',1,'glm']]],
+ ['lowestbitvalue',['lowestBitValue',['../a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f',1,'glm']]],
+ ['luminosity',['luminosity',['../a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe',1,'glm']]],
+ ['lxnorm',['lxNorm',['../a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7',1,'glm::lxNorm(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, unsigned int Depth)'],['../a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc',1,'glm::lxNorm(tvec3&lt; T, P &gt; const &amp;x, unsigned int Depth)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_a.html b/3rdparty/glm/doc/api/search/functions_a.html
new file mode 100644
index 00000000000..a46b662ed73
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_a.js b/3rdparty/glm/doc/api/search/functions_a.js
new file mode 100644
index 00000000000..18bad168f8b
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_a.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+ ['make_5fmat2',['make_mat2',['../a00178.html#ga52a16e333fef7e33ca740779482a8693',1,'glm']]],
+ ['make_5fmat2x2',['make_mat2x2',['../a00178.html#gadb29e510762e1042069cb28bf24ae990',1,'glm']]],
+ ['make_5fmat2x3',['make_mat2x3',['../a00178.html#ga37988c6dd941f617cdfab86d54375fc1',1,'glm']]],
+ ['make_5fmat2x4',['make_mat2x4',['../a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5',1,'glm']]],
+ ['make_5fmat3',['make_mat3',['../a00178.html#gac2bc10c519ffc8db9e24f325f23787ea',1,'glm']]],
+ ['make_5fmat3x2',['make_mat3x2',['../a00178.html#gabe1e5066608a66da7a94f802b57b4eed',1,'glm']]],
+ ['make_5fmat3x3',['make_mat3x3',['../a00178.html#ga3cbe7adf857c867cee77eae4617abadd',1,'glm']]],
+ ['make_5fmat3x4',['make_mat3x4',['../a00178.html#gac083edd180ab4d4b817acc60c516209b',1,'glm']]],
+ ['make_5fmat4',['make_mat4',['../a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60',1,'glm']]],
+ ['make_5fmat4x2',['make_mat4x2',['../a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264',1,'glm']]],
+ ['make_5fmat4x3',['make_mat4x3',['../a00178.html#ga4d42daced532b33cc672280e48670a51',1,'glm']]],
+ ['make_5fmat4x4',['make_mat4x4',['../a00178.html#gaf605a5f5e2ff594e8d404b2855b09541',1,'glm']]],
+ ['make_5fquat',['make_quat',['../a00178.html#gaadafb6600af2633e4c98cc64c72f5269',1,'glm']]],
+ ['make_5fvec2',['make_vec2',['../a00178.html#ga5f7393c30970c5949be13ceb525093a6',1,'glm']]],
+ ['make_5fvec3',['make_vec3',['../a00178.html#ga86f4bc63570db86346db2e567fb760f6',1,'glm']]],
+ ['make_5fvec4',['make_vec4',['../a00178.html#ga152345176b8951c15711f6ed4f6fc237',1,'glm']]],
+ ['mask',['mask',['../a00159.html#gad7eba518a0b71662114571ee76939f8a',1,'glm::mask(genIUType Bits)'],['../a00159.html#ga073dbd8642f550b51da3572541431c1c',1,'glm::mask(vecIUType&lt; T, P &gt; const &amp;v)']]],
+ ['mat2x4_5fcast',['mat2x4_cast',['../a00189.html#ga2d124748183e12db8288eeaca350298e',1,'glm']]],
+ ['mat3_5fcast',['mat3_cast',['../a00172.html#gae04c39422eb4e450ec8c4f45a1057b40',1,'glm']]],
+ ['mat3x4_5fcast',['mat3x4_cast',['../a00189.html#ga576745d979e3c079a64152490c816954',1,'glm']]],
+ ['mat4_5fcast',['mat4_cast',['../a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef',1,'glm']]],
+ ['matrixcompmult',['matrixCompMult',['../a00149.html#ga4a54992e4741188ee624b21e3ba91814',1,'glm']]],
+ ['matrixcross3',['matrixCross3',['../a00203.html#ga04385b2e3a93c78d116b51af2d8d708e',1,'glm']]],
+ ['matrixcross4',['matrixCross4',['../a00203.html#ga2d46cc5253761c214aa5c782865156b1',1,'glm']]],
+ ['max',['max',['../a00145.html#ga98caa7f95a94c86a86ebce893a45326c',1,'glm::max(genType x, genType y)'],['../a00192.html#ga04991ccb9865c4c4e58488cfb209ce69',1,'glm::max(T const &amp;x, T const &amp;y, T const &amp;z)'],['../a00192.html#gae1b7bbe5c91de4924835ea3e14530744',1,'glm::max(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)'],['../a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4',1,'glm::max(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)'],['../a00192.html#ga78e04a0cef1c4863fcae1a2130500d87',1,'glm::max(T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)'],['../a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a',1,'glm::max(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)'],['../a00192.html#gaacffbc466c2d08c140b181e7fd8a4858',1,'glm::max(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)']]],
+ ['min',['min',['../a00145.html#ga2c2bde1cec025b7ddff83c74a1113719',1,'glm::min(genType x, genType y)'],['../a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6',1,'glm::min(T const &amp;x, T const &amp;y, T const &amp;z)'],['../a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4',1,'glm::min(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z)'],['../a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0',1,'glm::min(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z)'],['../a00192.html#ga95466987024d03039607f09e69813d69',1,'glm::min(T const &amp;x, T const &amp;y, T const &amp;z, T const &amp;w)'],['../a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47',1,'glm::min(C&lt; T &gt; const &amp;x, typename C&lt; T &gt;::T const &amp;y, typename C&lt; T &gt;::T const &amp;z, typename C&lt; T &gt;::T const &amp;w)'],['../a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead',1,'glm::min(C&lt; T &gt; const &amp;x, C&lt; T &gt; const &amp;y, C&lt; T &gt; const &amp;z, C&lt; T &gt; const &amp;w)']]],
+ ['mirrorclamp',['mirrorClamp',['../a00236.html#gaa6856a0a048d2749252848da35e10c8b',1,'glm']]],
+ ['mirrorrepeat',['mirrorRepeat',['../a00236.html#ga16a89b0661b60d5bea85137bbae74d73',1,'glm']]],
+ ['mix',['mix',['../a00145.html#gadccbaffe46f369cf1a96b2aef92cbfdd',1,'glm::mix(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y, vecType&lt; U, P &gt; const &amp;a)'],['../a00172.html#ga31cc82178742c36450f5662bd4fb30b0',1,'glm::mix(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y, T a)']]],
+ ['mixedproduct',['mixedProduct',['../a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af',1,'glm']]],
+ ['mod',['mod',['../a00145.html#ga12201563ef902e3b07e0d1d7656efdb1',1,'glm::mod(genType x, genType y)'],['../a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3',1,'glm::mod(vecType&lt; T, P &gt; const &amp;x, T y)'],['../a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134',1,'glm::mod(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0',1,'glm::mod(genIUType x, genIUType y)'],['../a00199.html#gaabfbb41531ab7ad8d06fc176edfba785',1,'glm::mod(int x, int y)'],['../a00199.html#ga63fc8d63e7da1706439233b386ba8b6f',1,'glm::mod(uint x, uint y)']]],
+ ['modf',['modf',['../a00145.html#ga85e33f139b8db1b39b590a5713b9e679',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_b.html b/3rdparty/glm/doc/api/search/functions_b.html
new file mode 100644
index 00000000000..3b49416d516
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_b.js b/3rdparty/glm/doc/api/search/functions_b.js
new file mode 100644
index 00000000000..fb1af241411
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_b.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['next_5ffloat',['next_float',['../a00179.html#gae516ae554faa6117660828240e8bdaf0',1,'glm::next_float(genType const &amp;x)'],['../a00179.html#gad107ec3d9697ef82032a33338a73ebdd',1,'glm::next_float(genType const &amp;x, uint const &amp;Distance)']]],
+ ['nlz',['nlz',['../a00199.html#ga78dff8bdb361bf0061194c93e003d189',1,'glm']]],
+ ['normalize',['normalize',['../a00147.html#gada9451ec170a36fe53552812b9c03a68',1,'glm::normalize(vecType&lt; T, P &gt; const &amp;x)'],['../a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86',1,'glm::normalize(tquat&lt; T, P &gt; const &amp;q)'],['../a00189.html#ga495818aa48c23e9e730f87a3c337d1d5',1,'glm::normalize(tdualquat&lt; T, P &gt; const &amp;q)']]],
+ ['normalizedot',['normalizeDot',['../a00213.html#gaffbc2f2cb15838de8886a68048f9004d',1,'glm']]],
+ ['not_5f',['not_',['../a00152.html#ga4329ecbc2ef012c9ec704bd09da1f177',1,'glm']]],
+ ['notequal',['notEqual',['../a00152.html#ga5aca2b745e5eb0096716bbc394846309',1,'glm::notEqual(vecType&lt; T, P &gt; const &amp;x, vecType&lt; T, P &gt; const &amp;y)'],['../a00172.html#ga484c4633f7c05d8e29ee8b452350f539',1,'glm::notEqual(tquat&lt; T, P &gt; const &amp;x, tquat&lt; T, P &gt; const &amp;y)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_c.html b/3rdparty/glm/doc/api/search/functions_c.html
new file mode 100644
index 00000000000..57c64555ce5
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_c.js b/3rdparty/glm/doc/api/search/functions_c.js
new file mode 100644
index 00000000000..55020300272
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_c.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+ ['one',['one',['../a00162.html#ga39c2fb227631ca25894326529bdd1ee5',1,'glm']]],
+ ['one_5fover_5fpi',['one_over_pi',['../a00162.html#ga555150da2b06d23c8738981d5013e0eb',1,'glm']]],
+ ['one_5fover_5froot_5ftwo',['one_over_root_two',['../a00162.html#ga788fa23a0939bac4d1d0205fb4f35818',1,'glm']]],
+ ['one_5fover_5ftwo_5fpi',['one_over_two_pi',['../a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc',1,'glm']]],
+ ['orientate2',['orientate2',['../a00190.html#ga6f465681cbbc575ad93a53ec918dacf3',1,'glm']]],
+ ['orientate3',['orientate3',['../a00190.html#gab188e2526dea3c003e86e298f618085e',1,'glm::orientate3(T const &amp;angle)'],['../a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11',1,'glm::orientate3(tvec3&lt; T, P &gt; const &amp;angles)']]],
+ ['orientate4',['orientate4',['../a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503',1,'glm']]],
+ ['orientation',['orientation',['../a00224.html#ga49b4d082305cdfcfe0a5c184f684a902',1,'glm']]],
+ ['orientedangle',['orientedAngle',['../a00234.html#ga82a19d474be13c92c7b10caab42a5a72',1,'glm::orientedAngle(tvec2&lt; T, P &gt; const &amp;x, tvec2&lt; T, P &gt; const &amp;y)'],['../a00234.html#ga7254dba112eff55f55f9544f41cb9ece',1,'glm::orientedAngle(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y, tvec3&lt; T, P &gt; const &amp;ref)']]],
+ ['ortho',['ortho',['../a00169.html#ga65280251de6e38580110a0577a43d8f8',1,'glm::ortho(T left, T right, T bottom, T top, T zNear, T zFar)'],['../a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7',1,'glm::ortho(T left, T right, T bottom, T top)']]],
+ ['ortholh',['orthoLH',['../a00169.html#ga71503df1e691b12cc2d45e64fd0628fe',1,'glm']]],
+ ['orthonormalize',['orthonormalize',['../a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97',1,'glm::orthonormalize(tmat3x3&lt; T, P &gt; const &amp;m)'],['../a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596',1,'glm::orthonormalize(tvec3&lt; T, P &gt; const &amp;x, tvec3&lt; T, P &gt; const &amp;y)']]],
+ ['orthorh',['orthoRH',['../a00169.html#gada0aaaee76f1fd3c272698c8eca735a1',1,'glm']]],
+ ['outerproduct',['outerProduct',['../a00149.html#gae9f513dc8e4f3ceb993669321b6d0f09',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_d.html b/3rdparty/glm/doc/api/search/functions_d.html
new file mode 100644
index 00000000000..58b3d31f0b1
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_d.js b/3rdparty/glm/doc/api/search/functions_d.js
new file mode 100644
index 00000000000..a15d5536d9a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_d.js
@@ -0,0 +1,58 @@
+var searchData=
+[
+ ['packdouble2x32',['packDouble2x32',['../a00150.html#gaa916ca426b2bb0343ba17e3753e245c2',1,'glm']]],
+ ['packf2x11_5f1x10',['packF2x11_1x10',['../a00171.html#ga4944ad465ff950e926d49621f916c78d',1,'glm']]],
+ ['packf3x9_5fe1x5',['packF3x9_E1x5',['../a00171.html#ga3f648fc205467792dc6d8c59c748f8a6',1,'glm']]],
+ ['packhalf',['packHalf',['../a00171.html#ga896d806b72e390eb953786cca3632ec9',1,'glm']]],
+ ['packhalf1x16',['packHalf1x16',['../a00171.html#ga43f2093b6ff192a79058ff7834fc3528',1,'glm']]],
+ ['packhalf2x16',['packHalf2x16',['../a00150.html#ga20f134b07db3a3d3a38efb2617388c92',1,'glm']]],
+ ['packhalf4x16',['packHalf4x16',['../a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6',1,'glm']]],
+ ['packi3x10_5f1x2',['packI3x10_1x2',['../a00171.html#ga06ecb6afb902dba45419008171db9023',1,'glm']]],
+ ['packrgbm',['packRGBM',['../a00171.html#ga540fc5d8654b7bcfe207ac2491f161d1',1,'glm']]],
+ ['packsnorm',['packSnorm',['../a00171.html#ga1be760860697db386b36513aeafe9d5e',1,'glm']]],
+ ['packsnorm1x16',['packSnorm1x16',['../a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af',1,'glm']]],
+ ['packsnorm1x8',['packSnorm1x8',['../a00171.html#gae3592e0795e62aaa1865b3a10496a7a1',1,'glm']]],
+ ['packsnorm2x16',['packSnorm2x16',['../a00150.html#ga977ab172da5494e5ac63e952afacfbe2',1,'glm']]],
+ ['packsnorm2x8',['packSnorm2x8',['../a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e',1,'glm']]],
+ ['packsnorm3x10_5f1x2',['packSnorm3x10_1x2',['../a00171.html#gab997545661877d2c7362a5084d3897d3',1,'glm']]],
+ ['packsnorm4x16',['packSnorm4x16',['../a00171.html#ga358943934d21da947d5bcc88c2ab7832',1,'glm']]],
+ ['packsnorm4x8',['packSnorm4x8',['../a00150.html#ga85e8f17627516445026ab7a9c2e3531a',1,'glm']]],
+ ['packu3x10_5f1x2',['packU3x10_1x2',['../a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0',1,'glm']]],
+ ['packunorm',['packUnorm',['../a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b',1,'glm']]],
+ ['packunorm1x16',['packUnorm1x16',['../a00171.html#ga9f82737bf2a44bedff1d286b76837886',1,'glm']]],
+ ['packunorm1x5_5f1x6_5f1x5',['packUnorm1x5_1x6_1x5',['../a00171.html#ga768e0337dd6246773f14aa0a421fe9a8',1,'glm']]],
+ ['packunorm1x8',['packUnorm1x8',['../a00171.html#ga4b2fa60df3460403817d28b082ee0736',1,'glm']]],
+ ['packunorm2x16',['packUnorm2x16',['../a00150.html#ga0e2d107039fe608a209497af867b85fb',1,'glm']]],
+ ['packunorm2x3_5f1x2',['packUnorm2x3_1x2',['../a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d',1,'glm']]],
+ ['packunorm2x4',['packUnorm2x4',['../a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c',1,'glm']]],
+ ['packunorm2x8',['packUnorm2x8',['../a00171.html#ga9a666b1c688ab54100061ed06526de6e',1,'glm']]],
+ ['packunorm3x10_5f1x2',['packUnorm3x10_1x2',['../a00171.html#ga8a1ee625d2707c60530fb3fca2980b19',1,'glm']]],
+ ['packunorm3x5_5f1x1',['packUnorm3x5_1x1',['../a00171.html#gaec4112086d7fb133bea104a7c237de52',1,'glm']]],
+ ['packunorm4x16',['packUnorm4x16',['../a00171.html#ga1f63c264e7ab63264e2b2a99fd393897',1,'glm']]],
+ ['packunorm4x4',['packUnorm4x4',['../a00171.html#gad3e7e3ce521513584a53aedc5f9765c1',1,'glm']]],
+ ['packunorm4x8',['packUnorm4x8',['../a00150.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2',1,'glm']]],
+ ['perlin',['perlin',['../a00170.html#ga14e5975486b2b36e747861d3c65b16c1',1,'glm::perlin(vecType&lt; T, P &gt; const &amp;p)'],['../a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd',1,'glm::perlin(vecType&lt; T, P &gt; const &amp;p, vecType&lt; T, P &gt; const &amp;rep)']]],
+ ['perp',['perp',['../a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07',1,'glm']]],
+ ['perspective',['perspective',['../a00169.html#gac3613dcb6c6916465ad5b7ad5a786175',1,'glm']]],
+ ['perspectivefov',['perspectiveFov',['../a00169.html#gae9146e2c550fc8646299e4b900238145',1,'glm']]],
+ ['perspectivefovlh',['perspectiveFovLH',['../a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d',1,'glm']]],
+ ['perspectivefovrh',['perspectiveFovRH',['../a00169.html#ga07cd8df791bf90dcb782645fe0b21261',1,'glm']]],
+ ['perspectivelh',['perspectiveLH',['../a00169.html#ga34048da27c559f1ac8e9550d169dd6f3',1,'glm']]],
+ ['perspectiverh',['perspectiveRH',['../a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f',1,'glm']]],
+ ['pi',['pi',['../a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45',1,'glm']]],
+ ['pickmatrix',['pickMatrix',['../a00169.html#ga9026c77505b99990f68826f27c267dc5',1,'glm']]],
+ ['pitch',['pitch',['../a00172.html#ga2c08b93a4261c10748fd4d2104346f17',1,'glm']]],
+ ['polar',['polar',['../a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb',1,'glm']]],
+ ['pow',['pow',['../a00146.html#ga082b332a4b7c6ad1d43e09ff19e214dd',1,'glm::pow(vecType&lt; T, P &gt; const &amp;base, vecType&lt; T, P &gt; const &amp;exponent)'],['../a00199.html#ga89c591b970882714bd1e89a4e2f249f1',1,'glm::pow(int x, int y)'],['../a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0',1,'glm::pow(uint x, uint y)'],['../a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580',1,'glm::pow(tquat&lt; T, P &gt; const &amp;x, T const &amp;y)']]],
+ ['pow2',['pow2',['../a00215.html#ga19aaff3213bf23bdec3ef124ace237e9',1,'glm::gtx']]],
+ ['pow3',['pow3',['../a00215.html#ga35689d03cd434d6ea819f1942d3bf82e',1,'glm::gtx']]],
+ ['pow4',['pow4',['../a00215.html#gacef0968763026e180e53e735007dbf5a',1,'glm::gtx']]],
+ ['poweroftwoabove',['powerOfTwoAbove',['../a00182.html#ga8cda2459871f574a0aecbe702ac93291',1,'glm::powerOfTwoAbove(genIUType Value)'],['../a00182.html#gafe08808a50226b75b50e640a08b32ddc',1,'glm::powerOfTwoAbove(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['poweroftwobelow',['powerOfTwoBelow',['../a00182.html#ga3de7df63c589325101a2817a56f8e29d',1,'glm::powerOfTwoBelow(genIUType Value)'],['../a00182.html#gae33bb1ca2b55846b23a0f0796a679195',1,'glm::powerOfTwoBelow(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['poweroftwonearest',['powerOfTwoNearest',['../a00182.html#ga5f65973a5d2ea38c719e6a663149ead9',1,'glm::powerOfTwoNearest(genIUType Value)'],['../a00182.html#ga2d7e85995d097518b8d70cd409bda39e',1,'glm::powerOfTwoNearest(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['prev_5ffloat',['prev_float',['../a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07',1,'glm::prev_float(genType const &amp;x)'],['../a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec',1,'glm::prev_float(genType const &amp;x, uint const &amp;Distance)']]],
+ ['proj',['proj',['../a00219.html#gadf29123bcf748fc9d6fb0998192184cf',1,'glm']]],
+ ['proj2d',['proj2D',['../a00230.html#gacfce1085167a8bfb71a55ea14d22752f',1,'glm']]],
+ ['proj3d',['proj3D',['../a00230.html#gafab0418f2503ec2133cb2de828cc482a',1,'glm']]],
+ ['project',['project',['../a00169.html#gad743556abd138264d4f06f4ca27f1d7e',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_e.html b/3rdparty/glm/doc/api/search/functions_e.html
new file mode 100644
index 00000000000..b44e5c5fbff
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_e.js b/3rdparty/glm/doc/api/search/functions_e.js
new file mode 100644
index 00000000000..714ec359de6
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_e.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['quarter_5fpi',['quarter_pi',['../a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0',1,'glm']]],
+ ['quat_5fcast',['quat_cast',['../a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce',1,'glm::quat_cast(tmat3x3&lt; T, P &gt; const &amp;x)'],['../a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c',1,'glm::quat_cast(tmat4x4&lt; T, P &gt; const &amp;x)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/functions_f.html b/3rdparty/glm/doc/api/search/functions_f.html
new file mode 100644
index 00000000000..db9a07c0c06
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/functions_f.js b/3rdparty/glm/doc/api/search/functions_f.js
new file mode 100644
index 00000000000..182a1c321fb
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/functions_f.js
@@ -0,0 +1,34 @@
+var searchData=
+[
+ ['radialgradient',['radialGradient',['../a00196.html#ga166d43d567a4cf150579a92f69b0dc9f',1,'glm']]],
+ ['radians',['radians',['../a00151.html#gafffb5e533f75318bdf4e0967d8a6c05c',1,'glm']]],
+ ['reflect',['reflect',['../a00147.html#gab63646fc36b81cf69d3ce123a72f76f2',1,'glm']]],
+ ['refract',['refract',['../a00147.html#gab7e7cdf4403931a5f7b74560ad64159b',1,'glm']]],
+ ['repeat',['repeat',['../a00236.html#ga809650c6310ea7c42666e918c117fb6f',1,'glm']]],
+ ['rgb2ycocg',['rgb2YCoCg',['../a00185.html#ga19481f6947c5b5482debd41e71b8c941',1,'glm']]],
+ ['rgb2ycocgr',['rgb2YCoCgR',['../a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2',1,'glm']]],
+ ['rgbcolor',['rgbColor',['../a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7',1,'glm']]],
+ ['righthanded',['rightHanded',['../a00197.html#ga17cd83888de8755c0435c589fafd3603',1,'glm']]],
+ ['roll',['roll',['../a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec',1,'glm']]],
+ ['root_5ffive',['root_five',['../a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2',1,'glm']]],
+ ['root_5fhalf_5fpi',['root_half_pi',['../a00162.html#ga4e276cb823cc5e612d4f89ed99c75039',1,'glm']]],
+ ['root_5fln_5ffour',['root_ln_four',['../a00162.html#ga4129412e96b33707a77c1a07652e23e2',1,'glm']]],
+ ['root_5fpi',['root_pi',['../a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9',1,'glm']]],
+ ['root_5fthree',['root_three',['../a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e',1,'glm']]],
+ ['root_5ftwo',['root_two',['../a00162.html#ga74e607d29020f100c0d0dc46ce2ca950',1,'glm']]],
+ ['root_5ftwo_5fpi',['root_two_pi',['../a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3',1,'glm']]],
+ ['rotate',['rotate',['../a00169.html#ga161b1df124348f232d994ba7958e4815',1,'glm::rotate(tmat4x4&lt; T, P &gt; const &amp;m, T angle, tvec3&lt; T, P &gt; const &amp;axis)'],['../a00172.html#gaa8f42979c921e450ff2812fb43c25702',1,'glm::rotate(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)'],['../a00209.html#gab4f798c6048db91a6d0686812fd54022',1,'glm::rotate(tmat3x3&lt; T, P &gt; const &amp;m, T angle)'],['../a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2',1,'glm::rotate(tquat&lt; T, P &gt; const &amp;q, tvec3&lt; T, P &gt; const &amp;v)'],['../a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3',1,'glm::rotate(tquat&lt; T, P &gt; const &amp;q, tvec4&lt; T, P &gt; const &amp;v)'],['../a00224.html#ga9bff444fb191e2e089a906b899cd033d',1,'glm::rotate(tvec2&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6',1,'glm::rotate(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)'],['../a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd',1,'glm::rotate(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;normal)'],['../a00229.html#ga2020c91bf61e050882b3a5c18eada700',1,'glm::rotate(T angle, tvec3&lt; T, P &gt; const &amp;v)']]],
+ ['rotatenormalizedaxis',['rotateNormalizedAxis',['../a00223.html#gaada623964a895def5a8b77b5b7887dc4',1,'glm::rotateNormalizedAxis(tmat4x4&lt; T, P &gt; const &amp;m, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)'],['../a00223.html#ga6c00234d844faef36a6a94669fbd1639',1,'glm::rotateNormalizedAxis(tquat&lt; T, P &gt; const &amp;q, T const &amp;angle, tvec3&lt; T, P &gt; const &amp;axis)']]],
+ ['rotatex',['rotateX',['../a00224.html#ga0c2dc9f8507bffcbb957db9818b18508',1,'glm::rotateX(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#gadab312d430a564741ae02215255027a0',1,'glm::rotateX(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)']]],
+ ['rotatey',['rotateY',['../a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3',1,'glm::rotateY(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#gae2507577c4bffa3548b32852791dd90c',1,'glm::rotateY(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)']]],
+ ['rotatez',['rotateZ',['../a00224.html#gae30ac01b89d4f16a972fee696c964908',1,'glm::rotateZ(tvec3&lt; T, P &gt; const &amp;v, T const &amp;angle)'],['../a00224.html#ga034e5d197ab4bd8685624bc2cf16e586',1,'glm::rotateZ(tvec4&lt; T, P &gt; const &amp;v, T const &amp;angle)']]],
+ ['rotation',['rotation',['../a00220.html#gac4856d356c5c97cec74e9b672ea89240',1,'glm']]],
+ ['round',['round',['../a00145.html#gada0165544c0618d634c8056a88082ce9',1,'glm']]],
+ ['roundeven',['roundEven',['../a00145.html#ga655598104195a60a950291485e84a97e',1,'glm']]],
+ ['roundmultiple',['roundMultiple',['../a00175.html#ga6739d1de04b2cea7c78675b365644bce',1,'glm::roundMultiple(genType Source, genType Multiple)'],['../a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661',1,'glm::roundMultiple(vecType&lt; T, P &gt; const &amp;Source, vecType&lt; T, P &gt; const &amp;Multiple)']]],
+ ['roundpoweroftwo',['roundPowerOfTwo',['../a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0',1,'glm::roundPowerOfTwo(genIUType Value)'],['../a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485',1,'glm::roundPowerOfTwo(vecType&lt; T, P &gt; const &amp;value)']]],
+ ['row',['row',['../a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba',1,'glm::row(genType const &amp;m, length_t index)'],['../a00166.html#gaadcc64829aadf4103477679e48c7594f',1,'glm::row(genType const &amp;m, length_t index, typename genType::row_type const &amp;x)']]],
+ ['rowmajor2',['rowMajor2',['../a00206.html#ga0c7f4d56a85865f0002127119ab7d551',1,'glm::rowMajor2(tvec2&lt; T, P &gt; const &amp;v1, tvec2&lt; T, P &gt; const &amp;v2)'],['../a00206.html#ga42a006aa66198452bd3c89415f892196',1,'glm::rowMajor2(tmat2x2&lt; T, P &gt; const &amp;m)']]],
+ ['rowmajor3',['rowMajor3',['../a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f',1,'glm::rowMajor3(tvec3&lt; T, P &gt; const &amp;v1, tvec3&lt; T, P &gt; const &amp;v2, tvec3&lt; T, P &gt; const &amp;v3)'],['../a00206.html#ga38537061135b55e7a053926ca55e6e20',1,'glm::rowMajor3(tmat3x3&lt; T, P &gt; const &amp;m)']]],
+ ['rowmajor4',['rowMajor4',['../a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8',1,'glm::rowMajor4(tvec4&lt; T, P &gt; const &amp;v1, tvec4&lt; T, P &gt; const &amp;v2, tvec4&lt; T, P &gt; const &amp;v3, tvec4&lt; T, P &gt; const &amp;v4)'],['../a00206.html#ga85771a88c114a088a0414bcfce55e729',1,'glm::rowMajor4(tmat4x4&lt; T, P &gt; const &amp;m)']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_0.html b/3rdparty/glm/doc/api/search/groups_0.html
new file mode 100644
index 00000000000..aaba07e5c21
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_0.js b/3rdparty/glm/doc/api/search/groups_0.js
new file mode 100644
index 00000000000..607341cf3c1
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00151.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_1.html b/3rdparty/glm/doc/api/search/groups_1.html
new file mode 100644
index 00000000000..d287bfa38e8
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_1.js b/3rdparty/glm/doc/api/search/groups_1.js
new file mode 100644
index 00000000000..6864bfbddb2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['common_20functions',['Common functions',['../a00145.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_2.html b/3rdparty/glm/doc/api/search/groups_2.html
new file mode 100644
index 00000000000..29681b20719
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_2.js b/3rdparty/glm/doc/api/search/groups_2.js
new file mode 100644
index 00000000000..9aa94fad9ea
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['exponential_20functions',['Exponential functions',['../a00146.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_3.html b/3rdparty/glm/doc/api/search/groups_3.html
new file mode 100644
index 00000000000..b51e57ff2f5
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_3.js b/3rdparty/glm/doc/api/search/groups_3.js
new file mode 100644
index 00000000000..56f5d8b2575
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00150.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_4.html b/3rdparty/glm/doc/api/search/groups_4.html
new file mode 100644
index 00000000000..987621be0bd
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_4.js b/3rdparty/glm/doc/api/search/groups_4.js
new file mode 100644
index 00000000000..6965ad10603
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_4.js
@@ -0,0 +1,85 @@
+var searchData=
+[
+ ['glm_20core',['GLM Core',['../a00155.html',1,'']]],
+ ['geometric_20functions',['Geometric functions',['../a00147.html',1,'']]],
+ ['gtc_20extensions_20_28stable_29',['GTC Extensions (Stable)',['../a00153.html',1,'']]],
+ ['glm_5fgtc_5fbitfield',['GLM_GTC_bitfield',['../a00159.html',1,'']]],
+ ['glm_5fgtc_5fcolor_5fencoding',['GLM_GTC_color_encoding',['../a00160.html',1,'']]],
+ ['glm_5fgtc_5fcolor_5fspace',['GLM_GTC_color_space',['../a00161.html',1,'']]],
+ ['glm_5fgtc_5fconstants',['GLM_GTC_constants',['../a00162.html',1,'']]],
+ ['glm_5fgtc_5fepsilon',['GLM_GTC_epsilon',['../a00163.html',1,'']]],
+ ['glm_5fgtc_5ffunctions',['GLM_GTC_functions',['../a00164.html',1,'']]],
+ ['glm_5fgtc_5finteger',['GLM_GTC_integer',['../a00165.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5faccess',['GLM_GTC_matrix_access',['../a00166.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5finteger',['GLM_GTC_matrix_integer',['../a00167.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5finverse',['GLM_GTC_matrix_inverse',['../a00168.html',1,'']]],
+ ['glm_5fgtc_5fmatrix_5ftransform',['GLM_GTC_matrix_transform',['../a00169.html',1,'']]],
+ ['glm_5fgtc_5fnoise',['GLM_GTC_noise',['../a00170.html',1,'']]],
+ ['glm_5fgtc_5fpacking',['GLM_GTC_packing',['../a00171.html',1,'']]],
+ ['glm_5fgtc_5fquaternion',['GLM_GTC_quaternion',['../a00172.html',1,'']]],
+ ['glm_5fgtc_5frandom',['GLM_GTC_random',['../a00173.html',1,'']]],
+ ['glm_5fgtc_5freciprocal',['GLM_GTC_reciprocal',['../a00174.html',1,'']]],
+ ['glm_5fgtc_5fround',['GLM_GTC_round',['../a00175.html',1,'']]],
+ ['glm_5fgtc_5ftype_5faligned',['GLM_GTC_type_aligned',['../a00176.html',1,'']]],
+ ['glm_5fgtc_5ftype_5fprecision',['GLM_GTC_type_precision',['../a00177.html',1,'']]],
+ ['glm_5fgtc_5ftype_5fptr',['GLM_GTC_type_ptr',['../a00178.html',1,'']]],
+ ['glm_5fgtc_5fulp',['GLM_GTC_ulp',['../a00179.html',1,'']]],
+ ['glm_5fgtc_5fvec1',['GLM_GTC_vec1',['../a00180.html',1,'']]],
+ ['gtx_20extensions_20_28experimental_29',['GTX Extensions (Experimental)',['../a00154.html',1,'']]],
+ ['glm_5fgtx_5fassociated_5fmin_5fmax',['GLM_GTX_associated_min_max',['../a00181.html',1,'']]],
+ ['glm_5fgtx_5fbit',['GLM_GTX_bit',['../a00182.html',1,'']]],
+ ['glm_5fgtx_5fclosest_5fpoint',['GLM_GTX_closest_point',['../a00183.html',1,'']]],
+ ['glm_5fgtx_5fcolor_5fspace',['GLM_GTX_color_space',['../a00184.html',1,'']]],
+ ['glm_5fgtx_5fcolor_5fspace_5fycocg',['GLM_GTX_color_space_YCoCg',['../a00185.html',1,'']]],
+ ['glm_5fgtx_5fcommon',['GLM_GTX_common',['../a00186.html',1,'']]],
+ ['glm_5fgtx_5fcompatibility',['GLM_GTX_compatibility',['../a00187.html',1,'']]],
+ ['glm_5fgtx_5fcomponent_5fwise',['GLM_GTX_component_wise',['../a00188.html',1,'']]],
+ ['glm_5fgtx_5fdual_5fquaternion',['GLM_GTX_dual_quaternion',['../a00189.html',1,'']]],
+ ['glm_5fgtx_5feuler_5fangles',['GLM_GTX_euler_angles',['../a00190.html',1,'']]],
+ ['glm_5fgtx_5fextend',['GLM_GTX_extend',['../a00191.html',1,'']]],
+ ['glm_5fgtx_5fextented_5fmin_5fmax',['GLM_GTX_extented_min_max',['../a00192.html',1,'']]],
+ ['glm_5fgtx_5ffast_5fexponential',['GLM_GTX_fast_exponential',['../a00193.html',1,'']]],
+ ['glm_5fgtx_5ffast_5fsquare_5froot',['GLM_GTX_fast_square_root',['../a00194.html',1,'']]],
+ ['glm_5fgtx_5ffast_5ftrigonometry',['GLM_GTX_fast_trigonometry',['../a00195.html',1,'']]],
+ ['glm_5fgtx_5fgradient_5fpaint',['GLM_GTX_gradient_paint',['../a00196.html',1,'']]],
+ ['glm_5fgtx_5fhanded_5fcoordinate_5fspace',['GLM_GTX_handed_coordinate_space',['../a00197.html',1,'']]],
+ ['glm_5fgtx_5fhash',['GLM_GTX_hash',['../a00198.html',1,'']]],
+ ['glm_5fgtx_5finteger',['GLM_GTX_integer',['../a00199.html',1,'']]],
+ ['glm_5fgtx_5fintersect',['GLM_GTX_intersect',['../a00200.html',1,'']]],
+ ['glm_5fgtx_5fio',['GLM_GTX_io',['../a00201.html',1,'']]],
+ ['glm_5fgtx_5flog_5fbase',['GLM_GTX_log_base',['../a00202.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fcross_5fproduct',['GLM_GTX_matrix_cross_product',['../a00203.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fdecompose',['GLM_GTX_matrix_decompose',['../a00204.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5finterpolation',['GLM_GTX_matrix_interpolation',['../a00205.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fmajor_5fstorage',['GLM_GTX_matrix_major_storage',['../a00206.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5foperation',['GLM_GTX_matrix_operation',['../a00207.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5fquery',['GLM_GTX_matrix_query',['../a00208.html',1,'']]],
+ ['glm_5fgtx_5fmatrix_5ftransform_5f2d',['GLM_GTX_matrix_transform_2d',['../a00209.html',1,'']]],
+ ['glm_5fgtx_5fmixed_5fproducte',['GLM_GTX_mixed_producte',['../a00210.html',1,'']]],
+ ['glm_5fgtx_5fnorm',['GLM_GTX_norm',['../a00211.html',1,'']]],
+ ['glm_5fgtx_5fnormal',['GLM_GTX_normal',['../a00212.html',1,'']]],
+ ['glm_5fgtx_5fnormalize_5fdot',['GLM_GTX_normalize_dot',['../a00213.html',1,'']]],
+ ['glm_5fgtx_5fnumber_5fprecision',['GLM_GTX_number_precision',['../a00214.html',1,'']]],
+ ['glm_5fgtx_5foptimum_5fpow',['GLM_GTX_optimum_pow',['../a00215.html',1,'']]],
+ ['glm_5fgtx_5forthonormalize',['GLM_GTX_orthonormalize',['../a00216.html',1,'']]],
+ ['glm_5fgtx_5fperpendicular',['GLM_GTX_perpendicular',['../a00217.html',1,'']]],
+ ['glm_5fgtx_5fpolar_5fcoordinates',['GLM_GTX_polar_coordinates',['../a00218.html',1,'']]],
+ ['glm_5fgtx_5fprojection',['GLM_GTX_projection',['../a00219.html',1,'']]],
+ ['glm_5fgtx_5fquaternion',['GLM_GTX_quaternion',['../a00220.html',1,'']]],
+ ['glm_5fgtx_5frange',['GLM_GTX_range',['../a00221.html',1,'']]],
+ ['glm_5fgtx_5fraw_5fdata',['GLM_GTX_raw_data',['../a00222.html',1,'']]],
+ ['glm_5fgtx_5frotate_5fnormalized_5faxis',['GLM_GTX_rotate_normalized_axis',['../a00223.html',1,'']]],
+ ['glm_5fgtx_5frotate_5fvector',['GLM_GTX_rotate_vector',['../a00224.html',1,'']]],
+ ['glm_5fgtx_5fscalar_5frelational',['GLM_GTX_scalar_relational',['../a00225.html',1,'']]],
+ ['glm_5fgtx_5fspline',['GLM_GTX_spline',['../a00226.html',1,'']]],
+ ['glm_5fgtx_5fstd_5fbased_5ftype',['GLM_GTX_std_based_type',['../a00227.html',1,'']]],
+ ['glm_5fgtx_5fstring_5fcast',['GLM_GTX_string_cast',['../a00228.html',1,'']]],
+ ['glm_5fgtx_5ftransform',['GLM_GTX_transform',['../a00229.html',1,'']]],
+ ['glm_5fgtx_5ftransform2',['GLM_GTX_transform2',['../a00230.html',1,'']]],
+ ['glm_5fgtx_5ftype_5faligned',['GLM_GTX_type_aligned',['../a00231.html',1,'']]],
+ ['glm_5fgtx_5ftype_5ftrait',['GLM_GTX_type_trait',['../a00232.html',1,'']]],
+ ['glm_5fgtx_5fvec_5fswizzle',['GLM_GTX_vec_swizzle',['../a00233.html',1,'']]],
+ ['glm_5fgtx_5fvector_5fangle',['GLM_GTX_vector_angle',['../a00234.html',1,'']]],
+ ['glm_5fgtx_5fvector_5fquery',['GLM_GTX_vector_query',['../a00235.html',1,'']]],
+ ['glm_5fgtx_5fwrap',['GLM_GTX_wrap',['../a00236.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_5.html b/3rdparty/glm/doc/api/search/groups_5.html
new file mode 100644
index 00000000000..2ccec277e58
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_5.js b/3rdparty/glm/doc/api/search/groups_5.js
new file mode 100644
index 00000000000..999e5d9ca53
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['integer_20functions',['Integer functions',['../a00148.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_6.html b/3rdparty/glm/doc/api/search/groups_6.html
new file mode 100644
index 00000000000..ed69c070a67
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_6.js b/3rdparty/glm/doc/api/search/groups_6.js
new file mode 100644
index 00000000000..006b8012fd6
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['matrix_20functions',['Matrix functions',['../a00149.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_7.html b/3rdparty/glm/doc/api/search/groups_7.html
new file mode 100644
index 00000000000..027daaa1756
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_7.js b/3rdparty/glm/doc/api/search/groups_7.js
new file mode 100644
index 00000000000..bc46c6fa6d0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['precision_20types',['Precision types',['../a00157.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_8.html b/3rdparty/glm/doc/api/search/groups_8.html
new file mode 100644
index 00000000000..936f141d704
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_8.js b/3rdparty/glm/doc/api/search/groups_8.js
new file mode 100644
index 00000000000..5cf65c8f51b
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['template_20types',['Template types',['../a00158.html',1,'']]],
+ ['types',['Types',['../a00156.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/groups_9.html b/3rdparty/glm/doc/api/search/groups_9.html
new file mode 100644
index 00000000000..c66e6a6793f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/groups_9.js b/3rdparty/glm/doc/api/search/groups_9.js
new file mode 100644
index 00000000000..92ef46e9eb7
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/groups_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['vector_20relational_20functions',['Vector Relational Functions',['../a00152.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/mag_sel.png b/3rdparty/glm/doc/api/search/mag_sel.png
new file mode 100644
index 00000000000..81f6040a209
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/mag_sel.png
Binary files differ
diff --git a/3rdparty/glm/doc/api/search/nomatches.html b/3rdparty/glm/doc/api/search/nomatches.html
new file mode 100644
index 00000000000..b1ded27e9ad
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/pages_0.html b/3rdparty/glm/doc/api/search/pages_0.html
new file mode 100644
index 00000000000..75d203dc810
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/pages_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/pages_0.js b/3rdparty/glm/doc/api/search/pages_0.js
new file mode 100644
index 00000000000..19fce4dc82f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['opengl_20mathematics',['OpenGL Mathematics',['../index.html',1,'']]]
+];
diff --git a/3rdparty/glm/doc/api/search/search.css b/3rdparty/glm/doc/api/search/search.css
new file mode 100644
index 00000000000..4d7612ff63e
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 8px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+ background-color: white;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:111px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
diff --git a/3rdparty/glm/doc/api/search/search.js b/3rdparty/glm/doc/api/search/search.js
new file mode 100644
index 00000000000..dedce3bf093
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/search.js
@@ -0,0 +1,791 @@
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+ {
+ idxChar = searchValue.substr(0, 2);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1)
+ {
+ var hexCode=idx.toString(16);
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
+function init_search()
+{
+ var results = document.getElementById("MSearchSelectWindow");
+ for (var key in indexSectionLabels)
+ {
+ var link = document.createElement('a');
+ link.setAttribute('class','SelectItem');
+ link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+ link.href='javascript:void(0)';
+ link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+ results.appendChild(link);
+ }
+ searchBox.OnSelectItem(0);
+}
+
diff --git a/3rdparty/glm/doc/api/search/search_l.png b/3rdparty/glm/doc/api/search/search_l.png
new file mode 100644
index 00000000000..c872f4da4a0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/search_l.png
Binary files differ
diff --git a/3rdparty/glm/doc/api/search/search_m.png b/3rdparty/glm/doc/api/search/search_m.png
new file mode 100644
index 00000000000..b429a16ba64
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/search_m.png
Binary files differ
diff --git a/3rdparty/glm/doc/api/search/search_r.png b/3rdparty/glm/doc/api/search/search_r.png
new file mode 100644
index 00000000000..97ee8b43968
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/search_r.png
Binary files differ
diff --git a/3rdparty/glm/doc/api/search/searchdata.js b/3rdparty/glm/doc/api/search/searchdata.js
new file mode 100644
index 00000000000..c29ba183bf6
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/searchdata.js
@@ -0,0 +1,30 @@
+var indexSectionsWithContent =
+{
+ 0: "_abcdefghilmnopqrstuvwyz",
+ 1: "_abcdefghilmnoprstuvw",
+ 2: "abcdefghilmnopqrstuvwyz",
+ 3: "abdfhilmqsuvw",
+ 4: "acefgimptv",
+ 5: "o"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "files",
+ 2: "functions",
+ 3: "typedefs",
+ 4: "groups",
+ 5: "pages"
+};
+
+var indexSectionLabels =
+{
+ 0: "All",
+ 1: "Files",
+ 2: "Functions",
+ 3: "Typedefs",
+ 4: "Modules",
+ 5: "Pages"
+};
+
diff --git a/3rdparty/glm/doc/api/search/typedefs_0.html b/3rdparty/glm/doc/api/search/typedefs_0.html
new file mode 100644
index 00000000000..a6c8e2571c9
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_0.js b/3rdparty/glm/doc/api/search/typedefs_0.js
new file mode 100644
index 00000000000..5a02bed238c
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_0.js
@@ -0,0 +1,68 @@
+var searchData=
+[
+ ['aligned_5fbvec1',['aligned_bvec1',['../a00176.html#ga780a35f764020f553a9601a3fcdcd059',1,'glm']]],
+ ['aligned_5fbvec2',['aligned_bvec2',['../a00176.html#gae766b317c5afec852bfb3d74a3c54bc8',1,'glm']]],
+ ['aligned_5fbvec3',['aligned_bvec3',['../a00176.html#gae1964ba70d15915e5b710926decbb3cb',1,'glm']]],
+ ['aligned_5fbvec4',['aligned_bvec4',['../a00176.html#gae164a1f7879f828bc35e50b79d786b05',1,'glm']]],
+ ['aligned_5fdvec1',['aligned_dvec1',['../a00176.html#ga4974f46ae5a19415d91316960a53617a',1,'glm']]],
+ ['aligned_5fdvec2',['aligned_dvec2',['../a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0',1,'glm']]],
+ ['aligned_5fdvec3',['aligned_dvec3',['../a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0',1,'glm']]],
+ ['aligned_5fdvec4',['aligned_dvec4',['../a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5',1,'glm']]],
+ ['aligned_5fhighp_5fbvec2',['aligned_highp_bvec2',['../a00176.html#gac5ffd9396890b64e707ba47c76435dfe',1,'glm']]],
+ ['aligned_5fhighp_5fbvec3',['aligned_highp_bvec3',['../a00176.html#ga3adba191018d2de1dc2834a2ff5597d7',1,'glm']]],
+ ['aligned_5fhighp_5fbvec4',['aligned_highp_bvec4',['../a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc',1,'glm']]],
+ ['aligned_5fhighp_5fdvec2',['aligned_highp_dvec2',['../a00176.html#ga186b90f0ba86724e080d237f3f5f9417',1,'glm']]],
+ ['aligned_5fhighp_5fdvec3',['aligned_highp_dvec3',['../a00176.html#ga54f6765716867706643bde03211d600f',1,'glm']]],
+ ['aligned_5fhighp_5fdvec4',['aligned_highp_dvec4',['../a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e',1,'glm']]],
+ ['aligned_5fhighp_5fivec2',['aligned_highp_ivec2',['../a00176.html#gab6ddd9d1421eb610ddeb32705fed7026',1,'glm']]],
+ ['aligned_5fhighp_5fivec3',['aligned_highp_ivec3',['../a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e',1,'glm']]],
+ ['aligned_5fhighp_5fivec4',['aligned_highp_ivec4',['../a00176.html#ga1e3286a27b19f25801fb435b6d1225fb',1,'glm']]],
+ ['aligned_5fhighp_5fuvec2',['aligned_highp_uvec2',['../a00176.html#ga7366a38dc888164e623fc10663e97670',1,'glm']]],
+ ['aligned_5fhighp_5fuvec3',['aligned_highp_uvec3',['../a00176.html#ga967485a7e963365642ea17de62fe2a3f',1,'glm']]],
+ ['aligned_5fhighp_5fuvec4',['aligned_highp_uvec4',['../a00176.html#gac56a4ce85b6233998139a7c1ac337440',1,'glm']]],
+ ['aligned_5fhighp_5fvec2',['aligned_highp_vec2',['../a00176.html#gaea854184b9d574fc5e75b5709a4974e8',1,'glm']]],
+ ['aligned_5fhighp_5fvec3',['aligned_highp_vec3',['../a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36',1,'glm']]],
+ ['aligned_5fhighp_5fvec4',['aligned_highp_vec4',['../a00176.html#gae2938d64c6a46f721681607c2ab3f884',1,'glm']]],
+ ['aligned_5fivec1',['aligned_ivec1',['../a00176.html#ga76298aed82a439063c3d55980c84aa0b',1,'glm']]],
+ ['aligned_5fivec2',['aligned_ivec2',['../a00176.html#gae4f38fd2c86cee6940986197777b3ca4',1,'glm']]],
+ ['aligned_5fivec3',['aligned_ivec3',['../a00176.html#ga32794322d294e5ace7fed4a61896f270',1,'glm']]],
+ ['aligned_5fivec4',['aligned_ivec4',['../a00176.html#ga7f79eae5927c9033d84617e49f6f34e4',1,'glm']]],
+ ['aligned_5flowp_5fbvec2',['aligned_lowp_bvec2',['../a00176.html#ga524c702b82ae7ccaca896d374808c6d7',1,'glm']]],
+ ['aligned_5flowp_5fbvec3',['aligned_lowp_bvec3',['../a00176.html#ga21fb6238997b4a21848411b16bc34e93',1,'glm']]],
+ ['aligned_5flowp_5fbvec4',['aligned_lowp_bvec4',['../a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692',1,'glm']]],
+ ['aligned_5flowp_5fdvec2',['aligned_lowp_dvec2',['../a00176.html#gab70c189b4691715b3f7f0abb35c65b2f',1,'glm']]],
+ ['aligned_5flowp_5fdvec3',['aligned_lowp_dvec3',['../a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee',1,'glm']]],
+ ['aligned_5flowp_5fdvec4',['aligned_lowp_dvec4',['../a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71',1,'glm']]],
+ ['aligned_5flowp_5fivec2',['aligned_lowp_ivec2',['../a00176.html#gad69bf7c406a3cec994307473cb3da032',1,'glm']]],
+ ['aligned_5flowp_5fivec3',['aligned_lowp_ivec3',['../a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b',1,'glm']]],
+ ['aligned_5flowp_5fivec4',['aligned_lowp_ivec4',['../a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae',1,'glm']]],
+ ['aligned_5flowp_5fuvec2',['aligned_lowp_uvec2',['../a00176.html#ga15355ffc7ec7931b81ba76736b65e51a',1,'glm']]],
+ ['aligned_5flowp_5fuvec3',['aligned_lowp_uvec3',['../a00176.html#ga48c85299d98e8248f547a2c07ea609cf',1,'glm']]],
+ ['aligned_5flowp_5fuvec4',['aligned_lowp_uvec4',['../a00176.html#ga40b0e05306f666f835ac97c963302ecb',1,'glm']]],
+ ['aligned_5flowp_5fvec2',['aligned_lowp_vec2',['../a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367',1,'glm']]],
+ ['aligned_5flowp_5fvec3',['aligned_lowp_vec3',['../a00176.html#gae003f8f3071a8bc734a70c6d4978f968',1,'glm']]],
+ ['aligned_5flowp_5fvec4',['aligned_lowp_vec4',['../a00176.html#ga689f103781a795e919fddfa47d89170d',1,'glm']]],
+ ['aligned_5fmediump_5fbvec2',['aligned_mediump_bvec2',['../a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e',1,'glm']]],
+ ['aligned_5fmediump_5fbvec3',['aligned_mediump_bvec3',['../a00176.html#ga4f78cd6d9c5827771e35921b4a92855a',1,'glm']]],
+ ['aligned_5fmediump_5fbvec4',['aligned_mediump_bvec4',['../a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9',1,'glm']]],
+ ['aligned_5fmediump_5fdvec2',['aligned_mediump_dvec2',['../a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd',1,'glm']]],
+ ['aligned_5fmediump_5fdvec3',['aligned_mediump_dvec3',['../a00176.html#ga22efc7f84ab79eef640e00fc59d07478',1,'glm']]],
+ ['aligned_5fmediump_5fdvec4',['aligned_mediump_dvec4',['../a00176.html#gad6f422f8871685ee467a575238e4ece4',1,'glm']]],
+ ['aligned_5fmediump_5fivec2',['aligned_mediump_ivec2',['../a00176.html#ga389d12dcc8d57a444944a72646d17efa',1,'glm']]],
+ ['aligned_5fmediump_5fivec3',['aligned_mediump_ivec3',['../a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26',1,'glm']]],
+ ['aligned_5fmediump_5fivec4',['aligned_mediump_ivec4',['../a00176.html#gae640082d0ffdb52fb2d658916c5815db',1,'glm']]],
+ ['aligned_5fmediump_5fuvec2',['aligned_mediump_uvec2',['../a00176.html#ga88c56fde67f035d80b2d0d6d568af30b',1,'glm']]],
+ ['aligned_5fmediump_5fuvec3',['aligned_mediump_uvec3',['../a00176.html#gaee29d3a28f634b03f0a20e79e600f5df',1,'glm']]],
+ ['aligned_5fmediump_5fuvec4',['aligned_mediump_uvec4',['../a00176.html#ga717763c480dcf3ecf66121426287d08a',1,'glm']]],
+ ['aligned_5fmediump_5fvec2',['aligned_mediump_vec2',['../a00176.html#ga57549b1281d99ba1825b1ef0dae6227d',1,'glm']]],
+ ['aligned_5fmediump_5fvec3',['aligned_mediump_vec3',['../a00176.html#gaed5d4dd2755cc5141a9533488edd9e82',1,'glm']]],
+ ['aligned_5fmediump_5fvec4',['aligned_mediump_vec4',['../a00176.html#gae4ab68a8c32574bff14e62f95185d295',1,'glm']]],
+ ['aligned_5fuvec1',['aligned_uvec1',['../a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548',1,'glm']]],
+ ['aligned_5fuvec2',['aligned_uvec2',['../a00176.html#ga074137e3be58528d67041c223d49f398',1,'glm']]],
+ ['aligned_5fuvec3',['aligned_uvec3',['../a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0',1,'glm']]],
+ ['aligned_5fuvec4',['aligned_uvec4',['../a00176.html#gabf842c45eea186170c267a328e3f3b7d',1,'glm']]],
+ ['aligned_5fvec1',['aligned_vec1',['../a00176.html#ga05e6d4c908965d04191c2070a8d0a65e',1,'glm']]],
+ ['aligned_5fvec2',['aligned_vec2',['../a00176.html#ga0682462f8096a226773e20fac993cde5',1,'glm']]],
+ ['aligned_5fvec3',['aligned_vec3',['../a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0',1,'glm']]],
+ ['aligned_5fvec4',['aligned_vec4',['../a00176.html#ga85d89e83cb8137e1be1446de8c3b643a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_1.html b/3rdparty/glm/doc/api/search/typedefs_1.html
new file mode 100644
index 00000000000..c44c36f9dcd
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_1.js b/3rdparty/glm/doc/api/search/typedefs_1.js
new file mode 100644
index 00000000000..c6642001e83
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_1.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+ ['bool1',['bool1',['../a00187.html#gaddcd7aa2e30e61af5b38660613d3979e',1,'glm']]],
+ ['bool1x1',['bool1x1',['../a00187.html#ga7f895c936f0c29c8729afbbf22806090',1,'glm']]],
+ ['bool2',['bool2',['../a00187.html#gafa8d0bc8dfa7eeb928208305714f648d',1,'glm']]],
+ ['bool2x2',['bool2x2',['../a00187.html#ga2bfb53bc320966c85149934fffb0329d',1,'glm']]],
+ ['bool2x3',['bool2x3',['../a00187.html#gad02e7dff74039bb1454643e293d85dfe',1,'glm']]],
+ ['bool2x4',['bool2x4',['../a00187.html#ga379c0869949e8a69c3d06d7637caa5d7',1,'glm']]],
+ ['bool3',['bool3',['../a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659',1,'glm']]],
+ ['bool3x2',['bool3x2',['../a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7',1,'glm']]],
+ ['bool3x3',['bool3x3',['../a00187.html#gae621c9eabcba552eea5f6ade1f403605',1,'glm']]],
+ ['bool3x4',['bool3x4',['../a00187.html#gad13f8250579ebf79760dcf64215ddb17',1,'glm']]],
+ ['bool4',['bool4',['../a00187.html#ga6e79dbfab5917c467a154638ba27898e',1,'glm']]],
+ ['bool4x2',['bool4x2',['../a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db',1,'glm']]],
+ ['bool4x3',['bool4x3',['../a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb',1,'glm']]],
+ ['bool4x4',['bool4x4',['../a00187.html#ga9770607032813e7b0ca7362a47efea1e',1,'glm']]],
+ ['bvec2',['bvec2',['../a00156.html#ga0e46aaaccc5e713eac5bfbc8d6885a60',1,'glm']]],
+ ['bvec3',['bvec3',['../a00156.html#ga150731e2a148eff8752114a0e450505e',1,'glm']]],
+ ['bvec4',['bvec4',['../a00156.html#ga444e8f61bfb3a6f037d019ac6933f8c6',1,'glm']]],
+ ['byte',['byte',['../a00222.html#ga3005cb0d839d546c616becfa6602c607',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_2.html b/3rdparty/glm/doc/api/search/typedefs_2.html
new file mode 100644
index 00000000000..d64bac3cbc0
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_2.js b/3rdparty/glm/doc/api/search/typedefs_2.js
new file mode 100644
index 00000000000..d0ffe55b36a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_2.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+ ['ddualquat',['ddualquat',['../a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6',1,'glm']]],
+ ['dmat2',['dmat2',['../a00156.html#gac7f51e23c8802d867f564dfd146bdb44',1,'glm']]],
+ ['dmat2x2',['dmat2x2',['../a00156.html#gacc27b39853a2ecb538c8b3afc20c359e',1,'glm']]],
+ ['dmat2x3',['dmat2x3',['../a00156.html#ga1cb3c561a32f0864733dfaf97c71f0c7',1,'glm']]],
+ ['dmat2x4',['dmat2x4',['../a00156.html#gaddd230c88fbd6ec33242329be3a1b738',1,'glm']]],
+ ['dmat3',['dmat3',['../a00156.html#gae174ff65e148bb7dec4bf10a63cb46ff',1,'glm']]],
+ ['dmat3x2',['dmat3x2',['../a00156.html#gaec22f44dddbdadfe5dfca68eb3457ea8',1,'glm']]],
+ ['dmat3x3',['dmat3x3',['../a00156.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8',1,'glm']]],
+ ['dmat3x4',['dmat3x4',['../a00156.html#ga38d9bfca882ec542b1928cf77b5c2091',1,'glm']]],
+ ['dmat4',['dmat4',['../a00156.html#ga97b38ea24e9ebf58eac04a8d99dc3e27',1,'glm']]],
+ ['dmat4x2',['dmat4x2',['../a00156.html#ga6ddab280c735a2139133b4164b99a68a',1,'glm']]],
+ ['dmat4x3',['dmat4x3',['../a00156.html#gab6c8974496fc7c72dad09219118ba89e',1,'glm']]],
+ ['dmat4x4',['dmat4x4',['../a00156.html#ga41c2da87ca627c1b2da5e895435a508e',1,'glm']]],
+ ['double1',['double1',['../a00187.html#ga20b861a9b6e2a300323671c57a02525b',1,'glm']]],
+ ['double1x1',['double1x1',['../a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8',1,'glm']]],
+ ['double2',['double2',['../a00187.html#gaa16a13c6f2768e83ca133430e82ab89e',1,'glm']]],
+ ['double2x2',['double2x2',['../a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7',1,'glm']]],
+ ['double2x3',['double2x3',['../a00187.html#gade37cf30c69bacb41ceea7e32717eac7',1,'glm']]],
+ ['double2x4',['double2x4',['../a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e',1,'glm']]],
+ ['double3',['double3',['../a00187.html#gaed4bc64196bd25d46f6a1f417320a391',1,'glm']]],
+ ['double3x2',['double3x2',['../a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6',1,'glm']]],
+ ['double3x3',['double3x3',['../a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a',1,'glm']]],
+ ['double3x4',['double3x4',['../a00187.html#gaad84a1ea83be8fce04c1570c5e719413',1,'glm']]],
+ ['double4',['double4',['../a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56',1,'glm']]],
+ ['double4x2',['double4x2',['../a00187.html#ga2f87500119da15e35e4a74780ba512bd',1,'glm']]],
+ ['double4x3',['double4x3',['../a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37',1,'glm']]],
+ ['double4x4',['double4x4',['../a00187.html#ga686a3a5590f0a0e721faba08bda301d6',1,'glm']]],
+ ['dualquat',['dualquat',['../a00189.html#gae93abee0c979902fbec6a7bee0f6fae1',1,'glm']]],
+ ['dvec2',['dvec2',['../a00156.html#ga15ade901680b29b78c1f9d1796db6e0e',1,'glm']]],
+ ['dvec3',['dvec3',['../a00156.html#gabebd0c7e3c5cd337d95c313c5e8b8db4',1,'glm']]],
+ ['dvec4',['dvec4',['../a00156.html#ga9503f809789bda7e8852a6abde3ae5c1',1,'glm']]],
+ ['dword',['dword',['../a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_3.html b/3rdparty/glm/doc/api/search/typedefs_3.html
new file mode 100644
index 00000000000..10b9917f924
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_3.js b/3rdparty/glm/doc/api/search/typedefs_3.js
new file mode 100644
index 00000000000..b3ac1ced89f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_3.js
@@ -0,0 +1,78 @@
+var searchData=
+[
+ ['f32',['f32',['../a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7',1,'glm']]],
+ ['f32mat1',['f32mat1',['../a00214.html#ga145ad477a2a3e152855511c3b52469a6',1,'glm::gtx']]],
+ ['f32mat1x1',['f32mat1x1',['../a00214.html#gac88c6a4dbfc380aa26e3adbbade36348',1,'glm::gtx']]],
+ ['f32mat2',['f32mat2',['../a00177.html#ga1fedd5d29746afdaf2d3303a4442704e',1,'glm']]],
+ ['f32mat2x2',['f32mat2x2',['../a00177.html#gaf3a5016bf360977ce114deb2e01ae10a',1,'glm']]],
+ ['f32mat2x3',['f32mat2x3',['../a00177.html#gad5f1043adbe803928fe7bf1a90a1f767',1,'glm']]],
+ ['f32mat2x4',['f32mat2x4',['../a00177.html#ga5ed667d0247cce477f013ea31982843d',1,'glm']]],
+ ['f32mat3',['f32mat3',['../a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c',1,'glm']]],
+ ['f32mat3x2',['f32mat3x2',['../a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1',1,'glm']]],
+ ['f32mat3x3',['f32mat3x3',['../a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0',1,'glm']]],
+ ['f32mat3x4',['f32mat3x4',['../a00177.html#ga0100666c90176eaba80e49357d123c7f',1,'glm']]],
+ ['f32mat4',['f32mat4',['../a00177.html#ga797fa3ab16e04456174c36238e091341',1,'glm']]],
+ ['f32mat4x2',['f32mat4x2',['../a00177.html#ga27f897bdfe4bbded9481b8947553d1ff',1,'glm']]],
+ ['f32mat4x3',['f32mat4x3',['../a00177.html#gaa69e73ffb01a52499071391d395908fb',1,'glm']]],
+ ['f32mat4x4',['f32mat4x4',['../a00177.html#gafe2e08549805a7ded26da2a868bedbf5',1,'glm']]],
+ ['f32quat',['f32quat',['../a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0',1,'glm']]],
+ ['f32vec1',['f32vec1',['../a00177.html#ga3174a49dc84a977cad7012a62f4af02f',1,'glm::f32vec1()'],['../a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943',1,'glm::gtx::f32vec1()']]],
+ ['f32vec2',['f32vec2',['../a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3',1,'glm']]],
+ ['f32vec3',['f32vec3',['../a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad',1,'glm']]],
+ ['f32vec4',['f32vec4',['../a00177.html#gaeb25dbb0261f82cb08da23e26d343704',1,'glm']]],
+ ['f64',['f64',['../a00177.html#ga1d794d240091678f602e8de225b8d8c9',1,'glm']]],
+ ['f64mat1',['f64mat1',['../a00214.html#ga59bfa589419b5265d01314fcecd33435',1,'glm::gtx']]],
+ ['f64mat1x1',['f64mat1x1',['../a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd',1,'glm::gtx']]],
+ ['f64mat2',['f64mat2',['../a00177.html#ga74b9918c90ea60ce58b3979cde963a38',1,'glm']]],
+ ['f64mat2x2',['f64mat2x2',['../a00177.html#gaeb817419c76a0766c88713d2754e6cb3',1,'glm']]],
+ ['f64mat2x3',['f64mat2x3',['../a00177.html#ga87d256f4719417e311cd0ea14264678d',1,'glm']]],
+ ['f64mat2x4',['f64mat2x4',['../a00177.html#gafb18822e2eac88fa861a76cefd25d550',1,'glm']]],
+ ['f64mat3',['f64mat3',['../a00177.html#ga68894201dd511792a7af6cff7b5adf71',1,'glm']]],
+ ['f64mat3x2',['f64mat3x2',['../a00177.html#ga11e5684b10e098f573ff484c1a569ae2',1,'glm']]],
+ ['f64mat3x3',['f64mat3x3',['../a00177.html#gae1a5081181c96cc37ce9418f6e856cb6',1,'glm']]],
+ ['f64mat3x4',['f64mat3x4',['../a00177.html#gad37a55a8ce1154083a721b4ecfd55293',1,'glm']]],
+ ['f64mat4',['f64mat4',['../a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95',1,'glm']]],
+ ['f64mat4x2',['f64mat4x2',['../a00177.html#gaa669dfb59031a441de19b34a92704d57',1,'glm']]],
+ ['f64mat4x3',['f64mat4x3',['../a00177.html#gaba137814a509704937746cc1e82edc32',1,'glm']]],
+ ['f64mat4x4',['f64mat4x4',['../a00177.html#ga489163773b021f1800a33cc2fa730c3b',1,'glm']]],
+ ['f64quat',['f64quat',['../a00177.html#ga14c583bd625eda8cf4935a14d5dd544d',1,'glm']]],
+ ['f64vec1',['f64vec1',['../a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae',1,'glm::f64vec1()'],['../a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1',1,'glm::gtx::f64vec1()']]],
+ ['f64vec2',['f64vec2',['../a00177.html#gafaad77b464b5a35626c31205ac6780e3',1,'glm']]],
+ ['f64vec3',['f64vec3',['../a00177.html#gafacc3614bb1136a7756293e67d34de22',1,'glm']]],
+ ['f64vec4',['f64vec4',['../a00177.html#ga8723186104dc02eb85da386105fba75f',1,'glm']]],
+ ['fdualquat',['fdualquat',['../a00189.html#ga237c2b9b42c9a930e49de5840ae0f930',1,'glm']]],
+ ['float1',['float1',['../a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead',1,'glm']]],
+ ['float1x1',['float1x1',['../a00187.html#ga73720b8dc4620835b17f74d428f98c0c',1,'glm']]],
+ ['float2',['float2',['../a00187.html#ga872a70333dd25af68b1ebba485be9e42',1,'glm']]],
+ ['float2x2',['float2x2',['../a00187.html#gaad93cbc2b863e363d53d405d0451d03e',1,'glm']]],
+ ['float2x3',['float2x3',['../a00187.html#ga098c33a30f901f4f6a76969d6db6b01b',1,'glm']]],
+ ['float2x4',['float2x4',['../a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde',1,'glm']]],
+ ['float3',['float3',['../a00187.html#ga2bfa618285894e34f299e4984f092d56',1,'glm']]],
+ ['float32',['float32',['../a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1',1,'glm']]],
+ ['float32_5ft',['float32_t',['../a00177.html#ga41d579d81c3d98edd0532244fa02da77',1,'glm']]],
+ ['float3x2',['float3x2',['../a00187.html#gaf30014e7b6874f45d58eb580d04764ff',1,'glm']]],
+ ['float3x3',['float3x3',['../a00187.html#ga2692a729a69615d72dbebbdd0eba2363',1,'glm']]],
+ ['float3x4',['float3x4',['../a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e',1,'glm']]],
+ ['float4',['float4',['../a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b',1,'glm']]],
+ ['float4x2',['float4x2',['../a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8',1,'glm']]],
+ ['float4x3',['float4x3',['../a00187.html#gad749b26be059f35394fd71c7f7a44034',1,'glm']]],
+ ['float4x4',['float4x4',['../a00187.html#gaf40529862492ded2f3b96a6c886f6136',1,'glm']]],
+ ['float64',['float64',['../a00177.html#gab5596d48586414c91ccb270962dc14d3',1,'glm']]],
+ ['float64_5ft',['float64_t',['../a00177.html#ga6957c7b22f405683bb276554ca40dc37',1,'glm']]],
+ ['fmat2',['fmat2',['../a00177.html#gabb01d4ff646ee07241934b1a0cc0f985',1,'glm']]],
+ ['fmat2x2',['fmat2x2',['../a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711',1,'glm']]],
+ ['fmat2x3',['fmat2x3',['../a00177.html#gaf17b2604c0d92bffb92375d8aa588756',1,'glm']]],
+ ['fmat2x4',['fmat2x4',['../a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5',1,'glm']]],
+ ['fmat3',['fmat3',['../a00177.html#ga5165fbee2d78f342950265b69a07353d',1,'glm']]],
+ ['fmat3x2',['fmat3x2',['../a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca',1,'glm']]],
+ ['fmat3x3',['fmat3x3',['../a00177.html#gad339e25c32fe6665acf028f26c1b3e22',1,'glm']]],
+ ['fmat3x4',['fmat3x4',['../a00177.html#gab04bc97371cb6b5f54b3688e0c81578b',1,'glm']]],
+ ['fmat4',['fmat4',['../a00177.html#gab3f31d867df4874e42172ebf188a3ebd',1,'glm']]],
+ ['fmat4x2',['fmat4x2',['../a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732',1,'glm']]],
+ ['fmat4x3',['fmat4x3',['../a00177.html#ga1a11c170f030ab34ddf037714e936cba',1,'glm']]],
+ ['fmat4x4',['fmat4x4',['../a00177.html#gabd79752ff357d83b49136b6299ea62d9',1,'glm']]],
+ ['fvec1',['fvec1',['../a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f',1,'glm']]],
+ ['fvec2',['fvec2',['../a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6',1,'glm']]],
+ ['fvec3',['fvec3',['../a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084',1,'glm']]],
+ ['fvec4',['fvec4',['../a00177.html#ga981b63d5c5f7233a29364e0a968d139b',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_4.html b/3rdparty/glm/doc/api/search/typedefs_4.html
new file mode 100644
index 00000000000..c1ff64d1a95
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_4.js b/3rdparty/glm/doc/api/search/typedefs_4.js
new file mode 100644
index 00000000000..4a9b910c355
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_4.js
@@ -0,0 +1,96 @@
+var searchData=
+[
+ ['highp_5fbvec2',['highp_bvec2',['../a00157.html#ga829f39950549881a08c534946c0487e1',1,'glm']]],
+ ['highp_5fbvec3',['highp_bvec3',['../a00157.html#gaca7c2a58eb926799c30ad547a290fccf',1,'glm']]],
+ ['highp_5fbvec4',['highp_bvec4',['../a00157.html#gae5f9c57d04b338c9a51a9af39e50795b',1,'glm']]],
+ ['highp_5fddualquat',['highp_ddualquat',['../a00189.html#ga8f67eafa7197d7a668dad5105a463d2a',1,'glm']]],
+ ['highp_5fdmat2',['highp_dmat2',['../a00157.html#ga65ae7d3b23155712ed8cbd3300be4ec8',1,'glm']]],
+ ['highp_5fdmat2x2',['highp_dmat2x2',['../a00157.html#ga518f28c64881fafaaf14ec0d867a9bba',1,'glm']]],
+ ['highp_5fdmat2x3',['highp_dmat2x3',['../a00157.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6',1,'glm']]],
+ ['highp_5fdmat2x4',['highp_dmat2x4',['../a00157.html#gac1c87c16d6dcb7449bc3c779ccdc5c30',1,'glm']]],
+ ['highp_5fdmat3',['highp_dmat3',['../a00157.html#ga605c7863807ac2e9c2db4cf13405f34d',1,'glm']]],
+ ['highp_5fdmat3x2',['highp_dmat3x2',['../a00157.html#gab2d4fd5cd286baff8364a7a3f60c8a21',1,'glm']]],
+ ['highp_5fdmat3x3',['highp_dmat3x3',['../a00157.html#ga2d7911a43241a5ce2472421255e5930f',1,'glm']]],
+ ['highp_5fdmat3x4',['highp_dmat3x4',['../a00157.html#ga51bfd2f3f5a12464d5934323db9116e7',1,'glm']]],
+ ['highp_5fdmat4',['highp_dmat4',['../a00157.html#ga4607e33c40a3c03256e0bf9c586b456a',1,'glm']]],
+ ['highp_5fdmat4x2',['highp_dmat4x2',['../a00157.html#ga5ee028f50629bf451973b3a910973357',1,'glm']]],
+ ['highp_5fdmat4x3',['highp_dmat4x3',['../a00157.html#gafe7eea5b2a20477b5634e340ea5ec28a',1,'glm']]],
+ ['highp_5fdmat4x4',['highp_dmat4x4',['../a00157.html#ga83ab0b8b8b50cbf945237dc8f5322432',1,'glm']]],
+ ['highp_5fdualquat',['highp_dualquat',['../a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf',1,'glm']]],
+ ['highp_5fdvec2',['highp_dvec2',['../a00157.html#ga435eb408e8dfa4f7185368109d432c14',1,'glm']]],
+ ['highp_5fdvec3',['highp_dvec3',['../a00157.html#ga01d2c9b292e27518e4d6f8442607e8aa',1,'glm']]],
+ ['highp_5fdvec4',['highp_dvec4',['../a00157.html#ga5d454f34d819d90b9bbb30dcb9ed7b39',1,'glm']]],
+ ['highp_5ffdualquat',['highp_fdualquat',['../a00189.html#ga4c4e55e9c99dc57b299ed590968da564',1,'glm']]],
+ ['highp_5ffloat',['highp_float',['../a00157.html#ga6e95694987ba35af6f736638be39626a',1,'glm']]],
+ ['highp_5fi16',['highp_i16',['../a00177.html#ga0336abc2604dd2c20c30e036454b64f8',1,'glm']]],
+ ['highp_5fi32',['highp_i32',['../a00177.html#ga727675ac6b5d2fc699520e0059735e25',1,'glm']]],
+ ['highp_5fi64',['highp_i64',['../a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd',1,'glm']]],
+ ['highp_5fi8',['highp_i8',['../a00177.html#gacb88796f2d08ef253d0345aff20c3aee',1,'glm']]],
+ ['highp_5fimat2',['highp_imat2',['../a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a',1,'glm']]],
+ ['highp_5fimat2x2',['highp_imat2x2',['../a00167.html#gac455e55e7cb32e31396a9d4613da046a',1,'glm']]],
+ ['highp_5fimat2x3',['highp_imat2x3',['../a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e',1,'glm']]],
+ ['highp_5fimat2x4',['highp_imat2x4',['../a00167.html#ga73b855cc40e5d8202b7ab38461326d65',1,'glm']]],
+ ['highp_5fimat3',['highp_imat3',['../a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9',1,'glm']]],
+ ['highp_5fimat3x2',['highp_imat3x2',['../a00167.html#ga0413bf87605b9247be2533c439127a1c',1,'glm']]],
+ ['highp_5fimat3x3',['highp_imat3x3',['../a00167.html#gacce460d54216438bb577bf8c9d68299c',1,'glm']]],
+ ['highp_5fimat3x4',['highp_imat3x4',['../a00167.html#gad4fea24b4100e21ed7742c91e5458d49',1,'glm']]],
+ ['highp_5fimat4',['highp_imat4',['../a00167.html#ga159ce04cc638ff4db755542cd8f758cb',1,'glm']]],
+ ['highp_5fimat4x2',['highp_imat4x2',['../a00167.html#ga7d43dd8332000f7f19379efa1b303599',1,'glm']]],
+ ['highp_5fimat4x3',['highp_imat4x3',['../a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73',1,'glm']]],
+ ['highp_5fimat4x4',['highp_imat4x4',['../a00167.html#gae53db595d36f49a299e180302795e3c9',1,'glm']]],
+ ['highp_5fint',['highp_int',['../a00157.html#gaaabe7eb044941ebf308b53a447d692dc',1,'glm']]],
+ ['highp_5fint16',['highp_int16',['../a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718',1,'glm']]],
+ ['highp_5fint16_5ft',['highp_int16_t',['../a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff',1,'glm']]],
+ ['highp_5fint32',['highp_int32',['../a00177.html#ga84ed04b4e0de18c977e932d617e7c223',1,'glm']]],
+ ['highp_5fint32_5ft',['highp_int32_t',['../a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f',1,'glm']]],
+ ['highp_5fint64',['highp_int64',['../a00177.html#ga226a8d52b4e3f77aaa6231135e886aac',1,'glm']]],
+ ['highp_5fint64_5ft',['highp_int64_t',['../a00177.html#ga73c6abb280a45feeff60f9accaee91f3',1,'glm']]],
+ ['highp_5fint8',['highp_int8',['../a00177.html#gad0549c902a96a7164e4ac858d5f39dbf',1,'glm']]],
+ ['highp_5fint8_5ft',['highp_int8_t',['../a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5',1,'glm']]],
+ ['highp_5fivec2',['highp_ivec2',['../a00157.html#gaa015a3707413de20c03948308dba2f2e',1,'glm']]],
+ ['highp_5fivec3',['highp_ivec3',['../a00157.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f',1,'glm']]],
+ ['highp_5fivec4',['highp_ivec4',['../a00157.html#ga0424a75bb400571489b8528897f35258',1,'glm']]],
+ ['highp_5fmat2',['highp_mat2',['../a00157.html#ga11c1eb1d307846d5bee7d7c0d8c386f0',1,'glm']]],
+ ['highp_5fmat2x2',['highp_mat2x2',['../a00157.html#gae6a747cfc33928652abcb1347712b231',1,'glm']]],
+ ['highp_5fmat2x3',['highp_mat2x3',['../a00157.html#ga9dfd75b5b17b89ccbecbdd6201efc74b',1,'glm']]],
+ ['highp_5fmat2x4',['highp_mat2x4',['../a00157.html#ga03fe2f9a84c61cc0f08b324a27d9b493',1,'glm']]],
+ ['highp_5fmat3',['highp_mat3',['../a00157.html#gaac1bde847d053902c27bad811b76e9fd',1,'glm']]],
+ ['highp_5fmat3x2',['highp_mat3x2',['../a00157.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a',1,'glm']]],
+ ['highp_5fmat3x3',['highp_mat3x3',['../a00157.html#ga223de5d0549b215566dfb977d4bb45bd',1,'glm']]],
+ ['highp_5fmat3x4',['highp_mat3x4',['../a00157.html#ga117d8a040e738396a3d60368605623d2',1,'glm']]],
+ ['highp_5fmat4',['highp_mat4',['../a00157.html#gabace1eeb2fac7d73a7faaecf33f352d0',1,'glm']]],
+ ['highp_5fmat4x2',['highp_mat4x2',['../a00157.html#gaeea75c96b308be4114e0badf49f58075',1,'glm']]],
+ ['highp_5fmat4x3',['highp_mat4x3',['../a00157.html#ga046e59c57aaa185a8b0b012164ce707f',1,'glm']]],
+ ['highp_5fmat4x4',['highp_mat4x4',['../a00157.html#gaa72822d91f0dceb4dcaaec550cbfeead',1,'glm']]],
+ ['highp_5fu16',['highp_u16',['../a00177.html#ga8e62c883d13f47015f3b70ed88751369',1,'glm']]],
+ ['highp_5fu32',['highp_u32',['../a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf',1,'glm']]],
+ ['highp_5fu64',['highp_u64',['../a00177.html#ga0c181fdf06a309691999926b6690c969',1,'glm']]],
+ ['highp_5fu8',['highp_u8',['../a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c',1,'glm']]],
+ ['highp_5fuint',['highp_uint',['../a00157.html#ga73e8a694d7fc69143cf25161d18d1dcf',1,'glm']]],
+ ['highp_5fuint16',['highp_uint16',['../a00177.html#ga746dc6da204f5622e395f492997dbf57',1,'glm']]],
+ ['highp_5fuint16_5ft',['highp_uint16_t',['../a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7',1,'glm']]],
+ ['highp_5fuint32',['highp_uint32',['../a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3',1,'glm']]],
+ ['highp_5fuint32_5ft',['highp_uint32_t',['../a00177.html#gae978599c9711ac263ba732d4ac225b0e',1,'glm']]],
+ ['highp_5fuint64',['highp_uint64',['../a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce',1,'glm']]],
+ ['highp_5fuint64_5ft',['highp_uint64_t',['../a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08',1,'glm']]],
+ ['highp_5fuint8',['highp_uint8',['../a00177.html#ga97432f9979e73e66567361fd01e4cffb',1,'glm']]],
+ ['highp_5fuint8_5ft',['highp_uint8_t',['../a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5',1,'glm']]],
+ ['highp_5fumat2',['highp_umat2',['../a00167.html#gae7b96c808a36fbe87f41af1c77b7941c',1,'glm']]],
+ ['highp_5fumat2x2',['highp_umat2x2',['../a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb',1,'glm']]],
+ ['highp_5fumat2x3',['highp_umat2x3',['../a00167.html#gac351446661e5a8168473ff7b3b5ac3b5',1,'glm']]],
+ ['highp_5fumat2x4',['highp_umat2x4',['../a00167.html#ga815eb9fdf70edc45687cbcda07e97213',1,'glm']]],
+ ['highp_5fumat3',['highp_umat3',['../a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147',1,'glm']]],
+ ['highp_5fumat3x2',['highp_umat3x2',['../a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f',1,'glm']]],
+ ['highp_5fumat3x3',['highp_umat3x3',['../a00167.html#gacf71e9abe57bcfd18b4b003421e306aa',1,'glm']]],
+ ['highp_5fumat3x4',['highp_umat3x4',['../a00167.html#ga6edbf193ad6c4309e31262165f2655e7',1,'glm']]],
+ ['highp_5fumat4',['highp_umat4',['../a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c',1,'glm']]],
+ ['highp_5fumat4x2',['highp_umat4x2',['../a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292',1,'glm']]],
+ ['highp_5fumat4x3',['highp_umat4x3',['../a00167.html#ga899a376888652fe3c03718641812bb27',1,'glm']]],
+ ['highp_5fumat4x4',['highp_umat4x4',['../a00167.html#gab8068521c0ad6990373d27d87d333084',1,'glm']]],
+ ['highp_5fuvec2',['highp_uvec2',['../a00157.html#gaa0eed70387a998c3eca2f4e45f3efaad',1,'glm']]],
+ ['highp_5fuvec3',['highp_uvec3',['../a00157.html#gaf564d5be1e65bd2204754043b218c9a4',1,'glm']]],
+ ['highp_5fuvec4',['highp_uvec4',['../a00157.html#ga61359f5531550e45871a97589d8dcce1',1,'glm']]],
+ ['highp_5fvec2',['highp_vec2',['../a00157.html#gabfc3e9f63cc3e2ee0521405277ef3997',1,'glm']]],
+ ['highp_5fvec3',['highp_vec3',['../a00157.html#ga7b31b02c5558e2f8e5d8439ae3803d3a',1,'glm']]],
+ ['highp_5fvec4',['highp_vec4',['../a00157.html#gade7cb496ed3d78b2a11f1651cce77239',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_5.html b/3rdparty/glm/doc/api/search/typedefs_5.html
new file mode 100644
index 00000000000..14adc8ed8cd
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_5.js b/3rdparty/glm/doc/api/search/typedefs_5.js
new file mode 100644
index 00000000000..e7be9c28de2
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_5.js
@@ -0,0 +1,60 @@
+var searchData=
+[
+ ['i16',['i16',['../a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699',1,'glm']]],
+ ['i16vec1',['i16vec1',['../a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b',1,'glm']]],
+ ['i16vec2',['i16vec2',['../a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79',1,'glm']]],
+ ['i16vec3',['i16vec3',['../a00177.html#ga973b226a9914db682c9372fc761fb535',1,'glm']]],
+ ['i16vec4',['i16vec4',['../a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426',1,'glm']]],
+ ['i32',['i32',['../a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb',1,'glm']]],
+ ['i32vec1',['i32vec1',['../a00177.html#ga4cca6bbd117c45f046291fc8e9d03765',1,'glm']]],
+ ['i32vec2',['i32vec2',['../a00177.html#ga3c12cef4135603fd77d8fda85808730c',1,'glm']]],
+ ['i32vec3',['i32vec3',['../a00177.html#ga40cd3f391c03512f158d10a70062264e',1,'glm']]],
+ ['i32vec4',['i32vec4',['../a00177.html#gae3364a8090e7e1408056e00403dfecab',1,'glm']]],
+ ['i64',['i64',['../a00177.html#gadb997e409103d4da18abd837e636a496',1,'glm']]],
+ ['i64vec1',['i64vec1',['../a00177.html#ga5b4a3e499ee165efc0dc05add9c48235',1,'glm']]],
+ ['i64vec2',['i64vec2',['../a00177.html#gade69872a31f066e5ae212f1af6008edb',1,'glm']]],
+ ['i64vec3',['i64vec3',['../a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e',1,'glm']]],
+ ['i64vec4',['i64vec4',['../a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c',1,'glm']]],
+ ['i8',['i8',['../a00177.html#ga302ec977b0c0c3ea245b6c9275495355',1,'glm']]],
+ ['i8vec1',['i8vec1',['../a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409',1,'glm']]],
+ ['i8vec2',['i8vec2',['../a00177.html#ga6414484477e4c1b4863cf91af8fd4185',1,'glm']]],
+ ['i8vec3',['i8vec3',['../a00177.html#gaf4b5993e794e252607f91535b62a7e0c',1,'glm']]],
+ ['i8vec4',['i8vec4',['../a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e',1,'glm']]],
+ ['imat2',['imat2',['../a00167.html#gaabe04f9948d4a213bb1c20137de03e01',1,'glm']]],
+ ['imat2x2',['imat2x2',['../a00167.html#gaa4732a240522ad9bc28144fda2fc14ec',1,'glm']]],
+ ['imat2x3',['imat2x3',['../a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605',1,'glm']]],
+ ['imat2x4',['imat2x4',['../a00167.html#ga9d8faafdca42583d67e792dd038fc668',1,'glm']]],
+ ['imat3',['imat3',['../a00167.html#ga038f68437155ffa3c2583a15264a8195',1,'glm']]],
+ ['imat3x2',['imat3x2',['../a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f',1,'glm']]],
+ ['imat3x3',['imat3x3',['../a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4',1,'glm']]],
+ ['imat3x4',['imat3x4',['../a00167.html#ga6e9ce23496d8b08dfc302d4039694b58',1,'glm']]],
+ ['imat4',['imat4',['../a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb',1,'glm']]],
+ ['imat4x2',['imat4x2',['../a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa',1,'glm']]],
+ ['imat4x3',['imat4x3',['../a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5',1,'glm']]],
+ ['imat4x4',['imat4x4',['../a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b',1,'glm']]],
+ ['int1',['int1',['../a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3',1,'glm']]],
+ ['int16',['int16',['../a00177.html#ga302041c186d0d028bea31b711fe16759',1,'glm']]],
+ ['int16_5ft',['int16_t',['../a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede',1,'glm']]],
+ ['int1x1',['int1x1',['../a00187.html#ga056ffe02d3a45af626f8e62221881c7a',1,'glm']]],
+ ['int2',['int2',['../a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700',1,'glm']]],
+ ['int2x2',['int2x2',['../a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc',1,'glm']]],
+ ['int2x3',['int2x3',['../a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434',1,'glm']]],
+ ['int2x4',['int2x4',['../a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e',1,'glm']]],
+ ['int3',['int3',['../a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88',1,'glm']]],
+ ['int32',['int32',['../a00177.html#ga8df669f4e7698dfe0c0354d92578d74f',1,'glm']]],
+ ['int32_5ft',['int32_t',['../a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710',1,'glm']]],
+ ['int3x2',['int3x2',['../a00187.html#gaa98b1a06b802c975f02a5583f43632db',1,'glm']]],
+ ['int3x3',['int3x3',['../a00187.html#ga20c4d23defbc123ac4745c9b4262156f',1,'glm']]],
+ ['int3x4',['int3x4',['../a00187.html#ga7b00c53838143bce963177122ab92c39',1,'glm']]],
+ ['int4',['int4',['../a00187.html#gab19c2df22e9b14081390fabd074081f1',1,'glm']]],
+ ['int4x2',['int4x2',['../a00187.html#gaa53815539021200c4e10fd282832dcd3',1,'glm']]],
+ ['int4x3',['int4x3',['../a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe',1,'glm']]],
+ ['int4x4',['int4x4',['../a00187.html#ga3bacf576b4b29f2f2959abff7a36652d',1,'glm']]],
+ ['int64',['int64',['../a00177.html#gaff5189f97f9e842d9636a0f240001b2e',1,'glm']]],
+ ['int64_5ft',['int64_t',['../a00177.html#ga322a7d7d2c2c68994dc872a33de63c61',1,'glm']]],
+ ['int8',['int8',['../a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0',1,'glm']]],
+ ['int8_5ft',['int8_t',['../a00177.html#ga4bf09d8838a86866b39ee6e109341645',1,'glm']]],
+ ['ivec2',['ivec2',['../a00156.html#ga2ab812bd103527e2d6c62c2e2f5ee78f',1,'glm']]],
+ ['ivec3',['ivec3',['../a00156.html#ga34aee73784bcc247d426250540c1911c',1,'glm']]],
+ ['ivec4',['ivec4',['../a00156.html#gaaa26c41d168dc00be0fe55f4d0a34224',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_6.html b/3rdparty/glm/doc/api/search/typedefs_6.html
new file mode 100644
index 00000000000..742e92b5432
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_6.js b/3rdparty/glm/doc/api/search/typedefs_6.js
new file mode 100644
index 00000000000..9c3e6b74a6a
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_6.js
@@ -0,0 +1,96 @@
+var searchData=
+[
+ ['lowp_5fbvec2',['lowp_bvec2',['../a00157.html#ga28dcda102dd8c94ec500ee786af7a30a',1,'glm']]],
+ ['lowp_5fbvec3',['lowp_bvec3',['../a00157.html#ga76c0948546deeeb18bfda36f18b3e673',1,'glm']]],
+ ['lowp_5fbvec4',['lowp_bvec4',['../a00157.html#gafa2087ead0d0e2a3c907e3fbd99f4d85',1,'glm']]],
+ ['lowp_5fddualquat',['lowp_ddualquat',['../a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a',1,'glm']]],
+ ['lowp_5fdmat2',['lowp_dmat2',['../a00157.html#gae0a526a0143fc69d7b317c078d591654',1,'glm']]],
+ ['lowp_5fdmat2x2',['lowp_dmat2x2',['../a00157.html#ga000c064e4eba15bf83f8e1e393a8e7fd',1,'glm']]],
+ ['lowp_5fdmat2x3',['lowp_dmat2x3',['../a00157.html#gaaf2d7cf98b74a43fc432725887685dc0',1,'glm']]],
+ ['lowp_5fdmat2x4',['lowp_dmat2x4',['../a00157.html#ga8ac69e9ed1addf122f51396f73cdbbf3',1,'glm']]],
+ ['lowp_5fdmat3',['lowp_dmat3',['../a00157.html#ga19b0c9580b447443cf3fe589bd661e03',1,'glm']]],
+ ['lowp_5fdmat3x2',['lowp_dmat3x2',['../a00157.html#ga27ccd1bcb24920508a7b6a24bd9265ab',1,'glm']]],
+ ['lowp_5fdmat3x3',['lowp_dmat3x3',['../a00157.html#gae37a4275ffa68d0c3527a345e76598c0',1,'glm']]],
+ ['lowp_5fdmat3x4',['lowp_dmat3x4',['../a00157.html#ga813bff547772bcefebc026e5deba0fe3',1,'glm']]],
+ ['lowp_5fdmat4',['lowp_dmat4',['../a00157.html#gaac3aee10bee5fa5206de8bf024a8b301',1,'glm']]],
+ ['lowp_5fdmat4x2',['lowp_dmat4x2',['../a00157.html#ga05c2d27aeca091e369fca027e72177e8',1,'glm']]],
+ ['lowp_5fdmat4x3',['lowp_dmat4x3',['../a00157.html#ga2b5b1b810f3b9988f49f985387e35e03',1,'glm']]],
+ ['lowp_5fdmat4x4',['lowp_dmat4x4',['../a00157.html#gaea9e20c3668305cf0de5334d217408d9',1,'glm']]],
+ ['lowp_5fdualquat',['lowp_dualquat',['../a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa',1,'glm']]],
+ ['lowp_5fdvec2',['lowp_dvec2',['../a00157.html#ga96eb13864627c7c832b5af36aa73bda6',1,'glm']]],
+ ['lowp_5fdvec3',['lowp_dvec3',['../a00157.html#gaf7ec7b1cefeeaf63659460ef52fd06a9',1,'glm']]],
+ ['lowp_5fdvec4',['lowp_dvec4',['../a00157.html#gab5d6a45e1bbb13314b47793865a4c072',1,'glm']]],
+ ['lowp_5ffdualquat',['lowp_fdualquat',['../a00189.html#gaa38f671be25a7f3b136a452a8bb42860',1,'glm']]],
+ ['lowp_5ffloat',['lowp_float',['../a00157.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1',1,'glm']]],
+ ['lowp_5fi16',['lowp_i16',['../a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7',1,'glm']]],
+ ['lowp_5fi32',['lowp_i32',['../a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac',1,'glm']]],
+ ['lowp_5fi64',['lowp_i64',['../a00177.html#ga354736e0c645099cd44c42fb2f87c2b8',1,'glm']]],
+ ['lowp_5fi8',['lowp_i8',['../a00177.html#ga552a6bde5e75984efb0f863278da2e54',1,'glm']]],
+ ['lowp_5fimat2',['lowp_imat2',['../a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0',1,'glm']]],
+ ['lowp_5fimat2x2',['lowp_imat2x2',['../a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31',1,'glm']]],
+ ['lowp_5fimat2x3',['lowp_imat2x3',['../a00167.html#ga3f8fb92b62e31528886cc728d3404ecc',1,'glm']]],
+ ['lowp_5fimat2x4',['lowp_imat2x4',['../a00167.html#ga892b53e26d36763f380b08a5768dee6b',1,'glm']]],
+ ['lowp_5fimat3',['lowp_imat3',['../a00167.html#ga148f3a81d15a570b9460158e6964f41c',1,'glm']]],
+ ['lowp_5fimat3x2',['lowp_imat3x2',['../a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35',1,'glm']]],
+ ['lowp_5fimat3x3',['lowp_imat3x3',['../a00167.html#gab3d5c6aaeb5815f8f080305888f6828f',1,'glm']]],
+ ['lowp_5fimat3x4',['lowp_imat3x4',['../a00167.html#ga3d913d70c629aa7ad504739286328f1b',1,'glm']]],
+ ['lowp_5fimat4',['lowp_imat4',['../a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4',1,'glm']]],
+ ['lowp_5fimat4x2',['lowp_imat4x2',['../a00167.html#ga3fdfce509d30bdd7778b8b156cb968df',1,'glm']]],
+ ['lowp_5fimat4x3',['lowp_imat4x3',['../a00167.html#ga6a9945878f99294cfde40c6c3a867d69',1,'glm']]],
+ ['lowp_5fimat4x4',['lowp_imat4x4',['../a00167.html#ga330140b22a9449caab308f2c69bf4c80',1,'glm']]],
+ ['lowp_5fint',['lowp_int',['../a00157.html#gad0fa1e32e8b3552ed63556eca51c620e',1,'glm']]],
+ ['lowp_5fint16',['lowp_int16',['../a00177.html#ga698e36b01167fc0f037889334dce8def',1,'glm']]],
+ ['lowp_5fint16_5ft',['lowp_int16_t',['../a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a',1,'glm']]],
+ ['lowp_5fint32',['lowp_int32',['../a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02',1,'glm']]],
+ ['lowp_5fint32_5ft',['lowp_int32_t',['../a00177.html#ga0350631d35ff800e6133ac6243b13cbc',1,'glm']]],
+ ['lowp_5fint64',['lowp_int64',['../a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c',1,'glm']]],
+ ['lowp_5fint64_5ft',['lowp_int64_t',['../a00177.html#gaebf341fc4a5be233f7dde962c2e33847',1,'glm']]],
+ ['lowp_5fint8',['lowp_int8',['../a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6',1,'glm']]],
+ ['lowp_5fint8_5ft',['lowp_int8_t',['../a00177.html#ga119c41d73fe9977358174eb3ac1035a3',1,'glm']]],
+ ['lowp_5fivec2',['lowp_ivec2',['../a00157.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57',1,'glm']]],
+ ['lowp_5fivec3',['lowp_ivec3',['../a00157.html#gaa040f25233c314adc9560dcdb9dadac2',1,'glm']]],
+ ['lowp_5fivec4',['lowp_ivec4',['../a00157.html#ga8b7483dc67dc332f9d874c6cf7172203',1,'glm']]],
+ ['lowp_5fmat2',['lowp_mat2',['../a00157.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85',1,'glm']]],
+ ['lowp_5fmat2x2',['lowp_mat2x2',['../a00157.html#gab1a0d4d8fd3bb85f6616dac9dbef2981',1,'glm']]],
+ ['lowp_5fmat2x3',['lowp_mat2x3',['../a00157.html#gae8fe30d421bc141fa84ad414b803947d',1,'glm']]],
+ ['lowp_5fmat2x4',['lowp_mat2x4',['../a00157.html#gad64a0179b75508142a72917854034b9b',1,'glm']]],
+ ['lowp_5fmat3',['lowp_mat3',['../a00157.html#ga6a66118df7e2398a36ca4a8e98ce6783',1,'glm']]],
+ ['lowp_5fmat3x2',['lowp_mat3x2',['../a00157.html#gaa2542e884ac7d05ada8ebb078b721924',1,'glm']]],
+ ['lowp_5fmat3x3',['lowp_mat3x3',['../a00157.html#gab7ca36023fa56d8006341a192ee09260',1,'glm']]],
+ ['lowp_5fmat3x4',['lowp_mat3x4',['../a00157.html#ga2938621d14e70bc3dc576b4fc1547a7e',1,'glm']]],
+ ['lowp_5fmat4',['lowp_mat4',['../a00157.html#gabb754302a1ff8736ec7814d860c9a3c0',1,'glm']]],
+ ['lowp_5fmat4x2',['lowp_mat4x2',['../a00157.html#gac6d04a9590cb7ab62cbe29203dbb9b93',1,'glm']]],
+ ['lowp_5fmat4x3',['lowp_mat4x3',['../a00157.html#gafb3dbbc82f8b166867fd21c76eb8db4f',1,'glm']]],
+ ['lowp_5fmat4x4',['lowp_mat4x4',['../a00157.html#gafff11cbd0abc762e8a340870a31d5bfa',1,'glm']]],
+ ['lowp_5fu16',['lowp_u16',['../a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126',1,'glm']]],
+ ['lowp_5fu32',['lowp_u32',['../a00177.html#ga4f072ada9552e1e480bbb3b1acde5250',1,'glm']]],
+ ['lowp_5fu64',['lowp_u64',['../a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed',1,'glm']]],
+ ['lowp_5fu8',['lowp_u8',['../a00177.html#ga1b09f03da7ac43055c68a349d5445083',1,'glm']]],
+ ['lowp_5fuint',['lowp_uint',['../a00157.html#ga25ebc60727fc8b4a1167665f9ecdca97',1,'glm']]],
+ ['lowp_5fuint16',['lowp_uint16',['../a00177.html#gad68bfd9f881856fc863a6ebca0b67f78',1,'glm']]],
+ ['lowp_5fuint16_5ft',['lowp_uint16_t',['../a00177.html#ga91c4815f93177eb423362fd296a87e9f',1,'glm']]],
+ ['lowp_5fuint32',['lowp_uint32',['../a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b',1,'glm']]],
+ ['lowp_5fuint32_5ft',['lowp_uint32_t',['../a00177.html#gaf1b735b4b1145174f4e4167d13778f9b',1,'glm']]],
+ ['lowp_5fuint64',['lowp_uint64',['../a00177.html#gaa212b805736a759998e312cbdd550fae',1,'glm']]],
+ ['lowp_5fuint64_5ft',['lowp_uint64_t',['../a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153',1,'glm']]],
+ ['lowp_5fuint8',['lowp_uint8',['../a00177.html#gaf49470869e9be2c059629b250619804e',1,'glm']]],
+ ['lowp_5fuint8_5ft',['lowp_uint8_t',['../a00177.html#ga667b2ece2b258be898812dc2177995d1',1,'glm']]],
+ ['lowp_5fumat2',['lowp_umat2',['../a00167.html#ga1406406e396b56bde3c7c0722f657064',1,'glm']]],
+ ['lowp_5fumat2x2',['lowp_umat2x2',['../a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3',1,'glm']]],
+ ['lowp_5fumat2x3',['lowp_umat2x3',['../a00167.html#gaa86bd9dc8463b46a46ee944948111676',1,'glm']]],
+ ['lowp_5fumat2x4',['lowp_umat2x4',['../a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4',1,'glm']]],
+ ['lowp_5fumat3',['lowp_umat3',['../a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033',1,'glm']]],
+ ['lowp_5fumat3x2',['lowp_umat3x2',['../a00167.html#gad73943020bb49a072317ecfc52d587f0',1,'glm']]],
+ ['lowp_5fumat3x3',['lowp_umat3x3',['../a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67',1,'glm']]],
+ ['lowp_5fumat3x4',['lowp_umat3x4',['../a00167.html#ga2dce1c00ed50fd09fe349de3713d96db',1,'glm']]],
+ ['lowp_5fumat4',['lowp_umat4',['../a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884',1,'glm']]],
+ ['lowp_5fumat4x2',['lowp_umat4x2',['../a00167.html#ga76cab31d492ea214c693ab9132b4de95',1,'glm']]],
+ ['lowp_5fumat4x3',['lowp_umat4x3',['../a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d',1,'glm']]],
+ ['lowp_5fumat4x4',['lowp_umat4x4',['../a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2',1,'glm']]],
+ ['lowp_5fuvec2',['lowp_uvec2',['../a00157.html#ga6bfb90b936bbbc67e438bb9ac6910309',1,'glm']]],
+ ['lowp_5fuvec3',['lowp_uvec3',['../a00157.html#gaf0049c860a612da9bd3ba9ac9e49e820',1,'glm']]],
+ ['lowp_5fuvec4',['lowp_uvec4',['../a00157.html#ga6efcd4574e112cfcda320db58e649ee3',1,'glm']]],
+ ['lowp_5fvec2',['lowp_vec2',['../a00157.html#ga51e835b2aa735782f0174328acffa521',1,'glm']]],
+ ['lowp_5fvec3',['lowp_vec3',['../a00157.html#gaf89f8fb5a06848ea4ec1c3a02813454e',1,'glm']]],
+ ['lowp_5fvec4',['lowp_vec4',['../a00157.html#ga8f9002d3ab660e3171f5cdea1aab8395',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_7.html b/3rdparty/glm/doc/api/search/typedefs_7.html
new file mode 100644
index 00000000000..ad03564b816
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_7.js b/3rdparty/glm/doc/api/search/typedefs_7.js
new file mode 100644
index 00000000000..4022a4158ec
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_7.js
@@ -0,0 +1,108 @@
+var searchData=
+[
+ ['mat2',['mat2',['../a00156.html#ga6e30cfba068ebc3c71fe1f8b3110e450',1,'glm']]],
+ ['mat2x2',['mat2x2',['../a00156.html#ga0c84b211a5730357b63c6d2e4fb696d5',1,'glm']]],
+ ['mat2x3',['mat2x3',['../a00156.html#gafb063d734266e92915d87f8943560471',1,'glm']]],
+ ['mat2x4',['mat2x4',['../a00156.html#ga4d2ac1a80c36fb5a1d15914035f792ac',1,'glm']]],
+ ['mat3',['mat3',['../a00156.html#ga6dd3ec98a548755676267e59142911f8',1,'glm']]],
+ ['mat3x2',['mat3x2',['../a00156.html#ga3839ca29d011a80ff3ede7f22ba602a4',1,'glm']]],
+ ['mat3x3',['mat3x3',['../a00156.html#ga378921b6a07bcdad946858b340f69ab1',1,'glm']]],
+ ['mat3x4',['mat3x4',['../a00156.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf',1,'glm']]],
+ ['mat4',['mat4',['../a00156.html#gade0eb47c01f79384a6f38017ede17446',1,'glm']]],
+ ['mat4x2',['mat4x2',['../a00156.html#ga1b3f6a5cbc17362141f9781262ed838f',1,'glm']]],
+ ['mat4x3',['mat4x3',['../a00156.html#gacd9ff3b943b3d8bda4f4b388320420fd',1,'glm']]],
+ ['mat4x4',['mat4x4',['../a00156.html#ga089315d5a0c20ac6eaa17a854bbd2e81',1,'glm']]],
+ ['mediump_5fbvec2',['mediump_bvec2',['../a00157.html#gae1f4f68346474246eb4a9952af49e72b',1,'glm']]],
+ ['mediump_5fbvec3',['mediump_bvec3',['../a00157.html#ga0d1778766f17c4329a8c3f2b37f5fab0',1,'glm']]],
+ ['mediump_5fbvec4',['mediump_bvec4',['../a00157.html#ga3f0c27f7ab42f004054a247c93a7bf57',1,'glm']]],
+ ['mediump_5fddualquat',['mediump_ddualquat',['../a00189.html#ga0fb11e48e2d16348ccb06a25213641b4',1,'glm']]],
+ ['mediump_5fdmat2',['mediump_dmat2',['../a00157.html#ga330077a4cb3707329120b5bddcd7db2d',1,'glm']]],
+ ['mediump_5fdmat2x2',['mediump_dmat2x2',['../a00157.html#ga78987759d40d7cb03ebe948fb1dcd879',1,'glm']]],
+ ['mediump_5fdmat2x3',['mediump_dmat2x3',['../a00157.html#ga2569a68be3f1cf56e7e5e0920fe5a246',1,'glm']]],
+ ['mediump_5fdmat2x4',['mediump_dmat2x4',['../a00157.html#gaccf963b117beeadf8c5c057000762dd3',1,'glm']]],
+ ['mediump_5fdmat3',['mediump_dmat3',['../a00157.html#ga8091edef9fdf54b1996ae5bd00f847e5',1,'glm']]],
+ ['mediump_5fdmat3x2',['mediump_dmat3x2',['../a00157.html#ga6b81830ed1ce3862bcbbf41eccc3890b',1,'glm']]],
+ ['mediump_5fdmat3x3',['mediump_dmat3x3',['../a00157.html#ga5e5de055b7af150796e1c017de84cdb1',1,'glm']]],
+ ['mediump_5fdmat3x4',['mediump_dmat3x4',['../a00157.html#ga187d10ddab0492545b78ea1dd108f28d',1,'glm']]],
+ ['mediump_5fdmat4',['mediump_dmat4',['../a00157.html#ga27be34d618d20fbd70d4c62c21256b0c',1,'glm']]],
+ ['mediump_5fdmat4x2',['mediump_dmat4x2',['../a00157.html#gad4a5b294c54702b7c8e9ee32a451dea9',1,'glm']]],
+ ['mediump_5fdmat4x3',['mediump_dmat4x3',['../a00157.html#ga27b55deeb16fda7262d64dc1fd1a56bc',1,'glm']]],
+ ['mediump_5fdmat4x4',['mediump_dmat4x4',['../a00157.html#ga857947b2eef2c9144c34b8e3031f2f12',1,'glm']]],
+ ['mediump_5fdualquat',['mediump_dualquat',['../a00189.html#gaa7aeb54c167712b38f2178a1be2360ad',1,'glm']]],
+ ['mediump_5fdvec2',['mediump_dvec2',['../a00157.html#ga388fd99d9ffc7190a4732c35b0c7bfc9',1,'glm']]],
+ ['mediump_5fdvec3',['mediump_dvec3',['../a00157.html#ga0b4741d444b131ef1fc54b19c37f72be',1,'glm']]],
+ ['mediump_5fdvec4',['mediump_dvec4',['../a00157.html#ga3e804226444dfe246133fc6ec4a3912f',1,'glm']]],
+ ['mediump_5ffdualquat',['mediump_fdualquat',['../a00189.html#ga4a6b594ff7e81150d8143001367a9431',1,'glm']]],
+ ['mediump_5ffloat',['mediump_float',['../a00157.html#ga280c68f537f4b1e03a00b23e62573b98',1,'glm']]],
+ ['mediump_5fi16',['mediump_i16',['../a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a',1,'glm']]],
+ ['mediump_5fi32',['mediump_i32',['../a00177.html#gaf5e94bf2a20af7601787c154751dc2e1',1,'glm']]],
+ ['mediump_5fi64',['mediump_i64',['../a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f',1,'glm']]],
+ ['mediump_5fi8',['mediump_i8',['../a00177.html#gacf1ded173e1e2d049c511d095b259e21',1,'glm']]],
+ ['mediump_5fimat2',['mediump_imat2',['../a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655',1,'glm']]],
+ ['mediump_5fimat2x2',['mediump_imat2x2',['../a00167.html#gabc572d47b60f7e595d7aad945f5d13a8',1,'glm']]],
+ ['mediump_5fimat2x3',['mediump_imat2x3',['../a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a',1,'glm']]],
+ ['mediump_5fimat2x4',['mediump_imat2x4',['../a00167.html#gaa08e27efc514088315ccbaf818f01880',1,'glm']]],
+ ['mediump_5fimat3',['mediump_imat3',['../a00167.html#gac2b0985b576fe0eba47227499aed2b3c',1,'glm']]],
+ ['mediump_5fimat3x2',['mediump_imat3x2',['../a00167.html#ga1a61c706b31aa60fd7012b2b27765983',1,'glm']]],
+ ['mediump_5fimat3x3',['mediump_imat3x3',['../a00167.html#ga05064e28b911be1af0503ddf6e6204a3',1,'glm']]],
+ ['mediump_5fimat3x4',['mediump_imat3x4',['../a00167.html#ga8e0f797a57fec255f0eec7da1511bc38',1,'glm']]],
+ ['mediump_5fimat4',['mediump_imat4',['../a00167.html#ga551ad2e4e0304c67451ffbadeef0d615',1,'glm']]],
+ ['mediump_5fimat4x2',['mediump_imat4x2',['../a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54',1,'glm']]],
+ ['mediump_5fimat4x3',['mediump_imat4x3',['../a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d',1,'glm']]],
+ ['mediump_5fimat4x4',['mediump_imat4x4',['../a00167.html#ga655bfcca624f422aff308dcc99688ce8',1,'glm']]],
+ ['mediump_5fint',['mediump_int',['../a00157.html#ga212ef8f883878cb7430228a279a7d866',1,'glm']]],
+ ['mediump_5fint16',['mediump_int16',['../a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d',1,'glm']]],
+ ['mediump_5fint16_5ft',['mediump_int16_t',['../a00177.html#ga80e72fe94c88498537e8158ba7591c54',1,'glm']]],
+ ['mediump_5fint32',['mediump_int32',['../a00177.html#ga5244cef85d6e870e240c76428a262ae8',1,'glm']]],
+ ['mediump_5fint32_5ft',['mediump_int32_t',['../a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180',1,'glm']]],
+ ['mediump_5fint64',['mediump_int64',['../a00177.html#ga7b968f2b86a0442a89c7359171e1d866',1,'glm']]],
+ ['mediump_5fint64_5ft',['mediump_int64_t',['../a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64',1,'glm']]],
+ ['mediump_5fint8',['mediump_int8',['../a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e',1,'glm']]],
+ ['mediump_5fint8_5ft',['mediump_int8_t',['../a00177.html#ga6d7b3789ecb932c26430009478cac7ae',1,'glm']]],
+ ['mediump_5fivec2',['mediump_ivec2',['../a00157.html#ga199cc7c4cfa7c7cadad0c74d2f059aef',1,'glm']]],
+ ['mediump_5fivec3',['mediump_ivec3',['../a00157.html#ga9b7843453f7ad6ebfa26e50408b8dcf0',1,'glm']]],
+ ['mediump_5fivec4',['mediump_ivec4',['../a00157.html#ga14614613c8e79772c8a6d25dd1c45995',1,'glm']]],
+ ['mediump_5fmat2',['mediump_mat2',['../a00157.html#ga57b1e6c49a1432cefa518f13a56c5d47',1,'glm']]],
+ ['mediump_5fmat2x2',['mediump_mat2x2',['../a00157.html#ga1b77963ca2812ac2653624fa0f81ba74',1,'glm']]],
+ ['mediump_5fmat2x3',['mediump_mat2x3',['../a00157.html#ga8c17198123baf6bfb59582ec42a3ca09',1,'glm']]],
+ ['mediump_5fmat2x4',['mediump_mat2x4',['../a00157.html#ga7e95e348c99ef3d56b87ede14bc90bfe',1,'glm']]],
+ ['mediump_5fmat3',['mediump_mat3',['../a00157.html#ga29d313adfc82fd4179d29a9fd98b1b5b',1,'glm']]],
+ ['mediump_5fmat3x2',['mediump_mat3x2',['../a00157.html#ga9fa569295a9bd6ce0825ccb832c8aac9',1,'glm']]],
+ ['mediump_5fmat3x3',['mediump_mat3x3',['../a00157.html#ga2f02cb49e386f65817c10ead9bbe7dec',1,'glm']]],
+ ['mediump_5fmat3x4',['mediump_mat3x4',['../a00157.html#gac7afc5b81d320dbd7bd6a6f07d587e24',1,'glm']]],
+ ['mediump_5fmat4',['mediump_mat4',['../a00157.html#ga6259813853e4253f80c2a08672e9fb6a',1,'glm']]],
+ ['mediump_5fmat4x2',['mediump_mat4x2',['../a00157.html#ga22194c68bc3d798bb68a22f635558c8d',1,'glm']]],
+ ['mediump_5fmat4x3',['mediump_mat4x3',['../a00157.html#ga38a01cba69e3db9b1a1056b362519acb',1,'glm']]],
+ ['mediump_5fmat4x4',['mediump_mat4x4',['../a00157.html#ga535614d97234065ab44b2513667c8563',1,'glm']]],
+ ['mediump_5fu16',['mediump_u16',['../a00177.html#ga9df98857be695d5a30cb30f5bfa38a80',1,'glm']]],
+ ['mediump_5fu32',['mediump_u32',['../a00177.html#ga1bd0e914158bf03135f8a317de6debe9',1,'glm']]],
+ ['mediump_5fu64',['mediump_u64',['../a00177.html#ga2af9490085ae3bdf36a544e9dd073610',1,'glm']]],
+ ['mediump_5fu8',['mediump_u8',['../a00177.html#gad1213a22bbb9e4107f07eaa4956f8281',1,'glm']]],
+ ['mediump_5fuint',['mediump_uint',['../a00157.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e',1,'glm']]],
+ ['mediump_5fuint16',['mediump_uint16',['../a00177.html#ga2885a6c89916911e418c06bb76b9bdbb',1,'glm']]],
+ ['mediump_5fuint16_5ft',['mediump_uint16_t',['../a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e',1,'glm']]],
+ ['mediump_5fuint32',['mediump_uint32',['../a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f',1,'glm']]],
+ ['mediump_5fuint32_5ft',['mediump_uint32_t',['../a00177.html#gaf4dae276fd29623950de14a6ca2586b5',1,'glm']]],
+ ['mediump_5fuint64',['mediump_uint64',['../a00177.html#ga30652709815ad9404272a31957daa59e',1,'glm']]],
+ ['mediump_5fuint64_5ft',['mediump_uint64_t',['../a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9',1,'glm']]],
+ ['mediump_5fuint8',['mediump_uint8',['../a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3',1,'glm']]],
+ ['mediump_5fuint8_5ft',['mediump_uint8_t',['../a00177.html#gadfe65c78231039e90507770db50c98c7',1,'glm']]],
+ ['mediump_5fumat2',['mediump_umat2',['../a00167.html#ga7322b97f1be10c83290ab57ef784d493',1,'glm']]],
+ ['mediump_5fumat2x2',['mediump_umat2x2',['../a00167.html#ga0ffed083b64e4f764db0f446d2c49163',1,'glm']]],
+ ['mediump_5fumat2x3',['mediump_umat2x3',['../a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb',1,'glm']]],
+ ['mediump_5fumat2x4',['mediump_umat2x4',['../a00167.html#gac4abd549f2e521c7f40f53b6235c450e',1,'glm']]],
+ ['mediump_5fumat3',['mediump_umat3',['../a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6',1,'glm']]],
+ ['mediump_5fumat3x2',['mediump_umat3x2',['../a00167.html#ga3fb358a947f8ceaefddd75bce22cd947',1,'glm']]],
+ ['mediump_5fumat3x3',['mediump_umat3x3',['../a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5',1,'glm']]],
+ ['mediump_5fumat3x4',['mediump_umat3x4',['../a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc',1,'glm']]],
+ ['mediump_5fumat4',['mediump_umat4',['../a00167.html#gac23667a99ae1ec649b5e55cd5a05b833',1,'glm']]],
+ ['mediump_5fumat4x2',['mediump_umat4x2',['../a00167.html#gac8d1db85d62244fd90d240227c7f51ad',1,'glm']]],
+ ['mediump_5fumat4x3',['mediump_umat4x3',['../a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39',1,'glm']]],
+ ['mediump_5fumat4x4',['mediump_umat4x4',['../a00167.html#ga24716579cf155f4e042542808f83978c',1,'glm']]],
+ ['mediump_5fuvec2',['mediump_uvec2',['../a00157.html#ga392c0761c8bef616801e0d81a6867ed7',1,'glm']]],
+ ['mediump_5fuvec3',['mediump_uvec3',['../a00157.html#ga54ae0b7b207b8e7e88841d146d2de12e',1,'glm']]],
+ ['mediump_5fuvec4',['mediump_uvec4',['../a00157.html#ga631f5767b9d45c5cd3d0bcd67565b3f7',1,'glm']]],
+ ['mediump_5fvec2',['mediump_vec2',['../a00157.html#gac37a3fd0ecdcab044853c039409c9af7',1,'glm']]],
+ ['mediump_5fvec3',['mediump_vec3',['../a00157.html#ga591478a77e4324e0836abc17cbb13e83',1,'glm']]],
+ ['mediump_5fvec4',['mediump_vec4',['../a00157.html#gaae72e97529b8fa4e0341b425d4fe03ae',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_8.html b/3rdparty/glm/doc/api/search/typedefs_8.html
new file mode 100644
index 00000000000..4e9ac73db47
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_8.js b/3rdparty/glm/doc/api/search/typedefs_8.js
new file mode 100644
index 00000000000..0530af27391
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['qword',['qword',['../a00222.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_9.html b/3rdparty/glm/doc/api/search/typedefs_9.html
new file mode 100644
index 00000000000..b07ee409cda
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_9.js b/3rdparty/glm/doc/api/search/typedefs_9.js
new file mode 100644
index 00000000000..b3678bf5cec
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_9.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['sint',['sint',['../a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]],
+ ['size1',['size1',['../a00227.html#ga47c940f279a6b97ffc301eb4526a445a',1,'glm']]],
+ ['size1_5ft',['size1_t',['../a00227.html#ga77d0b061efa41cb2ed2285d09294314e',1,'glm']]],
+ ['size2',['size2',['../a00227.html#gac0ef172641a1555684da0beb735c2a79',1,'glm']]],
+ ['size2_5ft',['size2_t',['../a00227.html#gaa7d72bbe318d27da9d30f27095e4c75e',1,'glm']]],
+ ['size3',['size3',['../a00227.html#ga51b5e9650c459973134ffb4236ae88b6',1,'glm']]],
+ ['size3_5ft',['size3_t',['../a00227.html#gad364e6c302642e3bb89d756df5d0c8c6',1,'glm']]],
+ ['size4',['size4',['../a00227.html#gaf07a3f432e328c99d35637225c988121',1,'glm']]],
+ ['size4_5ft',['size4_t',['../a00227.html#ga06862b7d59094244025d34407b2cb796',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_a.html b/3rdparty/glm/doc/api/search/typedefs_a.html
new file mode 100644
index 00000000000..b1a32661d66
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_a.js b/3rdparty/glm/doc/api/search/typedefs_a.js
new file mode 100644
index 00000000000..a755b8d91ef
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_a.js
@@ -0,0 +1,47 @@
+var searchData=
+[
+ ['u16',['u16',['../a00177.html#gaa2d7acc0adb536fab71fe261232a40ff',1,'glm']]],
+ ['u16vec1',['u16vec1',['../a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907',1,'glm::u16vec1()'],['../a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0',1,'glm::gtx::u16vec1()']]],
+ ['u16vec2',['u16vec2',['../a00177.html#ga426030555085ed6c39a54e73afbef962',1,'glm']]],
+ ['u16vec3',['u16vec3',['../a00177.html#ga7f5dbe417199277e449b8db0210acb71',1,'glm']]],
+ ['u16vec4',['u16vec4',['../a00177.html#gaf524c9059f0342668d8eea359bcceaae',1,'glm']]],
+ ['u32',['u32',['../a00177.html#ga8165913e068444f7842302d40ba897b9',1,'glm']]],
+ ['u32vec1',['u32vec1',['../a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9',1,'glm::u32vec1()'],['../a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3',1,'glm::gtx::u32vec1()']]],
+ ['u32vec2',['u32vec2',['../a00177.html#ga0741d40e2b0fea4f1c50cb325114f075',1,'glm']]],
+ ['u32vec3',['u32vec3',['../a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23',1,'glm']]],
+ ['u32vec4',['u32vec4',['../a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6',1,'glm']]],
+ ['u64',['u64',['../a00177.html#gaf3f312156984c365e9f65620354da70b',1,'glm']]],
+ ['u64vec1',['u64vec1',['../a00177.html#ga793c9293cc687a0e342396a377c5df77',1,'glm::u64vec1()'],['../a00214.html#ga818de170e2584ab037130f2881925974',1,'glm::gtx::u64vec1()']]],
+ ['u64vec2',['u64vec2',['../a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e',1,'glm']]],
+ ['u64vec3',['u64vec3',['../a00177.html#ga3460933f040f59f0fedb29df1e9be71c',1,'glm']]],
+ ['u64vec4',['u64vec4',['../a00177.html#gafb6ca34df28889a5db9d244aed375411',1,'glm']]],
+ ['u8',['u8',['../a00177.html#gaecc7082561fc9028b844b6cf3d305d36',1,'glm']]],
+ ['u8vec1',['u8vec1',['../a00177.html#ga92e0c191e5cc326255284d08be3af7c5',1,'glm::u8vec1()'],['../a00214.html#ga5853fe457f4c8a6bc09343d0e9833980',1,'glm::gtx::u8vec1()']]],
+ ['u8vec2',['u8vec2',['../a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d',1,'glm']]],
+ ['u8vec3',['u8vec3',['../a00177.html#ga8ca60d0ba6d438892be6017f43747661',1,'glm']]],
+ ['u8vec4',['u8vec4',['../a00177.html#ga114e005014d910bea07954eee24b7efb',1,'glm']]],
+ ['uint',['uint',['../a00157.html#ga91ad9478d81a7aaf2593e8d9c3d06a14',1,'glm']]],
+ ['uint16',['uint16',['../a00177.html#ga13471cbbe74e4303a57f3743d007b74d',1,'glm']]],
+ ['uint16_5ft',['uint16_t',['../a00177.html#ga91f91f411080c37730856ff5887f5bcf',1,'glm']]],
+ ['uint32',['uint32',['../a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d',1,'glm']]],
+ ['uint32_5ft',['uint32_t',['../a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac',1,'glm']]],
+ ['uint64',['uint64',['../a00177.html#gab630f76c26b50298187f7889104d4b9c',1,'glm']]],
+ ['uint64_5ft',['uint64_t',['../a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee',1,'glm']]],
+ ['uint8',['uint8',['../a00177.html#ga36475e31b1992cfde54c1a6f5a148865',1,'glm']]],
+ ['uint8_5ft',['uint8_t',['../a00177.html#ga28d97808322d3c92186e4a0c067d7e8e',1,'glm']]],
+ ['umat2',['umat2',['../a00167.html#ga4cae85566f900debf930c41944b64691',1,'glm']]],
+ ['umat2x2',['umat2x2',['../a00167.html#gabf8acdd33ce8951051edbca5200898aa',1,'glm']]],
+ ['umat2x3',['umat2x3',['../a00167.html#ga1870da7578d5022b973a83155d386ab3',1,'glm']]],
+ ['umat2x4',['umat2x4',['../a00167.html#ga57936a3998e992370e59a223e0ee4fd4',1,'glm']]],
+ ['umat3',['umat3',['../a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6',1,'glm']]],
+ ['umat3x2',['umat3x2',['../a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a',1,'glm']]],
+ ['umat3x3',['umat3x3',['../a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb',1,'glm']]],
+ ['umat3x4',['umat3x4',['../a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba',1,'glm']]],
+ ['umat4',['umat4',['../a00167.html#ga38bc7bb6494e344185df596deeb4544c',1,'glm']]],
+ ['umat4x2',['umat4x2',['../a00167.html#ga70fa2d05896aa83cbc8c07672a429b53',1,'glm']]],
+ ['umat4x3',['umat4x3',['../a00167.html#ga87581417945411f75cb31dd6ca1dba98',1,'glm']]],
+ ['umat4x4',['umat4x4',['../a00167.html#gaf72e6d399c42985db6872c50f53d7eb8',1,'glm']]],
+ ['uvec2',['uvec2',['../a00156.html#ga9bcffa2d49f28d16f680757b5c0e7c84',1,'glm']]],
+ ['uvec3',['uvec3',['../a00156.html#gae85537b672ffe0b3218cbdf1823e1c72',1,'glm']]],
+ ['uvec4',['uvec4',['../a00156.html#gaa7c3a0e7ae50c34c3290415c115f251e',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_b.html b/3rdparty/glm/doc/api/search/typedefs_b.html
new file mode 100644
index 00000000000..eded260db50
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_b.js b/3rdparty/glm/doc/api/search/typedefs_b.js
new file mode 100644
index 00000000000..f1ddbfcdada
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['vec2',['vec2',['../a00156.html#ga09d0200e8ff86391d8804b4fefd5f1da',1,'glm']]],
+ ['vec3',['vec3',['../a00156.html#gaa8ea2429bb3cb41a715258a447f39897',1,'glm']]],
+ ['vec4',['vec4',['../a00156.html#gafbab23070ca47932487d25332adc7d7c',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/search/typedefs_c.html b/3rdparty/glm/doc/api/search/typedefs_c.html
new file mode 100644
index 00000000000..0ff00dda261
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/3rdparty/glm/doc/api/search/typedefs_c.js b/3rdparty/glm/doc/api/search/typedefs_c.js
new file mode 100644
index 00000000000..6bd9e361b3f
--- /dev/null
+++ b/3rdparty/glm/doc/api/search/typedefs_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['word',['word',['../a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]]
+];
diff --git a/3rdparty/glm/doc/api/tabs.css b/3rdparty/glm/doc/api/tabs.css
index 636277d9e9a..7b588291f54 100644
--- a/3rdparty/glm/doc/api/tabs.css
+++ b/3rdparty/glm/doc/api/tabs.css
@@ -1,12 +1,12 @@
.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-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,#FFF4F0), to(#FFF4F0));
background-color:#FFF8F0;
+
width: 100%;
z-index: 101;
font-size: 13px;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
.tabs2 {
@@ -25,11 +25,9 @@
.tablist li {
float: left;
display: table-cell;
+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFF4F0 95%, #FFF4F0);
+ 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,#FFF4F0), to(#FFF4F0));
- 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;
}
@@ -38,15 +36,13 @@
display: block;
padding: 0 20px;
font-weight: bold;
+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFF4F0 95%, #FFF4F0);
+ 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,#FFF4F0), to(#FFF4F0));
- 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);*/
+ background-color:#FFF4F0;
+ color: #992600;
text-decoration: none;
outline: none;
}
@@ -56,24 +52,18 @@
}
.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: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFF0F8 95%, #FFF0F8);
+ 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,#FFF8F0), to(#FF4000));
- /*background-image: url('tab_h.png');*/
- background-color:#FFFEFD;
- background-repeat:repeat-x;
+ background-color:#FFF8F0;
color: #FF8000;
- /*text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);*/
- text-decoration:underline;
+ text-decoration: none;
}
.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: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFFCF8 95%, #FFFCF8);
+ 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,#FFFCF8), to(#FFFCF8));
- /*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);*/
+ background-color:#FFFCF8;
+ color: #992600;
}
diff --git a/3rdparty/glm/doc/glm.docx b/3rdparty/glm/doc/glm.docx
deleted file mode 100644
index 1da42593769..00000000000
--- a/3rdparty/glm/doc/glm.docx
+++ /dev/null
Binary files differ
diff --git a/3rdparty/glm/doc/glm.pdf b/3rdparty/glm/doc/glm.pdf
deleted file mode 100644
index 79c34270047..00000000000
--- a/3rdparty/glm/doc/glm.pdf
+++ /dev/null
Binary files differ
diff --git a/3rdparty/glm/doc/logo.png b/3rdparty/glm/doc/logo.png
deleted file mode 100644
index 80b5f9d4f9e..00000000000
--- a/3rdparty/glm/doc/logo.png
+++ /dev/null
Binary files differ
diff --git a/3rdparty/glm/doc/man.doxy b/3rdparty/glm/doc/man.doxy
index faa82852075..b1f6d83e46a 100644
--- a/3rdparty/glm/doc/man.doxy
+++ b/3rdparty/glm/doc/man.doxy
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
-PROJECT_NAME = 0.9.7
+PROJECT_NAME = "0.9.9 API documenation"
# 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
@@ -51,7 +51,7 @@ PROJECT_BRIEF =
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
-PROJECT_LOGO = D:/Source/G-Truc/glm/doc/logo.png
+PROJECT_LOGO = G:/Source/G-Truc/glm/doc/logo.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
@@ -98,7 +98,7 @@ OUTPUT_LANGUAGE = English
# documentation (similar to Javadoc). Set to NO to disable this.
# The default value is: YES.
-BRIEF_MEMBER_DESC = NO
+BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
# description of a member or function before the detailed description
@@ -1006,6 +1006,25 @@ USE_HTAGS = NO
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 accurate 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
#---------------------------------------------------------------------------
@@ -1509,7 +1528,7 @@ MATHJAX_CODEFILE =
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
-SEARCHENGINE = NO
+SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There
diff --git a/3rdparty/glm/doc/manual/frontpage1.png b/3rdparty/glm/doc/manual/frontpage1.png
new file mode 100644
index 00000000000..05fa2810162
--- /dev/null
+++ b/3rdparty/glm/doc/manual/frontpage1.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/frontpage2.png b/3rdparty/glm/doc/manual/frontpage2.png
new file mode 100644
index 00000000000..abd06890882
--- /dev/null
+++ b/3rdparty/glm/doc/manual/frontpage2.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/g-truc.png b/3rdparty/glm/doc/manual/g-truc.png
new file mode 100644
index 00000000000..df06506b784
--- /dev/null
+++ b/3rdparty/glm/doc/manual/g-truc.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/logo-mini.png b/3rdparty/glm/doc/manual/logo-mini.png
new file mode 100644
index 00000000000..48d60ab1148
--- /dev/null
+++ b/3rdparty/glm/doc/manual/logo-mini.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-perlin1.jpg b/3rdparty/glm/doc/manual/noise-perlin1.jpg
new file mode 100644
index 00000000000..342c9169ddb
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-perlin1.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-perlin2.jpg b/3rdparty/glm/doc/manual/noise-perlin2.jpg
new file mode 100644
index 00000000000..3832e63b64e
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-perlin2.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-perlin3.jpg b/3rdparty/glm/doc/manual/noise-perlin3.jpg
new file mode 100644
index 00000000000..2825f9a063b
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-perlin3.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-perlin4.png b/3rdparty/glm/doc/manual/noise-perlin4.png
new file mode 100644
index 00000000000..5277c9e7b29
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-perlin4.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-perlin5.png b/3rdparty/glm/doc/manual/noise-perlin5.png
new file mode 100644
index 00000000000..fcb866c6b56
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-perlin5.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-perlin6.png b/3rdparty/glm/doc/manual/noise-perlin6.png
new file mode 100644
index 00000000000..a0582fabeb7
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-perlin6.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-simplex1.jpg b/3rdparty/glm/doc/manual/noise-simplex1.jpg
new file mode 100644
index 00000000000..b8d7b4db873
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-simplex1.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-simplex2.jpg b/3rdparty/glm/doc/manual/noise-simplex2.jpg
new file mode 100644
index 00000000000..a7146d8404a
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-simplex2.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/noise-simplex3.jpg b/3rdparty/glm/doc/manual/noise-simplex3.jpg
new file mode 100644
index 00000000000..337cc7adf21
--- /dev/null
+++ b/3rdparty/glm/doc/manual/noise-simplex3.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/random-ballrand.png b/3rdparty/glm/doc/manual/random-ballrand.png
new file mode 100644
index 00000000000..b24117b0f86
--- /dev/null
+++ b/3rdparty/glm/doc/manual/random-ballrand.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/random-circularrand.png b/3rdparty/glm/doc/manual/random-circularrand.png
new file mode 100644
index 00000000000..926828bf928
--- /dev/null
+++ b/3rdparty/glm/doc/manual/random-circularrand.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/random-diskrand.png b/3rdparty/glm/doc/manual/random-diskrand.png
new file mode 100644
index 00000000000..df9474c5118
--- /dev/null
+++ b/3rdparty/glm/doc/manual/random-diskrand.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/random-gaussrand.png b/3rdparty/glm/doc/manual/random-gaussrand.png
new file mode 100644
index 00000000000..8894500157d
--- /dev/null
+++ b/3rdparty/glm/doc/manual/random-gaussrand.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/random-linearrand.png b/3rdparty/glm/doc/manual/random-linearrand.png
new file mode 100644
index 00000000000..97b295297f0
--- /dev/null
+++ b/3rdparty/glm/doc/manual/random-linearrand.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/random-sphericalrand.png b/3rdparty/glm/doc/manual/random-sphericalrand.png
new file mode 100644
index 00000000000..a475bbf79a2
--- /dev/null
+++ b/3rdparty/glm/doc/manual/random-sphericalrand.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-cinder.png b/3rdparty/glm/doc/manual/references-cinder.png
new file mode 100644
index 00000000000..4a5323d11d9
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-cinder.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-glsl4book.jpg b/3rdparty/glm/doc/manual/references-glsl4book.jpg
new file mode 100644
index 00000000000..ef79533e91b
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-glsl4book.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-leosfortune.jpeg b/3rdparty/glm/doc/manual/references-leosfortune.jpeg
new file mode 100644
index 00000000000..915c3d808dd
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-leosfortune.jpeg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-leosfortune2.jpg b/3rdparty/glm/doc/manual/references-leosfortune2.jpg
new file mode 100644
index 00000000000..22357670ab6
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-leosfortune2.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-opencloth1.png b/3rdparty/glm/doc/manual/references-opencloth1.png
new file mode 100644
index 00000000000..41b1ba4d128
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-opencloth1.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-opencloth3.png b/3rdparty/glm/doc/manual/references-opencloth3.png
new file mode 100644
index 00000000000..b41b324a78c
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-opencloth3.png
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-outerra1.jpg b/3rdparty/glm/doc/manual/references-outerra1.jpg
new file mode 100644
index 00000000000..332679dfe1b
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-outerra1.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-outerra2.jpg b/3rdparty/glm/doc/manual/references-outerra2.jpg
new file mode 100644
index 00000000000..57418fab347
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-outerra2.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-outerra3.jpg b/3rdparty/glm/doc/manual/references-outerra3.jpg
new file mode 100644
index 00000000000..38faee5c267
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-outerra3.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/manual/references-outerra4.jpg b/3rdparty/glm/doc/manual/references-outerra4.jpg
new file mode 100644
index 00000000000..42669ad13be
--- /dev/null
+++ b/3rdparty/glm/doc/manual/references-outerra4.jpg
Binary files differ
diff --git a/3rdparty/glm/doc/theme/doxygen.css b/3rdparty/glm/doc/theme/doxygen.css
index f0f4a4f2b55..1b9d11f3d0c 100644
--- a/3rdparty/glm/doc/theme/doxygen.css
+++ b/3rdparty/glm/doc/theme/doxygen.css
@@ -1,9 +1,7 @@
-/* The standard CSS for doxygen */
+/* The standard CSS for doxygen 1.8.10 */
-body, table, div, p, dl
-{
- font-family: Lucida Grande, Calibri, Verdana;
- font-size: 14px;
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
}
body
@@ -14,41 +12,51 @@ body
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;
+h1.groupheader {
+ color:#bf6000;
+ font-size: 150%;
}
-h2
-{
- color:#FF8000;
- font-family: Lucida Grande, Cambria, Georgia;
- font-size: 18px;
+.title {
+ color:#bf6000;
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
font-weight: bold;
+ margin: 10px 2px;
}
-h3 {
- font-family: Lucida Grande, Cambria, Georgia;
- font-size: 14px;
- font-weight: bold;
+h2.groupheader {
+ border-bottom: 1px solid #bf6000;
+ color:#bf6000;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
}
dt {
@@ -62,10 +70,14 @@ div.multicol {
-webkit-column-count: 3;
}
-p.startli, p.startdd, p.starttd {
+p.startli, p.startdd {
margin-top: 2px;
}
+p.starttd {
+ margin-top: 0px;
+}
+
p.endli {
margin-bottom: 0px;
}
@@ -96,10 +108,8 @@ h3.version {
div.qindex, div.navtab{
background-color: #FFF8F0;
- border: 0px solid #FF8000;
+ border: 1px solid #FF8000;
text-align: center;
- margin: 2px;
- padding: 2px;
}
div.qindex, div.navpath {
@@ -116,7 +126,7 @@ div.navtab {
a {
color: #000000;
font-weight: normal;
- /*text-decoration: none;*/
+ text-decoration: none;
}
.contents a:visited {
@@ -125,22 +135,16 @@ a {
.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;
+ margin:0px;
+ margin-left:auto;
+ margin-right:auto;
+ width:1216px;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
}
a:hover {
@@ -155,7 +159,7 @@ a.qindexHL {
font-weight: bold;
background-color: #9CAFD4;
color: #ffffff;
- border: 0px double #869DCA;
+ border: 1px double #869DCA;
}
.contents a.qindexHL:visited {
@@ -169,12 +173,12 @@ a.el {
a.elRef {
}
-a.code {
- color: #4665A2;
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
}
-a.codeRef {
- color: #4665A2;
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
}
/* @end */
@@ -183,22 +187,75 @@ dl.el {
margin-left: -1cm;
}
-.fragment {
- font-family: monospace, consolas, "courier new";
- font-size: 12px;
-}
-
pre.fragment {
- border: 0px solid #FF8000;
- background-color: #FFF8F0;
+ border: 1px solid #FF8000;
+ background-color: #FFF8F0;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
padding: 4px 6px;
margin: 4px 8px 4px 2px;
- overflow: auto;
- word-wrap: break-word;
- line-height: 125%;
+ background-color: #FFF8F0;
+ border: 1px solid #FF8000;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
}
-div.ah {
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah, span.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
@@ -216,6 +273,15 @@ div.ah {
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}
+div.classindex ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+div.classindex span.ai {
+ display: inline-block;
+}
+
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
@@ -227,15 +293,24 @@ div.groupText {
font-style: italic;
}
+body {
+ color: black;
+ margin: 0;
+}
+
td.indexkey {
+ background-color: #FFF8F0;
font-weight: bold;
- border: 0px solid #C4CFE5;
+ border: 1px solid #C4CFE5;
margin: 2px 0px 2px 0;
- padding: 4px 10px;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
}
td.indexvalue {
- border: 0px solid #C4CFE5;
+ background-color: #FFF8F0;
+ border: 1px solid #C4CFE5;
padding: 2px 10px;
margin: 2px 0px;
}
@@ -258,9 +333,9 @@ img.formulaInl {
div.center {
text-align: center;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
}
div.center img {
@@ -268,13 +343,7 @@ div.center img {
}
address.footer {
- margin-left:auto;
- margin-right:auto;
- width:1000px;
-
- text-align: right;
- padding-right: 12px;
- color: #FFEEDD;
+ display: none;
}
img.footer {
@@ -328,6 +397,13 @@ span.vhdllogic {
color: #ff0000
}
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
/* @end */
/*
@@ -350,13 +426,13 @@ input.search {
*/
td.tiny {
- font-size: 10px;
+ font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
- border: 0px solid #A3B4D7;
+ border: 1px solid #FF8000;
}
th.dirtab {
@@ -367,14 +443,11 @@ th.dirtab {
hr {
height: 0px;
border: none;
- border-top: 0px solid #FF8000;
+ border-top: 1px solid #4A6AAA;
}
hr.footer {
- height: 1px;
- margin-left:auto;
- margin-right:auto;
- width:1000px;
+ display: none;
}
/* @group Member Descriptions */
@@ -384,11 +457,27 @@ table.memberdecls {
padding: 0px;
}
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- font-family: monospace, consolas, "courier new";
- font-size: 12px;
background-color: #FFFCF8;
border: none;
margin: 4px;
@@ -397,20 +486,28 @@ table.memberdecls {
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
- color: #000000;
+ color: #555;
}
-.memItemLeft, .memItemRight, .memTemplParams {
- border-top: 4px solid #FFFFFF;
+.memSeparator {
+ border-bottom: 1px solid #FFF8F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
+.memItemRight {
+ width: 100%;
+}
+
.memTemplParams {
- color: #404040;
+ color: #bf6000;
white-space: nowrap;
+ font-size: 80%;
}
/* @end */
@@ -420,81 +517,107 @@ table.memberdecls {
/* Styles for detailed member documentation */
.memtemplate {
- color: #000000;
+ font-size: 80%;
+ color: #4665A2;
font-weight: normal;
margin-left: 9px;
}
.memnav {
- background-color: #000000;
- border: 0px solid #A3B4D7;
+ background-color: #FFF8F0;
+ border: 1px solid #FF8000;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
+.mempage {
+ width: 100%;
+}
+
.memitem {
- padding: 8px;
+ padding: 0;
margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
}
.memname {
- font-family: monospace, consolas, "courier new";
- font-weight: bold;
- font-size: 12px;
- white-space: nowrap;
- margin-left: 6px;
+ font-weight: bold;
+ 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));
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #bf6000;
+ border-left: 1px solid #bf6000;
+ border-right: 1px solid #bf6000;
+ padding: 6px 0px 6px 0px;
+ /*color: #253555;*/
+ font-weight: bold;
+ /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/
+ /*background-image:url('nav_f.png');*/
+ background-repeat:repeat-x;
+ background-color: #FFF8F0;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #bf6000;
+ border-left: 1px solid #bf6000;
+ border-right: 1px solid #bf6000;
+ padding: 6px 10px 2px 10px;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFDFB;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
}
.paramkey {
@@ -506,22 +629,23 @@ table.memberdecls {
}
.paramname {
- color: #FF8000;
+ color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
+.paramname code {
+ line-height: 14px;
+}
.params, .retval, .exception, .tparams {
- border-spacing: 6px 2px;
+ margin-left: 0px;
+ padding-left: 0px;
}
.params .paramname, .retval .paramname {
- color: #FF8000;
- font-family: monospace, consolas, "courier new";
font-weight: bold;
- font-size: 12px;
vertical-align: top;
}
@@ -531,144 +655,306 @@ table.memberdecls {
}
.params .paramdir {
+ font-family: "courier new",courier,monospace;
vertical-align: top;
}
+table.mlabels {
+ border-spacing: 0px;
+}
-
-
-/* @end */
-
-/* @group Directory (tree) */
-
-/* for the tree view */
-
-.ftvtree {
- /*font-family: Lucida Grande, Calibri, Verdana;*/
- margin: 0px;
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
}
-/* these are for tree view when used as main index */
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
-.directory {
- font-weight: bold;
- margin: 5px;
+span.mlabels {
+ margin-left: 8px;
}
-.directory h3 {
- margin: 0px;
- margin-top: 1em;
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
}
-/*
-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;
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #bf6000;
+ border-bottom: 1px solid #bf6000;
+ width: 100%;
}
-.directory p {
- margin: 0px;
- white-space: nowrap;
+.directory table {
+ border-collapse:collapse;
}
-.directory div {
- display: none;
+.directory td {
margin: 0px;
+ padding: 0px;
+ vertical-align: top;
}
-.directory img {
- vertical-align: -30%;
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
}
-/* these are for tree view when not used as main index */
-
-.directory-alt {
- font-size: 100%;
- font-weight: bold;
+.directory td.entry a {
+ outline:none;
}
-.directory-alt h3 {
- margin: 0px;
- margin-top: 1em;
+.directory td.entry a img {
+ border: none;
}
-.directory-alt > h3 {
- margin-top: 0;
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
}
-.directory-alt p {
- margin: 0px;
- white-space: nowrap;
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #FFFDFB;
}
-.directory-alt div {
- display: none;
- margin: 0px;
+.directory img {
+ vertical-align: -30%;
}
-.directory-alt img {
- vertical-align: -30%;
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #bf6000;
+}
+
+.arrow {
+ color: #bf6000;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #bf6000;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+table.directory {
+ font: 400 14px Roboto,sans-serif;
}
/* @end */
div.dynheader {
- margin-top: 8px;
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
}
address {
font-style: normal;
- color: #804000;
+ color: #2A3D61;
}
table.doxtable {
border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
}
table.doxtable td, table.doxtable th {
- border: 0px solid #000000;
+ border: 1px solid #2D4068;
padding: 3px 7px 2px;
}
table.doxtable th {
- background-color: #000000;
+ background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
- text-align:left;
}
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
.tabsearch {
top: 0px;
left: 10px;
height: 36px;
- /*background-image: url('tab_b.png');*/
+ background-image: url('tab_b.png');
z-index: 101;
overflow: hidden;
+ font-size: 13px;
}
.navpath ul
{
- background-color: #FFEEDD;
+ font-size: 11px;
+ /*background-image:url('tab_b.png');*/
+ background-color: #FFF8F0;
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
height:30px;
line-height:30px;
+ color:#bf6000;
+ border:solid 0px #C2CDE4;
overflow:hidden;
margin:0px;
padding:0px;
@@ -680,9 +966,10 @@ table.doxtable th {
float:left;
padding-left:10px;
padding-right:15px;
- /*background-image:url('bc_s.png');*/
+ background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
+ color:#bf6000;
}
.navpath li.navelem a
@@ -691,33 +978,37 @@ table.doxtable th {
display:block;
text-decoration: none;
outline: none;
+ color: #bf6000;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-decoration: none;
}
.navpath li.navelem a:hover
{
- color:#FF8000;
+ color:#6884BD;
}
.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;
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#bf6000;
+ font-size: 8pt;
}
div.summary
{
float: right;
- font-size: 12px;
+ font-size: 8pt;
padding-right: 5px;
- width: 160px;
+ width: 50%;
text-align: right;
-}
+}
div.summary a
{
@@ -726,7 +1017,7 @@ div.summary a
div.ingroups
{
- padding-left: 5px;
+ font-size: 8pt;
width: 50%;
text-align: left;
}
@@ -738,31 +1029,19 @@ div.ingroups a
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));
+ background-repeat:repeat-x;
+ background-color: #FFFCF8;
padding:0px;
- margin:0px;
+ margin:0px;
margin-left:auto;
margin-right:auto;
- width:1000px;
- border-bottom: 0px solid #FFC080;
+ width:1280px;
}
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;
+ padding: 5px 5px 5px 10px;
}
dl
@@ -770,48 +1049,74 @@ 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
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
{
- border-color: #FF7F00;
- border-left:4px solid;
- padding: 0 0 0 6px;
+ margin-left: 0px;
+ padding-left: 0px;
}
dl.note
{
- border-color: #FFDDBB;
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
}
dl.warning, dl.attention
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #FF0000;
}
dl.pre, dl.post, dl.invariant
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #00D000;
}
dl.deprecated
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #505050;
}
dl.todo
{
- border-color: #00C0E0;
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #E0C000;
}
dl.test
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #3030E0;
}
dl.bug
{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
border-color: #C08050;
}
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
#projectlogo
{
text-align: center;
@@ -824,26 +1129,29 @@ dl.bug
border: 0px none;
}
+#projectalign
+{
+ vertical-align: middle;
+}
+
#projectname
{
- /*font-family: Lucida Grande, Cambria, Georgia;*/
- font-size: 24px;
+ font: 300% Tahoma, Arial,sans-serif;
margin: 0px;
- padding: 0px;
+ padding: 2px 0px;
+ color: #FF8000;
}
#projectbrief
{
- /*font-family: Lucida Grande, Cambria, Georgia;*/
- font-size: 18px;
+ font: 120% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#projectnumber
{
- /*font-family: Lucida Grande, Cambria, Georgia;*/
- font-size: 14px;
+ font: 50% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
@@ -853,7 +1161,310 @@ dl.bug
padding: 0px;
margin: 0px;
width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#titlearea
+{
+ margin: 0px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ margin-top: 32px;
+ width: 100%;
border-bottom: 0px solid #FF8000;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
background-color:#FFFFFF;
}
@@ -861,5 +1472,25 @@ dl.bug
{
margin-left:auto;
margin-right:auto;
- width:1000px;
+ width:1280px;
}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/3rdparty/glm/doc/theme/tabs.css b/3rdparty/glm/doc/theme/tabs.css
index 636277d9e9a..7b588291f54 100644
--- a/3rdparty/glm/doc/theme/tabs.css
+++ b/3rdparty/glm/doc/theme/tabs.css
@@ -1,12 +1,12 @@
.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-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,#FFF4F0), to(#FFF4F0));
background-color:#FFF8F0;
+
width: 100%;
z-index: 101;
font-size: 13px;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
.tabs2 {
@@ -25,11 +25,9 @@
.tablist li {
float: left;
display: table-cell;
+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFF4F0 95%, #FFF4F0);
+ 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,#FFF4F0), to(#FFF4F0));
- 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;
}
@@ -38,15 +36,13 @@
display: block;
padding: 0 20px;
font-weight: bold;
+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFF4F0 95%, #FFF4F0);
+ 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,#FFF4F0), to(#FFF4F0));
- 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);*/
+ background-color:#FFF4F0;
+ color: #992600;
text-decoration: none;
outline: none;
}
@@ -56,24 +52,18 @@
}
.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: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFF0F8 95%, #FFF0F8);
+ 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,#FFF8F0), to(#FF4000));
- /*background-image: url('tab_h.png');*/
- background-color:#FFFEFD;
- background-repeat:repeat-x;
+ background-color:#FFF8F0;
color: #FF8000;
- /*text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);*/
- text-decoration:underline;
+ text-decoration: none;
}
.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: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFFCF8 95%, #FFFCF8);
+ 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,#FFFCF8), to(#FFFCF8));
- /*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);*/
+ background-color:#FFFCF8;
+ color: #992600;
}
diff --git a/3rdparty/glm/glm/detail/_features.hpp b/3rdparty/glm/glm/detail/_features.hpp
index 97dd6330391..96deb47e34d 100644
--- a/3rdparty/glm/glm/detail/_features.hpp
+++ b/3rdparty/glm/glm/detail/_features.hpp
@@ -251,9 +251,7 @@
#if(GLM_COMPILER & GLM_COMPILER_GCC)
-# if(GLM_COMPILER >= GLM_COMPILER_GCC43)
-# define GLM_CXX11_STATIC_ASSERT
-# endif
+# define GLM_CXX11_STATIC_ASSERT
#elif(GLM_COMPILER & GLM_COMPILER_CLANG)
# if(__has_feature(cxx_exceptions))
diff --git a/3rdparty/glm/glm/detail/_noise.hpp b/3rdparty/glm/glm/detail/_noise.hpp
index 89403f4a7c7..9b36db6971e 100644
--- a/3rdparty/glm/glm/detail/_noise.hpp
+++ b/3rdparty/glm/glm/detail/_noise.hpp
@@ -11,93 +11,93 @@
namespace glm{
namespace detail
{
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T mod289(T const & x)
{
- return x - floor(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * static_cast<T>(289.0);
+ return x - floor(x * (static_cast<T>(1.0) / static_cast<T>(289.0))) * static_cast<T>(289.0);
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T permute(T const & x)
{
return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> permute(vec<2, T, P> const & x)
{
return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> permute(vec<3, T, P> const & x)
{
return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> permute(vec<4, T, P> const & x)
{
return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
}
/*
- template <typename T, precision P, template<typename> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)
+ template<typename T, precision P, template<typename> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> permute(vecType<L, T, P> const & x)
{
return mod289(((x * T(34)) + T(1)) * x);
}
*/
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T taylorInvSqrt(T const & r)
{
return T(1.79284291400159) - T(0.85373472095314) * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> taylorInvSqrt(tvec2<T, P> const & r)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> taylorInvSqrt(vec<2, T, P> const & r)
{
return T(1.79284291400159) - T(0.85373472095314) * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> taylorInvSqrt(tvec3<T, P> const & r)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> taylorInvSqrt(vec<3, T, P> const & r)
{
return T(1.79284291400159) - T(0.85373472095314) * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> taylorInvSqrt(tvec4<T, P> const & r)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> taylorInvSqrt(vec<4, T, P> const & r)
{
return T(1.79284291400159) - T(0.85373472095314) * r;
}
/*
- template <typename T, precision P, template<typename> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)
+ template<typename T, precision P, template<typename> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> taylorInvSqrt(vecType<L, T, P> const & r)
{
return T(1.79284291400159) - T(0.85373472095314) * r;
}
*/
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> fade(tvec2<T, P> const & t)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> fade(vec<2, T, P> const & t)
{
return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> fade(tvec3<T, P> const & t)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> fade(vec<3, T, P> const & t)
{
return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> fade(tvec4<T, P> const & t)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> fade(vec<4, T, P> const & t)
{
return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
}
/*
- template <typename T, precision P, template <typename> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)
+ template<typename T, precision P, template<typename> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fade(vecType<L, T, P> const & t)
{
return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
}
diff --git a/3rdparty/glm/glm/detail/_swizzle.hpp b/3rdparty/glm/glm/detail/_swizzle.hpp
index 8e134d90ede..f404f5da860 100644
--- a/3rdparty/glm/glm/detail/_swizzle.hpp
+++ b/3rdparty/glm/glm/detail/_swizzle.hpp
@@ -7,7 +7,7 @@ namespace glm{
namespace detail
{
// Internal class for implementing swizzle operators
- template <typename T, int N>
+ template<typename T, int N>
struct _swizzle_base0
{
protected:
@@ -20,27 +20,27 @@ namespace detail
char _buffer[1];
};
- template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, bool Aligned>
+ template<int N, typename T, precision P, int E0, int E1, int E2, int E3, bool Aligned>
struct _swizzle_base1 : public _swizzle_base0<T, N>
{
};
- template <typename T, precision P, template <typename, precision> class vecType, int E0, int E1, bool Aligned>
- struct _swizzle_base1<2, T, P, vecType, E0,E1,-1,-2, Aligned> : public _swizzle_base0<T, 2>
+ template<typename T, precision P, int E0, int E1, bool Aligned>
+ struct _swizzle_base1<2, T, P, E0,E1,-1,-2, Aligned> : public _swizzle_base0<T, 2>
{
- GLM_FUNC_QUALIFIER vecType<T, P> operator ()() const { return vecType<T, P>(this->elem(E0), this->elem(E1)); }
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator ()() const { return vec<2, T, P>(this->elem(E0), this->elem(E1)); }
};
- template <typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, bool Aligned>
- struct _swizzle_base1<3, T, P, vecType, E0,E1,E2,-1, Aligned> : public _swizzle_base0<T, 3>
+ template<typename T, precision P, int E0, int E1, int E2, bool Aligned>
+ struct _swizzle_base1<3, T, P, E0,E1,E2,-1, Aligned> : public _swizzle_base0<T, 3>
{
- GLM_FUNC_QUALIFIER vecType<T, P> operator ()() const { return vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2)); }
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator ()() const { return vec<3, T, P>(this->elem(E0), this->elem(E1), this->elem(E2)); }
};
- template <typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, bool Aligned>
- struct _swizzle_base1<4, T, P, vecType, E0,E1,E2,E3, Aligned> : public _swizzle_base0<T, 4>
+ template<typename T, precision P, int E0, int E1, int E2, int E3, bool Aligned>
+ struct _swizzle_base1<4, T, P, E0,E1,E2,E3, Aligned> : public _swizzle_base0<T, 4>
{
- GLM_FUNC_QUALIFIER vecType<T, P> operator ()() const { return vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator ()() const { return vec<4, T, P>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
};
// Internal class for implementing swizzle operators
@@ -48,15 +48,15 @@ namespace detail
Template parameters:
ValueType = type of scalar values (e.g. float, double)
- VecType = class the swizzle is applies to (e.g. tvec3<float>)
+ VecType = class the swizzle is applies to (e.g. vec<3, float>)
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 <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
- struct _swizzle_base2 : public _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value>
+ template<int N, typename T, precision P, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
+ struct _swizzle_base2 : public _swizzle_base1<N, T, P, E0,E1,E2,E3, detail::is_aligned<P>::value>
{
GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const T& t)
{
@@ -65,7 +65,7 @@ namespace detail
return *this;
}
- GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vecType<T, P> const& that)
+ GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vec<N, T, P> const& that)
{
struct op {
GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e = t; }
@@ -74,7 +74,7 @@ namespace detail
return *this;
}
- GLM_FUNC_QUALIFIER void operator -= (vecType<T, P> const& that)
+ GLM_FUNC_QUALIFIER void operator -= (vec<N, T, P> const& that)
{
struct op {
GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e -= t; }
@@ -82,7 +82,7 @@ namespace detail
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator += (vecType<T, P> const& that)
+ GLM_FUNC_QUALIFIER void operator += (vec<N, T, P> const& that)
{
struct op {
GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e += t; }
@@ -90,7 +90,7 @@ namespace detail
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator *= (vecType<T, P> const& that)
+ GLM_FUNC_QUALIFIER void operator *= (vec<N, T, P> const& that)
{
struct op {
GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e *= t; }
@@ -98,7 +98,7 @@ namespace detail
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator /= (vecType<T, P> const& that)
+ GLM_FUNC_QUALIFIER void operator /= (vec<N, T, P> const& that)
{
struct op {
GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e /= t; }
@@ -118,8 +118,8 @@ namespace detail
}
protected:
- template <typename U>
- GLM_FUNC_QUALIFIER void _apply_op(vecType<T, P> const& that, U op)
+ template<typename U>
+ GLM_FUNC_QUALIFIER void _apply_op(vec<N, T, P> const& that, U op)
{
// Make a copy of the data in this == &that.
// The copier should optimize out the copy in cases where the function is
@@ -133,8 +133,8 @@ namespace detail
};
// Specialization for swizzles containing duplicate elements. These cannot be modified.
- template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3>
- struct _swizzle_base2<N, T, P, vecType, E0,E1,E2,E3, 1> : public _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value>
+ template<int N, typename T, precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base2<N, T, P, E0,E1,E2,E3, 1> : public _swizzle_base1<N, T, P, E0,E1,E2,E3, detail::is_aligned<P>::value>
{
struct Stub {};
@@ -147,40 +147,40 @@ namespace detail
}
};
- template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3>
- struct _swizzle : public _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)>
+ template<int N, typename T, precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle : public _swizzle_base2<N, T, P, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)>
{
- typedef _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;
+ typedef _swizzle_base2<N, T, P, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;
using base_type::operator=;
- GLM_FUNC_QUALIFIER operator vecType<T, P> () const { return (*this)(); }
+ GLM_FUNC_QUALIFIER operator vec<N, T, P> () const { return (*this)(); }
};
//
// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
//
-#define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3>
-#define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
-#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, vecType, E0, E1, E2, E3>
-#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, vecType, F0, F1, F2, F3>
+#define _GLM_SWIZZLE_TEMPLATE1 template<int N, typename T, precision P, int E0, int E1, int E2, int E3>
+#define _GLM_SWIZZLE_TEMPLATE2 template<int N, typename T, precision P, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
+#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, E0, E1, E2, E3>
+#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, F0, F1, F2, F3>
//
// Wrapper for a binary operator (e.g. u.yy + v.zy)
//
#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
_GLM_SWIZZLE_TEMPLATE2 \
- GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+ GLM_FUNC_QUALIFIER vec<N, T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
{ \
return a() OPERAND b(); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const vecType<T, P>& b) \
+ GLM_FUNC_QUALIFIER vec<N, T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const vec<N, T, P>& b) \
{ \
return a() OPERAND b; \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const vecType<T, P>& a, const _GLM_SWIZZLE_TYPE1& b) \
+ GLM_FUNC_QUALIFIER vec<N, T, P> operator OPERAND ( const vec<N, T, P>& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return a OPERAND b(); \
}
@@ -190,12 +190,12 @@ namespace detail
//
#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
+ GLM_FUNC_QUALIFIER vec<N, T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
{ \
return a() OPERAND b; \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
+ GLM_FUNC_QUALIFIER vec<N, T, P> operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return a OPERAND b(); \
}
@@ -297,501 +297,501 @@ namespace glm
//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
}
-#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \
- struct { detail::_swizzle<2, T, P, V, 0,0,-1,-2> E0 ## E0; }; \
- struct { detail::_swizzle<2, T, P, V, 0,1,-1,-2> E0 ## E1; }; \
- struct { detail::_swizzle<2, T, P, V, 1,0,-1,-2> E1 ## E0; }; \
- struct { detail::_swizzle<2, T, P, V, 1,1,-1,-2> E1 ## E1; };
-
-#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \
- struct { detail::_swizzle<3,T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V, 1,1,1,-1> E1 ## E1 ## E1; };
-
-#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \
- struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
-
-#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \
- struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; };
-
-#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \
- struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; };
-
-#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \
- struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
-
-#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \
- struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V, 0,3,-1,-2> E0 ## E3; }; \
- struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V, 1,3,-1,-2> E1 ## E3; }; \
- struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V, 2,3,-1,-2> E2 ## E3; }; \
- struct { detail::_swizzle<2,T, P, V, 3,0,-1,-2> E3 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V, 3,1,-1,-2> E3 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V, 3,2,-1,-2> E3 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V, 3,3,-1,-2> E3 ## E3; };
-
-#define _GLM_SWIZZLE4_3_MEMBERS(T, P, V, E0,E1,E2,E3) \
- struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 0,0,3,-1> E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 0,1,3,-1> E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 0,2,3,-1> E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 0,3,0,-1> E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 0,3,1,-1> E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 0,3,2,-1> E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 0,3,3,-1> E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,0,3,-1> E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,1,3,-1> E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,2,3,-1> E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 1,3,0,-1> E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 1,3,1,-1> E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 1,3,2,-1> E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 1,3,3,-1> E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,0,3,-1> E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,1,3,-1> E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,2,3,-1> E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 2,3,0,-1> E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 2,3,1,-1> E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 2,3,2,-1> E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 2,3,3,-1> E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 3,0,0,-1> E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 3,0,1,-1> E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 3,0,2,-1> E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 3,0,3,-1> E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 3,1,0,-1> E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 3,1,1,-1> E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 3,1,2,-1> E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 3,1,3,-1> E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 3,2,0,-1> E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 3,2,1,-1> E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 3,2,2,-1> E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 3,2,3,-1> E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<3, T, P, V, 3,3,0,-1> E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<3, T, P, V, 3,3,1,-1> E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<3, T, P, V, 3,3,2,-1> E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<3, T, P, V, 3,3,3,-1> E3 ## E3 ## E3; };
-
-#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \
- struct { detail::_swizzle<4, T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
+#define _GLM_SWIZZLE2_2_MEMBERS(T, P, E0,E1) \
+ struct { detail::_swizzle<2, T, P, 0,0,-1,-2> E0 ## E0; }; \
+ struct { detail::_swizzle<2, T, P, 0,1,-1,-2> E0 ## E1; }; \
+ struct { detail::_swizzle<2, T, P, 1,0,-1,-2> E1 ## E0; }; \
+ struct { detail::_swizzle<2, T, P, 1,1,-1,-2> E1 ## E1; };
+
+#define _GLM_SWIZZLE2_3_MEMBERS(T, P, E0,E1) \
+ struct { detail::_swizzle<3,T, P, 0,0,0,-1> E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, 0,0,1,-1> E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3,T, P, 0,1,0,-1> E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, 0,1,1,-1> E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3,T, P, 1,0,0,-1> E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, 1,0,1,-1> E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3,T, P, 1,1,0,-1> E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, 1,1,1,-1> E1 ## E1 ## E1; };
+
+#define _GLM_SWIZZLE2_4_MEMBERS(T, P, E0,E1) \
+ struct { detail::_swizzle<4,T, P, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
+
+#define _GLM_SWIZZLE3_2_MEMBERS(T, P, E0,E1,E2) \
+ struct { detail::_swizzle<2,T, P, 0,0,-1,-2> E0 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 0,1,-1,-2> E0 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 0,2,-1,-2> E0 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, 1,0,-1,-2> E1 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 1,1,-1,-2> E1 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 1,2,-1,-2> E1 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, 2,0,-1,-2> E2 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 2,1,-1,-2> E2 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 2,2,-1,-2> E2 ## E2; };
+
+#define _GLM_SWIZZLE3_3_MEMBERS(T, P ,E0,E1,E2) \
+ struct { detail::_swizzle<3, T, P, 0,0,0,-1> E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,0,1,-1> E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,0,2,-1> E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,0,-1> E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,1,-1> E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,2,-1> E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,0,-1> E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,1,-1> E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,2,-1> E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,0,-1> E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,1,-1> E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,2,-1> E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,0,-1> E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,1,-1> E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,2,-1> E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,0,-1> E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,1,-1> E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,2,-1> E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,0,-1> E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,1,-1> E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,2,-1> E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,0,-1> E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,1,-1> E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,2,-1> E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,0,-1> E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,1,-1> E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,2,-1> E2 ## E2 ## E2; };
+
+#define _GLM_SWIZZLE3_4_MEMBERS(T, P, E0,E1,E2) \
+ struct { detail::_swizzle<4,T, P, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
+
+#define _GLM_SWIZZLE4_2_MEMBERS(T, P, E0,E1,E2,E3) \
+ struct { detail::_swizzle<2,T, P, 0,0,-1,-2> E0 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 0,1,-1,-2> E0 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 0,2,-1,-2> E0 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, 0,3,-1,-2> E0 ## E3; }; \
+ struct { detail::_swizzle<2,T, P, 1,0,-1,-2> E1 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 1,1,-1,-2> E1 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 1,2,-1,-2> E1 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, 1,3,-1,-2> E1 ## E3; }; \
+ struct { detail::_swizzle<2,T, P, 2,0,-1,-2> E2 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 2,1,-1,-2> E2 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 2,2,-1,-2> E2 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, 2,3,-1,-2> E2 ## E3; }; \
+ struct { detail::_swizzle<2,T, P, 3,0,-1,-2> E3 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, 3,1,-1,-2> E3 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, 3,2,-1,-2> E3 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, 3,3,-1,-2> E3 ## E3; };
+
+#define _GLM_SWIZZLE4_3_MEMBERS(T, P, E0,E1,E2,E3) \
+ struct { detail::_swizzle<3, T, P, 0,0,0,-1> E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,0,1,-1> E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,0,2,-1> E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 0,0,3,-1> E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,0,-1> E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,1,-1> E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,2,-1> E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 0,1,3,-1> E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,0,-1> E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,1,-1> E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,2,-1> E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 0,2,3,-1> E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 0,3,0,-1> E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 0,3,1,-1> E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 0,3,2,-1> E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 0,3,3,-1> E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,0,-1> E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,1,-1> E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,2,-1> E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,0,3,-1> E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,0,-1> E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,1,-1> E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,2,-1> E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,1,3,-1> E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,0,-1> E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,1,-1> E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,2,-1> E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,2,3,-1> E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 1,3,0,-1> E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 1,3,1,-1> E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 1,3,2,-1> E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 1,3,3,-1> E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,0,-1> E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,1,-1> E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,2,-1> E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,0,3,-1> E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,0,-1> E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,1,-1> E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,2,-1> E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,1,3,-1> E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,0,-1> E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,1,-1> E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,2,-1> E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,2,3,-1> E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 2,3,0,-1> E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 2,3,1,-1> E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 2,3,2,-1> E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 2,3,3,-1> E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 3,0,0,-1> E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 3,0,1,-1> E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 3,0,2,-1> E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 3,0,3,-1> E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 3,1,0,-1> E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 3,1,1,-1> E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 3,1,2,-1> E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 3,1,3,-1> E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 3,2,0,-1> E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 3,2,1,-1> E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 3,2,2,-1> E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 3,2,3,-1> E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, 3,3,0,-1> E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, 3,3,1,-1> E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, 3,3,2,-1> E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, 3,3,3,-1> E3 ## E3 ## E3; };
+
+#define _GLM_SWIZZLE4_4_MEMBERS(T, P, E0,E1,E2,E3) \
+ struct { detail::_swizzle<4, T, P, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
diff --git a/3rdparty/glm/glm/detail/_swizzle_func.hpp b/3rdparty/glm/glm/detail/_swizzle_func.hpp
index 4b37edbbf4f..0ca9bd8e907 100644
--- a/3rdparty/glm/glm/detail/_swizzle_func.hpp
+++ b/3rdparty/glm/glm/detail/_swizzle_func.hpp
@@ -3,694 +3,683 @@
#pragma once
-#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
- SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \
- { \
- return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
+#define GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, CONST, A, B) \
+ vec<2, T, P> A ## B() CONST \
+ { \
+ return vec<2, T, P>(this->A, this->B); \
}
-#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
- SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \
- { \
- return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
+#define GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, CONST, A, B, C) \
+ vec<3, T, P> A ## B ## C() CONST \
+ { \
+ return vec<3, T, P>(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<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \
- { \
- return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
+#define GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, CONST, A, B, C, D) \
+ vec<4, T, P> A ## B ## C ## D() CONST \
+ { \
+ return vec<4, T, P>(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 <typename TMPL_TYPE> \
- SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \
- { \
- return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \
+#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(T, P, L, CONST, A, B) \
+ template<typename T> \
+ vec<L, T, P> vec<L, T, P>::A ## B() CONST \
+ { \
+ return vec<2, T, P>(this->A, this->B); \
}
-#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \
- template <typename TMPL_TYPE> \
- SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \
- { \
- return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \
+#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(T, P, L, CONST, A, B, C) \
+ template<typename T> \
+ vec<3, T, P> vec<L, T, P>::A ## B ## C() CONST \
+ { \
+ return vec<3, T, P>(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 <typename TMPL_TYPE> \
- SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \
- { \
- return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \
+#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(T, P, L, CONST, A, B, C, D) \
+ template<typename T> \
+ vec<4, T, P> vec<L, T, P>::A ## B ## C ## D() CONST \
+ { \
+ return vec<4, T, P>(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)
+#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, B, A)
+
+#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(T, P) \
+ GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, x, y) \
+ GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, r, g) \
+ GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, s, t)
+
+#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B)
+
+#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, B, A)
+
+#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C)
+
+#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P) \
+ GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, x, y, z) \
+ GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, r, g, b) \
+ GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, s, t, p)
+
+#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, C)
+
+#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, B)
+
+#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, C, A)
+
+#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)
+
+#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P) \
+ GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, x, y, z, w) \
+ GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, r, g, b, a) \
+ GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, s, t, p, q)
+
+#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B)
+
+#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B)
+
+#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B)
+
+#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B)
+
+#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, x, y) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, r, g) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, s, t)
+
+#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C)
+
+#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C)
+
+#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C)
+
+#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C)
+
+#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, x, y, z) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, r, g, b) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, s, t, p)
+
+#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, D) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, A) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, B) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, C) \
+ GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, D)
+
+#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, A) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, B) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, C) \
+ GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, D)
+
+#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, A) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, B) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, C) \
+ GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, D)
+
+#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+ GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)
+
+#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, x, y, z, w) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, r, g, b, a) \
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, s, t, p, q)
+
diff --git a/3rdparty/glm/glm/detail/_vectorize.hpp b/3rdparty/glm/glm/detail/_vectorize.hpp
index a08ed34df79..44fb0b5d6bc 100644
--- a/3rdparty/glm/glm/detail/_vectorize.hpp
+++ b/3rdparty/glm/glm/detail/_vectorize.hpp
@@ -11,120 +11,120 @@
namespace glm{
namespace detail
{
- template <typename R, typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename R, typename T, precision P>
struct functor1{};
- template <typename R, typename T, precision P>
- struct functor1<R, T, P, tvec1>
+ template<typename R, typename T, precision P>
+ struct functor1<1, R, T, P>
{
- GLM_FUNC_QUALIFIER static tvec1<R, P> call(R (*Func) (T x), tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<1, R, P> call(R (*Func) (T x), vec<1, T, P> const & v)
{
- return tvec1<R, P>(Func(v.x));
+ return vec<1, R, P>(Func(v.x));
}
};
- template <typename R, typename T, precision P>
- struct functor1<R, T, P, tvec2>
+ template<typename R, typename T, precision P>
+ struct functor1<2, R, T, P>
{
- GLM_FUNC_QUALIFIER static tvec2<R, P> call(R (*Func) (T x), tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<2, R, P> call(R (*Func) (T x), vec<2, T, P> const & v)
{
- return tvec2<R, P>(Func(v.x), Func(v.y));
+ return vec<2, R, P>(Func(v.x), Func(v.y));
}
};
- template <typename R, typename T, precision P>
- struct functor1<R, T, P, tvec3>
+ template<typename R, typename T, precision P>
+ struct functor1<3, R, T, P>
{
- GLM_FUNC_QUALIFIER static tvec3<R, P> call(R (*Func) (T x), tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<3, R, P> call(R (*Func) (T x), vec<3, T, P> const & v)
{
- return tvec3<R, P>(Func(v.x), Func(v.y), Func(v.z));
+ return vec<3, R, P>(Func(v.x), Func(v.y), Func(v.z));
}
};
- template <typename R, typename T, precision P>
- struct functor1<R, T, P, tvec4>
+ template<typename R, typename T, precision P>
+ struct functor1<4, R, T, P>
{
- GLM_FUNC_QUALIFIER static tvec4<R, P> call(R (*Func) (T x), tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, R, P> call(R (*Func) (T x), vec<4, T, P> const & v)
{
- return tvec4<R, P>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));
+ return vec<4, R, P>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));
}
};
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P>
struct functor2{};
- template <typename T, precision P>
- struct functor2<T, P, tvec1>
+ template<typename T, precision P>
+ struct functor2<1, T, P>
{
- GLM_FUNC_QUALIFIER static tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> const & a, tvec1<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<1, T, P> call(T (*Func) (T x, T y), vec<1, T, P> const & a, vec<1, T, P> const & b)
{
- return tvec1<T, P>(Func(a.x, b.x));
+ return vec<1, T, P>(Func(a.x, b.x));
}
};
- template <typename T, precision P>
- struct functor2<T, P, tvec2>
+ template<typename T, precision P>
+ struct functor2<2, T, P>
{
- GLM_FUNC_QUALIFIER static tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> const & a, tvec2<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<2, T, P> call(T (*Func) (T x, T y), vec<2, T, P> const & a, vec<2, T, P> const & b)
{
- return tvec2<T, P>(Func(a.x, b.x), Func(a.y, b.y));
+ return vec<2, T, P>(Func(a.x, b.x), Func(a.y, b.y));
}
};
- template <typename T, precision P>
- struct functor2<T, P, tvec3>
+ template<typename T, precision P>
+ struct functor2<3, T, P>
{
- GLM_FUNC_QUALIFIER static tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> const & a, tvec3<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<3, T, P> call(T (*Func) (T x, T y), vec<3, T, P> const & a, vec<3, T, P> const & b)
{
- return tvec3<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
+ return vec<3, T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
}
};
- template <typename T, precision P>
- struct functor2<T, P, tvec4>
+ template<typename T, precision P>
+ struct functor2<4, T, P>
{
- GLM_FUNC_QUALIFIER static tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(T (*Func) (T x, T y), vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
+ return vec<4, T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
}
};
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P>
struct functor2_vec_sca{};
- template <typename T, precision P>
- struct functor2_vec_sca<T, P, tvec1>
+ template<typename T, precision P>
+ struct functor2_vec_sca<1, T, P>
{
- GLM_FUNC_QUALIFIER static tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> const & a, T b)
+ GLM_FUNC_QUALIFIER static vec<1, T, P> call(T (*Func) (T x, T y), vec<1, T, P> const & a, T b)
{
- return tvec1<T, P>(Func(a.x, b));
+ return vec<1, T, P>(Func(a.x, b));
}
};
- template <typename T, precision P>
- struct functor2_vec_sca<T, P, tvec2>
+ template<typename T, precision P>
+ struct functor2_vec_sca<2, T, P>
{
- GLM_FUNC_QUALIFIER static tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> const & a, T b)
+ GLM_FUNC_QUALIFIER static vec<2, T, P> call(T (*Func) (T x, T y), vec<2, T, P> const & a, T b)
{
- return tvec2<T, P>(Func(a.x, b), Func(a.y, b));
+ return vec<2, T, P>(Func(a.x, b), Func(a.y, b));
}
};
- template <typename T, precision P>
- struct functor2_vec_sca<T, P, tvec3>
+ template<typename T, precision P>
+ struct functor2_vec_sca<3, T, P>
{
- GLM_FUNC_QUALIFIER static tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> const & a, T b)
+ GLM_FUNC_QUALIFIER static vec<3, T, P> call(T (*Func) (T x, T y), vec<3, T, P> const & a, T b)
{
- return tvec3<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b));
+ return vec<3, T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b));
}
};
- template <typename T, precision P>
- struct functor2_vec_sca<T, P, tvec4>
+ template<typename T, precision P>
+ struct functor2_vec_sca<4, T, P>
{
- GLM_FUNC_QUALIFIER static tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> const & a, T b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(T (*Func) (T x, T y), vec<4, T, P> const & a, T b)
{
- return tvec4<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));
+ return vec<4, T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));
}
};
}//namespace detail
diff --git a/3rdparty/glm/glm/detail/dummy.cpp b/3rdparty/glm/glm/detail/dummy.cpp
index a519a6dc24d..fb1daf38f4f 100644
--- a/3rdparty/glm/glm/detail/dummy.cpp
+++ b/3rdparty/glm/glm/detail/dummy.cpp
@@ -166,21 +166,21 @@ glm::vec3 lighting
*/
/*
-template <typename T, glm::precision P, template<typename, glm::precision> class vecType>
-T normalizeDotA(vecType<T, P> const & x, vecType<T, P> const & y)
+template<typename T, glm::precision P, template<typename, glm::precision> class vecType>
+T normalizeDotA(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y));
}
#define GLM_TEMPLATE_GENTYPE typename T, glm::precision P, template<typename, glm::precision> class
-template <GLM_TEMPLATE_GENTYPE vecType>
-T normalizeDotB(vecType<T, P> const & x, vecType<T, P> const & y)
+template<GLM_TEMPLATE_GENTYPE vecType>
+T normalizeDotB(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y));
}
-template <typename vecType>
+template<typename vecType>
typename vecType::value_type normalizeDotC(vecType const & a, vecType const & b)
{
return glm::dot(a, b) * glm::inversesqrt(glm::dot(a, a) * glm::dot(b, b));
diff --git a/3rdparty/glm/glm/detail/func_common.hpp b/3rdparty/glm/glm/detail/func_common.hpp
index 871fed6c4ac..97326ca2032 100644
--- a/3rdparty/glm/glm/detail/func_common.hpp
+++ b/3rdparty/glm/glm/detail/func_common.hpp
@@ -26,11 +26,11 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType abs(genType x);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> abs(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> abs(vecType<L, T, P> const & x);
/// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
///
@@ -38,8 +38,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> sign(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> sign(vecType<L, T, P> const & x);
/// Returns a value equal to the nearest integer that is less then or equal to x.
///
@@ -47,8 +47,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> floor(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> floor(vecType<L, T, P> const & x);
/// Returns a value equal to the nearest integer to x
/// whose absolute value is not larger than the absolute value of x.
@@ -57,8 +57,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> trunc(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> trunc(vecType<L, T, P> const & x);
/// Returns a value equal to the nearest integer to x.
/// The fraction 0.5 will round in a direction chosen by the
@@ -70,8 +70,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> round(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> round(vecType<L, T, P> const & x);
/// Returns a value equal to the nearest integer to x.
/// A fractional part of 0.5 will round toward the nearest even
@@ -82,8 +82,8 @@ namespace glm
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
/// @see <a href="http://developer.amd.com/documentation/articles/pages/New-Round-to-Even-Technique.aspx">New round to even technique</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> roundEven(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> roundEven(vecType<L, T, P> const & x);
/// Returns a value equal to the nearest integer
/// that is greater than or equal to x.
@@ -92,8 +92,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> ceil(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> ceil(vecType<L, T, P> const & x);
/// Return x - floor(x).
///
@@ -101,11 +101,11 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fract(genType x);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fract(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fract(vecType<L, T, P> const & x);
/// Modulus. Returns x - y * floor(x / y)
/// for each component in x using the floating point value y.
@@ -114,14 +114,14 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType mod(genType x, genType y);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, T y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> mod(vecType<L, T, P> const & x, T y);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> mod(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns the fractional part of x and sets i to the integer
/// part (as a whole number floating point value). Both the
@@ -132,7 +132,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType modf(genType x, genType & i);
/// Returns y if y < x; otherwise, it returns x.
@@ -141,14 +141,14 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType min(genType x, genType y);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> min(vecType<T, P> const & x, T y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> min(vecType<L, T, P> const & x, T y);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> min(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> min(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns y if x < y; otherwise, it returns x.
///
@@ -156,14 +156,14 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType max(genType x, genType y);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> max(vecType<T, P> const & x, T y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> max(vecType<L, T, P> const & x, T y);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> max(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> max(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns min(max(x, minVal), maxVal) for each component in x
/// using the floating-point values minVal and maxVal.
@@ -172,14 +172,14 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> clamp(vecType<T, P> const & x, T minVal, T maxVal);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> clamp(vecType<L, T, P> const & x, T minVal, T maxVal);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> clamp(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> clamp(vecType<L, T, P> const & x, vecType<L, T, P> const & minVal, vecType<L, T, P> const & maxVal);
/// If genTypeU is a floating scalar or vector:
/// Returns x * (1.0 - a) + y * a, i.e., the linear blend of
@@ -223,35 +223,35 @@ namespace glm
/// 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 <typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> mix(vecType<L, T, P> const & x, vecType<L, T, P> const & y, vecType<L, U, P> const & a);
- template <typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, U a);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> mix(vecType<L, T, P> const & x, vecType<L, T, P> const & y, U a);
- template <typename genTypeT, typename genTypeU>
+ template<typename genTypeT, typename genTypeU>
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
/// Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType step(genType edge, genType x);
/// Returns 0.0 if x < edge, otherwise it returns 1.0.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <template <typename, precision> class vecType, typename T, precision P>
- GLM_FUNC_DECL vecType<T, P> step(T edge, vecType<T, P> const & x);
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P>
+ GLM_FUNC_DECL vecType<L, T, P> step(T edge, vecType<L, T, P> const & x);
/// Returns 0.0 if x < edge, otherwise it returns 1.0.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <template <typename, precision> class vecType, typename T, precision P>
- GLM_FUNC_DECL vecType<T, P> step(vecType<T, P> const & edge, vecType<T, P> const & x);
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P>
+ GLM_FUNC_DECL vecType<L, T, P> step(vecType<L, T, P> const & edge, vecType<L, T, P> const & x);
/// Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
/// performs smooth Hermite interpolation between 0 and 1
@@ -267,14 +267,14 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> smoothstep(T edge0, T edge1, vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> smoothstep(T edge0, T edge1, vecType<L, T, P> const & x);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> smoothstep(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> smoothstep(vecType<L, T, P> const & edge0, vecType<L, T, P> const & edge1, vecType<L, T, P> const & x);
/// Returns true if x holds a NaN (not a number)
/// representation in the underlying implementation's set of
@@ -288,8 +288,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> isnan(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> isnan(vecType<L, T, P> const & x);
/// Returns true if x holds a positive infinity or negative
/// infinity representation in the underlying implementation's
@@ -301,8 +301,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> isinf(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> isinf(vecType<L, T, P> const & x);
/// Returns a signed integer value representing
/// the encoding of a floating-point value. The floating-point
@@ -318,8 +318,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_DECL vecType<int, P> floatBitsToInt(vecType<float, P> const & v);
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_DECL vecType<L, int, P> floatBitsToInt(vecType<L, float, P> const & v);
/// Returns a unsigned integer value representing
/// the encoding of a floating-point value. The floatingpoint
@@ -335,8 +335,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_DECL vecType<uint, P> floatBitsToUint(vecType<float, P> const & v);
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_DECL vecType<L, uint, P> floatBitsToUint(vecType<L, float, P> const & v);
/// Returns a floating-point value corresponding to a signed
/// integer encoding of a floating-point value.
@@ -356,8 +356,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_DECL vecType<float, P> intBitsToFloat(vecType<int, P> const & v);
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_DECL vecType<L, float, P> intBitsToFloat(vecType<L, int, P> const & v);
/// Returns a floating-point value corresponding to a
/// unsigned integer encoding of a floating-point value.
@@ -377,8 +377,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_DECL vecType<float, P> uintBitsToFloat(vecType<uint, P> const & v);
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_DECL vecType<L, float, P> uintBitsToFloat(vecType<L, uint, P> const & v);
/// Computes and returns a * b + c.
///
@@ -386,7 +386,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
/// Splits x into a floating-point significand in the range
@@ -403,7 +403,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType, typename genIType>
+ template<typename genType, typename genIType>
GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
/// Builds a floating-point number from x and the
@@ -417,7 +417,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>;
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType, typename genIType>
+ template<typename genType, typename genIType>
GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
/// @}
diff --git a/3rdparty/glm/glm/detail/func_common.inl b/3rdparty/glm/glm/detail/func_common.inl
index 6c39092ef91..2dd94e1f454 100644
--- a/3rdparty/glm/glm/detail/func_common.inl
+++ b/3rdparty/glm/glm/detail/func_common.inl
@@ -11,24 +11,24 @@
namespace glm
{
// min
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType min(genType x, genType y)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'min' only accept floating-point or integer inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer || GLM_UNRESTRICTED_GENTYPE, "'min' only accept floating-point or integer inputs");
return x < y ? x : y;
}
// max
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType max(genType x, genType y)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'max' only accept floating-point or integer inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer || GLM_UNRESTRICTED_GENTYPE, "'max' only accept floating-point or integer inputs");
return x > y ? x : y;
}
// abs
- template <>
+ template<>
GLM_FUNC_QUALIFIER int32 abs(int32 x)
{
int32 const y = x >> 31;
@@ -39,7 +39,7 @@ namespace glm
# if GLM_HAS_CXX11_STL
using ::std::round;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType round(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'round' only accept floating-point inputs");
@@ -52,7 +52,7 @@ namespace glm
# if GLM_HAS_CXX11_STL
using ::std::trunc;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType trunc(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'trunc' only accept floating-point inputs");
@@ -66,17 +66,17 @@ namespace glm
namespace glm{
namespace detail
{
- template <typename genFIType, bool /*signed*/>
+ template<typename genFIType, bool /*signed*/>
struct compute_abs
{};
- template <typename genFIType>
+ template<typename genFIType>
struct compute_abs<genFIType, true>
{
GLM_FUNC_QUALIFIER static genFIType call(genFIType x)
{
GLM_STATIC_ASSERT(
- std::numeric_limits<genFIType>::is_iec559 || std::numeric_limits<genFIType>::is_signed,
+ std::numeric_limits<genFIType>::is_iec559 || std::numeric_limits<genFIType>::is_signed || GLM_UNRESTRICTED_GENTYPE,
"'abs' only accept floating-point and integer scalar or vector inputs");
return x >= genFIType(0) ? x : -x;
@@ -85,7 +85,7 @@ namespace detail
};
#if GLM_COMPILER & GLM_COMPILER_CUDA
- template <>
+ template<>
struct compute_abs<float, true>
{
GLM_FUNC_QUALIFIER static float call(float x)
@@ -95,82 +95,82 @@ namespace detail
};
#endif
- template <typename genFIType>
+ template<typename genFIType>
struct compute_abs<genFIType, false>
{
GLM_FUNC_QUALIFIER static genFIType call(genFIType x)
{
GLM_STATIC_ASSERT(
- !std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer,
+ (!std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer) || GLM_UNRESTRICTED_GENTYPE,
"'abs' only accept floating-point and integer scalar or vector inputs");
return x;
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_abs_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(abs, x);
+ return detail::functor1<L, T, T, P>::call(abs, x);
}
};
- template <typename T, typename U, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_mix_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & y, vecType<L, U, P> const & a)
{
- GLM_STATIC_ASSERT(std::numeric_limits<U>::is_iec559, "'mix' only accept floating-point inputs for the interpolator a");
+ GLM_STATIC_ASSERT(std::numeric_limits<U>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'mix' only accept floating-point inputs for the interpolator a");
- return vecType<T, P>(vecType<U, P>(x) + a * vecType<U, P>(y - x));
+ return vecType<L, T, P>(vecType<L, U, P>(x) + a * vecType<L, U, P>(y - x));
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
- struct compute_mix_vector<T, bool, P, vecType, Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
+ struct compute_mix_vector<L, T, bool, P, vecType, Aligned>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, vecType<bool, P> const & a)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & y, vecType<L, bool, P> const & a)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = a[i] ? y[i] : x[i];
return Result;
}
};
- template <typename T, typename U, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_mix_scalar
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, U const & a)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & y, U const & a)
{
- GLM_STATIC_ASSERT(std::numeric_limits<U>::is_iec559, "'mix' only accept floating-point inputs for the interpolator a");
+ GLM_STATIC_ASSERT(std::numeric_limits<U>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'mix' only accept floating-point inputs for the interpolator a");
- return vecType<T, P>(vecType<U, P>(x) + a * vecType<U, P>(y - x));
+ return vecType<L, T, P>(vecType<L, U, P>(x) + a * vecType<L, U, P>(y - x));
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
- struct compute_mix_scalar<T, bool, P, vecType, Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
+ struct compute_mix_scalar<L, T, bool, P, vecType, Aligned>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, bool const & a)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & y, bool const & a)
{
return a ? y : x;
}
};
- template <typename T, typename U>
+ template<typename T, typename U>
struct compute_mix
{
GLM_FUNC_QUALIFIER static T call(T const & x, T const & y, U const & a)
{
- GLM_STATIC_ASSERT(std::numeric_limits<U>::is_iec559, "'mix' only accept floating-point inputs for the interpolator a");
+ GLM_STATIC_ASSERT(std::numeric_limits<U>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'mix' only accept floating-point inputs for the interpolator a");
return static_cast<T>(static_cast<U>(x) + a * static_cast<U>(y - x));
}
};
- template <typename T>
+ template<typename T>
struct compute_mix<T, bool>
{
GLM_FUNC_QUALIFIER static T call(T const & x, T const & y, bool const & a)
@@ -179,192 +179,192 @@ namespace detail
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool isFloat, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool isFloat, bool Aligned>
struct compute_sign
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
- return vecType<T, P>(glm::lessThan(vecType<T, P>(0), x)) - vecType<T, P>(glm::lessThan(x, vecType<T, P>(0)));
+ return vecType<L, T, P>(glm::lessThan(vecType<L, T, P>(0), x)) - vecType<L, T, P>(glm::lessThan(x, vecType<L, T, P>(0)));
}
};
# if GLM_ARCH == GLM_ARCH_X86
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
- struct compute_sign<T, P, vecType, false, Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
+ struct compute_sign<L, T, P, vecType, false, Aligned>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
T const Shift(static_cast<T>(sizeof(T) * 8 - 1));
- vecType<T, P> const y(vecType<typename make_unsigned<T>::type, P>(-x) >> typename make_unsigned<T>::type(Shift));
+ vecType<L, T, P> const y(vecType<L, typename make_unsigned<T>::type, P>(-x) >> typename make_unsigned<T>::type(Shift));
return (x >> Shift) | y;
}
};
# endif
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_floor
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(std::floor, x);
+ return detail::functor1<L, T, T, P>::call(std::floor, x);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_ceil
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(std::ceil, x);
+ return detail::functor1<L, T, T, P>::call(std::ceil, x);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_fract
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
return x - floor(x);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_trunc
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(trunc, x);
+ return detail::functor1<L, T, T, P>::call(trunc, x);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_round
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(round, x);
+ return detail::functor1<L, T, T, P>::call(round, x);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_mod
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & a, vecType<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & a, vecType<L, T, P> const & b)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'mod' only accept floating-point inputs. Include <glm/gtc/integer.hpp> for integer inputs.");
return a - b * floor(a / b);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_min_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
- return detail::functor2<T, P, vecType>::call(min, x, y);
+ return detail::functor2<L, T, P>::call(min, x, y);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_max_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
- return detail::functor2<T, P, vecType>::call(max, x, y);
+ return detail::functor2<L, T, P>::call(max, x, y);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_clamp_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, vecType<L, T, P> const & minVal, vecType<L, T, P> const & maxVal)
{
return min(max(x, minVal), maxVal);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_step_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & edge, vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & edge, vecType<L, T, P> const & x)
{
- return mix(vecType<T, P>(1), vecType<T, P>(0), glm::lessThan(x, edge));
+ return mix(vecType<L, T, P>(1), vecType<L, T, P>(0), glm::lessThan(x, edge));
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_smoothstep_vector
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & edge0, vecType<L, T, P> const & edge1, vecType<L, T, P> const & x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'step' only accept floating-point inputs");
- vecType<T, P> const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast<T>(0), static_cast<T>(1)));
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'step' only accept floating-point inputs");
+ vecType<L, T, P> const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast<T>(0), static_cast<T>(1)));
return tmp * tmp * (static_cast<T>(3) - static_cast<T>(2) * tmp);
}
};
}//namespace detail
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType abs(genFIType x)
{
return detail::compute_abs<genFIType, std::numeric_limits<genFIType>::is_signed>::call(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> abs(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> abs(vecType<L, T, P> const & x)
{
- return detail::compute_abs_vector<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_abs_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// sign
// fast and works for any type
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType sign(genFIType x)
{
GLM_STATIC_ASSERT(
std::numeric_limits<genFIType>::is_iec559 || (std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer),
"'sign' only accept signed inputs");
- return detail::compute_sign<genFIType, defaultp, tvec1, std::numeric_limits<genFIType>::is_iec559, highp>::call(tvec1<genFIType>(x)).x;
+ return detail::compute_sign<1, genFIType, defaultp, vec, std::numeric_limits<genFIType>::is_iec559, highp>::call(vec<1, genFIType>(x)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> sign(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> sign(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(
std::numeric_limits<T>::is_iec559 || (std::numeric_limits<T>::is_signed && std::numeric_limits<T>::is_integer),
"'sign' only accept signed inputs");
- return detail::compute_sign<T, P, vecType, std::numeric_limits<T>::is_iec559, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_sign<L, T, P, vecType, std::numeric_limits<T>::is_iec559, detail::is_aligned<P>::value>::call(x);
}
// floor
using ::std::floor;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> floor(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> floor(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'floor' only accept floating-point inputs.");
- return detail::compute_floor<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_floor<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> trunc(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> trunc(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'trunc' only accept floating-point inputs");
- return detail::compute_trunc<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_trunc<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> round(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> round(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'round' only accept floating-point inputs");
- return detail::compute_round<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_round<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
/*
// roundEven
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType roundEven(genType const& x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'roundEven' only accept floating-point inputs");
@@ -374,7 +374,7 @@ namespace detail
*/
// roundEven
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType roundEven(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'roundEven' only accept floating-point inputs");
@@ -405,97 +405,97 @@ namespace detail
//}
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> roundEven(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> roundEven(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'roundEven' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(roundEven, x);
+ return detail::functor1<L, T, T, P>::call(roundEven, x);
}
// ceil
using ::std::ceil;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> ceil(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> ceil(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'ceil' only accept floating-point inputs");
- return detail::compute_ceil<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_ceil<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// fract
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fract(genType x)
{
- return fract(tvec1<genType>(x)).x;
+ return fract(vec<1, genType>(x)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fract(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fract(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'fract' only accept floating-point inputs");
- return detail::compute_fract<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_fract<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// mod
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType mod(genType x, genType y)
{
# if GLM_COMPILER & GLM_COMPILER_CUDA
// Another Cuda compiler bug https://github.com/g-truc/glm/issues/530
- tvec1<genType, defaultp> Result(mod(tvec1<genType, defaultp>(x), y));
+ vec<1, genType, defaultp> Result(mod(vec<1, genType, defaultp>(x), y));
return Result.x;
# else
- return mod(tvec1<genType, defaultp>(x), y).x;
+ return mod(vec<1, genType, defaultp>(x), y).x;
# endif
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> mod(vecType<T, P> const & x, T y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> mod(vecType<L, T, P> const & x, T y)
{
- return detail::compute_mod<T, P, vecType, detail::is_aligned<P>::value>::call(x, vecType<T, P>(y));
+ return detail::compute_mod<L, T, P, vecType, detail::is_aligned<P>::value>::call(x, vecType<L, T, P>(y));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> mod(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
- return detail::compute_mod<T, P, vecType, detail::is_aligned<P>::value>::call(x, y);
+ return detail::compute_mod<L, T, P, vecType, detail::is_aligned<P>::value>::call(x, y);
}
// modf
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType modf(genType x, genType & i)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'modf' only accept floating-point inputs");
return std::modf(x, &i);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> modf(tvec1<T, P> const & x, tvec1<T, P> & i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> modf(vec<1, T, P> const & x, vec<1, T, P> & i)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
modf(x.x, i.x));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> modf(tvec2<T, P> const & x, tvec2<T, P> & i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> modf(vec<2, T, P> const & x, vec<2, T, P> & i)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
modf(x.x, i.x),
modf(x.y, i.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> modf(tvec3<T, P> const & x, tvec3<T, P> & i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> modf(vec<3, T, P> const & x, vec<3, T, P> & i)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
modf(x.x, i.x),
modf(x.y, i.y),
modf(x.z, i.z));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> modf(tvec4<T, P> const & x, tvec4<T, P> & i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> modf(vec<4, T, P> const & x, vec<4, T, P> & i)
{
- return tvec4<T, P>(
+ return vec<4, T, P>(
modf(x.x, i.x),
modf(x.y, i.y),
modf(x.z, i.z),
@@ -511,117 +511,118 @@ namespace detail
//CHAR_BIT - 1)));
// min
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> min(vecType<T, P> const & a, T b)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> min(vecType<L, T, P> const & a, T b)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'min' only accept floating-point inputs for the interpolator a");
- return detail::compute_min_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, vecType<T, P>(b));
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'min' only accept floating-point inputs for the interpolator a");
+ return detail::compute_min_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(a, vecType<L, T, P>(b));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> min(vecType<T, P> const & a, vecType<T, P> const & b)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> min(vecType<L, T, P> const & a, vecType<L, T, P> const & b)
{
- return detail::compute_min_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, b);
+ return detail::compute_min_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(a, b);
}
// max
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> max(vecType<T, P> const & a, T b)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> max(vecType<L, T, P> const & a, T b)
{
- return detail::compute_max_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, vecType<T, P>(b));
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'max' only accept floating-point inputs for the interpolator a");
+ return detail::compute_max_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(a, vecType<L, T, P>(b));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> max(vecType<T, P> const & a, vecType<T, P> const & b)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> max(vecType<L, T, P> const & a, vecType<L, T, P> const & b)
{
- return detail::compute_max_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, b);
+ return detail::compute_max_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(a, b);
}
// clamp
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType clamp(genType x, genType minVal, genType maxVal)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'clamp' only accept floating-point or integer inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer || GLM_UNRESTRICTED_GENTYPE, "'clamp' only accept floating-point or integer inputs");
return min(max(x, minVal), maxVal);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> clamp(vecType<T, P> const & x, T minVal, T maxVal)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> clamp(vecType<L, T, P> const & x, T minVal, T maxVal)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || std::numeric_limits<T>::is_integer, "'clamp' only accept floating-point or integer inputs");
- return detail::compute_clamp_vector<T, P, vecType, detail::is_aligned<P>::value>::call(x, vecType<T, P>(minVal), vecType<T, P>(maxVal));
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || std::numeric_limits<T>::is_integer || GLM_UNRESTRICTED_GENTYPE, "'clamp' only accept floating-point or integer inputs");
+ return detail::compute_clamp_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(x, vecType<L, T, P>(minVal), vecType<L, T, P>(maxVal));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> clamp(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> clamp(vecType<L, T, P> const & x, vecType<L, T, P> const & minVal, vecType<L, T, P> const & maxVal)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || std::numeric_limits<T>::is_integer, "'clamp' only accept floating-point or integer inputs");
- return detail::compute_clamp_vector<T, P, vecType, detail::is_aligned<P>::value>::call(x, minVal, maxVal);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || std::numeric_limits<T>::is_integer || GLM_UNRESTRICTED_GENTYPE, "'clamp' only accept floating-point or integer inputs");
+ return detail::compute_clamp_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(x, minVal, maxVal);
}
- template <typename genTypeT, typename genTypeU>
+ template<typename genTypeT, typename genTypeU>
GLM_FUNC_QUALIFIER genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
{
return detail::compute_mix<genTypeT, genTypeU>::call(x, y, a);
}
- template <typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, U a)
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> mix(vecType<L, T, P> const & x, vecType<L, T, P> const & y, U a)
{
- return detail::compute_mix_scalar<T, U, P, vecType, detail::is_aligned<P>::value>::call(x, y, a);
+ return detail::compute_mix_scalar<L, T, U, P, vecType, detail::is_aligned<P>::value>::call(x, y, a);
}
-
- template <typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a)
+
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> mix(vecType<L, T, P> const & x, vecType<L, T, P> const & y, vecType<L, U, P> const & a)
{
- return detail::compute_mix_vector<T, U, P, vecType, detail::is_aligned<P>::value>::call(x, y, a);
+ return detail::compute_mix_vector<L, T, U, P, vecType, detail::is_aligned<P>::value>::call(x, y, a);
}
// step
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType step(genType edge, genType x)
{
return mix(static_cast<genType>(1), static_cast<genType>(0), glm::lessThan(x, edge));
}
- template <template <typename, precision> class vecType, typename T, precision P>
- GLM_FUNC_QUALIFIER vecType<T, P> step(T edge, vecType<T, P> const & x)
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> step(T edge, vecType<L, T, P> const & x)
{
- return detail::compute_step_vector<T, P, vecType, detail::is_aligned<P>::value>::call(vecType<T, P>(edge), x);
+ return detail::compute_step_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(vecType<L, T, P>(edge), x);
}
- template <template <typename, precision> class vecType, typename T, precision P>
- GLM_FUNC_QUALIFIER vecType<T, P> step(vecType<T, P> const & edge, vecType<T, P> const & x)
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> step(vecType<L, T, P> const & edge, vecType<L, T, P> const & x)
{
- return detail::compute_step_vector<T, P, vecType, detail::is_aligned<P>::value>::call(edge, x);
+ return detail::compute_step_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(edge, x);
}
// smoothstep
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType smoothstep(genType edge0, genType edge1, genType x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'smoothstep' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'smoothstep' only accept floating-point inputs");
genType const tmp(clamp((x - edge0) / (edge1 - edge0), genType(0), genType(1)));
return tmp * tmp * (genType(3) - genType(2) * tmp);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> smoothstep(T edge0, T edge1, vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> smoothstep(T edge0, T edge1, vecType<L, T, P> const & x)
{
- return detail::compute_smoothstep_vector<T, P, vecType, detail::is_aligned<P>::value>::call(vecType<T, P>(edge0), vecType<T, P>(edge1), x);
+ return detail::compute_smoothstep_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(vecType<L, T, P>(edge0), vecType<L, T, P>(edge1), x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> smoothstep(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> smoothstep(vecType<L, T, P> const & edge0, vecType<L, T, P> const & edge1, vecType<L, T, P> const & x)
{
- return detail::compute_smoothstep_vector<T, P, vecType, detail::is_aligned<P>::value>::call(edge0, edge1, x);
+ return detail::compute_smoothstep_vector<L, T, P, vecType, detail::is_aligned<P>::value>::call(edge0, edge1, x);
}
# if GLM_HAS_CXX11_STL
using std::isnan;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool isnan(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isnan' only accept floating-point inputs");
@@ -646,18 +647,18 @@ namespace detail
}
# endif
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> isnan(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> isnan(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs");
- return detail::functor1<bool, T, P, vecType>::call(isnan, x);
+ return detail::functor1<L, bool, T, P>::call(isnan, x);
}
# if GLM_HAS_CXX11_STL
using std::isinf;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool isinf(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isinf' only accept floating-point inputs");
@@ -685,12 +686,12 @@ namespace detail
}
# endif
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> isinf(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> isinf(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs");
- return detail::functor1<bool, T, P, vecType>::call(isinf, x);
+ return detail::functor1<L, bool, T, P>::call(isinf, x);
}
GLM_FUNC_QUALIFIER int floatBitsToInt(float const & v)
@@ -698,10 +699,10 @@ namespace detail
return reinterpret_cast<int&>(const_cast<float&>(v));
}
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_QUALIFIER vecType<int, P> floatBitsToInt(vecType<float, P> const & v)
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_QUALIFIER vecType<L, int, P> floatBitsToInt(vecType<L, float, P> const & v)
{
- return reinterpret_cast<vecType<int, P>&>(const_cast<vecType<float, P>&>(v));
+ return reinterpret_cast<vecType<L, int, P>&>(const_cast<vecType<L, float, P>&>(v));
}
GLM_FUNC_QUALIFIER uint floatBitsToUint(float const & v)
@@ -709,10 +710,10 @@ namespace detail
return reinterpret_cast<uint&>(const_cast<float&>(v));
}
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_QUALIFIER vecType<uint, P> floatBitsToUint(vecType<float, P> const & v)
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_QUALIFIER vecType<L, uint, P> floatBitsToUint(vecType<L, float, P> const & v)
{
- return reinterpret_cast<vecType<uint, P>&>(const_cast<vecType<float, P>&>(v));
+ return reinterpret_cast<vecType<L, uint, P>&>(const_cast<vecType<L, float, P>&>(v));
}
GLM_FUNC_QUALIFIER float intBitsToFloat(int const & v)
@@ -720,10 +721,10 @@ namespace detail
return reinterpret_cast<float&>(const_cast<int&>(v));
}
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_QUALIFIER vecType<float, P> intBitsToFloat(vecType<int, P> const & v)
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_QUALIFIER vecType<L, float, P> intBitsToFloat(vecType<L, int, P> const & v)
{
- return reinterpret_cast<vecType<float, P>&>(const_cast<vecType<int, P>&>(v));
+ return reinterpret_cast<vecType<L, float, P>&>(const_cast<vecType<L, int, P>&>(v));
}
GLM_FUNC_QUALIFIER float uintBitsToFloat(uint const & v)
@@ -731,111 +732,111 @@ namespace detail
return reinterpret_cast<float&>(const_cast<uint&>(v));
}
- template <template <typename, precision> class vecType, precision P>
- GLM_FUNC_QUALIFIER vecType<float, P> uintBitsToFloat(vecType<uint, P> const & v)
+ template<template<length_t, typename, precision> class vecType, length_t L, precision P>
+ GLM_FUNC_QUALIFIER vecType<L, float, P> uintBitsToFloat(vecType<L, uint, P> const & v)
{
- return reinterpret_cast<vecType<float, P>&>(const_cast<vecType<uint, P>&>(v));
+ return reinterpret_cast<vecType<L, float, P>&>(const_cast<vecType<L, uint, P>&>(v));
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fma(genType const & a, genType const & b, genType const & c)
{
return a * b + c;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType frexp(genType x, int & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'frexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'frexp' only accept floating-point inputs");
return std::frexp(x, &exp);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> frexp(tvec1<T, P> const & x, tvec1<int, P> & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> frexp(vec<1, T, P> const & x, vec<1, int, P> & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'frexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'frexp' only accept floating-point inputs");
- return tvec1<T, P>(std::frexp(x.x, &exp.x));
+ return vec<1, T, P>(std::frexp(x.x, &exp.x));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> frexp(tvec2<T, P> const & x, tvec2<int, P> & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> frexp(vec<2, T, P> const & x, vec<2, int, P> & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'frexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'frexp' only accept floating-point inputs");
- return tvec2<T, P>(
+ return vec<2, T, P>(
frexp(x.x, exp.x),
frexp(x.y, exp.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> frexp(tvec3<T, P> const & x, tvec3<int, P> & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> frexp(vec<3, T, P> const & x, vec<3, int, P> & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'frexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'frexp' only accept floating-point inputs");
- return tvec3<T, P>(
+ return vec<3, T, P>(
frexp(x.x, exp.x),
frexp(x.y, exp.y),
frexp(x.z, exp.z));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> frexp(tvec4<T, P> const & x, tvec4<int, P> & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> frexp(vec<4, T, P> const & x, vec<4, int, P> & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'frexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'frexp' only accept floating-point inputs");
- return tvec4<T, P>(
+ return vec<4, T, P>(
frexp(x.x, exp.x),
frexp(x.y, exp.y),
frexp(x.z, exp.z),
frexp(x.w, exp.w));
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType ldexp(genType const & x, int const & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'ldexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'ldexp' only accept floating-point inputs");
return std::ldexp(x, exp);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> ldexp(tvec1<T, P> const & x, tvec1<int, P> const & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> ldexp(vec<1, T, P> const & x, vec<1, int, P> const & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'ldexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'ldexp' only accept floating-point inputs");
- return tvec1<T, P>(
+ return vec<1, T, P>(
ldexp(x.x, exp.x));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> ldexp(tvec2<T, P> const & x, tvec2<int, P> const & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> ldexp(vec<2, T, P> const & x, vec<2, int, P> const & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'ldexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'ldexp' only accept floating-point inputs");
- return tvec2<T, P>(
+ return vec<2, T, P>(
ldexp(x.x, exp.x),
ldexp(x.y, exp.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> ldexp(tvec3<T, P> const & x, tvec3<int, P> const & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> ldexp(vec<3, T, P> const & x, vec<3, int, P> const & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'ldexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'ldexp' only accept floating-point inputs");
- return tvec3<T, P>(
+ return vec<3, T, P>(
ldexp(x.x, exp.x),
ldexp(x.y, exp.y),
ldexp(x.z, exp.z));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> ldexp(tvec4<T, P> const & x, tvec4<int, P> const & exp)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> ldexp(vec<4, T, P> const & x, vec<4, int, P> const & exp)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'ldexp' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'ldexp' only accept floating-point inputs");
- return tvec4<T, P>(
+ return vec<4, T, P>(
ldexp(x.x, exp.x),
ldexp(x.y, exp.y),
ldexp(x.z, exp.z),
diff --git a/3rdparty/glm/glm/detail/func_common_simd.inl b/3rdparty/glm/glm/detail/func_common_simd.inl
index c76f1802070..e6daa269a9c 100644
--- a/3rdparty/glm/glm/detail/func_common_simd.inl
+++ b/3rdparty/glm/glm/detail/func_common_simd.inl
@@ -10,191 +10,191 @@
namespace glm{
namespace detail
{
- template <precision P>
- struct compute_abs_vector<float, P, tvec4, true>
+ template<precision P>
+ struct compute_abs_vector<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_abs(v.data);
return result;
}
};
- template <precision P>
- struct compute_abs_vector<int, P, tvec4, true>
+ template<precision P>
+ struct compute_abs_vector<4, int, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<int, P> call(tvec4<int, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, int, P> call(vec<4, int, P> const & v)
{
- tvec4<int, P> result(uninitialize);
+ vec<4, int, P> result(uninitialize);
result.data = glm_ivec4_abs(v.data);
return result;
}
};
- template <precision P>
- struct compute_floor<float, P, tvec4, true>
+ template<precision P>
+ struct compute_floor<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_floor(v.data);
return result;
}
};
- template <precision P>
- struct compute_ceil<float, P, tvec4, true>
+ template<precision P>
+ struct compute_ceil<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_ceil(v.data);
return result;
}
};
- template <precision P>
- struct compute_fract<float, P, tvec4, true>
+ template<precision P>
+ struct compute_fract<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_fract(v.data);
return result;
}
};
- template <precision P>
- struct compute_round<float, P, tvec4, true>
+ template<precision P>
+ struct compute_round<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_round(v.data);
return result;
}
};
- template <precision P>
- struct compute_mod<float, P, tvec4, true>
+ template<precision P>
+ struct compute_mod<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & x, tvec4<float, P> const & y)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & x, vec<4, float, P> const & y)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_mod(x.data, y.data);
return result;
}
};
- template <precision P>
- struct compute_min_vector<float, P, tvec4, true>
+ template<precision P>
+ struct compute_min_vector<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v1, vec<4, float, P> const & v2)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = _mm_min_ps(v1.data, v2.data);
return result;
}
};
- template <precision P>
- struct compute_min_vector<int32, P, tvec4, true>
+ template<precision P>
+ struct compute_min_vector<4, int32, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ GLM_FUNC_QUALIFIER static vec<4, int32, P> call(vec<4, int32, P> const & v1, vec<4, int32, P> const & v2)
{
- tvec4<int32, P> result(uninitialize);
+ vec<4, int32, P> result(uninitialize);
result.data = _mm_min_epi32(v1.data, v2.data);
return result;
}
};
- template <precision P>
- struct compute_min_vector<uint32, P, tvec4, true>
+ template<precision P>
+ struct compute_min_vector<4, uint32, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<uint32, P> const & v1, tvec4<uint32, P> const & v2)
+ GLM_FUNC_QUALIFIER static vec<4, int32, P> call(vec<4, uint32, P> const & v1, vec<4, uint32, P> const & v2)
{
- tvec4<uint32, P> result(uninitialize);
+ vec<4, uint32, P> result(uninitialize);
result.data = _mm_min_epu32(v1.data, v2.data);
return result;
}
};
- template <precision P>
- struct compute_max_vector<float, P, tvec4, true>
+ template<precision P>
+ struct compute_max_vector<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v1, vec<4, float, P> const & v2)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = _mm_max_ps(v1.data, v2.data);
return result;
}
};
- template <precision P>
- struct compute_max_vector<int32, P, tvec4, true>
+ template<precision P>
+ struct compute_max_vector<4, int32, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ GLM_FUNC_QUALIFIER static vec<4, int32, P> call(vec<4, int32, P> const & v1, vec<4, int32, P> const & v2)
{
- tvec4<int32, P> result(uninitialize);
+ vec<4, int32, P> result(uninitialize);
result.data = _mm_max_epi32(v1.data, v2.data);
return result;
}
};
- template <precision P>
- struct compute_max_vector<uint32, P, tvec4, true>
+ template<precision P>
+ struct compute_max_vector<4, uint32, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & v1, tvec4<uint32, P> const & v2)
+ GLM_FUNC_QUALIFIER static vec<4, uint32, P> call(vec<4, uint32, P> const & v1, vec<4, uint32, P> const & v2)
{
- tvec4<uint32, P> result(uninitialize);
+ vec<4, uint32, P> result(uninitialize);
result.data = _mm_max_epu32(v1.data, v2.data);
return result;
}
};
- template <precision P>
- struct compute_clamp_vector<float, P, tvec4, true>
+ template<precision P>
+ struct compute_clamp_vector<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & x, tvec4<float, P> const & minVal, tvec4<float, P> const & maxVal)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & x, vec<4, float, P> const & minVal, vec<4, float, P> const & maxVal)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = _mm_min_ps(_mm_max_ps(x.data, minVal.data), maxVal.data);
return result;
}
};
- template <precision P>
- struct compute_clamp_vector<int32, P, tvec4, true>
+ template<precision P>
+ struct compute_clamp_vector<4, int32, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<int32, P> const & x, tvec4<int32, P> const & minVal, tvec4<int32, P> const & maxVal)
+ GLM_FUNC_QUALIFIER static vec<4, int32, P> call(vec<4, int32, P> const & x, vec<4, int32, P> const & minVal, vec<4, int32, P> const & maxVal)
{
- tvec4<int32, P> result(uninitialize);
+ vec<4, int32, P> result(uninitialize);
result.data = _mm_min_epi32(_mm_max_epi32(x.data, minVal.data), maxVal.data);
return result;
}
};
- template <precision P>
- struct compute_clamp_vector<uint32, P, tvec4, true>
+ template<precision P>
+ struct compute_clamp_vector<4, uint32, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & x, tvec4<uint32, P> const & minVal, tvec4<uint32, P> const & maxVal)
+ GLM_FUNC_QUALIFIER static vec<4, uint32, P> call(vec<4, uint32, P> const & x, vec<4, uint32, P> const & minVal, vec<4, uint32, P> const & maxVal)
{
- tvec4<uint32, P> result(uninitialize);
+ vec<4, uint32, P> result(uninitialize);
result.data = _mm_min_epu32(_mm_max_epu32(x.data, minVal.data), maxVal.data);
return result;
}
};
- template <precision P>
- struct compute_mix_vector<float, bool, P, tvec4, true>
+ template<precision P>
+ struct compute_mix_vector<4, float, bool, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & x, tvec4<float, P> const & y, tvec4<bool, P> const & a)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & x, vec<4, float, P> const & y, vec<4, bool, P> const & a)
{
__m128i const Load = _mm_set_epi32(-(int)a.w, -(int)a.z, -(int)a.y, -(int)a.x);
__m128 const Mask = _mm_castsi128_ps(Load);
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
# if 0 && GLM_ARCH & GLM_ARCH_AVX
Result.data = _mm_blendv_ps(x.data, y.data, Mask);
# else
@@ -204,23 +204,23 @@ namespace detail
}
};
/* FIXME
- template <precision P>
+ template<precision P>
struct compute_step_vector<float, P, tvec4>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& edge, tvec4<float, P> const& x)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const& edge, vec<4, float, P> const& x)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_step(edge.data, x.data);
return result;
}
};
*/
- template <precision P>
- struct compute_smoothstep_vector<float, P, tvec4, true>
+ template<precision P>
+ struct compute_smoothstep_vector<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& edge0, tvec4<float, P> const& edge1, tvec4<float, P> const& x)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const& edge0, vec<4, float, P> const& edge1, vec<4, float, P> const& x)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_smoothstep(edge0.data, edge1.data, x.data);
return result;
}
diff --git a/3rdparty/glm/glm/detail/func_exponential.hpp b/3rdparty/glm/glm/detail/func_exponential.hpp
index a83de0bbb4a..89ba5806c2e 100644
--- a/3rdparty/glm/glm/detail/func_exponential.hpp
+++ b/3rdparty/glm/glm/detail/func_exponential.hpp
@@ -29,8 +29,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> pow(vecType<T, P> const & base, vecType<T, P> const & exponent);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> pow(vecType<L, T, P> const & base, vecType<L, T, P> const & exponent);
/// Returns the natural exponentiation of x, i.e., e^x.
///
@@ -39,8 +39,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> exp(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> exp(vecType<L, T, P> const & v);
/// Returns the natural logarithm of v, i.e.,
/// returns the value y which satisfies the equation x = e^y.
@@ -51,8 +51,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> log(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> log(vecType<L, T, P> const & v);
/// Returns 2 raised to the v power.
///
@@ -61,8 +61,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> exp2(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> exp2(vecType<L, T, P> const & v);
/// Returns the base 2 log of x, i.e., returns the value y,
/// which satisfies the equation x = 2 ^ y.
@@ -72,8 +72,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> log2(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> log2(vecType<L, T, P> const & v);
/// Returns the positive square root of v.
///
@@ -82,10 +82,10 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- //template <typename genType>
+ //template<typename genType>
//GLM_FUNC_DECL genType sqrt(genType const & x);
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> sqrt(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> sqrt(vecType<L, T, P> const & v);
/// Returns the reciprocal of the positive square root of v.
///
@@ -94,8 +94,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> inversesqrt(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> inversesqrt(vecType<L, T, P> const & v);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_exponential.inl b/3rdparty/glm/glm/detail/func_exponential.inl
index 227fe91a266..3f51de1a66f 100644
--- a/3rdparty/glm/glm/detail/func_exponential.inl
+++ b/3rdparty/glm/glm/detail/func_exponential.inl
@@ -13,50 +13,50 @@ namespace detail
# if GLM_HAS_CXX11_STL
using std::log2;
# else
- template <typename genType>
+ template<typename genType>
genType log2(genType Value)
{
return std::log(Value) * static_cast<genType>(1.4426950408889634073599246810019);
}
# endif
- template <typename T, precision P, template <class, precision> class vecType, bool isFloat, bool Aligned>
+ template<length_t L, typename T, precision P, template<int, class, precision> class vecType, bool isFloat, bool Aligned>
struct compute_log2
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & vec)
+ GLM_FUNC_QUALIFIER static vec<L, T, P> call(vec<L, T, P> const& v)
{
- return detail::functor1<T, T, P, vecType>::call(log2, vec);
+ return detail::functor1<L, T, T, P>::call(log2, v);
}
};
- template <template <class, precision> class vecType, typename T, precision P, bool Aligned>
+ template<length_t L, typename T, precision P, bool Aligned>
struct compute_sqrt
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vec<L, T, P> call(vec<L, T, P> const& x)
{
- return detail::functor1<T, T, P, vecType>::call(std::sqrt, x);
+ return detail::functor1<L, T, T, P>::call(std::sqrt, x);
}
};
- template <template <class, precision> class vecType, typename T, precision P, bool Aligned>
+ template<length_t L, typename T, precision P, bool Aligned>
struct compute_inversesqrt
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vec<L, T, P> call(vec<L, T, P> const & x)
{
return static_cast<T>(1) / sqrt(x);
}
};
- template <template <class, precision> class vecType, bool Aligned>
- struct compute_inversesqrt<vecType, float, lowp, Aligned>
+ template<length_t L, bool Aligned>
+ struct compute_inversesqrt<L, float, lowp, Aligned>
{
- GLM_FUNC_QUALIFIER static vecType<float, lowp> call(vecType<float, lowp> const & x)
+ GLM_FUNC_QUALIFIER static vec<L, float, lowp> call(vec<L, float, lowp> const & x)
{
- vecType<float, lowp> tmp(x);
- vecType<float, lowp> xhalf(tmp * 0.5f);
- vecType<uint, lowp>* p = reinterpret_cast<vecType<uint, lowp>*>(const_cast<vecType<float, lowp>*>(&x));
- vecType<uint, lowp> i = vecType<uint, lowp>(0x5f375a86) - (*p >> vecType<uint, lowp>(1));
- vecType<float, lowp>* ptmp = reinterpret_cast<vecType<float, lowp>*>(&i);
+ vec<L, float, lowp> tmp(x);
+ vec<L, float, lowp> xhalf(tmp * 0.5f);
+ vec<L, uint, lowp>* p = reinterpret_cast<vec<L, uint, lowp>*>(const_cast<vec<L, float, lowp>*>(&x));
+ vec<L, uint, lowp> i = vec<L, uint, lowp>(0x5f375a86) - (*p >> vec<L, uint, lowp>(1));
+ vec<L, float, lowp>* ptmp = reinterpret_cast<vec<L, float, lowp>*>(&i);
tmp = *ptmp;
tmp = tmp * (1.5f - xhalf * tmp * tmp);
return tmp;
@@ -66,30 +66,30 @@ namespace detail
// pow
using std::pow;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> pow(vecType<T, P> const & base, vecType<T, P> const & exponent)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> pow(vecType<L, T, P> const & base, vecType<L, T, P> const& exponent)
{
- return detail::functor2<T, P, vecType>::call(pow, base, exponent);
+ return detail::functor2<L, T, P>::call(pow, base, exponent);
}
// exp
using std::exp;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> exp(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> exp(vecType<L, T, P> const& x)
{
- return detail::functor1<T, T, P, vecType>::call(exp, x);
+ return detail::functor1<L, T, T, P>::call(exp, x);
}
// log
using std::log;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> log(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> log(vecType<L, T, P> const& x)
{
- return detail::functor1<T, T, P, vecType>::call(log, x);
+ return detail::functor1<L, T, T, P>::call(log, x);
}
//exp2, ln2 = 0.69314718055994530941723212145818f
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType exp2(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'exp2' only accept floating-point inputs");
@@ -97,46 +97,46 @@ namespace detail
return std::exp(static_cast<genType>(0.69314718055994530941723212145818) * x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> exp2(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> exp2(vecType<L, T, P> const& x)
{
- return detail::functor1<T, T, P, vecType>::call(exp2, x);
+ return detail::functor1<L, T, T, P>::call(exp2, x);
}
// log2, ln2 = 0.69314718055994530941723212145818f
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType log2(genType x)
{
- return log2(tvec1<genType>(x)).x;
+ return log2(vec<1, genType>(x)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> log2(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> log2(vecType<L, T, P> const& x)
{
- return detail::compute_log2<T, P, vecType, std::numeric_limits<T>::is_iec559, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_log2<L, T, P, vecType, std::numeric_limits<T>::is_iec559, detail::is_aligned<P>::value>::call(x);
}
// sqrt
using std::sqrt;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> sqrt(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> sqrt(vecType<L, T, P> const& x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'sqrt' only accept floating-point inputs");
- return detail::compute_sqrt<vecType, T, P, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_sqrt<L, T, P, detail::is_aligned<P>::value>::call(x);
}
// inversesqrt
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType inversesqrt(genType x)
{
return static_cast<genType>(1) / sqrt(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> inversesqrt(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> inversesqrt(vecType<L, T, P> const& x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'inversesqrt' only accept floating-point inputs");
- return detail::compute_inversesqrt<vecType, T, P, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_inversesqrt<L, T, P, detail::is_aligned<P>::value>::call(x);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_exponential_simd.inl b/3rdparty/glm/glm/detail/func_exponential_simd.inl
index d7529ba35a7..9ac60ba9815 100644
--- a/3rdparty/glm/glm/detail/func_exponential_simd.inl
+++ b/3rdparty/glm/glm/detail/func_exponential_simd.inl
@@ -8,23 +8,23 @@
namespace glm{
namespace detail
{
- template <precision P>
- struct compute_sqrt<tvec4, float, P, true>
+ template<precision P>
+ struct compute_sqrt<4, float, P, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = _mm_sqrt_ps(v.data);
return result;
}
};
- template <>
- struct compute_sqrt<tvec4, float, aligned_lowp, true>
+ template<>
+ struct compute_sqrt<4, float, aligned_lowp, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, aligned_lowp> call(tvec4<float, aligned_lowp> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const & v)
{
- tvec4<float, aligned_lowp> result(uninitialize);
+ vec<4, float, aligned_lowp> result(uninitialize);
result.data = glm_vec4_sqrt_lowp(v.data);
return result;
}
diff --git a/3rdparty/glm/glm/detail/func_geometric.hpp b/3rdparty/glm/glm/detail/func_geometric.hpp
index 2f39bf5bbb8..d5a737b559f 100644
--- a/3rdparty/glm/glm/detail/func_geometric.hpp
+++ b/3rdparty/glm/glm/detail/func_geometric.hpp
@@ -23,9 +23,9 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/length.xml">GLSL length man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T length(
- vecType<T, P> const & x);
+ vecType<L, T, P> const& x);
/// Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
///
@@ -33,10 +33,10 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/distance.xml">GLSL distance man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T distance(
- vecType<T, P> const & p0,
- vecType<T, P> const & p1);
+ vecType<L, T, P> const& p0,
+ vecType<L, T, P> const& p1);
/// Returns the dot product of x and y, i.e., result = x * y.
///
@@ -44,10 +44,10 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/dot.xml">GLSL dot man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P>
GLM_FUNC_DECL T dot(
- vecType<T, P> const & x,
- vecType<T, P> const & y);
+ vec<L, T, P> const & x,
+ vec<L, T, P> const & y);
/// Returns the cross product of x and y.
///
@@ -55,19 +55,19 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cross.xml">GLSL cross man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> cross(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> cross(
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y);
/// Returns a vector in the same direction as x but with length of 1.
/// According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml">GLSL normalize man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> normalize(
- vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> normalize(
+ vecType<L, T, P> const& x);
/// If dot(Nref, I) < 0.0, return N, otherwise, return -N.
///
@@ -75,11 +75,11 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/faceforward.xml">GLSL faceforward man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> faceforward(
- vecType<T, P> const & N,
- vecType<T, P> const & I,
- vecType<T, P> const & Nref);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> faceforward(
+ vecType<L, T, P> const& N,
+ vecType<L, T, P> const& I,
+ vecType<L, T, P> const& Nref);
/// For the incident vector I and surface orientation N,
/// returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
@@ -88,7 +88,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/reflect.xml">GLSL reflect man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType reflect(
genType const & I,
genType const & N);
@@ -101,10 +101,10 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/refract.xml">GLSL refract man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
- 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,
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> refract(
+ vecType<L, T, P> const& I,
+ vecType<L, T, P> const& N,
T eta);
/// @}
diff --git a/3rdparty/glm/glm/detail/func_geometric.inl b/3rdparty/glm/glm/detail/func_geometric.inl
index 07137c3aa8f..dd891d6322f 100644
--- a/3rdparty/glm/glm/detail/func_geometric.inl
+++ b/3rdparty/glm/glm/detail/func_geometric.inl
@@ -10,84 +10,84 @@
namespace glm{
namespace detail
{
- template <template <typename, precision> class vecType, typename T, precision P, bool Aligned>
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P, bool Aligned>
struct compute_length
{
- GLM_FUNC_QUALIFIER static T call(vecType<T, P> const & v)
+ GLM_FUNC_QUALIFIER static T call(vecType<L, T, P> const & v)
{
return sqrt(dot(v, v));
}
};
- template <template <typename, precision> class vecType, typename T, precision P, bool Aligned>
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P, bool Aligned>
struct compute_distance
{
- GLM_FUNC_QUALIFIER static T call(vecType<T, P> const & p0, vecType<T, P> const & p1)
+ GLM_FUNC_QUALIFIER static T call(vecType<L, T, P> const & p0, vecType<L, T, P> const & p1)
{
return length(p1 - p0);
}
};
- template <template <class, precision> class vecType, typename T, precision P, bool Aligned>
+ template<typename V, typename T, bool Aligned>
struct compute_dot{};
- template <typename T, precision P, bool Aligned>
- struct compute_dot<tvec1, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_dot<vec<1, T, P>, T, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tvec1<T, P> const & a, tvec1<T, P> const & b)
+ GLM_FUNC_QUALIFIER static T call(vec<1, T, P> const & a, vec<1, T, P> const & b)
{
return a.x * b.x;
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_dot<tvec2, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_dot<vec<2, T, P>, T, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tvec2<T, P> const & x, tvec2<T, P> const & y)
+ GLM_FUNC_QUALIFIER static T call(vec<2, T, P> const & a, vec<2, T, P> const & b)
{
- tvec2<T, P> tmp(x * y);
+ vec<2, T, P> tmp(a * b);
return tmp.x + tmp.y;
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_dot<tvec3, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_dot<vec<3, T, P>, T, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tvec3<T, P> const & x, tvec3<T, P> const & y)
+ GLM_FUNC_QUALIFIER static T call(vec<3, T, P> const & a, vec<3, T, P> const & b)
{
- tvec3<T, P> tmp(x * y);
+ vec<3, T, P> tmp(a * b);
return tmp.x + tmp.y + tmp.z;
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_dot<tvec4, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_dot<vec<4, T, P>, T, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tvec4<T, P> const & x, tvec4<T, P> const & y)
+ GLM_FUNC_QUALIFIER static T call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- tvec4<T, P> tmp(x * y);
+ vec<4, T, P> tmp(a * b);
return (tmp.x + tmp.y) + (tmp.z + tmp.w);
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_cross
{
- GLM_FUNC_QUALIFIER static tvec3<T, P> call(tvec3<T, P> const & x, tvec3<T, P> const & y)
+ GLM_FUNC_QUALIFIER static vec<3, T, P> call(vec<3, T, P> const & x, vec<3, T, P> const & y)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'cross' accepts only floating-point inputs");
- return tvec3<T, P>(
+ return vec<3, T, P>(
x.y * y.z - y.y * x.z,
x.z * y.x - y.z * x.x,
x.x * y.y - y.x * x.y);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_normalize
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' accepts only floating-point inputs");
@@ -95,10 +95,10 @@ namespace detail
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_faceforward
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & N, vecType<T, P> const & I, vecType<T, P> const & Nref)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & N, vecType<L, T, P> const & I, vecType<L, T, P> const & Nref)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' accepts only floating-point inputs");
@@ -106,19 +106,19 @@ namespace detail
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_reflect
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & I, vecType<T, P> const & N)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & I, vecType<L, T, P> const & N)
{
return I - N * dot(N, I) * static_cast<T>(2);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
struct compute_refract
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & I, vecType<T, P> const & N, T eta)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & I, vecType<L, T, P> const & N, T eta)
{
T const dotValue(dot(N, I));
T const k(static_cast<T>(1) - eta * eta * (static_cast<T>(1) - dotValue * dotValue));
@@ -128,7 +128,7 @@ namespace detail
}//namespace detail
// length
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType length(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'length' accepts only floating-point inputs");
@@ -136,16 +136,16 @@ namespace detail
return abs(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T length(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T length(vecType<L, T, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'length' accepts only floating-point inputs");
- return detail::compute_length<vecType, T, P, detail::is_aligned<P>::value>::call(v);
+ return detail::compute_length<vecType, L, T, P, detail::is_aligned<P>::value>::call(v);
}
// distance
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType distance(genType const & p0, genType const & p1)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'distance' accepts only floating-point inputs");
@@ -153,36 +153,43 @@ namespace detail
return length(p1 - p0);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T distance(vecType<T, P> const & p0, vecType<T, P> const & p1)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T distance(vecType<L, T, P> const & p0, vecType<L, T, P> const & p1)
{
- return detail::compute_distance<vecType, T, P, detail::is_aligned<P>::value>::call(p0, p1);
+ return detail::compute_distance<vecType, L, T, P, detail::is_aligned<P>::value>::call(p0, p1);
}
// dot
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T dot(T x, T y)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' accepts only floating-point inputs");
return x * y;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T dot(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P>
+ GLM_FUNC_QUALIFIER T dot(vec<L, T, P> const & x, vec<L, T, P> const & y)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' accepts only floating-point inputs");
- return detail::compute_dot<vecType, T, P, detail::is_aligned<P>::value>::call(x, y);
+ return detail::compute_dot<vec<L, T, P>, T, detail::is_aligned<P>::value>::call(x, y);
+ }
+
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T dot(tquat<T, P> const & x, tquat<T, P> const & y)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' accepts only floating-point inputs");
+ return detail::compute_dot<tquat<T, P>, T, detail::is_aligned<P>::value>::call(x, y);
}
// cross
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> cross(tvec3<T, P> const & x, tvec3<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> cross(vec<3, T, P> const & x, vec<3, T, P> const & y)
{
return detail::compute_cross<T, P, detail::is_aligned<P>::value>::call(x, y);
}
// normalize
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType normalize(genType const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'normalize' accepts only floating-point inputs");
@@ -190,42 +197,42 @@ namespace detail
return x < genType(0) ? genType(-1) : genType(1);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> normalize(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> normalize(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' accepts only floating-point inputs");
- return detail::compute_normalize<T, P, vecType, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_normalize<L, T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// faceforward
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType faceforward(genType const & N, genType const & I, genType const & Nref)
{
return dot(Nref, I) < static_cast<genType>(0) ? N : -N;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> faceforward(vecType<T, P> const & N, vecType<T, P> const & I, vecType<T, P> const & Nref)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> faceforward(vecType<L, T, P> const & N, vecType<L, T, P> const & I, vecType<L, T, P> const & Nref)
{
- return detail::compute_faceforward<T, P, vecType, detail::is_aligned<P>::value>::call(N, I, Nref);
+ return detail::compute_faceforward<L, T, P, vecType, detail::is_aligned<P>::value>::call(N, I, Nref);
}
// reflect
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType reflect(genType const & I, genType const & N)
{
return I - N * dot(N, I) * genType(2);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> reflect(vecType<T, P> const & I, vecType<T, P> const & N)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> reflect(vecType<L, T, P> const & I, vecType<L, T, P> const & N)
{
- return detail::compute_reflect<T, P, vecType, detail::is_aligned<P>::value>::call(I, N);
+ return detail::compute_reflect<L, T, P, vecType, detail::is_aligned<P>::value>::call(I, N);
}
// refract
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType refract(genType const & I, genType const & N, genType eta)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'refract' accepts only floating-point inputs");
@@ -234,11 +241,11 @@ namespace detail
return (eta * I - (eta * dotValue + sqrt(k)) * N) * static_cast<genType>(k >= static_cast<genType>(0));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> refract(vecType<T, P> const & I, vecType<T, P> const & N, T eta)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> refract(vecType<L, T, P> const & I, vecType<L, T, P> const & N, T eta)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'refract' accepts only floating-point inputs");
- return detail::compute_refract<T, P, vecType, detail::is_aligned<P>::value>::call(I, N, eta);
+ return detail::compute_refract<L, T, P, vecType, detail::is_aligned<P>::value>::call(I, N, eta);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_geometric_simd.inl b/3rdparty/glm/glm/detail/func_geometric_simd.inl
index 225487284ac..7ddf9e05eb4 100644
--- a/3rdparty/glm/glm/detail/func_geometric_simd.inl
+++ b/3rdparty/glm/glm/detail/func_geometric_simd.inl
@@ -8,87 +8,87 @@
namespace glm{
namespace detail
{
- template <precision P>
- struct compute_length<tvec4, float, P, true>
+ template<precision P>
+ struct compute_length<vec, 4, float, P, true>
{
- GLM_FUNC_QUALIFIER static float call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static float call(vec<4, float, P> const & v)
{
return _mm_cvtss_f32(glm_vec4_length(v.data));
}
};
- template <precision P>
- struct compute_distance<tvec4, float, P, true>
+ template<precision P>
+ struct compute_distance<vec, 4, float, P, true>
{
- GLM_FUNC_QUALIFIER static float call(tvec4<float, P> const & p0, tvec4<float, P> const & p1)
+ GLM_FUNC_QUALIFIER static float call(vec<4, float, P> const & p0, vec<4, float, P> const & p1)
{
return _mm_cvtss_f32(glm_vec4_distance(p0.data, p1.data));
}
};
- template <precision P>
- struct compute_dot<tvec4, float, P, true>
+ template<precision P>
+ struct compute_dot<vec<4, float, P>, float, true>
{
- GLM_FUNC_QUALIFIER static float call(tvec4<float, P> const& x, tvec4<float, P> const& y)
+ GLM_FUNC_QUALIFIER static float call(vec<4, float, P> const& x, vec<4, float, P> const& y)
{
return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data));
}
};
- template <precision P>
+ template<precision P>
struct compute_cross<float, P, true>
{
- GLM_FUNC_QUALIFIER static tvec3<float, P> call(tvec3<float, P> const & a, tvec3<float, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<3, float, P> call(vec<3, float, P> const & a, vec<3, float, P> const & b)
{
__m128 const set0 = _mm_set_ps(0.0f, a.z, a.y, a.x);
__m128 const set1 = _mm_set_ps(0.0f, b.z, b.y, b.x);
__m128 const xpd0 = glm_vec4_cross(set0, set1);
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = xpd0;
- return tvec3<float, P>(result);
+ return vec<3, float, P>(result);
}
};
- template <precision P>
- struct compute_normalize<float, P, tvec4, true>
+ template<precision P>
+ struct compute_normalize<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const & v)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_normalize(v.data);
return result;
}
};
- template <precision P>
- struct compute_faceforward<float, P, tvec4, true>
+ template<precision P>
+ struct compute_faceforward<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& N, tvec4<float, P> const& I, tvec4<float, P> const& Nref)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const& N, vec<4, float, P> const& I, vec<4, float, P> const& Nref)
{
- tvec4<float, P> result(uninitialize);
- result.data = glm_vec4_faceforward(N.data. I.data, Nref.data);
+ vec<4, float, P> result(uninitialize);
+ result.data = glm_vec4_faceforward(N.data, I.data, Nref.data);
return result;
}
};
- template <precision P>
- struct compute_reflect<float, P, tvec4, true>
+ template<precision P>
+ struct compute_reflect<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& I, tvec4<float, P> const& N)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const& I, vec<4, float, P> const& N)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_reflect(I.data, N.data);
return result;
}
};
- template <precision P>
- struct compute_refract<float, P, tvec4, true>
+ template<precision P>
+ struct compute_refract<4, float, P, vec, true>
{
- GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& I, tvec4<float, P> const& N, float eta)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> call(vec<4, float, P> const& I, vec<4, float, P> const& N, float eta)
{
- tvec4<float, P> result(uninitialize);
+ vec<4, float, P> result(uninitialize);
result.data = glm_vec4_refract(I.data, N.data, _mm_set1_ps(eta));
return result;
}
diff --git a/3rdparty/glm/glm/detail/func_integer.hpp b/3rdparty/glm/glm/detail/func_integer.hpp
index bd195a9c5ab..375d601491a 100644
--- a/3rdparty/glm/glm/detail/func_integer.hpp
+++ b/3rdparty/glm/glm/detail/func_integer.hpp
@@ -30,11 +30,11 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uaddCarry.xml">GLSL uaddCarry man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<uint, P> uaddCarry(
- vecType<uint, P> const & x,
- vecType<uint, P> const & y,
- vecType<uint, P> & carry);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, uint, P> uaddCarry(
+ vecType<L, uint, P> const & x,
+ vecType<L, uint, P> const & y,
+ vecType<L, uint, P> & carry);
/// Subtracts the 32-bit unsigned integer y from x, returning
/// the difference if non-negative, or pow(2, 32) plus the difference
@@ -44,11 +44,11 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/usubBorrow.xml">GLSL usubBorrow man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<uint, P> usubBorrow(
- vecType<uint, P> const & x,
- vecType<uint, P> const & y,
- vecType<uint, P> & borrow);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, uint, P> usubBorrow(
+ vecType<L, uint, P> const & x,
+ vecType<L, uint, P> const & y,
+ vecType<L, uint, P> & borrow);
/// Multiplies 32-bit integers x and y, producing a 64-bit
/// result. The 32 least-significant bits are returned in lsb.
@@ -58,12 +58,12 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/umulExtended.xml">GLSL umulExtended man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <precision P, template <typename, precision> class vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL void umulExtended(
- vecType<uint, P> const & x,
- vecType<uint, P> const & y,
- vecType<uint, P> & msb,
- vecType<uint, P> & lsb);
+ vecType<L, uint, P> const & x,
+ vecType<L, uint, P> const & y,
+ vecType<L, uint, P> & msb,
+ vecType<L, uint, P> & lsb);
/// Multiplies 32-bit integers x and y, producing a 64-bit
/// result. The 32 least-significant bits are returned in lsb.
@@ -73,12 +73,12 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/imulExtended.xml">GLSL imulExtended man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <precision P, template <typename, precision> class vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL void imulExtended(
- vecType<int, P> const & x,
- vecType<int, P> const & y,
- vecType<int, P> & msb,
- vecType<int, P> & lsb);
+ vecType<L, int, P> const & x,
+ vecType<L, int, P> const & y,
+ vecType<L, int, P> & msb,
+ vecType<L, int, P> & lsb);
/// Extracts bits [offset, offset + bits - 1] from value,
/// returning them in the least significant bits of the result.
@@ -95,9 +95,9 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldExtract.xml">GLSL bitfieldExtract man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldExtract(
- vecType<T, P> const & Value,
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldExtract(
+ vecType<L, T, P> const& Value,
int Offset,
int Bits);
@@ -115,10 +115,10 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldInsert.xml">GLSL bitfieldInsert man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldInsert(
- vecType<T, P> const & Base,
- vecType<T, P> const & Insert,
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldInsert(
+ vecType<L, T, P> const& Base,
+ vecType<L, T, P> const& Insert,
int Offset,
int Bits);
@@ -130,8 +130,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldReverse.xml">GLSL bitfieldReverse man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldReverse(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldReverse(vecType<L, T, P> const & v);
/// Returns the number of bits set to 1 in the binary representation of value.
///
@@ -139,7 +139,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL int bitCount(genType v);
/// Returns the number of bits set to 1 in the binary representation of value.
@@ -148,8 +148,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<int, P> bitCount(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, int, P> bitCount(vecType<L, T, P> const & v);
/// Returns the bit number of the least significant bit set to
/// 1 in the binary representation of value.
@@ -159,7 +159,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL int findLSB(genIUType x);
/// Returns the bit number of the least significant bit set to
@@ -170,8 +170,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<int, P> findLSB(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, int, P> findLSB(vecType<L, T, P> const & v);
/// 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.
@@ -182,7 +182,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL int findMSB(genIUType x);
/// Returns the bit number of the most significant bit in the binary representation of value.
@@ -194,8 +194,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<int, P> findMSB(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, int, P> findMSB(vecType<L, T, P> const & v);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_integer.inl b/3rdparty/glm/glm/detail/func_integer.inl
index 25910eb067b..d4b184c88ce 100644
--- a/3rdparty/glm/glm/detail/func_integer.inl
+++ b/3rdparty/glm/glm/detail/func_integer.inl
@@ -24,49 +24,49 @@
namespace glm{
namespace detail
{
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T mask(T Bits)
{
return Bits >= sizeof(T) * 8 ? ~static_cast<T>(0) : (static_cast<T>(1) << Bits) - static_cast<T>(1);
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned, bool EXEC>
+ template<length_t L, typename T, glm::precision P, template<length_t, typename, precision> class vecType, bool Aligned, bool EXEC>
struct compute_bitfieldReverseStep
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T, T)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& v, T, T)
{
return v;
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned>
- struct compute_bitfieldReverseStep<T, P, vecType, Aligned, true>
+ template<length_t L, typename T, glm::precision P, template<length_t, typename, precision> class vecType, bool Aligned>
+ struct compute_bitfieldReverseStep<L, T, P, vecType, Aligned, true>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Mask, T Shift)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& v, T Mask, T Shift)
{
return (v & Mask) << Shift | (v & (~Mask)) >> Shift;
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned, bool EXEC>
+ template<length_t L, typename T, glm::precision P, template<length_t, typename, precision> class vecType, bool Aligned, bool EXEC>
struct compute_bitfieldBitCountStep
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T, T)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& v, T, T)
{
return v;
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned>
- struct compute_bitfieldBitCountStep<T, P, vecType, Aligned, true>
+ template<length_t L, typename T, glm::precision P, template<length_t, typename, precision> class vecType, bool Aligned>
+ struct compute_bitfieldBitCountStep<L, T, P, vecType, Aligned, true>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Mask, T Shift)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& v, T Mask, T Shift)
{
return (v & Mask) + ((v >> Shift) & Mask);
}
};
- template <typename genIUType, size_t Bits>
+ template<typename genIUType, size_t Bits>
struct compute_findLSB
{
GLM_FUNC_QUALIFIER static int call(genIUType Value)
@@ -79,7 +79,7 @@ namespace detail
};
# if GLM_HAS_BITSCAN_WINDOWS
- template <typename genIUType>
+ template<typename genIUType>
struct compute_findLSB<genIUType, 32>
{
GLM_FUNC_QUALIFIER static int call(genIUType Value)
@@ -91,7 +91,7 @@ namespace detail
};
# if !((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_MODEL == GLM_MODEL_32))
- template <typename genIUType>
+ template<typename genIUType>
struct compute_findLSB<genIUType, 64>
{
GLM_FUNC_QUALIFIER static int call(genIUType Value)
@@ -104,42 +104,42 @@ namespace detail
# endif
# endif//GLM_HAS_BITSCAN_WINDOWS
- template <typename T, glm::precision P, template <class, glm::precision> class vecType, bool EXEC = true>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool EXEC = true>
struct compute_findMSB_step_vec
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, T Shift)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x, T Shift)
{
return x | (x >> Shift);
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- struct compute_findMSB_step_vec<T, P, vecType, false>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_findMSB_step_vec<L, T, P, vecType, false>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, T)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& x, T)
{
return x;
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType, int>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, int>
struct compute_findMSB_vec
{
- GLM_FUNC_QUALIFIER static vecType<int, P> call(vecType<T, P> const & vec)
+ GLM_FUNC_QUALIFIER static vecType<L, int, P> call(vecType<L, T, P> const& v)
{
- vecType<T, P> x(vec);
- x = compute_findMSB_step_vec<T, P, vecType, sizeof(T) * 8 >= 8>::call(x, static_cast<T>( 1));
- x = compute_findMSB_step_vec<T, P, vecType, sizeof(T) * 8 >= 8>::call(x, static_cast<T>( 2));
- x = compute_findMSB_step_vec<T, P, vecType, sizeof(T) * 8 >= 8>::call(x, static_cast<T>( 4));
- x = compute_findMSB_step_vec<T, P, vecType, sizeof(T) * 8 >= 16>::call(x, static_cast<T>( 8));
- x = compute_findMSB_step_vec<T, P, vecType, sizeof(T) * 8 >= 32>::call(x, static_cast<T>(16));
- x = compute_findMSB_step_vec<T, P, vecType, sizeof(T) * 8 >= 64>::call(x, static_cast<T>(32));
- return vecType<int, P>(sizeof(T) * 8 - 1) - glm::bitCount(~x);
+ vecType<L, T, P> x(v);
+ x = compute_findMSB_step_vec<L, T, P, vecType, sizeof(T) * 8 >= 8>::call(x, static_cast<T>( 1));
+ x = compute_findMSB_step_vec<L, T, P, vecType, sizeof(T) * 8 >= 8>::call(x, static_cast<T>( 2));
+ x = compute_findMSB_step_vec<L, T, P, vecType, sizeof(T) * 8 >= 8>::call(x, static_cast<T>( 4));
+ x = compute_findMSB_step_vec<L, T, P, vecType, sizeof(T) * 8 >= 16>::call(x, static_cast<T>( 8));
+ x = compute_findMSB_step_vec<L, T, P, vecType, sizeof(T) * 8 >= 32>::call(x, static_cast<T>(16));
+ x = compute_findMSB_step_vec<L, T, P, vecType, sizeof(T) * 8 >= 64>::call(x, static_cast<T>(32));
+ return vecType<L, int, P>(sizeof(T) * 8 - 1) - glm::bitCount(~x);
}
};
# if GLM_HAS_BITSCAN_WINDOWS
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int compute_findMSB_32(genIUType Value)
{
unsigned long Result(0);
@@ -147,17 +147,17 @@ namespace detail
return IsNotNull ? int(Result) : -1;
}
- template <typename T, glm::precision P, template<typename, glm::precision> class vecType>
- struct compute_findMSB_vec<T, P, vecType, 32>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_findMSB_vec<L, T, P, vecType, 32>
{
- GLM_FUNC_QUALIFIER static vecType<int, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, int, P> call(vecType<L, T, P> const& x)
{
- return detail::functor1<int, T, P, vecType>::call(compute_findMSB_32, x);
+ return detail::functor1<L, int, T, P>::call(compute_findMSB_32, x);
}
};
# if !((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_MODEL == GLM_MODEL_32))
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int compute_findMSB_64(genIUType Value)
{
unsigned long Result(0);
@@ -165,12 +165,12 @@ namespace detail
return IsNotNull ? int(Result) : -1;
}
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
- struct compute_findMSB_vec<T, P, vecType, 64>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_findMSB_vec<L, T, P, vecType, 64>
{
- GLM_FUNC_QUALIFIER static vecType<int, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, int, P> call(vecType<L, T, P> const& x)
{
- return detail::functor1<int, T, P, vecType>::call(compute_findMSB_64, x);
+ return detail::functor1<L, int, T, P>::call(compute_findMSB_64, x);
}
};
# endif
@@ -186,13 +186,13 @@ namespace detail
return static_cast<uint32>(Value64 % (Max32 + static_cast<uint64>(1)));
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<uint, P> uaddCarry(vecType<uint, P> const & x, vecType<uint, P> const & y, vecType<uint, P> & Carry)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, uint, P> uaddCarry(vecType<L, uint, P> const& x, vecType<L, uint, P> const& y, vecType<L, uint, P>& Carry)
{
- vecType<uint64, P> Value64(vecType<uint64, P>(x) + vecType<uint64, P>(y));
- vecType<uint64, P> Max32((static_cast<uint64>(1) << static_cast<uint64>(32)) - static_cast<uint64>(1));
- Carry = mix(vecType<uint32, P>(0), vecType<uint32, P>(1), greaterThan(Value64, Max32));
- return vecType<uint32,P>(Value64 % (Max32 + static_cast<uint64>(1)));
+ vecType<L, uint64, P> Value64(vecType<L, uint64, P>(x) + vecType<L, uint64, P>(y));
+ vecType<L, uint64, P> Max32((static_cast<uint64>(1) << static_cast<uint64>(32)) - static_cast<uint64>(1));
+ Carry = mix(vecType<L, uint32, P>(0), vecType<L, uint32, P>(1), greaterThan(Value64, Max32));
+ return vecType<L, uint32,P>(Value64 % (Max32 + static_cast<uint64>(1)));
}
// usubBorrow
@@ -207,12 +207,12 @@ namespace detail
return static_cast<uint32>((static_cast<int64>(1) << static_cast<int64>(32)) + (static_cast<int64>(y) - static_cast<int64>(x)));
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<uint, P> usubBorrow(vecType<uint, P> const & x, vecType<uint, P> const & y, vecType<uint, P> & Borrow)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, uint, P> usubBorrow(vecType<L, uint, P> const& x, vecType<L, uint, P> const& y, vecType<L, uint, P>& Borrow)
{
- Borrow = mix(vecType<uint, P>(1), vecType<uint, P>(0), greaterThanEqual(x, y));
- vecType<uint, P> const YgeX(y - x);
- vecType<uint, P> const XgeY(vecType<uint32, P>((static_cast<int64>(1) << static_cast<int64>(32)) + (vecType<int64, P>(y) - vecType<int64, P>(x))));
+ Borrow = mix(vecType<L, uint, P>(1), vecType<L, uint, P>(0), greaterThanEqual(x, y));
+ vecType<L, uint, P> const YgeX(y - x);
+ vecType<L, uint, P> const XgeY(vecType<L, uint32, P>((static_cast<int64>(1) << static_cast<int64>(32)) + (vecType<L, int64, P>(y) - vecType<L, int64, P>(x))));
return mix(XgeY, YgeX, greaterThanEqual(y, x));
}
@@ -226,18 +226,18 @@ namespace detail
lsb = static_cast<uint>(Value64);
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER void umulExtended(vecType<uint, P> const & x, vecType<uint, P> const & y, vecType<uint, P> & msb, vecType<uint, P> & lsb)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER void umulExtended(vecType<L, uint, P> const& x, vecType<L, uint, P> const& y, vecType<L, uint, P>& msb, vecType<L, uint, P>& lsb)
{
GLM_STATIC_ASSERT(sizeof(uint) == sizeof(uint32), "uint and uint32 size mismatch");
- vecType<uint64, P> Value64(vecType<uint64, P>(x) * vecType<uint64, P>(y));
- msb = vecType<uint32, P>(Value64 >> static_cast<uint64>(32));
- lsb = vecType<uint32, P>(Value64);
+ vecType<L, uint64, P> Value64(vecType<L, uint64, P>(x) * vecType<L, uint64, P>(y));
+ msb = vecType<L, uint32, P>(Value64 >> static_cast<uint64>(32));
+ lsb = vecType<L, uint32, P>(Value64);
}
// imulExtended
- GLM_FUNC_QUALIFIER void imulExtended(int x, int y, int & msb, int & lsb)
+ GLM_FUNC_QUALIFIER void imulExtended(int x, int y, int& msb, int& lsb)
{
GLM_STATIC_ASSERT(sizeof(int) == sizeof(int32), "int and int32 size mismatch");
@@ -246,25 +246,25 @@ namespace detail
lsb = static_cast<int>(Value64);
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER void imulExtended(vecType<int, P> const & x, vecType<int, P> const & y, vecType<int, P> & msb, vecType<int, P> & lsb)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER void imulExtended(vecType<L, int, P> const& x, vecType<L, int, P> const& y, vecType<L, int, P>& msb, vecType<L, int, P>& lsb)
{
GLM_STATIC_ASSERT(sizeof(int) == sizeof(int32), "int and int32 size mismatch");
- vecType<int64, P> Value64(vecType<int64, P>(x) * vecType<int64, P>(y));
- lsb = vecType<int32, P>(Value64 & static_cast<int64>(0xFFFFFFFF));
- msb = vecType<int32, P>((Value64 >> static_cast<int64>(32)) & static_cast<int64>(0xFFFFFFFF));
+ vecType<L, int64, P> Value64(vecType<L, int64, P>(x) * vecType<L, int64, P>(y));
+ lsb = vecType<L, int32, P>(Value64 & static_cast<int64>(0xFFFFFFFF));
+ msb = vecType<L, int32, P>((Value64 >> static_cast<int64>(32)) & static_cast<int64>(0xFFFFFFFF));
}
// bitfieldExtract
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType bitfieldExtract(genIUType Value, int Offset, int Bits)
{
- return bitfieldExtract(tvec1<genIUType>(Value), Offset, Bits).x;
+ return bitfieldExtract(vec<1, genIUType>(Value), Offset, Bits).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldExtract(vecType<T, P> const & Value, int Offset, int Bits)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldExtract(vecType<L, T, P> const& Value, int Offset, int Bits)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitfieldExtract' only accept integer inputs");
@@ -272,14 +272,14 @@ namespace detail
}
// bitfieldInsert
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType bitfieldInsert(genIUType const & Base, genIUType const & Insert, int Offset, int Bits)
{
- return bitfieldInsert(tvec1<genIUType>(Base), tvec1<genIUType>(Insert), Offset, Bits).x;
+ return bitfieldInsert(vec<1, genIUType>(Base), vec<1, genIUType>(Insert), Offset, Bits).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldInsert(vecType<T, P> const & Base, vecType<T, P> const & Insert, int Offset, int Bits)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldInsert(vecType<L, T, P> const& Base, vecType<L, T, P> const& Insert, int Offset, int Bits)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitfieldInsert' only accept integer values");
@@ -288,47 +288,54 @@ namespace detail
}
// bitfieldReverse
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType bitfieldReverse(genType x)
{
- return bitfieldReverse(glm::tvec1<genType, glm::defaultp>(x)).x;
+ return bitfieldReverse(glm::vec<1, genType, glm::defaultp>(x)).x;
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldReverse(vecType<T, P> const & v)
+ template<length_t L, typename T, glm::precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldReverse(vecType<L, T, P> const& v)
{
- vecType<T, P> x(v);
- x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 2>::call(x, T(0x5555555555555555ull), static_cast<T>( 1));
- x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 4>::call(x, T(0x3333333333333333ull), static_cast<T>( 2));
- x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 8>::call(x, T(0x0F0F0F0F0F0F0F0Full), static_cast<T>( 4));
- x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 16>::call(x, T(0x00FF00FF00FF00FFull), static_cast<T>( 8));
- x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, T(0x0000FFFF0000FFFFull), static_cast<T>(16));
- x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, T(0x00000000FFFFFFFFull), static_cast<T>(32));
+ vecType<L, T, P> x(v);
+ x = detail::compute_bitfieldReverseStep<L, T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 2>::call(x, T(0x5555555555555555ull), static_cast<T>( 1));
+ x = detail::compute_bitfieldReverseStep<L, T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 4>::call(x, T(0x3333333333333333ull), static_cast<T>( 2));
+ x = detail::compute_bitfieldReverseStep<L, T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 8>::call(x, T(0x0F0F0F0F0F0F0F0Full), static_cast<T>( 4));
+ x = detail::compute_bitfieldReverseStep<L, T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 16>::call(x, T(0x00FF00FF00FF00FFull), static_cast<T>( 8));
+ x = detail::compute_bitfieldReverseStep<L, T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, T(0x0000FFFF0000FFFFull), static_cast<T>(16));
+ x = detail::compute_bitfieldReverseStep<L, T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, T(0x00000000FFFFFFFFull), static_cast<T>(32));
return x;
}
// bitCount
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER int bitCount(genType x)
{
- return bitCount(glm::tvec1<genType, glm::defaultp>(x)).x;
+ return bitCount(glm::vec<1, genType, glm::defaultp>(x)).x;
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<int, P> bitCount(vecType<T, P> const & v)
+ template<length_t L, typename T, glm::precision P, template<length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, int, P> bitCount(vecType<L, T, P> const& v)
{
- vecType<typename detail::make_unsigned<T>::type, P> x(*reinterpret_cast<vecType<typename detail::make_unsigned<T>::type, P> const *>(&v));
- x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 2>::call(x, typename detail::make_unsigned<T>::type(0x5555555555555555ull), typename detail::make_unsigned<T>::type( 1));
- x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 4>::call(x, typename detail::make_unsigned<T>::type(0x3333333333333333ull), typename detail::make_unsigned<T>::type( 2));
- x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 8>::call(x, typename detail::make_unsigned<T>::type(0x0F0F0F0F0F0F0F0Full), typename detail::make_unsigned<T>::type( 4));
- x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 16>::call(x, typename detail::make_unsigned<T>::type(0x00FF00FF00FF00FFull), typename detail::make_unsigned<T>::type( 8));
- x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, typename detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename detail::make_unsigned<T>::type(16));
- x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, typename detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename detail::make_unsigned<T>::type(32));
- return vecType<int, P>(x);
+ #if GLM_COMPILER & GLM_COMPILER_VC
+ #pragma warning(push)
+ #pragma warning(disable : 4310) //cast truncates constant value
+ #endif
+ vecType<L, typename detail::make_unsigned<T>::type, P> x(*reinterpret_cast<vecType<L, typename detail::make_unsigned<T>::type, P> const *>(&v));
+ x = detail::compute_bitfieldBitCountStep<L, typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 2>::call(x, typename detail::make_unsigned<T>::type(0x5555555555555555ull), typename detail::make_unsigned<T>::type( 1));
+ x = detail::compute_bitfieldBitCountStep<L, typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 4>::call(x, typename detail::make_unsigned<T>::type(0x3333333333333333ull), typename detail::make_unsigned<T>::type( 2));
+ x = detail::compute_bitfieldBitCountStep<L, typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 8>::call(x, typename detail::make_unsigned<T>::type(0x0F0F0F0F0F0F0F0Full), typename detail::make_unsigned<T>::type( 4));
+ x = detail::compute_bitfieldBitCountStep<L, typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 16>::call(x, typename detail::make_unsigned<T>::type(0x00FF00FF00FF00FFull), typename detail::make_unsigned<T>::type( 8));
+ x = detail::compute_bitfieldBitCountStep<L, typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, typename detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename detail::make_unsigned<T>::type(16));
+ x = detail::compute_bitfieldBitCountStep<L, typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, typename detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename detail::make_unsigned<T>::type(32));
+ return vecType<L, int, P>(x);
+ #if GLM_COMPILER & GLM_COMPILER_VC
+ #pragma warning(pop)
+ #endif
}
// findLSB
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findLSB(genIUType Value)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findLSB' only accept integer values");
@@ -336,29 +343,29 @@ namespace detail
return detail::compute_findLSB<genIUType, sizeof(genIUType) * 8>::call(Value);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<int, P> findLSB(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, int, P> findLSB(vecType<L, T, P> const& x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'findLSB' only accept integer values");
- return detail::functor1<int, T, P, vecType>::call(findLSB, x);
+ return detail::functor1<L, int, T, P>::call(findLSB, x);
}
// findMSB
- template <typename genIUType>
- GLM_FUNC_QUALIFIER int findMSB(genIUType x)
+ template<typename genIUType>
+ GLM_FUNC_QUALIFIER int findMSB(genIUType v)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findMSB' only accept integer values");
- return findMSB(tvec1<genIUType>(x)).x;
+ return findMSB(vec<1, genIUType>(v)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<int, P> findMSB(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, int, P> findMSB(vecType<L, T, P> const& v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'findMSB' only accept integer values");
- return detail::compute_findMSB_vec<T, P, vecType, sizeof(T) * 8>::call(x);
+ return detail::compute_findMSB_vec<L, T, P, vecType, sizeof(T) * 8>::call(v);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_integer_simd.inl b/3rdparty/glm/glm/detail/func_integer_simd.inl
index c79e8618b2d..ddff75babf4 100644
--- a/3rdparty/glm/glm/detail/func_integer_simd.inl
+++ b/3rdparty/glm/glm/detail/func_integer_simd.inl
@@ -8,10 +8,10 @@
namespace glm{
namespace detail
{
- template <glm::precision P>
- struct compute_bitfieldReverseStep<uint32, P, tvec4, true, true>
+ template<glm::precision P>
+ struct compute_bitfieldReverseStep<4, uint32, P, vec, true, true>
{
- GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & v, uint32 Mask, uint32 Shift)
+ GLM_FUNC_QUALIFIER static vec<4, uint32, P> call(vec<4, uint32, P> const & v, uint32 Mask, uint32 Shift)
{
__m128i const set0 = v.data;
@@ -29,10 +29,10 @@ namespace detail
}
};
- template <glm::precision P>
- struct compute_bitfieldBitCountStep<uint32, P, tvec4, true, true>
+ template<glm::precision P>
+ struct compute_bitfieldBitCountStep<4, uint32, P, vec, true, true>
{
- GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & v, uint32 Mask, uint32 Shift)
+ GLM_FUNC_QUALIFIER static vec<4, uint32, P> call(vec<4, uint32, P> const & v, uint32 Mask, uint32 Shift)
{
__m128i const set0 = v.data;
@@ -48,18 +48,20 @@ namespace detail
}//namespace detail
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <>
+ template<>
GLM_FUNC_QUALIFIER int bitCount(uint32 x)
{
return _mm_popcnt_u32(x);
}
- template <>
+# if(GLM_MODEL == GLM_MODEL_64)
+ template<>
GLM_FUNC_QUALIFIER int bitCount(uint64 x)
{
return static_cast<int>(_mm_popcnt_u64(x));
}
-# endif
+# endif//GLM_MODEL
+# endif//GLM_ARCH
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_matrix.hpp b/3rdparty/glm/glm/detail/func_matrix.hpp
index 77fdb3fea77..ac8f350c36b 100644
--- a/3rdparty/glm/glm/detail/func_matrix.hpp
+++ b/3rdparty/glm/glm/detail/func_matrix.hpp
@@ -34,58 +34,58 @@
namespace glm{
namespace detail
{
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec2, tvec2>
+ template<typename T, precision P>
+ struct outerProduct_trait<2, 2, T, P, vec, vec>
{
- typedef tmat2x2<T, P> type;
+ typedef mat<2, 2, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec2, tvec3>
+ template<typename T, precision P>
+ struct outerProduct_trait<2, 3, T, P, vec, vec>
{
- typedef tmat3x2<T, P> type;
+ typedef mat<3, 2, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec2, tvec4>
+ template<typename T, precision P>
+ struct outerProduct_trait<2, 4, T, P, vec, vec>
{
- typedef tmat4x2<T, P> type;
+ typedef mat<4, 2, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec3, tvec2>
+ template<typename T, precision P>
+ struct outerProduct_trait<3, 2, T, P, vec, vec>
{
- typedef tmat2x3<T, P> type;
+ typedef mat<2, 3, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec3, tvec3>
+ template<typename T, precision P>
+ struct outerProduct_trait<3, 3, T, P, vec, vec>
{
- typedef tmat3x3<T, P> type;
+ typedef mat<3, 3, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec3, tvec4>
+ template<typename T, precision P>
+ struct outerProduct_trait<3, 4, T, P, vec, vec>
{
- typedef tmat4x3<T, P> type;
+ typedef mat<4, 3, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec4, tvec2>
+ template<typename T, precision P>
+ struct outerProduct_trait<4, 2, T, P, vec, vec>
{
- typedef tmat2x4<T, P> type;
+ typedef mat<2, 4, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec4, tvec3>
+ template<typename T, precision P>
+ struct outerProduct_trait<4, 3, T, P, vec, vec>
{
- typedef tmat3x4<T, P> type;
+ typedef mat<3, 4, T, P> type;
};
- template <typename T, precision P>
- struct outerProduct_trait<T, P, tvec4, tvec4>
+ template<typename T, precision P>
+ struct outerProduct_trait<4, 4, T, P, vec, vec>
{
- typedef tmat4x4<T, P> type;
+ typedef mat<4, 4, T, P> type;
};
}//namespace detail
@@ -100,7 +100,7 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template <typename T, precision P, template <typename, precision> class matType>
+ template<typename T, precision P, template<typename, precision> class matType>
GLM_FUNC_DECL matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y);
/// Treats the first parameter c as a column vector
@@ -111,8 +111,8 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template <typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
- GLM_FUNC_DECL typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<T, P> const & c, vecTypeB<T, P> const & r);
+ template<int DA, int DB, typename T, precision P, template<length_t, typename, precision> class vecTypeA, template<length_t, typename, precision> class vecTypeB>
+ GLM_FUNC_DECL typename detail::outerProduct_trait<DA, DB, T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<DA, T, P> const & c, vecTypeB<DB, T, P> const & r);
/// Returns the transposed matrix of x
///
@@ -120,10 +120,8 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
-# if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))
- template <typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_DECL typename matType<T, P>::transpose_type transpose(matType<T, P> const & x);
-# endif
+ template<typename T, precision P, template<typename, precision> class matType>
+ GLM_FUNC_DECL typename matType<T, P>::transpose_type transpose(matType<T, P> const & x);
/// Return the determinant of a squared matrix.
///
@@ -131,7 +129,7 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template <typename T, precision P, template <typename, precision> class matType>
+ template<typename T, precision P, template<typename, precision> class matType>
GLM_FUNC_DECL T determinant(matType<T, P> const & m);
/// Return the inverse of a squared matrix.
@@ -140,7 +138,7 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template <typename T, precision P, template <typename, precision> class matType>
+ template<typename T, precision P, template<typename, precision> class matType>
GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
/// @}
diff --git a/3rdparty/glm/glm/detail/func_matrix.inl b/3rdparty/glm/glm/detail/func_matrix.inl
index fcd1de30e32..aa605fc1c14 100644
--- a/3rdparty/glm/glm/detail/func_matrix.inl
+++ b/3rdparty/glm/glm/detail/func_matrix.inl
@@ -7,27 +7,27 @@
namespace glm{
namespace detail
{
- template <template <typename, precision> class matType, typename T, precision P, bool Aligned>
+ template<template<length_t, length_t, typename, precision> class matType, length_t C, length_t R, typename T, precision P, bool Aligned>
struct compute_matrixCompMult
{
- GLM_FUNC_QUALIFIER static matType<T, P> call(matType<T, P> const& x, matType<T, P> const& y)
+ GLM_FUNC_QUALIFIER static matType<C, R, T, P> call(matType<C, R, T, P> const& x, matType<C, R, T, P> const& y)
{
- matType<T, P> result(uninitialize);
+ matType<C, R, T, P> result(uninitialize);
for(length_t i = 0; i < result.length(); ++i)
result[i] = x[i] * y[i];
return result;
}
};
- template <template <class, precision> class matType, typename T, precision P, bool Aligned>
+ template<template<length_t, length_t, typename, precision> class matType, length_t C, length_t R, typename T, precision P, bool Aligned>
struct compute_transpose{};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat2x2, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 2, 2, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat2x2<T, P> call(tmat2x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<2, 2, T, P> call(mat<2, 2, T, P> const& m)
{
- tmat2x2<T, P> result(uninitialize);
+ mat<2, 2, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[1][0] = m[0][1];
@@ -36,12 +36,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat2x3, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 2, 3, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat3x2<T, P> call(tmat2x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<3, 2, T, P> call(mat<2, 3, T, P> const& m)
{
- tmat3x2<T, P> result(uninitialize);
+ mat<3,2, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[1][0] = m[0][1];
@@ -52,12 +52,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat2x4, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 2, 4, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat4x2<T, P> call(tmat2x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<4, 2, T, P> call(mat<2, 4, T, P> const& m)
{
- tmat4x2<T, P> result(uninitialize);
+ mat<4, 2, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[1][0] = m[0][1];
@@ -70,12 +70,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat3x2, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 3, 2, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat2x3<T, P> call(tmat3x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<2, 3, T, P> call(mat<3, 2, T, P> const& m)
{
- tmat2x3<T, P> result(uninitialize);
+ mat<2, 3, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[0][2] = m[2][0];
@@ -86,12 +86,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat3x3, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 3, 3, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat3x3<T, P> call(tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<3, 3, T, P> call(mat<3, 3, T, P> const& m)
{
- tmat3x3<T, P> result(uninitialize);
+ mat<3, 3, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[0][2] = m[2][0];
@@ -107,12 +107,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat3x4, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 3, 4, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat4x3<T, P> call(tmat3x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<4, 3, T, P> call(mat<3, 4, T, P> const& m)
{
- tmat4x3<T, P> result(uninitialize);
+ mat<4, 3, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[0][2] = m[2][0];
@@ -129,12 +129,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat4x2, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 4, 2, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat2x4<T, P> call(tmat4x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<2, 4, T, P> call(mat<4, 2, T, P> const& m)
{
- tmat2x4<T, P> result(uninitialize);
+ mat<2, 4, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[0][2] = m[2][0];
@@ -147,12 +147,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat4x3, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 4, 3, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat3x4<T, P> call(tmat4x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<3, 4, T, P> call(mat<4, 3, T, P> const& m)
{
- tmat3x4<T, P> result(uninitialize);
+ mat<3, 4, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[0][2] = m[2][0];
@@ -169,12 +169,12 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_transpose<tmat4x4, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_transpose<mat, 4, 4, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat4x4<T, P> call(tmat4x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<4, 4, T, P> call(mat<4, 4, T, P> const& m)
{
- tmat4x4<T, P> result(uninitialize);
+ mat<4, 4, T, P> result(uninitialize);
result[0][0] = m[0][0];
result[0][1] = m[1][0];
result[0][2] = m[2][0];
@@ -198,22 +198,22 @@ namespace detail
}
};
- template <template <typename, precision> class matType, typename T, precision P, bool Aligned>
+ template<template<length_t, length_t, typename, precision> class matType, length_t C, length_t R, typename T, precision P, bool Aligned>
struct compute_determinant{};
- template <typename T, precision P, bool Aligned>
- struct compute_determinant<tmat2x2, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_determinant<mat, 2, 2, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tmat2x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER static T call(mat<2, 2, T, P> const& m)
{
return m[0][0] * m[1][1] - m[1][0] * m[0][1];
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_determinant<tmat3x3, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_determinant<mat, 3, 3, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER static T call(mat<3, 3, T, P> const& m)
{
return
+ m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2])
@@ -222,10 +222,10 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_determinant<tmat4x4, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_determinant<mat, 4, 4, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static T call(tmat4x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER static T call(mat<4, 4, T, P> const& m)
{
T SubFactor00 = m[2][2] * m[3][3] - m[3][2] * m[2][3];
T SubFactor01 = m[2][1] * m[3][3] - m[3][1] * m[2][3];
@@ -234,7 +234,7 @@ namespace detail
T SubFactor04 = m[2][0] * m[3][2] - m[3][0] * m[2][2];
T SubFactor05 = m[2][0] * m[3][1] - m[3][0] * m[2][1];
- tvec4<T, P> DetCof(
+ vec<4, T, P> DetCof(
+ (m[1][1] * SubFactor00 - m[1][2] * SubFactor01 + m[1][3] * SubFactor02),
- (m[1][0] * SubFactor00 - m[1][2] * SubFactor03 + m[1][3] * SubFactor04),
+ (m[1][0] * SubFactor01 - m[1][1] * SubFactor03 + m[1][3] * SubFactor05),
@@ -246,19 +246,19 @@ namespace detail
}
};
- template <template <typename, precision> class matType, typename T, precision P, bool Aligned>
+ template<template<length_t, length_t, typename, precision> class matType, length_t C, length_t R, typename T, precision P, bool Aligned>
struct compute_inverse{};
- template <typename T, precision P, bool Aligned>
- struct compute_inverse<tmat2x2, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_inverse<mat, 2, 2, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat2x2<T, P> call(tmat2x2<T, P> const& m)
+ GLM_FUNC_QUALIFIER static mat<2, 2, T, P> call(mat<2, 2, T, P> const& m)
{
T OneOverDeterminant = static_cast<T>(1) / (
+ m[0][0] * m[1][1]
- m[1][0] * m[0][1]);
- tmat2x2<T, P> Inverse(
+ mat<2, 2, T, P> Inverse(
+ m[1][1] * OneOverDeterminant,
- m[0][1] * OneOverDeterminant,
- m[1][0] * OneOverDeterminant,
@@ -268,17 +268,17 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_inverse<tmat3x3, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_inverse<mat, 3, 3, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat3x3<T, P> call(tmat3x3<T, P> const& m)
+ GLM_FUNC_QUALIFIER static mat<3, 3, T, P> call(mat<3, 3, T, P> const& m)
{
T OneOverDeterminant = static_cast<T>(1) / (
+ m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2])
- m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2])
+ m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]));
- tmat3x3<T, P> Inverse(uninitialize);
+ mat<3, 3, T, P> Inverse(uninitialize);
Inverse[0][0] = + (m[1][1] * m[2][2] - m[2][1] * m[1][2]) * OneOverDeterminant;
Inverse[1][0] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]) * OneOverDeterminant;
Inverse[2][0] = + (m[1][0] * m[2][1] - m[2][0] * m[1][1]) * OneOverDeterminant;
@@ -293,10 +293,10 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
- struct compute_inverse<tmat4x4, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_inverse<mat, 4, 4, T, P, Aligned>
{
- GLM_FUNC_QUALIFIER static tmat4x4<T, P> call(tmat4x4<T, P> const& m)
+ GLM_FUNC_QUALIFIER static mat<4, 4, T, P> call(mat<4, 4, T, P> const& m)
{
T Coef00 = m[2][2] * m[3][3] - m[3][2] * m[2][3];
T Coef02 = m[1][2] * m[3][3] - m[3][2] * m[1][3];
@@ -322,30 +322,30 @@ namespace detail
T Coef22 = m[1][0] * m[3][1] - m[3][0] * m[1][1];
T Coef23 = m[1][0] * m[2][1] - m[2][0] * m[1][1];
- tvec4<T, P> Fac0(Coef00, Coef00, Coef02, Coef03);
- tvec4<T, P> Fac1(Coef04, Coef04, Coef06, Coef07);
- tvec4<T, P> Fac2(Coef08, Coef08, Coef10, Coef11);
- tvec4<T, P> Fac3(Coef12, Coef12, Coef14, Coef15);
- tvec4<T, P> Fac4(Coef16, Coef16, Coef18, Coef19);
- tvec4<T, P> Fac5(Coef20, Coef20, Coef22, Coef23);
+ vec<4, T, P> Fac0(Coef00, Coef00, Coef02, Coef03);
+ vec<4, T, P> Fac1(Coef04, Coef04, Coef06, Coef07);
+ vec<4, T, P> Fac2(Coef08, Coef08, Coef10, Coef11);
+ vec<4, T, P> Fac3(Coef12, Coef12, Coef14, Coef15);
+ vec<4, T, P> Fac4(Coef16, Coef16, Coef18, Coef19);
+ vec<4, T, P> Fac5(Coef20, Coef20, Coef22, Coef23);
- tvec4<T, P> Vec0(m[1][0], m[0][0], m[0][0], m[0][0]);
- tvec4<T, P> Vec1(m[1][1], m[0][1], m[0][1], m[0][1]);
- tvec4<T, P> Vec2(m[1][2], m[0][2], m[0][2], m[0][2]);
- tvec4<T, P> Vec3(m[1][3], m[0][3], m[0][3], m[0][3]);
+ vec<4, T, P> Vec0(m[1][0], m[0][0], m[0][0], m[0][0]);
+ vec<4, T, P> Vec1(m[1][1], m[0][1], m[0][1], m[0][1]);
+ vec<4, T, P> Vec2(m[1][2], m[0][2], m[0][2], m[0][2]);
+ vec<4, T, P> Vec3(m[1][3], m[0][3], m[0][3], m[0][3]);
- tvec4<T, P> Inv0(Vec1 * Fac0 - Vec2 * Fac1 + Vec3 * Fac2);
- tvec4<T, P> Inv1(Vec0 * Fac0 - Vec2 * Fac3 + Vec3 * Fac4);
- tvec4<T, P> Inv2(Vec0 * Fac1 - Vec1 * Fac3 + Vec3 * Fac5);
- tvec4<T, P> Inv3(Vec0 * Fac2 - Vec1 * Fac4 + Vec2 * Fac5);
+ vec<4, T, P> Inv0(Vec1 * Fac0 - Vec2 * Fac1 + Vec3 * Fac2);
+ vec<4, T, P> Inv1(Vec0 * Fac0 - Vec2 * Fac3 + Vec3 * Fac4);
+ vec<4, T, P> Inv2(Vec0 * Fac1 - Vec1 * Fac3 + Vec3 * Fac5);
+ vec<4, T, P> Inv3(Vec0 * Fac2 - Vec1 * Fac4 + Vec2 * Fac5);
- tvec4<T, P> SignA(+1, -1, +1, -1);
- tvec4<T, P> SignB(-1, +1, -1, +1);
- tmat4x4<T, P> Inverse(Inv0 * SignA, Inv1 * SignB, Inv2 * SignA, Inv3 * SignB);
+ vec<4, T, P> SignA(+1, -1, +1, -1);
+ vec<4, T, P> SignB(-1, +1, -1, +1);
+ mat<4, 4, T, P> Inverse(Inv0 * SignA, Inv1 * SignB, Inv2 * SignA, Inv3 * SignB);
- tvec4<T, P> Row0(Inverse[0][0], Inverse[1][0], Inverse[2][0], Inverse[3][0]);
+ vec<4, T, P> Row0(Inverse[0][0], Inverse[1][0], Inverse[2][0], Inverse[3][0]);
- tvec4<T, P> Dot0(m[0] * Row0);
+ vec<4, T, P> Dot0(m[0] * Row0);
T Dot1 = (Dot0.x + Dot0.y) + (Dot0.z + Dot0.w);
T OneOverDeterminant = static_cast<T>(1) / Dot1;
@@ -355,43 +355,43 @@ namespace detail
};
}//namespace detail
- template <typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_QUALIFIER matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y)
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_QUALIFIER matType<C, R, T, P> matrixCompMult(matType<C, R, T, P> const & x, matType<C, R, T, P> const & y)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'matrixCompMult' only accept floating-point inputs");
- return detail::compute_matrixCompMult<matType, T, P, detail::is_aligned<P>::value>::call(x, y);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'matrixCompMult' only accept floating-point inputs");
+ return detail::compute_matrixCompMult<matType, C, R, T, P, detail::is_aligned<P>::value>::call(x, y);
}
- template<typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
- GLM_FUNC_QUALIFIER typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<T, P> const & c, vecTypeB<T, P> const & r)
+ template<int DA, int DB, typename T, precision P, template<length_t, typename, precision> class vecTypeA, template<length_t, typename, precision> class vecTypeB>
+ GLM_FUNC_QUALIFIER typename detail::outerProduct_trait<DA, DB, T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<DA, T, P> const & c, vecTypeB<DB, T, P> const & r)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'outerProduct' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'outerProduct' only accept floating-point inputs");
- typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type m(uninitialize);
+ typename detail::outerProduct_trait<DA, DB, T, P, vecTypeA, vecTypeB>::type m(uninitialize);
for(length_t i = 0; i < m.length(); ++i)
m[i] = c * r[i];
return m;
}
- template <typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_QUALIFIER typename matType<T, P>::transpose_type transpose(matType<T, P> const & m)
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_QUALIFIER typename matType<C, R, T, P>::transpose_type transpose(matType<C, R, T, P> const & m)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'transpose' only accept floating-point inputs");
- return detail::compute_transpose<matType, T, P, detail::is_aligned<P>::value>::call(m);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'transpose' only accept floating-point inputs");
+ return detail::compute_transpose<matType, C, R, T, P, detail::is_aligned<P>::value>::call(m);
}
- template <typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_QUALIFIER T determinant(matType<T, P> const & m)
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_QUALIFIER T determinant(matType<C, R, T, P> const & m)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'determinant' only accept floating-point inputs");
- return detail::compute_determinant<matType, T, P, detail::is_aligned<P>::value>::call(m);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'determinant' only accept floating-point inputs");
+ return detail::compute_determinant<matType, C, R, T, P, detail::is_aligned<P>::value>::call(m);
}
- template <typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_QUALIFIER matType<T, P> inverse(matType<T, P> const & m)
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_QUALIFIER matType<C, R, T, P> inverse(matType<C, R, T, P> const & m)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'inverse' only accept floating-point inputs");
- return detail::compute_inverse<matType, T, P, detail::is_aligned<P>::value>::call(m);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || GLM_UNRESTRICTED_GENTYPE, "'inverse' only accept floating-point inputs");
+ return detail::compute_inverse<matType, C, R, T, P, detail::is_aligned<P>::value>::call(m);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_matrix_simd.inl b/3rdparty/glm/glm/detail/func_matrix_simd.inl
index 61b0a5ba9d5..99491866a1c 100644
--- a/3rdparty/glm/glm/detail/func_matrix_simd.inl
+++ b/3rdparty/glm/glm/detail/func_matrix_simd.inl
@@ -10,14 +10,14 @@
namespace glm{
namespace detail
{
- template <precision P>
- struct compute_matrixCompMult<tmat4x4, float, P, true>
+ template<precision P>
+ struct compute_matrixCompMult<mat, 4, 4, float, P, true>
{
GLM_STATIC_ASSERT(detail::is_aligned<P>::value, "Specialization requires aligned");
- GLM_FUNC_QUALIFIER static tmat4x4<float, P> call(tmat4x4<float, P> const & x, tmat4x4<float, P> const & y)
+ GLM_FUNC_QUALIFIER static mat<4, 4, float, P> call(mat<4, 4, float, P> const & x, mat<4, 4, float, P> const & y)
{
- tmat4x4<float, P> result(uninitialize);
+ mat<4, 4, float, P> result(uninitialize);
glm_mat4_matrixCompMult(
*(glm_vec4 const (*)[4])&x[0].data,
*(glm_vec4 const (*)[4])&y[0].data,
@@ -26,12 +26,12 @@ namespace detail
}
};
- template <precision P>
- struct compute_transpose<tmat4x4, float, P, true>
+ template<precision P>
+ struct compute_transpose<mat, 4, 4, float, P, true>
{
- GLM_FUNC_QUALIFIER static tmat4x4<float, P> call(tmat4x4<float, P> const & m)
+ GLM_FUNC_QUALIFIER static mat<4, 4, float, P> call(mat<4, 4, float, P> const & m)
{
- tmat4x4<float, P> result(uninitialize);
+ mat<4, 4, float, P> result(uninitialize);
glm_mat4_transpose(
*(glm_vec4 const (*)[4])&m[0].data,
*(glm_vec4(*)[4])&result[0].data);
@@ -39,21 +39,21 @@ namespace detail
}
};
- template <precision P>
- struct compute_determinant<tmat4x4, float, P, true>
+ template<precision P>
+ struct compute_determinant<mat, 4, 4, float, P, true>
{
- GLM_FUNC_QUALIFIER static float call(tmat4x4<float, P> const& m)
+ GLM_FUNC_QUALIFIER static float call(mat<4, 4, float, P> const& m)
{
return _mm_cvtss_f32(glm_mat4_determinant(*reinterpret_cast<__m128 const(*)[4]>(&m[0].data)));
}
};
- template <precision P>
- struct compute_inverse<tmat4x4, float, P, true>
+ template<precision P>
+ struct compute_inverse<mat, 4, 4, float, P, true>
{
- GLM_FUNC_QUALIFIER static tmat4x4<float, P> call(tmat4x4<float, P> const& m)
+ GLM_FUNC_QUALIFIER static mat<4, 4, float, P> call(mat<4, 4, float, P> const& m)
{
- tmat4x4<float, P> Result(uninitialize);
+ mat<4, 4, float, P> Result(uninitialize);
glm_mat4_inverse(*reinterpret_cast<__m128 const(*)[4]>(&m[0].data), *reinterpret_cast<__m128(*)[4]>(&Result[0].data));
return Result;
}
@@ -61,25 +61,25 @@ namespace detail
}//namespace detail
template<>
- GLM_FUNC_QUALIFIER tmat4x4<float, aligned_lowp> outerProduct<float, aligned_lowp, tvec4, tvec4>(tvec4<float, aligned_lowp> const & c, tvec4<float, aligned_lowp> const & r)
+ GLM_FUNC_QUALIFIER mat<4, 4, float, aligned_lowp> outerProduct<4, 4, float, aligned_lowp, vec, vec>(vec<4, float, aligned_lowp> const & c, vec<4, float, aligned_lowp> const & r)
{
- tmat4x4<float, aligned_lowp> m(uninitialize);
+ mat<4, 4, float, aligned_lowp> m(uninitialize);
glm_mat4_outerProduct(c.data, r.data, *reinterpret_cast<__m128(*)[4]>(&m[0].data));
return m;
}
template<>
- GLM_FUNC_QUALIFIER tmat4x4<float, aligned_mediump> outerProduct<float, aligned_mediump, tvec4, tvec4>(tvec4<float, aligned_mediump> const & c, tvec4<float, aligned_mediump> const & r)
+ GLM_FUNC_QUALIFIER mat<4, 4, float, aligned_mediump> outerProduct<4, 4, float, aligned_mediump, vec, vec>(vec<4, float, aligned_mediump> const & c, vec<4, float, aligned_mediump> const & r)
{
- tmat4x4<float, aligned_mediump> m(uninitialize);
+ mat<4, 4, float, aligned_mediump> m(uninitialize);
glm_mat4_outerProduct(c.data, r.data, *reinterpret_cast<__m128(*)[4]>(&m[0].data));
return m;
}
template<>
- GLM_FUNC_QUALIFIER tmat4x4<float, aligned_highp> outerProduct<float, aligned_highp, tvec4, tvec4>(tvec4<float, aligned_highp> const & c, tvec4<float, aligned_highp> const & r)
+ GLM_FUNC_QUALIFIER mat<4, 4, float, aligned_highp> outerProduct<4, 4, float, aligned_highp, vec, vec>(vec<4, float, aligned_highp> const & c, vec<4, float, aligned_highp> const & r)
{
- tmat4x4<float, aligned_highp> m(uninitialize);
+ mat<4, 4, float, aligned_highp> m(uninitialize);
glm_mat4_outerProduct(c.data, r.data, *reinterpret_cast<__m128(*)[4]>(&m[0].data));
return m;
}
diff --git a/3rdparty/glm/glm/detail/func_trigonometric.hpp b/3rdparty/glm/glm/detail/func_trigonometric.hpp
index 719cff0bd93..f17ba6d1146 100644
--- a/3rdparty/glm/glm/detail/func_trigonometric.hpp
+++ b/3rdparty/glm/glm/detail/func_trigonometric.hpp
@@ -28,8 +28,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> radians(vecType<T, P> const & degrees);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL GLM_CONSTEXPR vecType<L, T, P> radians(vecType<L, T, P> const & degrees);
/// Converts radians to degrees and returns the result.
///
@@ -37,8 +37,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> degrees(vecType<T, P> const & radians);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL GLM_CONSTEXPR vecType<L, T, P> degrees(vecType<L, T, P> const & radians);
/// The standard trigonometric sine function.
/// The values returned by this function will range from [-1, 1].
@@ -47,8 +47,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> sin(vecType<T, P> const & angle);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> sin(vecType<L, T, P> const & angle);
/// The standard trigonometric cosine function.
/// The values returned by this function will range from [-1, 1].
@@ -57,8 +57,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> cos(vecType<T, P> const & angle);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> cos(vecType<L, T, P> const & angle);
/// The standard trigonometric tangent function.
///
@@ -66,8 +66,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> tan(vecType<T, P> const & angle);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> tan(vecType<L, T, P> const & angle);
/// Arc sine. Returns an angle whose sine is x.
/// The range of values returned by this function is [-PI/2, PI/2].
@@ -77,8 +77,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> asin(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> asin(vecType<L, T, P> const & x);
/// Arc cosine. Returns an angle whose sine is x.
/// The range of values returned by this function is [0, PI].
@@ -88,8 +88,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> acos(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> acos(vecType<L, T, P> const & x);
/// Arc tangent. Returns an angle whose tangent is y/x.
/// The signs of x and y are used to determine what
@@ -101,8 +101,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> atan(vecType<T, P> const & y, vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> atan(vecType<L, T, P> const & y, vecType<L, T, P> const & 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].
@@ -111,8 +111,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> atan(vecType<T, P> const & y_over_x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> atan(vecType<L, T, P> const & y_over_x);
/// Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2
///
@@ -120,8 +120,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> sinh(vecType<T, P> const & angle);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> sinh(vecType<L, T, P> const & angle);
/// Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2
///
@@ -129,8 +129,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> cosh(vecType<T, P> const & angle);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> cosh(vecType<L, T, P> const & angle);
/// Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
///
@@ -138,8 +138,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> tanh(vecType<T, P> const & angle);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> tanh(vecType<L, T, P> const & angle);
/// Arc hyperbolic sine; returns the inverse of sinh.
///
@@ -147,8 +147,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> asinh(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> asinh(vecType<L, T, P> const & x);
/// Arc hyperbolic cosine; returns the non-negative inverse
/// of cosh. Results are undefined if x < 1.
@@ -157,8 +157,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> acosh(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> acosh(vecType<L, T, P> const & x);
/// Arc hyperbolic tangent; returns the inverse of tanh.
/// Results are undefined if abs(x) >= 1.
@@ -167,8 +167,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> atanh(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> atanh(vecType<L, T, P> const & x);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_trigonometric.inl b/3rdparty/glm/glm/detail/func_trigonometric.inl
index 29866734146..952273dcdab 100644
--- a/3rdparty/glm/glm/detail/func_trigonometric.inl
+++ b/3rdparty/glm/glm/detail/func_trigonometric.inl
@@ -8,7 +8,7 @@
namespace glm
{
// radians
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType radians(genType degrees)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'radians' only accept floating-point input");
@@ -16,14 +16,14 @@ namespace glm
return degrees * static_cast<genType>(0.01745329251994329576923690768489);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR vecType<T, P> radians(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR vecType<L, T, P> radians(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(radians, v);
+ return detail::functor1<L, T, T, P>::call(radians, v);
}
// degrees
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType degrees(genType radians)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'degrees' only accept floating-point input");
@@ -31,59 +31,59 @@ namespace glm
return radians * static_cast<genType>(57.295779513082320876798154814105);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR vecType<T, P> degrees(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR vecType<L, T, P> degrees(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(degrees, v);
+ return detail::functor1<L, T, T, P>::call(degrees, v);
}
// sin
using ::std::sin;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> sin(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> sin(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(sin, v);
+ return detail::functor1<L, T, T, P>::call(sin, v);
}
// cos
using std::cos;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> cos(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> cos(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(cos, v);
+ return detail::functor1<L, T, T, P>::call(cos, v);
}
// tan
using std::tan;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> tan(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> tan(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(tan, v);
+ return detail::functor1<L, T, T, P>::call(tan, v);
}
// asin
using std::asin;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> asin(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> asin(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(asin, v);
+ return detail::functor1<L, T, T, P>::call(asin, v);
}
// acos
using std::acos;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> acos(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> acos(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(acos, v);
+ return detail::functor1<L, T, T, P>::call(acos, v);
}
// atan
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType atan(genType y, genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'atan' only accept floating-point input");
@@ -91,52 +91,52 @@ namespace glm
return ::std::atan2(y, x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> atan(vecType<T, P> const & a, vecType<T, P> const & b)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> atan(vecType<L, T, P> const & a, vecType<L, T, P> const & b)
{
- return detail::functor2<T, P, vecType>::call(::std::atan2, a, b);
+ return detail::functor2<L, T, P>::call(::std::atan2, a, b);
}
using std::atan;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> atan(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> atan(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(atan, v);
+ return detail::functor1<L, T, T, P>::call(atan, v);
}
// sinh
using std::sinh;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> sinh(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> sinh(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(sinh, v);
+ return detail::functor1<L, T, T, P>::call(sinh, v);
}
// cosh
using std::cosh;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> cosh(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> cosh(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(cosh, v);
+ return detail::functor1<L, T, T, P>::call(cosh, v);
}
// tanh
using std::tanh;
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> tanh(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> tanh(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(tanh, v);
+ return detail::functor1<L, T, T, P>::call(tanh, v);
}
// asinh
# if GLM_HAS_CXX11_STL
using std::asinh;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType asinh(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'asinh' only accept floating-point input");
@@ -145,17 +145,17 @@ namespace glm
}
# endif
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> asinh(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> asinh(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(asinh, v);
+ return detail::functor1<L, T, T, P>::call(asinh, v);
}
// acosh
# if GLM_HAS_CXX11_STL
using std::acosh;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType acosh(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'acosh' only accept floating-point input");
@@ -166,17 +166,17 @@ namespace glm
}
# endif
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> acosh(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> acosh(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(acosh, v);
+ return detail::functor1<L, T, T, P>::call(acosh, v);
}
// atanh
# if GLM_HAS_CXX11_STL
using std::atanh;
# else
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType atanh(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'atanh' only accept floating-point input");
@@ -187,10 +187,10 @@ namespace glm
}
# endif
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> atanh(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> atanh(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(atanh, v);
+ return detail::functor1<L, T, T, P>::call(atanh, v);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_vector_relational.hpp b/3rdparty/glm/glm/detail/func_vector_relational.hpp
index ec0f68a75f8..f981bd7fa0c 100644
--- a/3rdparty/glm/glm/detail/func_vector_relational.hpp
+++ b/3rdparty/glm/glm/detail/func_vector_relational.hpp
@@ -29,8 +29,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> lessThan(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> lessThan(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns the component-wise comparison of result x <= y.
///
@@ -38,8 +38,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> lessThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> lessThanEqual(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns the component-wise comparison of result x > y.
///
@@ -47,8 +47,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> greaterThan(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> greaterThan(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns the component-wise comparison of result x >= y.
///
@@ -56,8 +56,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> greaterThanEqual(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> greaterThanEqual(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns the component-wise comparison of result x == y.
///
@@ -65,8 +65,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> equal(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> equal(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns the component-wise comparison of result x != y.
///
@@ -74,8 +74,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> notEqual(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> notEqual(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns true if any component of x is true.
///
@@ -83,8 +83,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool any(vecType<bool, P> const & v);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool any(vecType<L, bool, P> const & v);
/// Returns true if all components of x are true.
///
@@ -92,8 +92,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool all(vecType<bool, P> const & v);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool all(vecType<L, 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.
@@ -102,8 +102,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> not_(vecType<bool, P> const & v);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> not_(vecType<L, bool, P> const & v);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/func_vector_relational.inl b/3rdparty/glm/glm/detail/func_vector_relational.inl
index 3d8d2b7ec34..88ab56da83f 100644
--- a/3rdparty/glm/glm/detail/func_vector_relational.inl
+++ b/3rdparty/glm/glm/detail/func_vector_relational.inl
@@ -5,75 +5,75 @@
namespace glm
{
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> lessThan(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> lessThan(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
assert(x.length() == y.length());
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] < y[i];
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> lessThanEqual(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> lessThanEqual(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
assert(x.length() == y.length());
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] <= y[i];
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> greaterThan(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> greaterThan(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
assert(x.length() == y.length());
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] > y[i];
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> greaterThanEqual(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> greaterThanEqual(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
assert(x.length() == y.length());
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] >= y[i];
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> equal(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> equal(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
assert(x.length() == y.length());
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] == y[i];
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> notEqual(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> notEqual(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
assert(x.length() == y.length());
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] != y[i];
return Result;
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER bool any(vecType<bool, P> const & v)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER bool any(vecType<L, bool, P> const & v)
{
bool Result = false;
for(length_t i = 0; i < v.length(); ++i)
@@ -81,8 +81,8 @@ namespace glm
return Result;
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER bool all(vecType<bool, P> const & v)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER bool all(vecType<L, bool, P> const & v)
{
bool Result = true;
for(length_t i = 0; i < v.length(); ++i)
@@ -90,10 +90,10 @@ namespace glm
return Result;
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> not_(vecType<bool, P> const & v)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> not_(vecType<L, bool, P> const & v)
{
- vecType<bool, P> Result(uninitialize);
+ vecType<L, bool, P> Result(uninitialize);
for(length_t i = 0; i < v.length(); ++i)
Result[i] = !v[i];
return Result;
diff --git a/3rdparty/glm/glm/detail/glm.cpp b/3rdparty/glm/glm/detail/glm.cpp
index da3be4e0518..9cbdd029b57 100644
--- a/3rdparty/glm/glm/detail/glm.cpp
+++ b/3rdparty/glm/glm/detail/glm.cpp
@@ -1,6 +1,7 @@
/// @ref core
/// @file glm/glm.cpp
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#include <glm/gtc/quaternion.hpp>
#include <glm/gtx/dual_quaternion.hpp>
@@ -8,230 +9,230 @@
namespace glm
{
// tvec1 type explicit instantiation
-template struct tvec1<uint8, lowp>;
-template struct tvec1<uint16, lowp>;
-template struct tvec1<uint32, lowp>;
-template struct tvec1<uint64, lowp>;
-template struct tvec1<int8, lowp>;
-template struct tvec1<int16, lowp>;
-template struct tvec1<int32, lowp>;
-template struct tvec1<int64, lowp>;
-template struct tvec1<float32, lowp>;
-template struct tvec1<float64, lowp>;
-
-template struct tvec1<uint8, mediump>;
-template struct tvec1<uint16, mediump>;
-template struct tvec1<uint32, mediump>;
-template struct tvec1<uint64, mediump>;
-template struct tvec1<int8, mediump>;
-template struct tvec1<int16, mediump>;
-template struct tvec1<int32, mediump>;
-template struct tvec1<int64, mediump>;
-template struct tvec1<float32, mediump>;
-template struct tvec1<float64, mediump>;
-
-template struct tvec1<uint8, highp>;
-template struct tvec1<uint16, highp>;
-template struct tvec1<uint32, highp>;
-template struct tvec1<uint64, highp>;
-template struct tvec1<int8, highp>;
-template struct tvec1<int16, highp>;
-template struct tvec1<int32, highp>;
-template struct tvec1<int64, highp>;
-template struct tvec1<float32, highp>;
-template struct tvec1<float64, highp>;
+template struct vec<1, uint8, lowp>;
+template struct vec<1, uint16, lowp>;
+template struct vec<1, uint32, lowp>;
+template struct vec<1, uint64, lowp>;
+template struct vec<1, int8, lowp>;
+template struct vec<1, int16, lowp>;
+template struct vec<1, int32, lowp>;
+template struct vec<1, int64, lowp>;
+template struct vec<1, float32, lowp>;
+template struct vec<1, float64, lowp>;
+
+template struct vec<1, uint8, mediump>;
+template struct vec<1, uint16, mediump>;
+template struct vec<1, uint32, mediump>;
+template struct vec<1, uint64, mediump>;
+template struct vec<1, int8, mediump>;
+template struct vec<1, int16, mediump>;
+template struct vec<1, int32, mediump>;
+template struct vec<1, int64, mediump>;
+template struct vec<1, float32, mediump>;
+template struct vec<1, float64, mediump>;
+
+template struct vec<1, uint8, highp>;
+template struct vec<1, uint16, highp>;
+template struct vec<1, uint32, highp>;
+template struct vec<1, uint64, highp>;
+template struct vec<1, int8, highp>;
+template struct vec<1, int16, highp>;
+template struct vec<1, int32, highp>;
+template struct vec<1, int64, highp>;
+template struct vec<1, float32, highp>;
+template struct vec<1, float64, highp>;
// tvec2 type explicit instantiation
-template struct tvec2<uint8, lowp>;
-template struct tvec2<uint16, lowp>;
-template struct tvec2<uint32, lowp>;
-template struct tvec2<uint64, lowp>;
-template struct tvec2<int8, lowp>;
-template struct tvec2<int16, lowp>;
-template struct tvec2<int32, lowp>;
-template struct tvec2<int64, lowp>;
-template struct tvec2<float32, lowp>;
-template struct tvec2<float64, lowp>;
-
-template struct tvec2<uint8, mediump>;
-template struct tvec2<uint16, mediump>;
-template struct tvec2<uint32, mediump>;
-template struct tvec2<uint64, mediump>;
-template struct tvec2<int8, mediump>;
-template struct tvec2<int16, mediump>;
-template struct tvec2<int32, mediump>;
-template struct tvec2<int64, mediump>;
-template struct tvec2<float32, mediump>;
-template struct tvec2<float64, mediump>;
-
-template struct tvec2<uint8, highp>;
-template struct tvec2<uint16, highp>;
-template struct tvec2<uint32, highp>;
-template struct tvec2<uint64, highp>;
-template struct tvec2<int8, highp>;
-template struct tvec2<int16, highp>;
-template struct tvec2<int32, highp>;
-template struct tvec2<int64, highp>;
-template struct tvec2<float32, highp>;
-template struct tvec2<float64, highp>;
+template struct vec<2, uint8, lowp>;
+template struct vec<2, uint16, lowp>;
+template struct vec<2, uint32, lowp>;
+template struct vec<2, uint64, lowp>;
+template struct vec<2, int8, lowp>;
+template struct vec<2, int16, lowp>;
+template struct vec<2, int32, lowp>;
+template struct vec<2, int64, lowp>;
+template struct vec<2, float32, lowp>;
+template struct vec<2, float64, lowp>;
+
+template struct vec<2, uint8, mediump>;
+template struct vec<2, uint16, mediump>;
+template struct vec<2, uint32, mediump>;
+template struct vec<2, uint64, mediump>;
+template struct vec<2, int8, mediump>;
+template struct vec<2, int16, mediump>;
+template struct vec<2, int32, mediump>;
+template struct vec<2, int64, mediump>;
+template struct vec<2, float32, mediump>;
+template struct vec<2, float64, mediump>;
+
+template struct vec<2, uint8, highp>;
+template struct vec<2, uint16, highp>;
+template struct vec<2, uint32, highp>;
+template struct vec<2, uint64, highp>;
+template struct vec<2, int8, highp>;
+template struct vec<2, int16, highp>;
+template struct vec<2, int32, highp>;
+template struct vec<2, int64, highp>;
+template struct vec<2, float32, highp>;
+template struct vec<2, float64, highp>;
// tvec3 type explicit instantiation
-template struct tvec3<uint8, lowp>;
-template struct tvec3<uint16, lowp>;
-template struct tvec3<uint32, lowp>;
-template struct tvec3<uint64, lowp>;
-template struct tvec3<int8, lowp>;
-template struct tvec3<int16, lowp>;
-template struct tvec3<int32, lowp>;
-template struct tvec3<int64, lowp>;
-template struct tvec3<float32, lowp>;
-template struct tvec3<float64, lowp>;
-
-template struct tvec3<uint8, mediump>;
-template struct tvec3<uint16, mediump>;
-template struct tvec3<uint32, mediump>;
-template struct tvec3<uint64, mediump>;
-template struct tvec3<int8, mediump>;
-template struct tvec3<int16, mediump>;
-template struct tvec3<int32, mediump>;
-template struct tvec3<int64, mediump>;
-template struct tvec3<float32, mediump>;
-template struct tvec3<float64, mediump>;
-
-template struct tvec3<uint8, highp>;
-template struct tvec3<uint16, highp>;
-template struct tvec3<uint32, highp>;
-template struct tvec3<uint64, highp>;
-template struct tvec3<int8, highp>;
-template struct tvec3<int16, highp>;
-template struct tvec3<int32, highp>;
-template struct tvec3<int64, highp>;
-template struct tvec3<float32, highp>;
-template struct tvec3<float64, highp>;
+template struct vec<3, uint8, lowp>;
+template struct vec<3, uint16, lowp>;
+template struct vec<3, uint32, lowp>;
+template struct vec<3, uint64, lowp>;
+template struct vec<3, int8, lowp>;
+template struct vec<3, int16, lowp>;
+template struct vec<3, int32, lowp>;
+template struct vec<3, int64, lowp>;
+template struct vec<3, float32, lowp>;
+template struct vec<3, float64, lowp>;
+
+template struct vec<3, uint8, mediump>;
+template struct vec<3, uint16, mediump>;
+template struct vec<3, uint32, mediump>;
+template struct vec<3, uint64, mediump>;
+template struct vec<3, int8, mediump>;
+template struct vec<3, int16, mediump>;
+template struct vec<3, int32, mediump>;
+template struct vec<3, int64, mediump>;
+template struct vec<3, float32, mediump>;
+template struct vec<3, float64, mediump>;
+
+template struct vec<3, uint8, highp>;
+template struct vec<3, uint16, highp>;
+template struct vec<3, uint32, highp>;
+template struct vec<3, uint64, highp>;
+template struct vec<3, int8, highp>;
+template struct vec<3, int16, highp>;
+template struct vec<3, int32, highp>;
+template struct vec<3, int64, highp>;
+template struct vec<3, float32, highp>;
+template struct vec<3, float64, highp>;
// tvec4 type explicit instantiation
-template struct tvec4<uint8, lowp>;
-template struct tvec4<uint16, lowp>;
-template struct tvec4<uint32, lowp>;
-template struct tvec4<uint64, lowp>;
-template struct tvec4<int8, lowp>;
-template struct tvec4<int16, lowp>;
-template struct tvec4<int32, lowp>;
-template struct tvec4<int64, lowp>;
-template struct tvec4<float32, lowp>;
-template struct tvec4<float64, lowp>;
-
-template struct tvec4<uint8, mediump>;
-template struct tvec4<uint16, mediump>;
-template struct tvec4<uint32, mediump>;
-template struct tvec4<uint64, mediump>;
-template struct tvec4<int8, mediump>;
-template struct tvec4<int16, mediump>;
-template struct tvec4<int32, mediump>;
-template struct tvec4<int64, mediump>;
-template struct tvec4<float32, mediump>;
-template struct tvec4<float64, mediump>;
-
-template struct tvec4<uint8, highp>;
-template struct tvec4<uint16, highp>;
-template struct tvec4<uint32, highp>;
-template struct tvec4<uint64, highp>;
-template struct tvec4<int8, highp>;
-template struct tvec4<int16, highp>;
-template struct tvec4<int32, highp>;
-template struct tvec4<int64, highp>;
-template struct tvec4<float32, highp>;
-template struct tvec4<float64, highp>;
+template struct vec<4, uint8, lowp>;
+template struct vec<4, uint16, lowp>;
+template struct vec<4, uint32, lowp>;
+template struct vec<4, uint64, lowp>;
+template struct vec<4, int8, lowp>;
+template struct vec<4, int16, lowp>;
+template struct vec<4, int32, lowp>;
+template struct vec<4, int64, lowp>;
+template struct vec<4, float32, lowp>;
+template struct vec<4, float64, lowp>;
+
+template struct vec<4, uint8, mediump>;
+template struct vec<4, uint16, mediump>;
+template struct vec<4, uint32, mediump>;
+template struct vec<4, uint64, mediump>;
+template struct vec<4, int8, mediump>;
+template struct vec<4, int16, mediump>;
+template struct vec<4, int32, mediump>;
+template struct vec<4, int64, mediump>;
+template struct vec<4, float32, mediump>;
+template struct vec<4, float64, mediump>;
+
+template struct vec<4, uint8, highp>;
+template struct vec<4, uint16, highp>;
+template struct vec<4, uint32, highp>;
+template struct vec<4, uint64, highp>;
+template struct vec<4, int8, highp>;
+template struct vec<4, int16, highp>;
+template struct vec<4, int32, highp>;
+template struct vec<4, int64, highp>;
+template struct vec<4, float32, highp>;
+template struct vec<4, float64, highp>;
// tmat2x2 type explicit instantiation
-template struct tmat2x2<float32, lowp>;
-template struct tmat2x2<float64, lowp>;
+template struct mat<2, 2, float32, lowp>;
+template struct mat<2, 2, float64, lowp>;
-template struct tmat2x2<float32, mediump>;
-template struct tmat2x2<float64, mediump>;
+template struct mat<2, 2, float32, mediump>;
+template struct mat<2, 2, float64, mediump>;
-template struct tmat2x2<float32, highp>;
-template struct tmat2x2<float64, highp>;
+template struct mat<2, 2, float32, highp>;
+template struct mat<2, 2, float64, highp>;
// tmat2x3 type explicit instantiation
-template struct tmat2x3<float32, lowp>;
-template struct tmat2x3<float64, lowp>;
+template struct mat<2, 3, float32, lowp>;
+template struct mat<2, 3, float64, lowp>;
-template struct tmat2x3<float32, mediump>;
-template struct tmat2x3<float64, mediump>;
+template struct mat<2, 3, float32, mediump>;
+template struct mat<2, 3, float64, mediump>;
-template struct tmat2x3<float32, highp>;
-template struct tmat2x3<float64, highp>;
+template struct mat<2, 3, float32, highp>;
+template struct mat<2, 3, float64, highp>;
// tmat2x4 type explicit instantiation
-template struct tmat2x4<float32, lowp>;
-template struct tmat2x4<float64, lowp>;
+template struct mat<2, 4, float32, lowp>;
+template struct mat<2, 4, float64, lowp>;
-template struct tmat2x4<float32, mediump>;
-template struct tmat2x4<float64, mediump>;
+template struct mat<2, 4, float32, mediump>;
+template struct mat<2, 4, float64, mediump>;
-template struct tmat2x4<float32, highp>;
-template struct tmat2x4<float64, highp>;
+template struct mat<2, 4, float32, highp>;
+template struct mat<2, 4, float64, highp>;
// tmat3x2 type explicit instantiation
-template struct tmat3x2<float32, lowp>;
-template struct tmat3x2<float64, lowp>;
+template struct mat<3, 2, float32, lowp>;
+template struct mat<3, 2, float64, lowp>;
-template struct tmat3x2<float32, mediump>;
-template struct tmat3x2<float64, mediump>;
+template struct mat<3, 2, float32, mediump>;
+template struct mat<3, 2, float64, mediump>;
-template struct tmat3x2<float32, highp>;
-template struct tmat3x2<float64, highp>;
+template struct mat<3, 2, float32, highp>;
+template struct mat<3, 2, float64, highp>;
// tmat3x3 type explicit instantiation
-template struct tmat3x3<float32, lowp>;
-template struct tmat3x3<float64, lowp>;
+template struct mat<3, 3, float32, lowp>;
+template struct mat<3, 3, float64, lowp>;
-template struct tmat3x3<float32, mediump>;
-template struct tmat3x3<float64, mediump>;
+template struct mat<3, 3, float32, mediump>;
+template struct mat<3, 3, float64, mediump>;
-template struct tmat3x3<float32, highp>;
-template struct tmat3x3<float64, highp>;
+template struct mat<3, 3, float32, highp>;
+template struct mat<3, 3, float64, highp>;
// tmat3x4 type explicit instantiation
-template struct tmat3x4<float32, lowp>;
-template struct tmat3x4<float64, lowp>;
+template struct mat<3, 4, float32, lowp>;
+template struct mat<3, 4, float64, lowp>;
-template struct tmat3x4<float32, mediump>;
-template struct tmat3x4<float64, mediump>;
+template struct mat<3, 4, float32, mediump>;
+template struct mat<3, 4, float64, mediump>;
-template struct tmat3x4<float32, highp>;
-template struct tmat3x4<float64, highp>;
+template struct mat<3, 4, float32, highp>;
+template struct mat<3, 4, float64, highp>;
// tmat4x2 type explicit instantiation
-template struct tmat4x2<float32, lowp>;
-template struct tmat4x2<float64, lowp>;
+template struct mat<4, 2, float32, lowp>;
+template struct mat<4, 2, float64, lowp>;
-template struct tmat4x2<float32, mediump>;
-template struct tmat4x2<float64, mediump>;
+template struct mat<4, 2, float32, mediump>;
+template struct mat<4, 2, float64, mediump>;
-template struct tmat4x2<float32, highp>;
-template struct tmat4x2<float64, highp>;
+template struct mat<4, 2, float32, highp>;
+template struct mat<4, 2, float64, highp>;
// tmat4x3 type explicit instantiation
-template struct tmat4x3<float32, lowp>;
-template struct tmat4x3<float64, lowp>;
+template struct mat<4, 3, float32, lowp>;
+template struct mat<4, 3, float64, lowp>;
-template struct tmat4x3<float32, mediump>;
-template struct tmat4x3<float64, mediump>;
+template struct mat<4, 3, float32, mediump>;
+template struct mat<4, 3, float64, mediump>;
-template struct tmat4x3<float32, highp>;
-template struct tmat4x3<float64, highp>;
+template struct mat<4, 3, float32, highp>;
+template struct mat<4, 3, float64, highp>;
// tmat4x4 type explicit instantiation
-template struct tmat4x4<float32, lowp>;
-template struct tmat4x4<float64, lowp>;
+template struct mat<4, 4, float32, lowp>;
+template struct mat<4, 4, float64, lowp>;
-template struct tmat4x4<float32, mediump>;
-template struct tmat4x4<float64, mediump>;
+template struct mat<4, 4, float32, mediump>;
+template struct mat<4, 4, float64, mediump>;
-template struct tmat4x4<float32, highp>;
-template struct tmat4x4<float64, highp>;
+template struct mat<4, 4, float32, highp>;
+template struct mat<4, 4, float64, highp>;
// tquat type explicit instantiation
template struct tquat<float32, lowp>;
diff --git a/3rdparty/glm/glm/detail/precision.hpp b/3rdparty/glm/glm/detail/precision.hpp
index 7c54437cd6c..86774b26b81 100644
--- a/3rdparty/glm/glm/detail/precision.hpp
+++ b/3rdparty/glm/glm/detail/precision.hpp
@@ -31,10 +31,13 @@ namespace glm
defaultp = highp
# endif
};
-
+
+ template<length_t L, typename T, precision P = defaultp> struct vec;
+ template<length_t C, length_t R, typename T, precision P = defaultp> struct mat;
+
namespace detail
{
- template <glm::precision P>
+ template<glm::precision P>
struct is_aligned
{
static const bool value = false;
diff --git a/3rdparty/glm/glm/detail/setup.hpp b/3rdparty/glm/glm/detail/setup.hpp
index 8ad7eb9b261..01238f52193 100644
--- a/3rdparty/glm/glm/detail/setup.hpp
+++ b/3rdparty/glm/glm/detail/setup.hpp
@@ -136,16 +136,26 @@
#define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
#if defined(GLM_FORCE_CXX14)
-# undef GLM_FORCE_CXX11
-# undef GLM_FORCE_CXX03
-# undef GLM_FORCE_CXX98
+# if((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER <= GLM_COMPILER_GCC50)) || ((GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER <= GLM_COMPILER_CLANG34))
+# pragma message("GLM: Using GLM_FORCE_CXX14 with a compiler that doesn't fully support C++14")
+# elif GLM_COMPILER & GLM_COMPILER_VC
+# pragma message("GLM: Using GLM_FORCE_CXX14 but there is no known version of Visual C++ compiler that fully supports C++14")
+# elif GLM_COMPILER & GLM_COMPILER_INTEL
+# pragma message("GLM: Using GLM_FORCE_CXX14 but there is no known version of ICC compiler that fully supports C++14")
+# endif
# define GLM_LANG GLM_LANG_CXX14
+# define GLM_LANG_STL11_FORCED
#elif defined(GLM_FORCE_CXX11)
-# undef GLM_FORCE_CXX03
-# undef GLM_FORCE_CXX98
+# if((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER <= GLM_COMPILER_GCC48)) || ((GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER <= GLM_COMPILER_CLANG33))
+# pragma message("GLM: Using GLM_FORCE_CXX11 with a compiler that doesn't fully support C++11")
+# elif GLM_COMPILER & GLM_COMPILER_VC
+# pragma message("GLM: Using GLM_FORCE_CXX11 but there is no known version of Visual C++ compiler that fully supports C++11")
+# elif GLM_COMPILER & GLM_COMPILER_INTEL
+# pragma message("GLM: Using GLM_FORCE_CXX11 but there is no known version of ICC compiler that fully supports C++11")
+# endif
# define GLM_LANG GLM_LANG_CXX11
+# define GLM_LANG_STL11_FORCED
#elif defined(GLM_FORCE_CXX03)
-# undef GLM_FORCE_CXX98
# define GLM_LANG GLM_LANG_CXX03
#elif defined(GLM_FORCE_CXX98)
# define GLM_LANG GLM_LANG_CXX98
@@ -178,28 +188,18 @@
# ifdef _MSC_EXTENSIONS
# if __cplusplus >= 201402L
# define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)
-//# elif GLM_COMPILER >= GLM_COMPILER_VC2015
-//# define GLM_LANG (GLM_LANG_CXX1Y | GLM_LANG_CXXMS_FLAG)
# elif __cplusplus >= 201103L
# define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)
-# elif GLM_COMPILER >= GLM_COMPILER_VC2010
-# define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
-# elif __cplusplus >= 199711L
-# define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)
# else
-# define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)
+# define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)
# endif
# else
# if __cplusplus >= 201402L
# define GLM_LANG GLM_LANG_CXX14
# elif __cplusplus >= 201103L
# define GLM_LANG GLM_LANG_CXX11
-# elif GLM_COMPILER >= GLM_COMPILER_VC2010
-# define GLM_LANG GLM_LANG_CXX0X
-# elif __cplusplus >= 199711L
-# define GLM_LANG GLM_LANG_CXX98
# else
-# define GLM_LANG GLM_LANG_CXX
+# define GLM_LANG GLM_LANG_CXX0X
# endif
# endif
# elif GLM_COMPILER & GLM_COMPILER_INTEL
@@ -279,8 +279,11 @@
// http://gcc.gnu.org/projects/cxx0x.html
// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
-#if GLM_COMPILER & GLM_COMPILER_CLANG
-# if defined(_LIBCPP_VERSION) && GLM_LANG & GLM_LANG_CXX11_FLAG
+// Android has multiple STLs but C++11 STL detection doesn't always work #284 #564
+#if GLM_PLATFORM == GLM_PLATFORM_ANDROID && !defined(GLM_LANG_STL11_FORCED)
+# define GLM_HAS_CXX11_STL 0
+#elif GLM_COMPILER & GLM_COMPILER_CLANG
+# if (defined(_LIBCPP_VERSION) && GLM_LANG & GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED)
# define GLM_HAS_CXX11_STL 1
# else
# define GLM_HAS_CXX11_STL 0
@@ -288,7 +291,7 @@
#else
# define GLM_HAS_CXX11_STL ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) && (GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15))))
#endif
@@ -299,9 +302,9 @@
# define GLM_HAS_STATIC_ASSERT 1
#else
# define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
+ ((GLM_COMPILER & GLM_COMPILER_GCC)) || \
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010))))
+ ((GLM_COMPILER & GLM_COMPILER_VC))))
#endif
// N1988
@@ -309,10 +312,10 @@
# define GLM_HAS_EXTENDED_INTEGER_TYPE 1
#else
# define GLM_HAS_EXTENDED_INTEGER_TYPE (\
- ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
+ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC)) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
- ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
- ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG30)))
+ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC)) || \
+ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG)))
#endif
// N2235
@@ -324,8 +327,9 @@
# define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR
#else
# define GLM_HAS_CONSTEXPR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)))) // GCC 4.6 support constexpr but there is a compiler bug causing a crash
-# define GLM_HAS_CONSTEXPR_PARTIAL (GLM_HAS_CONSTEXPR || ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2015)))
+# define GLM_HAS_CONSTEXPR_PARTIAL (GLM_HAS_CONSTEXPR || ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14)))
#endif
// N2672
@@ -335,8 +339,8 @@
# define GLM_HAS_INITIALIZER_LISTS 1
#else
# define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
+ ((GLM_COMPILER & GLM_COMPILER_GCC)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA75))))
#endif
@@ -361,9 +365,9 @@
# define GLM_HAS_DEFAULTED_FUNCTIONS 1
#else
# define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
- ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12)) || \
+ ((GLM_COMPILER & GLM_COMPILER_GCC)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+ ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
(GLM_COMPILER & GLM_COMPILER_CUDA)))
#endif
@@ -374,9 +378,9 @@
# define GLM_HAS_RVALUE_REFERENCES 1
#else
# define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
- ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
+ ((GLM_COMPILER & GLM_COMPILER_GCC)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA))))
#endif
// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
@@ -386,10 +390,10 @@
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1
#else
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC45)) || \
+ ((GLM_COMPILER & GLM_COMPILER_GCC)) || \
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
- ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA))))
#endif
// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
@@ -399,10 +403,10 @@
# define GLM_HAS_TEMPLATE_ALIASES 1
#else
# define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12_1)) || \
+ ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
- ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA))))
#endif
// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
@@ -413,9 +417,27 @@
#else
# define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
- ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL13)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
- ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
+ ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+#endif
+
+// N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
+#if GLM_COMPILER & GLM_COMPILER_CLANG
+# define GLM_HAS_ALIGNOF __has_feature(c_alignof)
+#elif GLM_LANG & GLM_LANG_CXX11_FLAG
+# define GLM_HAS_ALIGNOF 1
+#else
+# define GLM_HAS_ALIGNOF ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+ ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)) || \
+ ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA70))))
+#endif
+
+#define GLM_HAS_ONLY_XYZW ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER < GLM_COMPILER_GCC46))
+#if GLM_HAS_ONLY_XYZW
+# pragma message("GLM: GCC older than 4.6 has a bug presenting the use of rgba and stpq components")
#endif
//
@@ -423,6 +445,7 @@
# define GLM_HAS_ASSIGNABLE 1
#else
# define GLM_HAS_ASSIGNABLE ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49))))
#endif
@@ -434,15 +457,16 @@
# define GLM_HAS_MAKE_SIGNED 1
#else
# define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
- ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA))))
#endif
#if GLM_ARCH == GLM_ARCH_PURE
# define GLM_HAS_BITSCAN_WINDOWS 0
#else
# define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && (\
- (GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL))))
+ ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14) && (GLM_ARCH & GLM_ARCH_X86_BIT))))
#endif
// OpenMP
@@ -454,10 +478,6 @@
# define GLM_HAS_OPENMP 40
# elif GLM_COMPILER >= GLM_COMPILER_GCC47
# define GLM_HAS_OPENMP 31
-# elif GLM_COMPILER >= GLM_COMPILER_GCC44
-# define GLM_HAS_OPENMP 30
-# elif GLM_COMPILER >= GLM_COMPILER_GCC42
-# define GLM_HAS_OPENMP 25
# else
# define GLM_HAS_OPENMP 0
# endif
@@ -468,16 +488,10 @@
# define GLM_HAS_OPENMP 0
# endif
# elif GLM_COMPILER & GLM_COMPILER_VC
-# if GLM_COMPILER >= GLM_COMPILER_VC2010
-# define GLM_HAS_OPENMP 20
-# else
-# define GLM_HAS_OPENMP 0
-# endif
+# define GLM_HAS_OPENMP 20
# elif GLM_COMPILER & GLM_COMPILER_INTEL
# if GLM_COMPILER >= GLM_COMPILER_INTEL16
# define GLM_HAS_OPENMP 40
-# elif GLM_COMPILER >= GLM_COMPILER_INTEL12
-# define GLM_HAS_OPENMP 31
# else
# define GLM_HAS_OPENMP 0
# endif
@@ -567,6 +581,12 @@
// #define GLM_FORCE_UNRESTRICTED_GENTYPE
+#ifdef GLM_FORCE_UNRESTRICTED_GENTYPE
+# define GLM_UNRESTRICTED_GENTYPE 1
+#else
+# define GLM_UNRESTRICTED_GENTYPE 0
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED)
# define GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED
# ifdef GLM_FORCE_UNRESTRICTED_GENTYPE
@@ -627,7 +647,7 @@
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name
# define GLM_RESTRICT_FUNC __declspec(restrict)
# define GLM_RESTRICT __restrict
-# if GLM_COMPILER >= GLM_COMPILER_VC2013
+# if GLM_COMPILER >= GLM_COMPILER_VC12
# define GLM_VECTOR_CALL __vectorcall
# else
# define GLM_VECTOR_CALL
@@ -678,22 +698,26 @@
# define GLM_DEFAULT_CTOR
#endif
-#if GLM_HAS_CONSTEXPR
-# define GLM_CONSTEXPR constexpr
-# define GLM_CONSTEXPR_CTOR constexpr
-# define GLM_RELAXED_CONSTEXPR constexpr
-#elif GLM_HAS_CONSTEXPR_PARTIAL
+#if GLM_HAS_CONSTEXPR || GLM_HAS_CONSTEXPR_PARTIAL
# define GLM_CONSTEXPR constexpr
-# define GLM_CONSTEXPR_CTOR
-# define GLM_RELAXED_CONSTEXPR const
+# if GLM_COMPILER & GLM_COMPILER_VC // Visual C++ has a bug #594 https://github.com/g-truc/glm/issues/594
+# define GLM_CONSTEXPR_CTOR
+# else
+# define GLM_CONSTEXPR_CTOR constexpr
+# endif
#else
# define GLM_CONSTEXPR
# define GLM_CONSTEXPR_CTOR
+#endif
+
+#if GLM_HAS_CONSTEXPR
+# define GLM_RELAXED_CONSTEXPR constexpr
+#else
# define GLM_RELAXED_CONSTEXPR const
#endif
#if GLM_ARCH == GLM_ARCH_PURE
-# define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR
+# define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR_CTOR
#else
# define GLM_CONSTEXPR_SIMD
#endif
@@ -742,7 +766,7 @@ namespace glm
#if GLM_HAS_CONSTEXPR_PARTIAL
namespace glm
{
- template <typename T, std::size_t N>
+ template<typename T, std::size_t N>
constexpr std::size_t countof(T const (&)[N])
{
return N;
diff --git a/3rdparty/glm/glm/detail/type_gentype.hpp b/3rdparty/glm/glm/detail/type_gentype.hpp
index 8fd202e2eac..ac9fc01963b 100644
--- a/3rdparty/glm/glm/detail/type_gentype.hpp
+++ b/3rdparty/glm/glm/detail/type_gentype.hpp
@@ -19,7 +19,7 @@ namespace detail
template
<
typename VALTYPE,
- template <typename> class TYPE
+ template<typename> class TYPE
>
struct genType
{
@@ -65,14 +65,14 @@ namespace detail
template
<
typename VALTYPE,
- template <typename> class TYPE
+ template<typename> class TYPE
>
bool genType<VALTYPE, TYPE>::is_vector()
{
return true;
}
/*
- template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
+ template<typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
class base
{
public:
@@ -112,7 +112,7 @@ namespace detail
//////////////////////////////////////
// Conversions
- template <typename vU, uint cU, uint rU, profile pU>
+ template<typename vU, uint cU, uint rU, profile pU>
explicit base(base<vU, cU, rU, pU> const & m);
//////////////////////////////////////
@@ -136,7 +136,7 @@ namespace detail
};
*/
- //template <typename T>
+ //template<typename T>
//struct traits
//{
// static const bool is_signed = false;
@@ -148,28 +148,28 @@ namespace detail
// static const bool is_genUType = false;
//};
- //template <>
+ //template<>
//struct traits<half>
//{
// static const bool is_float = true;
// static const bool is_genType = true;
//};
- //template <>
+ //template<>
//struct traits<float>
//{
// static const bool is_float = true;
// static const bool is_genType = true;
//};
- //template <>
+ //template<>
//struct traits<double>
//{
// static const bool is_float = true;
// static const bool is_genType = true;
//};
- //template <typename genType>
+ //template<typename genType>
//struct desc
//{
// typedef genType type;
@@ -186,7 +186,7 @@ namespace detail
// static const typename size_type value_size;
//};
- //template <typename genType>
+ //template<typename genType>
//const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();
}//namespace detail
diff --git a/3rdparty/glm/glm/detail/type_gentype.inl b/3rdparty/glm/glm/detail/type_gentype.inl
index 6a90288eb31..384f725f844 100644
--- a/3rdparty/glm/glm/detail/type_gentype.inl
+++ b/3rdparty/glm/glm/detail/type_gentype.inl
@@ -7,37 +7,37 @@ namespace detail{
/////////////////////////////////
// Static functions
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::size_type base<vT, cT, rT, pT>::col_size()
{
return cT;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::size_type base<vT, cT, rT, pT>::row_size()
{
return rT;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::size_type base<vT, cT, rT, pT>::value_size()
{
return rT * cT;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
bool base<vT, cT, rT, pT>::is_scalar()
{
return rT == 1 && cT == 1;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
bool base<vT, cT, rT, pT>::is_vector()
{
return rT == 1;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
bool base<vT, cT, rT, pT>::is_matrix()
{
return rT != 1;
@@ -46,13 +46,13 @@ bool base<vT, cT, rT, pT>::is_matrix()
/////////////////////////////////
// Constructor
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
base<vT, cT, rT, pT>::base()
{
memset(&this->value, 0, cT * rT * sizeof(vT));
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
base<vT, cT, rT, pT>::base
(
typename base<vT, cT, rT, pT>::class_type const & m
@@ -69,7 +69,7 @@ base<vT, cT, rT, pT>::base
}
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
base<vT, cT, rT, pT>::base
(
typename base<vT, cT, rT, pT>::T const & x
@@ -105,7 +105,7 @@ base<vT, cT, rT, pT>::base
}
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
base<vT, cT, rT, pT>::base
(
typename base<vT, cT, rT, pT>::value_type const * const x
@@ -114,7 +114,7 @@ base<vT, cT, rT, pT>::base
memcpy(&this->value, &x.value, cT * rT * sizeof(vT));
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
base<vT, cT, rT, pT>::base
(
typename base<vT, cT, rT, pT>::col_type const * const x
@@ -131,8 +131,8 @@ base<vT, cT, rT, pT>::base
}
}
-template <typename vT, uint cT, uint rT, profile pT>
-template <typename vU, uint cU, uint rU, profile pU>
+template<typename vT, uint cT, uint rT, profile pT>
+template<typename vU, uint cU, uint rU, profile pU>
base<vT, cT, rT, pT>::base
(
base<vU, cU, rU, pU> const & m
@@ -152,7 +152,7 @@ base<vT, cT, rT, pT>::base
//////////////////////////////////////
// Accesses
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::col_type& base<vT, cT, rT, pT>::operator[]
(
typename base<vT, cT, rT, pT>::size_type i
@@ -161,7 +161,7 @@ typename base<vT, cT, rT, pT>::col_type& base<vT, cT, rT, pT>::operator[]
return this->value[i];
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::col_type const & base<vT, cT, rT, pT>::operator[]
(
typename base<vT, cT, rT, pT>::size_type i
@@ -173,7 +173,7 @@ typename base<vT, cT, rT, pT>::col_type const & base<vT, cT, rT, pT>::operator[]
//////////////////////////////////////
// Unary updatable operators
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator=
(
typename base<vT, cT, rT, pT>::class_type const & x
@@ -183,7 +183,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator+=
(
typename base<vT, cT, rT, pT>::T const & x
@@ -199,7 +199,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator+=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator+=
(
typename base<vT, cT, rT, pT>::class_type const & x
@@ -215,7 +215,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator+=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator-=
(
typename base<vT, cT, rT, pT>::T const & x
@@ -231,7 +231,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator-=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator-=
(
typename base<vT, cT, rT, pT>::class_type const & x
@@ -247,7 +247,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator-=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator*=
(
typename base<vT, cT, rT, pT>::T const & x
@@ -263,7 +263,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator*=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator*=
(
typename base<vT, cT, rT, pT>::class_type const & x
@@ -279,7 +279,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator*=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator/=
(
typename base<vT, cT, rT, pT>::T const & x
@@ -295,7 +295,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator/=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator/=
(
typename base<vT, cT, rT, pT>::class_type const & x
@@ -311,7 +311,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator/=
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator++ ()
{
typename base<vT, cT, rT, pT>::size_type stop_col = col_size();
@@ -324,7 +324,7 @@ typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator++ ()
return *this;
}
-template <typename vT, uint cT, uint rT, profile pT>
+template<typename vT, uint cT, uint rT, profile pT>
typename base<vT, cT, rT, pT>::class_type& base<vT, cT, rT, pT>::operator-- ()
{
typename base<vT, cT, rT, pT>::size_type stop_col = col_size();
diff --git a/3rdparty/glm/glm/detail/type_int.hpp b/3rdparty/glm/glm/detail/type_int.hpp
index 764a32cf9f4..36feb16a0a8 100644
--- a/3rdparty/glm/glm/detail/type_int.hpp
+++ b/3rdparty/glm/glm/detail/type_int.hpp
@@ -73,129 +73,129 @@ namespace detail
using std::make_unsigned;
# else//GLM_HAS_MAKE_SIGNED
- template <typename genType>
+ template<typename genType>
struct make_signed
{};
- template <>
+ template<>
struct make_signed<char>
{
typedef char type;
};
- template <>
+ template<>
struct make_signed<short>
{
typedef short type;
};
- template <>
+ template<>
struct make_signed<int>
{
typedef int type;
};
- template <>
+ template<>
struct make_signed<long>
{
typedef long type;
};
- template <>
+ template<>
struct make_signed<unsigned char>
{
typedef char type;
};
- template <>
+ template<>
struct make_signed<unsigned short>
{
typedef short type;
};
- template <>
+ template<>
struct make_signed<unsigned int>
{
typedef int type;
};
- template <>
+ template<>
struct make_signed<unsigned long>
{
typedef long type;
};
- template <typename genType>
+ template<typename genType>
struct make_unsigned
{};
- template <>
+ template<>
struct make_unsigned<char>
{
typedef unsigned char type;
};
- template <>
+ template<>
struct make_unsigned<short>
{
typedef unsigned short type;
};
- template <>
+ template<>
struct make_unsigned<int>
{
typedef unsigned int type;
};
- template <>
+ template<>
struct make_unsigned<long>
{
typedef unsigned long type;
};
- template <>
+ template<>
struct make_unsigned<unsigned char>
{
typedef unsigned char type;
};
- template <>
+ template<>
struct make_unsigned<unsigned short>
{
typedef unsigned short type;
};
- template <>
+ template<>
struct make_unsigned<unsigned int>
{
typedef unsigned int type;
};
- template <>
+ template<>
struct make_unsigned<unsigned long>
{
typedef unsigned long type;
};
- template <>
+ template<>
struct make_signed<long long>
{
typedef long long type;
};
- template <>
+ template<>
struct make_signed<unsigned long long>
{
typedef long long type;
};
- template <>
+ template<>
struct make_unsigned<long long>
{
typedef unsigned long long type;
};
- template <>
+ template<>
struct make_unsigned<unsigned long long>
{
typedef unsigned long long type;
diff --git a/3rdparty/glm/glm/detail/type_mat.hpp b/3rdparty/glm/glm/detail/type_mat.hpp
index aad74e5b466..8cabc3781f9 100644
--- a/3rdparty/glm/glm/detail/type_mat.hpp
+++ b/3rdparty/glm/glm/detail/type_mat.hpp
@@ -8,24 +8,23 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <class, precision> class colType, template <class, precision> class rowType>
+ template<int Columns, int Rows, typename T, precision P, template<int, class, precision> class colType, template<int, class, precision> class rowType>
struct outerProduct_trait{};
}//namespace detail
- template <typename T, precision P> struct tvec2;
- template <typename T, precision P> struct tvec3;
- template <typename T, precision P> struct tvec4;
- template <typename T, precision P> struct tmat2x2;
- template <typename T, precision P> struct tmat2x3;
- template <typename T, precision P> struct tmat2x4;
- template <typename T, precision P> struct tmat3x2;
- template <typename T, precision P> struct tmat3x3;
- template <typename T, precision P> struct tmat3x4;
- template <typename T, precision P> struct tmat4x2;
- template <typename T, precision P> struct tmat4x3;
- template <typename T, precision P> struct tmat4x4;
+#if GLM_HAS_TEMPLATE_ALIASES
+ template <typename T, precision P = defaultp> using tmat2x2 = mat<2, 2, T, P>;
+ template <typename T, precision P = defaultp> using tmat2x3 = mat<2, 3, T, P>;
+ template <typename T, precision P = defaultp> using tmat2x4 = mat<2, 4, T, P>;
+ template <typename T, precision P = defaultp> using tmat3x2 = mat<3, 2, T, P>;
+ template <typename T, precision P = defaultp> using tmat3x3 = mat<3, 3, T, P>;
+ template <typename T, precision P = defaultp> using tmat3x4 = mat<3, 4, T, P>;
+ template <typename T, precision P = defaultp> using tmat4x2 = mat<4, 2, T, P>;
+ template <typename T, precision P = defaultp> using tmat4x3 = mat<4, 3, T, P>;
+ template <typename T, precision P = defaultp> using tmat4x4 = mat<4, 4, T, P>;
+#endif//GLM_HAS_TEMPLATE_ALIASES
- template <typename T, precision P, template <typename, precision> class matType>
+ template<typename T, precision P, template<typename, precision> class matType>
GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
/// @addtogroup core_precision
@@ -36,42 +35,42 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, lowp> lowp_mat2;
+ typedef mat<2, 2, float, lowp> lowp_mat2;
/// 2 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, mediump> mediump_mat2;
+ typedef mat<2, 2, float, mediump> mediump_mat2;
/// 2 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, highp> highp_mat2;
+ typedef mat<2, 2, float, highp> highp_mat2;
/// 2 columns of 2 components matrix of low precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, lowp> lowp_mat2x2;
+ typedef mat<2, 2, float, lowp> lowp_mat2x2;
/// 2 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, mediump> mediump_mat2x2;
+ typedef mat<2, 2, float, mediump> mediump_mat2x2;
/// 2 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, highp> highp_mat2x2;
+ typedef mat<2, 2, float, highp> highp_mat2x2;
/// @}
@@ -83,21 +82,21 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<float, lowp> lowp_mat2x3;
+ typedef mat<2, 3, float, lowp> lowp_mat2x3;
/// 2 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<float, mediump> mediump_mat2x3;
+ typedef mat<2, 3, float, mediump> mediump_mat2x3;
/// 2 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<float, highp> highp_mat2x3;
+ typedef mat<2, 3, float, highp> highp_mat2x3;
/// @}
@@ -109,21 +108,21 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<float, lowp> lowp_mat2x4;
+ typedef mat<2, 4, float, lowp> lowp_mat2x4;
/// 2 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<float, mediump> mediump_mat2x4;
+ typedef mat<2, 4, float, mediump> mediump_mat2x4;
/// 2 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<float, highp> highp_mat2x4;
+ typedef mat<2, 4, float, highp> highp_mat2x4;
/// @}
@@ -135,21 +134,21 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<float, lowp> lowp_mat3x2;
+ typedef mat<3, 2, float, lowp> lowp_mat3x2;
/// 3 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<float, mediump> mediump_mat3x2;
+ typedef mat<3, 2, float, mediump> mediump_mat3x2;
/// 3 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<float, highp> highp_mat3x2;
+ typedef mat<3, 2, float, highp> highp_mat3x2;
/// @}
@@ -161,42 +160,42 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, lowp> lowp_mat3;
+ typedef mat<3, 3, float, lowp> lowp_mat3;
/// 3 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, mediump> mediump_mat3;
+ typedef mat<3, 3, float, mediump> mediump_mat3;
/// 3 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, highp> highp_mat3;
+ typedef mat<3, 3, float, highp> highp_mat3;
/// 3 columns of 3 components matrix of low precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, lowp> lowp_mat3x3;
+ typedef mat<3, 3, float, lowp> lowp_mat3x3;
/// 3 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, mediump> mediump_mat3x3;
+ typedef mat<3, 3, float, mediump> mediump_mat3x3;
/// 3 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, highp> highp_mat3x3;
+ typedef mat<3, 3, float, highp> highp_mat3x3;
/// @}
@@ -208,21 +207,21 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<float, lowp> lowp_mat3x4;
+ typedef mat<3, 4, float, lowp> lowp_mat3x4;
/// 3 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<float, mediump> mediump_mat3x4;
+ typedef mat<3, 4, float, mediump> mediump_mat3x4;
/// 3 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<float, highp> highp_mat3x4;
+ typedef mat<3, 4, float, highp> highp_mat3x4;
/// @}
@@ -234,21 +233,21 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<float, lowp> lowp_mat4x2;
+ typedef mat<4, 2, float, lowp> lowp_mat4x2;
/// 4 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<float, mediump> mediump_mat4x2;
+ typedef mat<4, 2, float, mediump> mediump_mat4x2;
/// 4 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<float, highp> highp_mat4x2;
+ typedef mat<4, 2, float, highp> highp_mat4x2;
/// @}
@@ -260,21 +259,21 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<float, lowp> lowp_mat4x3;
+ typedef mat<4, 3, float, lowp> lowp_mat4x3;
/// 4 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<float, mediump> mediump_mat4x3;
+ typedef mat<4, 3, float, mediump> mediump_mat4x3;
/// 4 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<float, highp> highp_mat4x3;
+ typedef mat<4, 3, float, highp> highp_mat4x3;
/// @}
@@ -287,42 +286,42 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, lowp> lowp_mat4;
+ typedef mat<4, 4, float, lowp> lowp_mat4;
/// 4 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, mediump> mediump_mat4;
+ typedef mat<4, 4, float, mediump> mediump_mat4;
/// 4 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, highp> highp_mat4;
+ typedef mat<4, 4, float, highp> highp_mat4;
/// 4 columns of 4 components matrix of low precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, lowp> lowp_mat4x4;
+ typedef mat<4, 4, float, lowp> lowp_mat4x4;
/// 4 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, mediump> mediump_mat4x4;
+ typedef mat<4, 4, float, mediump> mediump_mat4x4;
/// 4 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, highp> highp_mat4x4;
+ typedef mat<4, 4, float, highp> highp_mat4x4;
/// @}
@@ -425,37 +424,37 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<double, lowp> lowp_dmat2;
+ typedef mat<2, 2, double, lowp> lowp_dmat2;
/// 2 columns of 2 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<double, mediump> mediump_dmat2;
+ typedef mat<2, 2, double, mediump> mediump_dmat2;
/// 2 columns of 2 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<double, highp> highp_dmat2;
+ typedef mat<2, 2, double, highp> highp_dmat2;
/// 2 columns of 2 components matrix of low precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<double, lowp> lowp_dmat2x2;
+ typedef mat<2, 2, double, lowp> lowp_dmat2x2;
/// 2 columns of 2 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<double, mediump> mediump_dmat2x2;
+ typedef mat<2, 2, double, mediump> mediump_dmat2x2;
/// 2 columns of 2 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<double, highp> highp_dmat2x2;
+ typedef mat<2, 2, double, highp> highp_dmat2x2;
/// @}
@@ -466,19 +465,19 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<double, lowp> lowp_dmat2x3;
+ typedef mat<2, 3, double, lowp> lowp_dmat2x3;
/// 2 columns of 3 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<double, mediump> mediump_dmat2x3;
+ typedef mat<2, 3, double, mediump> mediump_dmat2x3;
/// 2 columns of 3 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<double, highp> highp_dmat2x3;
+ typedef mat<2, 3, double, highp> highp_dmat2x3;
/// @}
@@ -489,19 +488,19 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<double, lowp> lowp_dmat2x4;
+ typedef mat<2, 4, double, lowp> lowp_dmat2x4;
/// 2 columns of 4 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<double, mediump> mediump_dmat2x4;
+ typedef mat<2, 4, double, mediump> mediump_dmat2x4;
/// 2 columns of 4 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<double, highp> highp_dmat2x4;
+ typedef mat<2, 4, double, highp> highp_dmat2x4;
/// @}
@@ -512,19 +511,19 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<double, lowp> lowp_dmat3x2;
+ typedef mat<3, 2, double, lowp> lowp_dmat3x2;
/// 3 columns of 2 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<double, mediump> mediump_dmat3x2;
+ typedef mat<3, 2, double, mediump> mediump_dmat3x2;
/// 3 columns of 2 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<double, highp> highp_dmat3x2;
+ typedef mat<3, 2, double, highp> highp_dmat3x2;
/// @}
@@ -535,37 +534,37 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, lowp> lowp_dmat3;
+ typedef mat<3, 3, float, lowp> lowp_dmat3;
/// 3 columns of 3 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<double, mediump> mediump_dmat3;
+ typedef mat<3, 3, double, mediump> mediump_dmat3;
/// 3 columns of 3 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<double, highp> highp_dmat3;
+ typedef mat<3, 3, double, highp> highp_dmat3;
/// 3 columns of 3 components matrix of low precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<double, lowp> lowp_dmat3x3;
+ typedef mat<3, 3, double, lowp> lowp_dmat3x3;
/// 3 columns of 3 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<double, mediump> mediump_dmat3x3;
+ typedef mat<3, 3, double, mediump> mediump_dmat3x3;
/// 3 columns of 3 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<double, highp> highp_dmat3x3;
+ typedef mat<3, 3, double, highp> highp_dmat3x3;
/// @}
@@ -576,19 +575,19 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<double, lowp> lowp_dmat3x4;
+ typedef mat<3, 4, double, lowp> lowp_dmat3x4;
/// 3 columns of 4 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<double, mediump> mediump_dmat3x4;
+ typedef mat<3, 4, double, mediump> mediump_dmat3x4;
/// 3 columns of 4 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<double, highp> highp_dmat3x4;
+ typedef mat<3, 4, double, highp> highp_dmat3x4;
/// @}
@@ -599,19 +598,19 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<double, lowp> lowp_dmat4x2;
+ typedef mat<4, 2, double, lowp> lowp_dmat4x2;
/// 4 columns of 2 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<double, mediump> mediump_dmat4x2;
+ typedef mat<4, 2, double, mediump> mediump_dmat4x2;
/// 4 columns of 2 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<double, highp> highp_dmat4x2;
+ typedef mat<4, 2, double, highp> highp_dmat4x2;
/// @}
@@ -622,19 +621,19 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<double, lowp> lowp_dmat4x3;
+ typedef mat<4, 3, double, lowp> lowp_dmat4x3;
/// 4 columns of 3 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<double, mediump> mediump_dmat4x3;
+ typedef mat<4, 3, double, mediump> mediump_dmat4x3;
/// 4 columns of 3 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<double, highp> highp_dmat4x3;
+ typedef mat<4, 3, double, highp> highp_dmat4x3;
/// @}
@@ -645,37 +644,37 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<double, lowp> lowp_dmat4;
+ typedef mat<4, 4, double, lowp> lowp_dmat4;
/// 4 columns of 4 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<double, mediump> mediump_dmat4;
+ typedef mat<4, 4, double, mediump> mediump_dmat4;
/// 4 columns of 4 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<double, highp> highp_dmat4;
+ typedef mat<4, 4, double, highp> highp_dmat4;
/// 4 columns of 4 components matrix of low precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<double, lowp> lowp_dmat4x4;
+ typedef mat<4, 4, double, lowp> lowp_dmat4x4;
/// 4 columns of 4 components matrix of medium precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<double, mediump> mediump_dmat4x4;
+ typedef mat<4, 4, double, mediump> mediump_dmat4x4;
/// 4 columns of 4 components matrix of high precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<double, highp> highp_dmat4x4;
+ typedef mat<4, 4, double, highp> highp_dmat4x4;
/// @}
diff --git a/3rdparty/glm/glm/detail/type_mat2x2.hpp b/3rdparty/glm/glm/detail/type_mat2x2.hpp
index d51389b1325..4d86b72af6e 100644
--- a/3rdparty/glm/glm/detail/type_mat2x2.hpp
+++ b/3rdparty/glm/glm/detail/type_mat2x2.hpp
@@ -11,13 +11,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat2x2
+ template<typename T, precision P>
+ struct mat<2, 2, T, P>
{
- typedef tvec2<T, P> col_type;
- typedef tvec2<T, P> row_type;
- typedef tmat2x2<T, P> type;
- typedef tmat2x2<T, P> transpose_type;
+ typedef vec<2, T, P> col_type;
+ typedef vec<2, T, P> row_type;
+ typedef mat<2, 2, T, P> type;
+ typedef mat<2, 2, T, P> transpose_type;
typedef T value_type;
private:
@@ -26,156 +26,156 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat2x2() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat2x2(tmat2x2<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<2, 2, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<2, 2, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x2(ctor);
- GLM_FUNC_DECL explicit tmat2x2(T scalar);
- GLM_FUNC_DECL tmat2x2(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T const & x1, T const & y1,
T const & x2, T const & y2);
- GLM_FUNC_DECL tmat2x2(
+ GLM_FUNC_DECL mat(
col_type const & v1,
col_type const & v2);
// -- Conversions --
- template <typename U, typename V, typename M, typename N>
- GLM_FUNC_DECL tmat2x2(
+ template<typename U, typename V, typename M, typename N>
+ GLM_FUNC_DECL mat(
U const & x1, V const & y1,
M const & x2, N const & y2);
- template <typename U, typename V>
- GLM_FUNC_DECL tmat2x2(
- tvec2<U, P> const & v1,
- tvec2<V, P> const & v2);
+ template<typename U, typename V>
+ GLM_FUNC_DECL mat(
+ vec<2, U, P> const & v1,
+ vec<2, V, P> const & v2);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x2<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 2;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<T, P> const & v) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator+=(tmat2x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator-=(tmat2x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator*=(tmat2x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator/=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x2<T, P> & operator/=(tmat2x2<U, P> const & m);
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator=(mat<2, 2, T, P> const & v) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator=(mat<2, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator+=(mat<2, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator-=(mat<2, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator*=(mat<2, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator/=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator/=(mat<2, 2, U, P> const & m);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat2x2<T, P> & operator++ ();
- GLM_FUNC_DECL tmat2x2<T, P> & operator-- ();
- GLM_FUNC_DECL tmat2x2<T, P> operator++(int);
- GLM_FUNC_DECL tmat2x2<T, P> operator--(int);
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator++ ();
+ GLM_FUNC_DECL mat<2, 2, T, P> & operator-- ();
+ GLM_FUNC_DECL mat<2, 2, T, P> operator++(int);
+ GLM_FUNC_DECL mat<2, 2, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator+(mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator-(mat<2, 2, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator+(mat<2, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(T scalar, tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator+(T scalar, mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator+(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator-(mat<2, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(T scalar, tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator-(T scalar, mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator-(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator*(mat<2, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(T scalar, tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator*(T scalar, mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator*(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 2, T, P>::col_type operator*(mat<2, 2, T, P> const & m, typename mat<2, 2, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator*(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 2, T, P>::row_type operator*(typename mat<2, 2, T, P>::col_type const & v, mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator*(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator*(mat<2, 2, T, P> const & m1, mat<3, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator*(mat<2, 2, T, P> const & m1, mat<4, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator/(mat<2, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator/(T scalar, tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator/(T scalar, mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 2, T, P>::col_type operator/(mat<2, 2, T, P> const & m, typename mat<2, 2, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator/(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 2, T, P>::row_type operator/(typename mat<2, 2, T, P>::col_type const & v, mat<2, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator/(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2);
} //namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat2x2.inl b/3rdparty/glm/glm/detail/type_mat2x2.inl
index 92940eff97f..cfd7a868614 100644
--- a/3rdparty/glm/glm/detail/type_mat2x2.inl
+++ b/3rdparty/glm/glm/detail/type_mat2x2.inl
@@ -8,8 +8,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0);
@@ -19,35 +19,35 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<2, 2, T, P> const& m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat2x2<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<2, 2, T, Q> const& m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat2x2<T, P>::tmat2x2(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<2, 2, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(T scalar)
{
this->value[0] = col_type(scalar, 0);
this->value[1] = col_type(0, scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat
(
T const & x0, T const & y0,
T const & x1, T const & y1
@@ -57,8 +57,8 @@ namespace glm
this->value[1] = col_type(x1, y1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(col_type const & v0, col_type const & v1)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(col_type const& v0, col_type const& v1)
{
this->value[0] = v0;
this->value[1] = v1;
@@ -66,9 +66,9 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <typename X1, typename Y1, typename X2, typename Y2>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2
+ template<typename T, precision P>
+ template<typename X1, typename Y1, typename X2, typename Y2>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat
(
X1 const & x1, Y1 const & y1,
X2 const & x2, Y2 const & y2
@@ -78,9 +78,9 @@ namespace glm
this->value[1] = col_type(static_cast<T>(x2), value_type(y2));
}
- template <typename T, precision P>
- template <typename V1, typename V2>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tvec2<V1, P> const & v1, tvec2<V2, P> const & v2)
+ template<typename T, precision P>
+ template<typename V1, typename V2>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(vec<2, V1, P> const& v1, vec<2, V2, P> const& v2)
{
this->value[0] = col_type(v1);
this->value[1] = col_type(v2);
@@ -88,65 +88,65 @@ namespace glm
// -- mat2x2 matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat2x2<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<2, 2, U, Q> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<3, 3, T, P> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<4, 4, T, P> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<2, 3, T, P> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<3, 2, T, P> const& m)
{
this->value[0] = m[0];
this->value[1] = m[1];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<2, 4, T, P> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<4, 2, T, P> const& m)
{
this->value[0] = m[0];
this->value[1] = m[1];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<3, 4, T, P> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>::mat(mat<4, 3, T, P> const& m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -154,21 +154,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2<T, P>::length_type tmat2x2<T, P>::length() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 2, T, P>::col_type& mat<2, 2, T, P>::operator[](typename mat<2, 2, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type const & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 2, T, P>::col_type const& mat<2, 2, T, P>::operator[](typename mat<2, 2, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -177,8 +171,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator=(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator=(mat<2, 2, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -186,237 +180,237 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator=(tmat2x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator=(mat<2, 2, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator+=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator+=(U scalar)
{
this->value[0] += scalar;
this->value[1] += scalar;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator+=(tmat2x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator+=(mat<2, 2, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator-=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator-=(U scalar)
{
this->value[0] -= scalar;
this->value[1] -= scalar;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator-=(tmat2x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator-=(mat<2, 2, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator*=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator*=(U scalar)
{
this->value[0] *= scalar;
this->value[1] *= scalar;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator*=(tmat2x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator*=(mat<2, 2, U, P> const & m)
{
return (*this = *this * m);
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator/=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator/=(U scalar)
{
this->value[0] /= scalar;
this->value[1] /= scalar;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator/=(tmat2x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator/=(mat<2, 2, U, P> const & m)
{
return *this *= inverse(m);
}
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator++()
{
++this->value[0];
++this->value[1];
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P>& mat<2, 2, T, P>::operator--()
{
--this->value[0];
--this->value[1];
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> tmat2x2<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> mat<2, 2, T, P>::operator++(int)
{
- tmat2x2<T, P> Result(*this);
+ mat<2, 2, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> tmat2x2<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> mat<2, 2, T, P>::operator--(int)
{
- tmat2x2<T, P> Result(*this);
+ mat<2, 2, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator+(mat<2, 2, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator-(mat<2, 2, T, P> const & m)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
-m[0],
-m[1]);
}
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator+(mat<2, 2, T, P> const & m, T scalar)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m[0] + scalar,
m[1] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(T scalar, tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator+(T scalar, mat<2, 2, T, P> const & m)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m[0] + scalar,
m[1] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator+(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m1[0] + m2[0],
m1[1] + m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator-(mat<2, 2, T, P> const & m, T scalar)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m[0] - scalar,
m[1] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(T scalar, tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator-(T scalar, mat<2, 2, T, P> const & m)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
scalar - m[0],
scalar - m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator-(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m1[0] - m2[0],
m1[1] - m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator*(mat<2, 2, T, P> const & m, T scalar)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m[0] * scalar,
m[1] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(T scalar, tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator*(T scalar, mat<2, 2, T, P> const & m)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m[0] * scalar,
m[1] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 2, T, P>::col_type operator*
(
- tmat2x2<T, P> const & m,
- typename tmat2x2<T, P>::row_type const & v
+ mat<2, 2, T, P> const& m,
+ typename mat<2, 2, T, P>::row_type const & v
)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
m[0][0] * v.x + m[1][0] * v.y,
m[0][1] * v.x + m[1][1] * v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::row_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 2, T, P>::row_type operator*
(
- typename tmat2x2<T, P>::col_type const & v,
- tmat2x2<T, P> const & m
+ typename mat<2, 2, T, P>::col_type const & v,
+ mat<2, 2, T, P> const& m
)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x * m[0][0] + v.y * m[0][1],
v.x * m[1][0] + v.y * m[1][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator*(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1],
m1[0][1] * m2[1][0] + m1[1][1] * m2[1][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator*(mat<2, 2, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1],
@@ -425,10 +419,10 @@ namespace glm
m1[0][1] * m2[2][0] + m1[1][1] * m2[2][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator*(mat<2, 2, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1],
@@ -439,51 +433,51 @@ namespace glm
m1[0][1] * m2[3][0] + m1[1][1] * m2[3][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator/(mat<2, 2, T, P> const & m, T scalar)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
m[0] / scalar,
m[1] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(T scalar, tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator/(T scalar, mat<2, 2, T, P> const & m)
{
- return tmat2x2<T, P>(
+ return mat<2, 2, T, P>(
scalar / m[0],
scalar / m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 2, T, P>::col_type operator/(mat<2, 2, T, P> const & m, typename mat<2, 2, T, P>::row_type const & v)
{
return inverse(m) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::row_type operator/(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 2, T, P>::row_type operator/(typename mat<2, 2, T, P>::col_type const & v, mat<2, 2, T, P> const & m)
{
return v * inverse(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator/(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
- tmat2x2<T, P> m1_copy(m1);
+ mat<2, 2, T, P> m1_copy(m1);
return m1_copy /= m2;
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<2, 2, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat2x3.hpp b/3rdparty/glm/glm/detail/type_mat2x3.hpp
index 0b48727a8c0..01eb777a491 100644
--- a/3rdparty/glm/glm/detail/type_mat2x3.hpp
+++ b/3rdparty/glm/glm/detail/type_mat2x3.hpp
@@ -12,13 +12,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat2x3
+ template<typename T, precision P>
+ struct mat<2, 3, T, P>
{
- typedef tvec3<T, P> col_type;
- typedef tvec2<T, P> row_type;
- typedef tmat2x3<T, P> type;
- typedef tmat3x2<T, P> transpose_type;
+ typedef vec<3, T, P> col_type;
+ typedef vec<2, T, P> row_type;
+ typedef mat<2, 3, T, P> type;
+ typedef mat<3, 2, T, P> transpose_type;
typedef T value_type;
private:
@@ -27,137 +27,137 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat2x3() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat2x3(tmat2x3<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<2, 3, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<2, 3, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x3(ctor);
- GLM_FUNC_DECL explicit tmat2x3(T scalar);
- GLM_FUNC_DECL tmat2x3(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T x0, T y0, T z0,
T x1, T y1, T z1);
- GLM_FUNC_DECL tmat2x3(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1);
// -- Conversions --
- template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
- GLM_FUNC_DECL tmat2x3(
+ template<typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
+ GLM_FUNC_DECL mat(
X1 x1, Y1 y1, Z1 z1,
X2 x2, Y2 y2, Z2 z2);
- template <typename U, typename V>
- GLM_FUNC_DECL tmat2x3(
- tvec3<U, P> const & v1,
- tvec3<V, P> const & v2);
+ template<typename U, typename V>
+ GLM_FUNC_DECL mat(
+ vec<3, U, P> const & v1,
+ vec<3, V, P> const & v2);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x3<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 2;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat2x3<T, P> & operator=(tmat2x3<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator=(tmat2x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator+=(tmat2x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator-=(tmat2x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x3<T, P> & operator/=(U s);
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator=(mat<2, 3, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator=(mat<2, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator+=(mat<2, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator-=(mat<2, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator/=(U s);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat2x3<T, P> & operator++ ();
- GLM_FUNC_DECL tmat2x3<T, P> & operator-- ();
- GLM_FUNC_DECL tmat2x3<T, P> operator++(int);
- GLM_FUNC_DECL tmat2x3<T, P> operator--(int);
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator++ ();
+ GLM_FUNC_DECL mat<2, 3, T, P> & operator-- ();
+ GLM_FUNC_DECL mat<2, 3, T, P> operator++(int);
+ GLM_FUNC_DECL mat<2, 3, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator+(mat<2, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator-(mat<2, 3, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator+(mat<2, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator+(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator-(mat<2, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator-(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator*(mat<2, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(T scalar, tmat2x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator*(T scalar, mat<2, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x3<T, P>::col_type operator*(tmat2x3<T, P> const & m, typename tmat2x3<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 3, T, P>::col_type operator*(mat<2, 3, T, P> const & m, typename mat<2, 3, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x3<T, P>::row_type operator*(typename tmat2x3<T, P>::col_type const & v, tmat2x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 3, T, P>::row_type operator*(typename mat<2, 3, T, P>::col_type const & v, mat<2, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator*(mat<2, 3, T, P> const & m1, mat<2, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator*(mat<2, 3, T, P> const & m1, mat<3, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator*(mat<2, 3, T, P> const & m1, mat<4, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator/(mat<2, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator/(T scalar, tmat2x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator/(T scalar, mat<2, 3, T, P> const & m);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat2x3.inl b/3rdparty/glm/glm/detail/type_mat2x3.inl
index 8b13f8ba349..e18ab386bcb 100644
--- a/3rdparty/glm/glm/detail/type_mat2x3.inl
+++ b/3rdparty/glm/glm/detail/type_mat2x3.inl
@@ -6,8 +6,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0, 0);
@@ -17,35 +17,35 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat2x3<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<2, 3, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat2x3<T, P>::tmat2x3(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<2, 3, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(T scalar)
{
this->value[0] = col_type(scalar, 0, 0);
this->value[1] = col_type(0, scalar, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat
(
T x0, T y0, T z0,
T x1, T y1, T z1
@@ -55,8 +55,8 @@ namespace glm
this->value[1] = col_type(x1, y1, z1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(col_type const & v0, col_type const & v1)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(col_type const & v0, col_type const & v1)
{
this->value[0] = v0;
this->value[1] = v1;
@@ -64,11 +64,11 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1, typename Z1,
typename X2, typename Y2, typename Z2>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat
(
X1 x1, Y1 y1, Z1 z1,
X2 x2, Y2 y2, Z2 z2
@@ -78,9 +78,9 @@ namespace glm
this->value[1] = col_type(static_cast<T>(x2), value_type(y2), value_type(z2));
}
- template <typename T, precision P>
- template <typename V1, typename V2>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tvec3<V1, P> const & v1, tvec3<V2, P> const & v2)
+ template<typename T, precision P>
+ template<typename V1, typename V2>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(vec<3, V1, P> const & v1, vec<3, V2, P> const & v2)
{
this->value[0] = col_type(v1);
this->value[1] = col_type(v2);
@@ -88,65 +88,65 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat2x3<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<2, 3, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -154,21 +154,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3<T, P>::length_type tmat2x3<T, P>::length() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 3, T, P>::col_type & mat<2, 3, T, P>::operator[](typename mat<2, 3, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type const & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 3, T, P>::col_type const & mat<2, 3, T, P>::operator[](typename mat<2, 3, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -177,8 +171,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>& tmat2x3<T, P>::operator=(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>& mat<2, 3, T, P>::operator=(mat<2, 3, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -186,63 +180,63 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>& tmat2x3<T, P>::operator=(tmat2x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>& mat<2, 3, T, P>::operator=(mat<2, 3, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> & tmat2x3<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> & mat<2, 3, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>& tmat2x3<T, P>::operator+=(tmat2x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>& mat<2, 3, T, P>::operator+=(mat<2, 3, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>& tmat2x3<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>& mat<2, 3, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>& tmat2x3<T, P>::operator-=(tmat2x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>& mat<2, 3, T, P>::operator-=(mat<2, 3, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>& tmat2x3<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P>& mat<2, 3, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> & tmat2x3<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> & mat<2, 3, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -251,131 +245,131 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> & tmat2x3<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> & mat<2, 3, T, P>::operator++()
{
++this->value[0];
++this->value[1];
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> & tmat2x3<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> & mat<2, 3, T, P>::operator--()
{
--this->value[0];
--this->value[1];
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> tmat2x3<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> mat<2, 3, T, P>::operator++(int)
{
- tmat2x3<T, P> Result(*this);
+ mat<2, 3, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> tmat2x3<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> mat<2, 3, T, P>::operator--(int)
{
- tmat2x3<T, P> Result(*this);
+ mat<2, 3, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator+(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator+(mat<2, 3, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator-(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator-(mat<2, 3, T, P> const & m)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
-m[0],
-m[1]);
}
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator+(mat<2, 3, T, P> const & m, T scalar)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m[0] + scalar,
m[1] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator+(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator+(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m1[0] + m2[0],
m1[1] + m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator-(mat<2, 3, T, P> const & m, T scalar)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m[0] - scalar,
m[1] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator-(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator-(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m1[0] - m2[0],
m1[1] - m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator*(mat<2, 3, T, P> const & m, T scalar)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m[0] * scalar,
m[1] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(T scalar, tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator*(T scalar, mat<2, 3, T, P> const & m)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m[0] * scalar,
m[1] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 3, T, P>::col_type operator*
(
- tmat2x3<T, P> const & m,
- typename tmat2x3<T, P>::row_type const & v)
+ mat<2, 3, T, P> const& m,
+ typename mat<2, 3, T, P>::row_type const & v)
{
- return typename tmat2x3<T, P>::col_type(
+ return typename mat<2, 3, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y,
m[0][1] * v.x + m[1][1] * v.y,
m[0][2] * v.x + m[1][2] * v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::row_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 3, T, P>::row_type operator*
(
- typename tmat2x3<T, P>::col_type const & v,
- tmat2x3<T, P> const & m)
+ typename mat<2, 3, T, P>::col_type const & v,
+ mat<2, 3, T, P> const& m)
{
- return typename tmat2x3<T, P>::row_type(
+ return typename mat<2, 3, T, P>::row_type(
v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2],
v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator*(mat<2, 3, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1],
@@ -384,8 +378,8 @@ namespace glm
m1[0][2] * m2[1][0] + m1[1][2] * m2[1][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator*(mat<2, 3, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
T SrcA00 = m1[0][0];
T SrcA01 = m1[0][1];
@@ -401,7 +395,7 @@ namespace glm
T SrcB20 = m2[2][0];
T SrcB21 = m2[2][1];
- tmat3x3<T, P> Result(uninitialize);
+ mat<3, 3, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01;
Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01;
@@ -414,10 +408,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator*(mat<2, 3, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1],
@@ -432,32 +426,32 @@ namespace glm
m1[0][2] * m2[3][0] + m1[1][2] * m2[3][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator/(mat<2, 3, T, P> const & m, T scalar)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m[0] / scalar,
m[1] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator/(T scalar, tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator/(T scalar, mat<2, 3, T, P> const & m)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
scalar / m[0],
scalar / m[1]);
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<2, 3, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat2x4.hpp b/3rdparty/glm/glm/detail/type_mat2x4.hpp
index 741968e39bf..cfe61f4eb49 100644
--- a/3rdparty/glm/glm/detail/type_mat2x4.hpp
+++ b/3rdparty/glm/glm/detail/type_mat2x4.hpp
@@ -12,13 +12,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat2x4
+ template<typename T, precision P>
+ struct mat<2, 4, T, P>
{
- typedef tvec4<T, P> col_type;
- typedef tvec2<T, P> row_type;
- typedef tmat2x4<T, P> type;
- typedef tmat4x2<T, P> transpose_type;
+ typedef vec<4, T, P> col_type;
+ typedef vec<2, T, P> row_type;
+ typedef mat<2, 4, T, P> type;
+ typedef mat<4, 2, T, P> transpose_type;
typedef T value_type;
private:
@@ -27,139 +27,139 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat2x4() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat2x4(tmat2x4<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<2, 4, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<2, 4, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x4(ctor);
- GLM_FUNC_DECL explicit tmat2x4(T scalar);
- GLM_FUNC_DECL tmat2x4(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T x0, T y0, T z0, T w0,
T x1, T y1, T z1, T w1);
- GLM_FUNC_DECL tmat2x4(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1);
// -- Conversions --
- template <
+ template<
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2>
- GLM_FUNC_DECL tmat2x4(
+ GLM_FUNC_DECL mat(
X1 x1, Y1 y1, Z1 z1, W1 w1,
X2 x2, Y2 y2, Z2 z2, W2 w2);
- template <typename U, typename V>
- GLM_FUNC_DECL tmat2x4(
- tvec4<U, P> const & v1,
- tvec4<V, P> const & v2);
+ template<typename U, typename V>
+ GLM_FUNC_DECL mat(
+ vec<4, U, P> const & v1,
+ vec<4, V, P> const & v2);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x4<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 2;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat2x4<T, P> & operator=(tmat2x4<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator=(tmat2x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator+=(tmat2x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator-=(tmat2x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat2x4<T, P> & operator/=(U s);
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator=(mat<2, 4, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator=(mat<2, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator+=(mat<2, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator-=(mat<2, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator/=(U s);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat2x4<T, P> & operator++ ();
- GLM_FUNC_DECL tmat2x4<T, P> & operator-- ();
- GLM_FUNC_DECL tmat2x4<T, P> operator++(int);
- GLM_FUNC_DECL tmat2x4<T, P> operator--(int);
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator++ ();
+ GLM_FUNC_DECL mat<2, 4, T, P> & operator-- ();
+ GLM_FUNC_DECL mat<2, 4, T, P> operator++(int);
+ GLM_FUNC_DECL mat<2, 4, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator+(mat<2, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator-(mat<2, 4, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator+(mat<2, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator+(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator-(mat<2, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator-(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator*(mat<2, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(T scalar, tmat2x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator*(T scalar, mat<2, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x4<T, P>::col_type operator*(tmat2x4<T, P> const & m, typename tmat2x4<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 4, T, P>::col_type operator*(mat<2, 4, T, P> const & m, typename mat<2, 4, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat2x4<T, P>::row_type operator*(typename tmat2x4<T, P>::col_type const & v, tmat2x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<2, 4, T, P>::row_type operator*(typename mat<2, 4, T, P>::col_type const & v, mat<2, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator*(mat<2, 4, T, P> const & m1, mat<4, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat2x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator*(mat<2, 4, T, P> const & m1, mat<2, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator*(mat<2, 4, T, P> const & m1, mat<3, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator/(mat<2, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator/(T scalar, tmat2x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator/(T scalar, mat<2, 4, T, P> const & m);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat2x4.inl b/3rdparty/glm/glm/detail/type_mat2x4.inl
index 47fd9fad127..ee9c3c42661 100644
--- a/3rdparty/glm/glm/detail/type_mat2x4.inl
+++ b/3rdparty/glm/glm/detail/type_mat2x4.inl
@@ -6,8 +6,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0, 0, 0);
@@ -17,36 +17,36 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat2x4<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<2, 4, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat2x4<T, P>::tmat2x4(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<2, 4, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(T scalar)
{
value_type const Zero(0);
this->value[0] = col_type(scalar, Zero, Zero, Zero);
this->value[1] = col_type(Zero, scalar, Zero, Zero);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat
(
T x0, T y0, T z0, T w0,
T x1, T y1, T z1, T w1
@@ -56,8 +56,8 @@ namespace glm
this->value[1] = col_type(x1, y1, z1, w1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(col_type const & v0, col_type const & v1)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(col_type const & v0, col_type const & v1)
{
this->value[0] = v0;
this->value[1] = v1;
@@ -65,11 +65,11 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat
(
X1 x1, Y1 y1, Z1 z1, W1 w1,
X2 x2, Y2 y2, Z2 z2, W2 w2
@@ -79,9 +79,9 @@ namespace glm
this->value[1] = col_type(static_cast<T>(x2), value_type(y2), value_type(z2), value_type(w2));
}
- template <typename T, precision P>
- template <typename V1, typename V2>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tvec4<V1, P> const & v1, tvec4<V2, P> const & v2)
+ template<typename T, precision P>
+ template<typename V1, typename V2>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(vec<4, V1, P> const & v1, vec<4, V2, P> const & v2)
{
this->value[0] = col_type(v1);
this->value[1] = col_type(v2);
@@ -89,65 +89,65 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat2x4<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<2, 4, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -155,21 +155,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4<T, P>::length_type tmat2x4<T, P>::length() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 4, T, P>::col_type & mat<2, 4, T, P>::operator[](typename mat<2, 4, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type const & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 4, T, P>::col_type const & mat<2, 4, T, P>::operator[](typename mat<2, 4, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -178,8 +172,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator=(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator=(mat<2, 4, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -187,63 +181,63 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator=(tmat2x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator=(mat<2, 4, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator+=(tmat2x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator+=(mat<2, 4, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator-=(tmat2x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator-=(mat<2, 4, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> & tmat2x4<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> & mat<2, 4, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -252,124 +246,124 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator++()
{
++this->value[0];
++this->value[1];
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>& tmat2x4<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P>& mat<2, 4, T, P>::operator--()
{
--this->value[0];
--this->value[1];
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> tmat2x4<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> mat<2, 4, T, P>::operator++(int)
{
- tmat2x4<T, P> Result(*this);
+ mat<2, 4, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> tmat2x4<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> mat<2, 4, T, P>::operator--(int)
{
- tmat2x4<T, P> Result(*this);
+ mat<2, 4, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator+(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator+(mat<2, 4, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator-(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator-(mat<2, 4, T, P> const & m)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
-m[0],
-m[1]);
}
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator+(mat<2, 4, T, P> const & m, T scalar)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m[0] + scalar,
m[1] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator+(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator+(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m1[0] + m2[0],
m1[1] + m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator-(mat<2, 4, T, P> const & m, T scalar)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m[0] - scalar,
m[1] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator-(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator-(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m1[0] - m2[0],
m1[1] - m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator*(mat<2, 4, T, P> const & m, T scalar)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m[0] * scalar,
m[1] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(T scalar, tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator*(T scalar, mat<2, 4, T, P> const & m)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m[0] * scalar,
m[1] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type operator*(tmat2x4<T, P> const & m, typename tmat2x4<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 4, T, P>::col_type operator*(mat<2, 4, T, P> const & m, typename mat<2, 4, T, P>::row_type const & v)
{
- return typename tmat2x4<T, P>::col_type(
+ return typename mat<2, 4, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y,
m[0][1] * v.x + m[1][1] * v.y,
m[0][2] * v.x + m[1][2] * v.y,
m[0][3] * v.x + m[1][3] * v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::row_type operator*(typename tmat2x4<T, P>::col_type const & v, tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<2, 4, T, P>::row_type operator*(typename mat<2, 4, T, P>::col_type const & v, mat<2, 4, T, P> const & m)
{
- return typename tmat2x4<T, P>::row_type(
+ return typename mat<2, 4, T, P>::row_type(
v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2] + v.w * m[0][3],
v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2] + v.w * m[1][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator*(mat<2, 4, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
T SrcA00 = m1[0][0];
T SrcA01 = m1[0][1];
@@ -389,7 +383,7 @@ namespace glm
T SrcB30 = m2[3][0];
T SrcB31 = m2[3][1];
- tmat4x4<T, P> Result(uninitialize);
+ mat<4, 4, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01;
Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01;
@@ -409,10 +403,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat2x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator*(mat<2, 4, T, P> const & m1, mat<2, 2, T, P> const & m2)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1],
@@ -423,10 +417,10 @@ namespace glm
m1[0][3] * m2[1][0] + m1[1][3] * m2[1][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator*(mat<2, 4, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1],
@@ -441,32 +435,32 @@ namespace glm
m1[0][3] * m2[2][0] + m1[1][3] * m2[2][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator/(mat<2, 4, T, P> const & m, T scalar)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m[0] / scalar,
m[1] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator/(T scalar, tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator/(T scalar, mat<2, 4, T, P> const & m)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
scalar / m[0],
scalar / m[1]);
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<2, 4, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat3x2.hpp b/3rdparty/glm/glm/detail/type_mat3x2.hpp
index 5d20fd8efbc..f738dc603e1 100644
--- a/3rdparty/glm/glm/detail/type_mat3x2.hpp
+++ b/3rdparty/glm/glm/detail/type_mat3x2.hpp
@@ -12,13 +12,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat3x2
+ template<typename T, precision P>
+ struct mat<3, 2, T, P>
{
- typedef tvec2<T, P> col_type;
- typedef tvec3<T, P> row_type;
- typedef tmat3x2<T, P> type;
- typedef tmat2x3<T, P> transpose_type;
+ typedef vec<2, T, P> col_type;
+ typedef vec<3, T, P> row_type;
+ typedef mat<3, 2, T, P> type;
+ typedef mat<2, 3, T, P> transpose_type;
typedef T value_type;
private:
@@ -27,18 +27,18 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat3x2() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat3x2(tmat3x2<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<3, 2, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<3, 2, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x2(ctor);
- GLM_FUNC_DECL explicit tmat3x2(T scalar);
- GLM_FUNC_DECL tmat3x2(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T x0, T y0,
T x1, T y1,
T x2, T y2);
- GLM_FUNC_DECL tmat3x2(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1,
col_type const & v2);
@@ -49,122 +49,122 @@ namespace glm
typename X1, typename Y1,
typename X2, typename Y2,
typename X3, typename Y3>
- GLM_FUNC_DECL tmat3x2(
+ GLM_FUNC_DECL mat(
X1 x1, Y1 y1,
X2 x2, Y2 y2,
X3 x3, Y3 y3);
- template <typename V1, typename V2, typename V3>
- GLM_FUNC_DECL tmat3x2(
- tvec2<V1, P> const & v1,
- tvec2<V2, P> const & v2,
- tvec2<V3, P> const & v3);
+ template<typename V1, typename V2, typename V3>
+ GLM_FUNC_DECL mat(
+ vec<2, V1, P> const & v1,
+ vec<2, V2, P> const & v2,
+ vec<2, V3, P> const & v3);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x2<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 3;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat3x2<T, P> & operator=(tmat3x2<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator=(tmat3x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator+=(tmat3x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator-=(tmat3x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x2<T, P> & operator/=(U s);
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator=(mat<3, 2, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator=(mat<3, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator+=(mat<3, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator-=(mat<3, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator/=(U s);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat3x2<T, P> & operator++ ();
- GLM_FUNC_DECL tmat3x2<T, P> & operator-- ();
- GLM_FUNC_DECL tmat3x2<T, P> operator++(int);
- GLM_FUNC_DECL tmat3x2<T, P> operator--(int);
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator++ ();
+ GLM_FUNC_DECL mat<3, 2, T, P> & operator-- ();
+ GLM_FUNC_DECL mat<3, 2, T, P> operator++(int);
+ GLM_FUNC_DECL mat<3, 2, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator+(mat<3, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator-(mat<3, 2, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator+(mat<3, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator+(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator-(mat<3, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator-(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator*(mat<3, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(T scalar, tmat3x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator*(T scalar, mat<3, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x2<T, P>::col_type operator*(tmat3x2<T, P> const & m, typename tmat3x2<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 2, T, P>::col_type operator*(mat<3, 2, T, P> const & m, typename mat<3, 2, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x2<T, P>::row_type operator*(typename tmat3x2<T, P>::col_type const & v, tmat3x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 2, T, P>::row_type operator*(typename mat<3, 2, T, P>::col_type const & v, mat<3, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator*(mat<3, 2, T, P> const & m1, mat<2, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator*(mat<3, 2, T, P> const & m1, mat<3, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator*(mat<3, 2, T, P> const & m1, mat<4, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator/(mat<3, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator/(T scalar, tmat3x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator/(T scalar, mat<3, 2, T, P> const & m);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2);
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/type_mat3x2.inl b/3rdparty/glm/glm/detail/type_mat3x2.inl
index af0c768af27..9f66a0152a1 100644
--- a/3rdparty/glm/glm/detail/type_mat3x2.inl
+++ b/3rdparty/glm/glm/detail/type_mat3x2.inl
@@ -6,8 +6,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0);
@@ -18,8 +18,8 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -27,29 +27,29 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat3x2<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<3, 2, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
this->value[2] = m.value[2];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat3x2<T, P>::tmat3x2(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<3, 2, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(T scalar)
{
this->value[0] = col_type(scalar, 0);
this->value[1] = col_type(0, scalar);
this->value[2] = col_type(0, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat
(
T x0, T y0,
T x1, T y1,
@@ -61,8 +61,8 @@ namespace glm
this->value[2] = col_type(x2, y2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat
(
col_type const & v0,
col_type const & v1,
@@ -76,12 +76,12 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1,
typename X2, typename Y2,
typename X3, typename Y3>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat
(
X1 x1, Y1 y1,
X2 x2, Y2 y2,
@@ -93,13 +93,13 @@ namespace glm
this->value[2] = col_type(static_cast<T>(x3), value_type(y3));
}
- template <typename T, precision P>
- template <typename V1, typename V2, typename V3>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2
+ template<typename T, precision P>
+ template<typename V1, typename V2, typename V3>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat
(
- tvec2<V1, P> const & v1,
- tvec2<V2, P> const & v2,
- tvec2<V3, P> const & v3
+ vec<2, V1, P> const & v1,
+ vec<2, V2, P> const & v2,
+ vec<2, V3, P> const & v3
)
{
this->value[0] = col_type(v1);
@@ -109,73 +109,73 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat3x2<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<3, 2, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
this->value[2] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(T(0));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(T(0));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
this->value[2] = m[2];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -184,21 +184,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2<T, P>::length_type tmat3x2<T, P>::length() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 2, T, P>::col_type & mat<3, 2, T, P>::operator[](typename mat<3, 2, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type const & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 2, T, P>::col_type const & mat<3, 2, T, P>::operator[](typename mat<3, 2, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -207,8 +201,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator=(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator=(mat<3, 2, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -217,9 +211,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator=(tmat3x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator=(mat<3, 2, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -227,9 +221,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
@@ -237,9 +231,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator+=(tmat3x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator+=(mat<3, 2, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
@@ -247,9 +241,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
@@ -257,9 +251,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator-=(tmat3x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator-=(mat<3, 2, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
@@ -267,9 +261,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
@@ -277,9 +271,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> & tmat3x2<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> & mat<3, 2, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -289,8 +283,8 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator++()
{
++this->value[0];
++this->value[1];
@@ -298,8 +292,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>& tmat3x2<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P>& mat<3, 2, T, P>::operator--()
{
--this->value[0];
--this->value[1];
@@ -307,34 +301,34 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> tmat3x2<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> mat<3, 2, T, P>::operator++(int)
{
- tmat3x2<T, P> Result(*this);
+ mat<3, 2, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> tmat3x2<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> mat<3, 2, T, P>::operator--(int)
{
- tmat3x2<T, P> Result(*this);
+ mat<3, 2, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator+(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator+(mat<3, 2, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator-(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator-(mat<3, 2, T, P> const & m)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
-m[0],
-m[1],
-m[2]);
@@ -342,79 +336,79 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator+(mat<3, 2, T, P> const & m, T scalar)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m[0] + scalar,
m[1] + scalar,
m[2] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator+(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator+(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator-(mat<3, 2, T, P> const & m, T scalar)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m[0] - scalar,
m[1] - scalar,
m[2] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator-(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator-(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator*(mat<3, 2, T, P> const & m, T scalar)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(T scalar, tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator*(T scalar, mat<3, 2, T, P> const & m)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type operator*(tmat3x2<T, P> const & m, typename tmat3x2<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 2, T, P>::col_type operator*(mat<3, 2, T, P> const & m, typename mat<3, 2, T, P>::row_type const & v)
{
- return typename tmat3x2<T, P>::col_type(
+ return typename mat<3, 2, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z,
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::row_type operator*(typename tmat3x2<T, P>::col_type const & v, tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 2, T, P>::row_type operator*(typename mat<3, 2, T, P>::col_type const & v, mat<3, 2, T, P> const & m)
{
- return typename tmat3x2<T, P>::row_type(
+ return typename mat<3, 2, T, P>::row_type(
v.x * m[0][0] + v.y * m[0][1],
v.x * m[1][0] + v.y * m[1][1],
v.x * m[2][0] + v.y * m[2][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator*(mat<3, 2, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
const T SrcA00 = m1[0][0];
const T SrcA01 = m1[0][1];
@@ -430,7 +424,7 @@ namespace glm
const T SrcB11 = m2[1][1];
const T SrcB12 = m2[1][2];
- tmat2x2<T, P> Result(uninitialize);
+ mat<2, 2, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02;
Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12;
@@ -438,10 +432,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator*(mat<3, 2, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1] + m1[2][0] * m2[1][2],
@@ -450,10 +444,10 @@ namespace glm
m1[0][1] * m2[2][0] + m1[1][1] * m2[2][1] + m1[2][1] * m2[2][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator*(mat<3, 2, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1] + m1[2][0] * m2[1][2],
@@ -464,19 +458,19 @@ namespace glm
m1[0][1] * m2[3][0] + m1[1][1] * m2[3][1] + m1[2][1] * m2[3][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator/(mat<3, 2, T, P> const & m, T scalar)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m[0] / scalar,
m[1] / scalar,
m[2] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator/(T scalar, tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator/(T scalar, mat<3, 2, T, P> const & m)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
scalar / m[0],
scalar / m[1],
scalar / m[2]);
@@ -484,14 +478,14 @@ namespace glm
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<3, 2, T, P> const & m1, mat<3, 2, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat3x3.hpp b/3rdparty/glm/glm/detail/type_mat3x3.hpp
index 25e3a49a019..1a9f3365777 100644
--- a/3rdparty/glm/glm/detail/type_mat3x3.hpp
+++ b/3rdparty/glm/glm/detail/type_mat3x3.hpp
@@ -11,13 +11,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat3x3
+ template<typename T, precision P>
+ struct mat<3, 3, T, P>
{
- typedef tvec3<T, P> col_type;
- typedef tvec3<T, P> row_type;
- typedef tmat3x3<T, P> type;
- typedef tmat3x3<T, P> transpose_type;
+ typedef vec<3, T, P> col_type;
+ typedef vec<3, T, P> row_type;
+ typedef mat<3, 3, T, P> type;
+ typedef mat<3, 3, T, P> transpose_type;
typedef T value_type;
private:
@@ -26,18 +26,18 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat3x3() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat3x3(tmat3x3<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<3, 3, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<3, 3, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x3(ctor);
- GLM_FUNC_DECL explicit tmat3x3(T scalar);
- GLM_FUNC_DECL tmat3x3(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T x0, T y0, T z0,
T x1, T y1, T z1,
T x2, T y2, T z2);
- GLM_FUNC_DECL tmat3x3(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1,
col_type const & v2);
@@ -48,141 +48,141 @@ namespace glm
typename X1, typename Y1, typename Z1,
typename X2, typename Y2, typename Z2,
typename X3, typename Y3, typename Z3>
- GLM_FUNC_DECL tmat3x3(
+ GLM_FUNC_DECL mat(
X1 x1, Y1 y1, Z1 z1,
X2 x2, Y2 y2, Z2 z2,
X3 x3, Y3 y3, Z3 z3);
- template <typename V1, typename V2, typename V3>
- GLM_FUNC_DECL tmat3x3(
- tvec3<V1, P> const & v1,
- tvec3<V2, P> const & v2,
- tvec3<V3, P> const & v3);
+ template<typename V1, typename V2, typename V3>
+ GLM_FUNC_DECL mat(
+ vec<3, V1, P> const & v1,
+ vec<3, V2, P> const & v2,
+ vec<3, V3, P> const & v3);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x3<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 3;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat3x3<T, P> & operator=(tmat3x3<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator=(tmat3x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator+=(tmat3x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator-=(tmat3x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator*=(tmat3x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator/=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x3<T, P> & operator/=(tmat3x3<U, P> const & m);
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator=(mat<3, 3, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator=(mat<3, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator+=(mat<3, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator-=(mat<3, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator*=(mat<3, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator/=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator/=(mat<3, 3, U, P> const & m);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat3x3<T, P> & operator++();
- GLM_FUNC_DECL tmat3x3<T, P> & operator--();
- GLM_FUNC_DECL tmat3x3<T, P> operator++(int);
- GLM_FUNC_DECL tmat3x3<T, P> operator--(int);
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator++();
+ GLM_FUNC_DECL mat<3, 3, T, P> & operator--();
+ GLM_FUNC_DECL mat<3, 3, T, P> operator++(int);
+ GLM_FUNC_DECL mat<3, 3, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator+(mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator-(mat<3, 3, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator+(mat<3, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator+(T scalar, tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator+(T scalar, mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator+(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator-(mat<3, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator-(T scalar, tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator-(T scalar, mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator-(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator*(mat<3, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(T scalar, tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator*(T scalar, mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator*(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 3, T, P>::col_type operator*(mat<3, 3, T, P> const & m, typename mat<3, 3, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator*(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 3, T, P>::row_type operator*(typename mat<3, 3, T, P>::col_type const & v, mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator*(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator*(mat<3, 3, T, P> const & m1, mat<2, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator*(mat<3, 3, T, P> const & m1, mat<4, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator/(mat<3, 3, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator/(T scalar, tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator/(T scalar, mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator/(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 3, T, P>::col_type operator/(mat<3, 3, T, P> const & m, typename mat<3, 3, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator/(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 3, T, P>::row_type operator/(typename mat<3, 3, T, P>::col_type const & v, mat<3, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator/(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat3x3.inl b/3rdparty/glm/glm/detail/type_mat3x3.inl
index aec8e19662d..f4b4ad8e6f6 100644
--- a/3rdparty/glm/glm/detail/type_mat3x3.inl
+++ b/3rdparty/glm/glm/detail/type_mat3x3.inl
@@ -8,8 +8,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0, 0);
@@ -20,8 +20,8 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -29,29 +29,29 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat3x3<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<3, 3, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
this->value[2] = m.value[2];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat3x3<T, P>::tmat3x3(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<3, 3, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(T scalar)
{
this->value[0] = col_type(scalar, 0, 0);
this->value[1] = col_type(0, scalar, 0);
this->value[2] = col_type(0, 0, scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat
(
T x0, T y0, T z0,
T x1, T y1, T z1,
@@ -63,8 +63,8 @@ namespace glm
this->value[2] = col_type(x2, y2, z2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat
(
col_type const & v0,
col_type const & v1,
@@ -78,12 +78,12 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1, typename Z1,
typename X2, typename Y2, typename Z2,
typename X3, typename Y3, typename Z3>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat
(
X1 x1, Y1 y1, Z1 z1,
X2 x2, Y2 y2, Z2 z2,
@@ -95,13 +95,13 @@ namespace glm
this->value[2] = col_type(static_cast<T>(x3), value_type(y3), value_type(z3));
}
- template <typename T, precision P>
- template <typename V1, typename V2, typename V3>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3
+ template<typename T, precision P>
+ template<typename V1, typename V2, typename V3>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat
(
- tvec3<V1, P> const & v1,
- tvec3<V2, P> const & v2,
- tvec3<V3, P> const & v3
+ vec<3, V1, P> const& v1,
+ vec<3, V2, P> const& v2,
+ vec<3, V3, P> const& v3
)
{
this->value[0] = col_type(v1);
@@ -111,73 +111,73 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat3x3<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<3, 3, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
this->value[2] = col_type(0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
this->value[2] = col_type(0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
this->value[2] = col_type(m[2], 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
this->value[2] = col_type(m[2], 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -186,21 +186,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3<T, P>::length_type tmat3x3<T, P>::length() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 3, T, P>::col_type & mat<3, 3, T, P>::operator[](typename mat<3, 3, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type const & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 3, T, P>::col_type const & mat<3, 3, T, P>::operator[](typename mat<3, 3, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -209,8 +203,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator=(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator=(mat<3, 3, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -219,9 +213,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator=(tmat3x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator=(mat<3, 3, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -229,9 +223,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
@@ -239,9 +233,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator+=(tmat3x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator+=(mat<3, 3, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
@@ -249,9 +243,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
@@ -259,9 +253,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator-=(tmat3x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator-=(mat<3, 3, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
@@ -269,9 +263,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
@@ -279,16 +273,16 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator*=(tmat3x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator*=(mat<3, 3, U, P> const & m)
{
return (*this = *this * m);
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -296,17 +290,17 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator/=(tmat3x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator/=(mat<3, 3, U, P> const & m)
{
return *this *= inverse(m);
}
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator++()
{
++this->value[0];
++this->value[1];
@@ -314,8 +308,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> & mat<3, 3, T, P>::operator--()
{
--this->value[0];
--this->value[1];
@@ -323,34 +317,34 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> tmat3x3<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> mat<3, 3, T, P>::operator++(int)
{
- tmat3x3<T, P> Result(*this);
+ mat<3, 3, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> tmat3x3<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> mat<3, 3, T, P>::operator--(int)
{
- tmat3x3<T, P> Result(*this);
+ mat<3, 3, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator+(mat<3, 3, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator-(mat<3, 3, T, P> const & m)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
-m[0],
-m[1],
-m[2]);
@@ -358,98 +352,98 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator+(mat<3, 3, T, P> const & m, T scalar)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m[0] + scalar,
m[1] + scalar,
m[2] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(T scalar, tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator+(T scalar, mat<3, 3, T, P> const & m)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m[0] + scalar,
m[1] + scalar,
m[2] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator+(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator-(mat<3, 3, T, P> const & m, T scalar)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m[0] - scalar,
m[1] - scalar,
m[2] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(T scalar, tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator-(T scalar, mat<3, 3, T, P> const & m)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
scalar - m[0],
scalar - m[1],
scalar - m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator-(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator*(mat<3, 3, T, P> const & m, T scalar)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(T scalar, tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator*(T scalar, mat<3, 3, T, P> const & m)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type operator*(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 3, T, P>::col_type operator*(mat<3, 3, T, P> const & m, typename mat<3, 3, T, P>::row_type const & v)
{
- return typename tmat3x3<T, P>::col_type(
+ return typename mat<3, 3, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z,
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z,
m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::row_type operator*(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 3, T, P>::row_type operator*(typename mat<3, 3, T, P>::col_type const & v, mat<3, 3, T, P> const & m)
{
- return typename tmat3x3<T, P>::row_type(
+ return typename mat<3, 3, T, P>::row_type(
m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z,
m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z,
m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator*(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
T const SrcA00 = m1[0][0];
T const SrcA01 = m1[0][1];
@@ -471,7 +465,7 @@ namespace glm
T const SrcB21 = m2[2][1];
T const SrcB22 = m2[2][2];
- tmat3x3<T, P> Result(uninitialize);
+ mat<3, 3, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02;
Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02;
@@ -484,10 +478,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator*(mat<3, 3, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2],
@@ -496,10 +490,10 @@ namespace glm
m1[0][2] * m2[1][0] + m1[1][2] * m2[1][1] + m1[2][2] * m2[1][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator*(mat<3, 3, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2],
@@ -514,53 +508,53 @@ namespace glm
m1[0][2] * m2[3][0] + m1[1][2] * m2[3][1] + m1[2][2] * m2[3][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator/(mat<3, 3, T, P> const & m, T scalar)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
m[0] / scalar,
m[1] / scalar,
m[2] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(T scalar, tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator/(T scalar, mat<3, 3, T, P> const & m)
{
- return tmat3x3<T, P>(
+ return mat<3, 3, T, P>(
scalar / m[0],
scalar / m[1],
scalar / m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type operator/(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 3, T, P>::col_type operator/(mat<3, 3, T, P> const & m, typename mat<3, 3, T, P>::row_type const & v)
{
return inverse(m) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::row_type operator/(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 3, T, P>::row_type operator/(typename mat<3, 3, T, P>::col_type const & v, mat<3, 3, T, P> const & m)
{
return v * inverse(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator/(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
- tmat3x3<T, P> m1_copy(m1);
+ mat<3, 3, T, P> m1_copy(m1);
return m1_copy /= m2;
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<3, 3, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat3x4.hpp b/3rdparty/glm/glm/detail/type_mat3x4.hpp
index 76e71694608..77d2143e057 100644
--- a/3rdparty/glm/glm/detail/type_mat3x4.hpp
+++ b/3rdparty/glm/glm/detail/type_mat3x4.hpp
@@ -12,13 +12,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat3x4
+ template<typename T, precision P>
+ struct mat<3, 4, T, P>
{
- typedef tvec4<T, P> col_type;
- typedef tvec3<T, P> row_type;
- typedef tmat3x4<T, P> type;
- typedef tmat4x3<T, P> transpose_type;
+ typedef vec<4, T, P> col_type;
+ typedef vec<3, T, P> row_type;
+ typedef mat<3, 4, T, P> type;
+ typedef mat<4, 3, T, P> transpose_type;
typedef T value_type;
private:
@@ -27,18 +27,18 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat3x4() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat3x4(tmat3x4<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<3, 4, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<3, 4, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x4(ctor);
- GLM_FUNC_DECL explicit tmat3x4(T scalar);
- GLM_FUNC_DECL tmat3x4(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T x0, T y0, T z0, T w0,
T x1, T y1, T z1, T w1,
T x2, T y2, T z2, T w2);
- GLM_FUNC_DECL tmat3x4(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1,
col_type const & v2);
@@ -49,122 +49,122 @@ namespace glm
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2,
typename X3, typename Y3, typename Z3, typename W3>
- GLM_FUNC_DECL tmat3x4(
+ GLM_FUNC_DECL mat(
X1 x1, Y1 y1, Z1 z1, W1 w1,
X2 x2, Y2 y2, Z2 z2, W2 w2,
X3 x3, Y3 y3, Z3 z3, W3 w3);
- template <typename V1, typename V2, typename V3>
- GLM_FUNC_DECL tmat3x4(
- tvec4<V1, P> const & v1,
- tvec4<V2, P> const & v2,
- tvec4<V3, P> const & v3);
+ template<typename V1, typename V2, typename V3>
+ GLM_FUNC_DECL mat(
+ vec<4, V1, P> const & v1,
+ vec<4, V2, P> const & v2,
+ vec<4, V3, P> const & v3);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x4<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 3;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator+=(tmat3x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator-=(tmat3x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat3x4<T, P> & operator/=(U s);
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator=(mat<3, 4, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator=(mat<3, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator+=(mat<3, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator-=(mat<3, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator/=(U s);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat3x4<T, P> & operator++();
- GLM_FUNC_DECL tmat3x4<T, P> & operator--();
- GLM_FUNC_DECL tmat3x4<T, P> operator++(int);
- GLM_FUNC_DECL tmat3x4<T, P> operator--(int);
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator++();
+ GLM_FUNC_DECL mat<3, 4, T, P> & operator--();
+ GLM_FUNC_DECL mat<3, 4, T, P> operator++(int);
+ GLM_FUNC_DECL mat<3, 4, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator+(mat<3, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator-(mat<3, 4, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator+(mat<3, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator+(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator-(mat<3, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator-(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator*(mat<3, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(T scalar, tmat3x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator*(T scalar, mat<3, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator*(tmat3x4<T, P> const & m, typename tmat3x4<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 4, T, P>::col_type operator*(mat<3, 4, T, P> const & m, typename mat<3, 4, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat3x4<T, P>::row_type operator*(typename tmat3x4<T, P>::col_type const & v, tmat3x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<3, 4, T, P>::row_type operator*(typename mat<3, 4, T, P>::col_type const & v, mat<3, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator*(mat<3, 4, T, P> const & m1, mat<4, 3, T, P> const& m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat2x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator*(mat<3, 4, T, P> const & m1, mat<2, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat3x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator*(mat<3, 4, T, P> const & m1, mat<3, 3, T, P> const& m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator/(mat<3, 4, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator/(T scalar, tmat3x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator/(T scalar, mat<3, 4, T, P> const & m);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat3x4.inl b/3rdparty/glm/glm/detail/type_mat3x4.inl
index 7f55e9a5b5c..73f4aebbae5 100644
--- a/3rdparty/glm/glm/detail/type_mat3x4.inl
+++ b/3rdparty/glm/glm/detail/type_mat3x4.inl
@@ -6,8 +6,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0, 0, 0);
@@ -18,8 +18,8 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -27,29 +27,29 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat3x4<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<3, 4, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
this->value[2] = m.value[2];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat3x4<T, P>::tmat3x4(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<3, 4, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(T scalar)
{
this->value[0] = col_type(scalar, 0, 0, 0);
this->value[1] = col_type(0, scalar, 0, 0);
this->value[2] = col_type(0, 0, scalar, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat
(
T x0, T y0, T z0, T w0,
T x1, T y1, T z1, T w1,
@@ -61,8 +61,8 @@ namespace glm
this->value[2] = col_type(x2, y2, z2, w2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat
(
col_type const & v0,
col_type const & v1,
@@ -76,12 +76,12 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2,
typename X3, typename Y3, typename Z3, typename W3>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat
(
X1 x1, Y1 y1, Z1 z1, W1 w1,
X2 x2, Y2 y2, Z2 z2, W2 w2,
@@ -93,13 +93,13 @@ namespace glm
this->value[2] = col_type(static_cast<T>(x3), value_type(y3), value_type(z3), value_type(w3));
}
- template <typename T, precision P>
- template <typename V1, typename V2, typename V3>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4
+ template<typename T, precision P>
+ template<typename V1, typename V2, typename V3>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat
(
- tvec4<V1, P> const & v1,
- tvec4<V2, P> const & v2,
- tvec4<V3, P> const & v3
+ vec<4, V1, P> const & v1,
+ vec<4, V2, P> const & v2,
+ vec<4, V3, P> const & v3
)
{
this->value[0] = col_type(v1);
@@ -109,73 +109,73 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat3x4<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<3, 4, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
this->value[2] = col_type(0, 0, 1, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
this->value[2] = col_type(m[2], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
this->value[2] = col_type(0, 0, 1, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
this->value[2] = col_type(m[2], 1, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
this->value[2] = col_type(0, 0, 1, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
this->value[2] = col_type(m[2], 1, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -184,21 +184,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4<T, P>::length_type tmat3x4<T, P>::length() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 4, T, P>::col_type & mat<3, 4, T, P>::operator[](typename mat<3, 4, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type const & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 4, T, P>::col_type const & mat<3, 4, T, P>::operator[](typename mat<3, 4, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -207,8 +201,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator=(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator=(mat<3, 4, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -217,9 +211,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator=(tmat3x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator=(mat<3, 4, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -227,9 +221,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
@@ -237,9 +231,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator+=(tmat3x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator+=(mat<3, 4, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
@@ -247,9 +241,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
@@ -257,9 +251,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator-=(tmat3x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator-=(mat<3, 4, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
@@ -267,9 +261,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
@@ -277,9 +271,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> & tmat3x4<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> & mat<3, 4, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -289,8 +283,8 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator++()
{
++this->value[0];
++this->value[1];
@@ -298,8 +292,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>& tmat3x4<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P>& mat<3, 4, T, P>::operator--()
{
--this->value[0];
--this->value[1];
@@ -307,34 +301,34 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> tmat3x4<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> mat<3, 4, T, P>::operator++(int)
{
- tmat3x4<T, P> Result(*this);
+ mat<3, 4, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> tmat3x4<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> mat<3, 4, T, P>::operator--(int)
{
- tmat3x4<T, P> Result(*this);
+ mat<3, 4, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator+(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator+(mat<3, 4, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator-(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator-(mat<3, 4, T, P> const & m)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
-m[0],
-m[1],
-m[2]);
@@ -342,89 +336,89 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator+(mat<3, 4, T, P> const & m, T scalar)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m[0] + scalar,
m[1] + scalar,
m[2] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator+(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator+(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator-(mat<3, 4, T, P> const & m, T scalar)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m[0] - scalar,
m[1] - scalar,
m[2] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator-(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator-(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator*(mat<3, 4, T, P> const & m, T scalar)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(T scalar, tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator*(T scalar, mat<3, 4, T, P> const & m)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 4, T, P>::col_type operator*
(
- tmat3x4<T, P> const & m,
- typename tmat3x4<T, P>::row_type const & v
+ mat<3, 4, T, P> const& m,
+ typename mat<3, 4, T, P>::row_type const & v
)
{
- return typename tmat3x4<T, P>::col_type(
+ return typename mat<3, 4, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z,
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z,
m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z,
m[0][3] * v.x + m[1][3] * v.y + m[2][3] * v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::row_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<3, 4, T, P>::row_type operator*
(
- typename tmat3x4<T, P>::col_type const & v,
- tmat3x4<T, P> const & m
+ typename mat<3, 4, T, P>::col_type const & v,
+ mat<3, 4, T, P> const& m
)
{
- return typename tmat3x4<T, P>::row_type(
+ return typename mat<3, 4, T, P>::row_type(
v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2] + v.w * m[0][3],
v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2] + v.w * m[1][3],
v.x * m[2][0] + v.y * m[2][1] + v.z * m[2][2] + v.w * m[2][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator*(mat<3, 4, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
const T SrcA00 = m1[0][0];
const T SrcA01 = m1[0][1];
@@ -452,7 +446,7 @@ namespace glm
const T SrcB31 = m2[3][1];
const T SrcB32 = m2[3][2];
- tmat4x4<T, P> Result(uninitialize);
+ mat<4, 4, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02;
Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02;
@@ -472,10 +466,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat2x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator*(mat<3, 4, T, P> const & m1, mat<2, 3, T, P> const & m2)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2],
@@ -486,10 +480,10 @@ namespace glm
m1[0][3] * m2[1][0] + m1[1][3] * m2[1][1] + m1[2][3] * m2[1][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat3x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator*(mat<3, 4, T, P> const & m1, mat<3, 3, T, P> const & m2)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2],
@@ -504,19 +498,19 @@ namespace glm
m1[0][3] * m2[2][0] + m1[1][3] * m2[2][1] + m1[2][3] * m2[2][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator/(mat<3, 4, T, P> const & m, T scalar)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m[0] / scalar,
m[1] / scalar,
m[2] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator/(T scalar, tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator/(T scalar, mat<3, 4, T, P> const & m)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
scalar / m[0],
scalar / m[1],
scalar / m[2]);
@@ -524,14 +518,14 @@ namespace glm
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<3, 4, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat4x2.hpp b/3rdparty/glm/glm/detail/type_mat4x2.hpp
index 53a5d078f15..feff316e3dd 100644
--- a/3rdparty/glm/glm/detail/type_mat4x2.hpp
+++ b/3rdparty/glm/glm/detail/type_mat4x2.hpp
@@ -12,13 +12,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat4x2
+ template<typename T, precision P>
+ struct mat<4, 2, T, P>
{
- typedef tvec2<T, P> col_type;
- typedef tvec4<T, P> row_type;
- typedef tmat4x2<T, P> type;
- typedef tmat2x4<T, P> transpose_type;
+ typedef vec<2, T, P> col_type;
+ typedef vec<4, T, P> row_type;
+ typedef mat<4, 2, T, P> type;
+ typedef mat<2, 4, T, P> transpose_type;
typedef T value_type;
private:
@@ -27,19 +27,19 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat4x2() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat4x2(tmat4x2<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<4, 2, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<4, 2, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x2(ctor);
- GLM_FUNC_DECL explicit tmat4x2(T scalar);
- GLM_FUNC_DECL tmat4x2(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T scalar);
+ GLM_FUNC_DECL mat(
T x0, T y0,
T x1, T y1,
T x2, T y2,
T x3, T y3);
- GLM_FUNC_DECL tmat4x2(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1,
col_type const & v2,
@@ -47,129 +47,129 @@ namespace glm
// -- Conversions --
- template <
+ template<
typename X1, typename Y1,
typename X2, typename Y2,
typename X3, typename Y3,
typename X4, typename Y4>
- GLM_FUNC_DECL tmat4x2(
+ GLM_FUNC_DECL mat(
X1 x1, Y1 y1,
X2 x2, Y2 y2,
X3 x3, Y3 y3,
X4 x4, Y4 y4);
- template <typename V1, typename V2, typename V3, typename V4>
- GLM_FUNC_DECL tmat4x2(
- tvec2<V1, P> const & v1,
- tvec2<V2, P> const & v2,
- tvec2<V3, P> const & v3,
- tvec2<V4, P> const & v4);
+ template<typename V1, typename V2, typename V3, typename V4>
+ GLM_FUNC_DECL mat(
+ vec<2, V1, P> const & v1,
+ vec<2, V2, P> const & v2,
+ vec<2, V3, P> const & v3,
+ vec<2, V4, P> const & v4);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x2<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 4;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat4x2<T, P> & operator=(tmat4x2<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator=(tmat4x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator+=(tmat4x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator-=(tmat4x2<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x2<T, P> & operator/=(U s);
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator=(mat<4, 2, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator=(mat<4, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator+=(mat<4, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator-=(mat<4, 2, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator/=(U s);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();
- GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();
- GLM_FUNC_DECL tmat4x2<T, P> operator++(int);
- GLM_FUNC_DECL tmat4x2<T, P> operator--(int);
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator++ ();
+ GLM_FUNC_DECL mat<4, 2, T, P> & operator-- ();
+ GLM_FUNC_DECL mat<4, 2, T, P> operator++(int);
+ GLM_FUNC_DECL mat<4, 2, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator+(mat<4, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator-(mat<4, 2, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator+(mat<4, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator+(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator-(mat<4, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator-(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const& m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator*(mat<4, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(T scalar, tmat4x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator*(T scalar, mat<4, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator*(tmat4x2<T, P> const & m, typename tmat4x2<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 2, T, P>::col_type operator*(mat<4, 2, T, P> const & m, typename mat<4, 2, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x2<T, P>::row_type operator*(typename tmat4x2<T, P>::col_type const & v, tmat4x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 2, T, P>::row_type operator*(typename mat<4, 2, T, P>::col_type const & v, mat<4, 2, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> operator*(mat<4, 2, T, P> const & m1, mat<2, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> operator*(mat<4, 2, T, P> const & m1, mat<3, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator*(mat<4, 2, T, P> const & m1, mat<4, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator/(mat<4, 2, T, P> const & m, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator/(T scalar, tmat4x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> operator/(T scalar, mat<4, 2, T, P> const & m);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat4x2.inl b/3rdparty/glm/glm/detail/type_mat4x2.inl
index cbf1b348a47..68d3463041a 100644
--- a/3rdparty/glm/glm/detail/type_mat4x2.inl
+++ b/3rdparty/glm/glm/detail/type_mat4x2.inl
@@ -3,18 +3,11 @@
namespace glm
{
-# ifdef GLM_STATIC_CONST_MEMBERS
- template<typename T, precision P>
- const tmat4x2<T, P> tmat4x2<T, P>::ZERO(static_cast<T>(0));
-
- template<typename T, precision P>
- const tmat4x2<T, P> tmat4x2<T, P>::IDENTITY(static_cast<T>(1));
-# endif
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0);
@@ -26,8 +19,8 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -36,9 +29,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x2<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<4, 2, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -46,12 +39,12 @@ namespace glm
this->value[3] = m.value[3];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat4x2<T, P>::tmat4x2(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<4, 2, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(T scalar)
{
this->value[0] = col_type(scalar, 0);
this->value[1] = col_type(0, scalar);
@@ -59,8 +52,8 @@ namespace glm
this->value[3] = col_type(0, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat
(
T x0, T y0,
T x1, T y1,
@@ -74,8 +67,8 @@ namespace glm
this->value[3] = col_type(x3, y3);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat
(
col_type const & v0,
col_type const & v1,
@@ -91,13 +84,13 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1,
typename X2, typename Y2,
typename X3, typename Y3,
typename X4, typename Y4>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat
(
X1 x1, Y1 y1,
X2 x2, Y2 y2,
@@ -111,14 +104,14 @@ namespace glm
this->value[3] = col_type(static_cast<T>(x4), value_type(y4));
}
- template <typename T, precision P>
- template <typename V1, typename V2, typename V3, typename V4>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2
+ template<typename T, precision P>
+ template<typename V1, typename V2, typename V3, typename V4>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat
(
- tvec2<V1, P> const & v1,
- tvec2<V2, P> const & v2,
- tvec2<V3, P> const & v3,
- tvec2<V4, P> const & v4
+ vec<2, V1, P> const & v1,
+ vec<2, V2, P> const & v2,
+ vec<2, V3, P> const & v3,
+ vec<2, V4, P> const & v4
)
{
this->value[0] = col_type(v1);
@@ -129,9 +122,9 @@ namespace glm
// -- Conversion --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x2<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<4, 2, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -139,8 +132,8 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -148,8 +141,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -157,8 +150,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -166,8 +159,8 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -175,8 +168,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -184,8 +177,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -193,8 +186,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -202,8 +195,8 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -213,21 +206,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2<T, P>::length_type tmat4x2<T, P>::length() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 2, T, P>::col_type & mat<4, 2, T, P>::operator[](typename mat<4, 2, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type const & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 2, T, P>::col_type const & mat<4, 2, T, P>::operator[](typename mat<4, 2, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -236,8 +223,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>& tmat4x2<T, P>::operator=(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>& mat<4, 2, T, P>::operator=(mat<4, 2, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -247,9 +234,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>& tmat4x2<T, P>::operator=(tmat4x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P>& mat<4, 2, T, P>::operator=(mat<4, 2, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -258,9 +245,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
@@ -269,9 +256,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator+=(tmat4x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator+=(mat<4, 2, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
@@ -280,9 +267,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
@@ -291,9 +278,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator-=(tmat4x2<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator-=(mat<4, 2, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
@@ -302,9 +289,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
@@ -313,9 +300,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -326,8 +313,8 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator++()
{
++this->value[0];
++this->value[1];
@@ -336,8 +323,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> & tmat4x2<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> & mat<4, 2, T, P>::operator--()
{
--this->value[0];
--this->value[1];
@@ -346,34 +333,34 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> tmat4x2<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> mat<4, 2, T, P>::operator++(int)
{
- tmat4x2<T, P> Result(*this);
+ mat<4, 2, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> tmat4x2<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> mat<4, 2, T, P>::operator--(int)
{
- tmat4x2<T, P> Result(*this);
+ mat<4, 2, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator+(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator+(mat<4, 2, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator-(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator-(mat<4, 2, T, P> const & m)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
-m[0],
-m[1],
-m[2],
@@ -382,86 +369,86 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator+(mat<4, 2, T, P> const & m, T scalar)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m[0] + scalar,
m[1] + scalar,
m[2] + scalar,
m[3] + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator+(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator+(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2],
m1[3] + m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator-(mat<4, 2, T, P> const & m, T scalar)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m[0] - scalar,
m[1] - scalar,
m[2] - scalar,
m[3] - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator-(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator-(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2],
m1[3] - m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator*(mat<4, 2, T, P> const & m, T scalar)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar,
m[3] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(T scalar, tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator*(T scalar, mat<4, 2, T, P> const & m)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m[0] * scalar,
m[1] * scalar,
m[2] * scalar,
m[3] * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type operator*(tmat4x2<T, P> const & m, typename tmat4x2<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 2, T, P>::col_type operator*(mat<4, 2, T, P> const & m, typename mat<4, 2, T, P>::row_type const & v)
{
- return typename tmat4x2<T, P>::col_type(
+ return typename mat<4, 2, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * v.w,
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * v.w);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::row_type operator*(typename tmat4x2<T, P>::col_type const & v, tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 2, T, P>::row_type operator*(typename mat<4, 2, T, P>::col_type const & v, mat<4, 2, T, P> const & m)
{
- return typename tmat4x2<T, P>::row_type(
+ return typename mat<4, 2, T, P>::row_type(
v.x * m[0][0] + v.y * m[0][1],
v.x * m[1][0] + v.y * m[1][1],
v.x * m[2][0] + v.y * m[2][1],
v.x * m[3][0] + v.y * m[3][1]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> operator*(mat<4, 2, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
T const SrcA00 = m1[0][0];
T const SrcA01 = m1[0][1];
@@ -481,7 +468,7 @@ namespace glm
T const SrcB12 = m2[1][2];
T const SrcB13 = m2[1][3];
- tmat2x2<T, P> Result(uninitialize);
+ mat<2, 2, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02 + SrcA30 * SrcB03;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02 + SrcA31 * SrcB03;
Result[1][0] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12 + SrcA30 * SrcB13;
@@ -489,10 +476,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> operator*(mat<4, 2, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
- return tmat3x2<T, P>(
+ return mat<3, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1] + m1[2][0] * m2[1][2] + m1[3][0] * m2[1][3],
@@ -501,10 +488,10 @@ namespace glm
m1[0][1] * m2[2][0] + m1[1][1] * m2[2][1] + m1[2][1] * m2[2][2] + m1[3][1] * m2[2][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator*(mat<4, 2, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3],
m1[0][0] * m2[1][0] + m1[1][0] * m2[1][1] + m1[2][0] * m2[1][2] + m1[3][0] * m2[1][3],
@@ -515,20 +502,20 @@ namespace glm
m1[0][1] * m2[3][0] + m1[1][1] * m2[3][1] + m1[2][1] * m2[3][2] + m1[3][1] * m2[3][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator/(mat<4, 2, T, P> const & m, T scalar)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
m[0] / scalar,
m[1] / scalar,
m[2] / scalar,
m[3] / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator/(T scalar, tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> operator/(T scalar, mat<4, 2, T, P> const & m)
{
- return tmat4x2<T, P>(
+ return mat<4, 2, T, P>(
scalar / m[0],
scalar / m[1],
scalar / m[2],
@@ -537,14 +524,14 @@ namespace glm
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]) && (m1[3] == m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<4, 2, T, P> const & m1, mat<4, 2, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat4x3.hpp b/3rdparty/glm/glm/detail/type_mat4x3.hpp
index 15c328e60ce..2efa8699ea1 100644
--- a/3rdparty/glm/glm/detail/type_mat4x3.hpp
+++ b/3rdparty/glm/glm/detail/type_mat4x3.hpp
@@ -12,13 +12,13 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat4x3
+ template<typename T, precision P>
+ struct mat<4, 3, T, P>
{
- typedef tvec3<T, P> col_type;
- typedef tvec4<T, P> row_type;
- typedef tmat4x3<T, P> type;
- typedef tmat3x4<T, P> transpose_type;
+ typedef vec<3, T, P> col_type;
+ typedef vec<4, T, P> row_type;
+ typedef mat<4, 3, T, P> type;
+ typedef mat<3, 4, T, P> transpose_type;
typedef T value_type;
private:
@@ -27,19 +27,19 @@ namespace glm
public:
// -- Constructors --
- GLM_FUNC_DECL tmat4x3() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat4x3(tmat4x3<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<4, 3, T, P> const & m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<4, 3, T, Q> const & m);
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x3(ctor);
- GLM_FUNC_DECL explicit tmat4x3(T const & x);
- GLM_FUNC_DECL tmat4x3(
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T const & x);
+ GLM_FUNC_DECL mat(
T const & x0, T const & y0, T const & z0,
T const & x1, T const & y1, T const & z1,
T const & x2, T const & y2, T const & z2,
T const & x3, T const & y3, T const & z3);
- GLM_FUNC_DECL tmat4x3(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1,
col_type const & v2,
@@ -47,129 +47,129 @@ namespace glm
// -- Conversions --
- template <
+ template<
typename X1, typename Y1, typename Z1,
typename X2, typename Y2, typename Z2,
typename X3, typename Y3, typename Z3,
typename X4, typename Y4, typename Z4>
- GLM_FUNC_DECL tmat4x3(
+ GLM_FUNC_DECL mat(
X1 const & x1, Y1 const & y1, Z1 const & z1,
X2 const & x2, Y2 const & y2, Z2 const & z2,
X3 const & x3, Y3 const & y3, Z3 const & z3,
X4 const & x4, Y4 const & y4, Z4 const & z4);
- template <typename V1, typename V2, typename V3, typename V4>
- GLM_FUNC_DECL tmat4x3(
- tvec3<V1, P> const & v1,
- tvec3<V2, P> const & v2,
- tvec3<V3, P> const & v3,
- tvec3<V4, P> const & v4);
+ template<typename V1, typename V2, typename V3, typename V4>
+ GLM_FUNC_DECL mat(
+ vec<3, V1, P> const & v1,
+ vec<3, V2, P> const & v2,
+ vec<3, V3, P> const & v3,
+ vec<3, V4, P> const & v4);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x3<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
// -- Accesses --
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 4;}
GLM_FUNC_DECL col_type & operator[](length_type i);
GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator+=(tmat4x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator-=(tmat4x3<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x3<T, P> & operator/=(U s);
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator=(mat<4, 3, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator=(mat<4, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator+=(mat<4, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator-=(mat<4, 3, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 3, T, P> & operator/=(U s);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat4x3<T, P> & operator++();
- GLM_FUNC_DECL tmat4x3<T, P> & operator--();
- GLM_FUNC_DECL tmat4x3<T, P> operator++(int);
- GLM_FUNC_DECL tmat4x3<T, P> operator--(int);
+ GLM_FUNC_DECL mat<4, 3, T, P>& operator++();
+ GLM_FUNC_DECL mat<4, 3, T, P>& operator--();
+ GLM_FUNC_DECL mat<4, 3, T, P> operator++(int);
+ GLM_FUNC_DECL mat<4, 3, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator+(mat<4, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator-(mat<4, 3, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator+(mat<4, 3, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator+(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator-(mat<4, 3, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator-(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator*(mat<4, 3, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator*(T const & s, tmat4x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator*(T const & s, mat<4, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x3<T, P>::col_type operator*(tmat4x3<T, P> const & m, typename tmat4x3<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 3, T, P>::col_type operator*(mat<4, 3, T, P> const & m, typename mat<4, 3, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x3<T, P>::row_type operator*(typename tmat4x3<T, P>::col_type const & v, tmat4x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 3, T, P>::row_type operator*(typename mat<4, 3, T, P>::col_type const & v, mat<4, 3, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> operator*(mat<4, 3, T, P> const & m1, mat<2, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> operator*(mat<4, 3, T, P> const & m1, mat<3, 4, T, P> const& m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator*(mat<4, 3, T, P> const & m1, mat<4, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator/(tmat4x3<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator/(mat<4, 3, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> operator/(T const & s, tmat4x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> operator/(T const & s, mat<4, 3, T, P> const & m);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat4x3.inl b/3rdparty/glm/glm/detail/type_mat4x3.inl
index 2aa8289cefe..b3c8d87e570 100644
--- a/3rdparty/glm/glm/detail/type_mat4x3.inl
+++ b/3rdparty/glm/glm/detail/type_mat4x3.inl
@@ -6,8 +6,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0, 0);
@@ -19,8 +19,8 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -29,9 +29,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat4x3<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<4, 3, T, Q> const & m)
{
this->value[0] = m.value[0];
this->value[1] = m.value[1];
@@ -39,12 +39,12 @@ namespace glm
this->value[3] = m.value[3];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat4x3<T, P>::tmat4x3(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR mat<4, 3, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(T const & s)
{
this->value[0] = col_type(s, 0, 0);
this->value[1] = col_type(0, s, 0);
@@ -52,8 +52,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat
(
T const & x0, T const & y0, T const & z0,
T const & x1, T const & y1, T const & z1,
@@ -67,8 +67,8 @@ namespace glm
this->value[3] = col_type(x3, y3, z3);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat
(
col_type const & v0,
col_type const & v1,
@@ -84,13 +84,13 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1, typename Z1,
typename X2, typename Y2, typename Z2,
typename X3, typename Y3, typename Z3,
typename X4, typename Y4, typename Z4>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat
(
X1 const & x1, Y1 const & y1, Z1 const & z1,
X2 const & x2, Y2 const & y2, Z2 const & z2,
@@ -104,14 +104,14 @@ namespace glm
this->value[3] = col_type(static_cast<T>(x4), value_type(y4), value_type(z4));
}
- template <typename T, precision P>
- template <typename V1, typename V2, typename V3, typename V4>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3
+ template<typename T, precision P>
+ template<typename V1, typename V2, typename V3, typename V4>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat
(
- tvec3<V1, P> const & v1,
- tvec3<V2, P> const & v2,
- tvec3<V3, P> const & v3,
- tvec3<V4, P> const & v4
+ vec<3, V1, P> const & v1,
+ vec<3, V2, P> const & v2,
+ vec<3, V3, P> const & v3,
+ vec<3, V4, P> const & v4
)
{
this->value[0] = col_type(v1);
@@ -122,9 +122,9 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat4x3<U, Q> const & m)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<4, 3, U, Q> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -132,8 +132,8 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -141,8 +141,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -150,8 +150,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -159,8 +159,8 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -168,8 +168,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -177,8 +177,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -186,8 +186,8 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -195,8 +195,8 @@ namespace glm
this->value[3] = col_type(m[3], 0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -206,21 +206,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3<T, P>::length_type tmat4x3<T, P>::length() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 3, T, P>::col_type & mat<4, 3, T, P>::operator[](typename mat<4, 3, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type const & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 3, T, P>::col_type const & mat<4, 3, T, P>::operator[](typename mat<4, 3, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -229,8 +223,8 @@ namespace glm
// -- Unary updatable operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>& tmat4x3<T, P>::operator=(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>& mat<4, 3, T, P>::operator=(mat<4, 3, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -240,9 +234,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>& tmat4x3<T, P>::operator=(tmat4x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P>& mat<4, 3, T, P>::operator=(mat<4, 3, U, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -251,9 +245,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
@@ -262,9 +256,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator+=(tmat4x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator+=(mat<4, 3, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
@@ -273,9 +267,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
@@ -284,9 +278,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator-=(tmat4x3<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator-=(mat<4, 3, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
@@ -295,9 +289,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
@@ -306,9 +300,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -319,8 +313,8 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator++()
{
++this->value[0];
++this->value[1];
@@ -329,8 +323,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> & tmat4x3<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> & mat<4, 3, T, P>::operator--()
{
--this->value[0];
--this->value[1];
@@ -339,34 +333,34 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> tmat4x3<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> mat<4, 3, T, P>::operator++(int)
{
- tmat4x3<T, P> Result(*this);
+ mat<4, 3, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> tmat4x3<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> mat<4, 3, T, P>::operator--(int)
{
- tmat4x3<T, P> Result(*this);
+ mat<4, 3, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator+(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator+(mat<4, 3, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator-(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator-(mat<4, 3, T, P> const & m)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
-m[0],
-m[1],
-m[2],
@@ -375,95 +369,95 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator+(tmat4x3<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator+(mat<4, 3, T, P> const & m, T const & s)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m[0] + s,
m[1] + s,
m[2] + s,
m[3] + s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator+(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator+(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2],
m1[3] + m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator-(tmat4x3<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator-(mat<4, 3, T, P> const & m, T const & s)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m[0] - s,
m[1] - s,
m[2] - s,
m[3] - s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator-(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator-(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2],
m1[3] - m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator*(tmat4x3<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator*(mat<4, 3, T, P> const & m, T const & s)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m[0] * s,
m[1] * s,
m[2] * s,
m[3] * s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator*(T const & s, tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator*(T const & s, mat<4, 3, T, P> const & m)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m[0] * s,
m[1] * s,
m[2] * s,
m[3] * s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 3, T, P>::col_type operator*
(
- tmat4x3<T, P> const & m,
- typename tmat4x3<T, P>::row_type const & v)
+ mat<4, 3, T, P> const& m,
+ typename mat<4, 3, T, P>::row_type const & v)
{
- return typename tmat4x3<T, P>::col_type(
+ return typename mat<4, 3, T, P>::col_type(
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * v.w,
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * v.w,
m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z + m[3][2] * v.w);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::row_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 3, T, P>::row_type operator*
(
- typename tmat4x3<T, P>::col_type const & v,
- tmat4x3<T, P> const & m)
+ typename mat<4, 3, T, P>::col_type const & v,
+ mat<4, 3, T, P> const& m)
{
- return typename tmat4x3<T, P>::row_type(
+ return typename mat<4, 3, T, P>::row_type(
v.x * m[0][0] + v.y * m[0][1] + v.z * m[0][2],
v.x * m[1][0] + v.y * m[1][1] + v.z * m[1][2],
v.x * m[2][0] + v.y * m[2][1] + v.z * m[2][2],
v.x * m[3][0] + v.y * m[3][1] + v.z * m[3][2]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> operator*(mat<4, 3, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
- return tmat2x3<T, P>(
+ return mat<2, 3, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2] + m1[3][2] * m2[0][3],
@@ -472,8 +466,8 @@ namespace glm
m1[0][2] * m2[1][0] + m1[1][2] * m2[1][1] + m1[2][2] * m2[1][2] + m1[3][2] * m2[1][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> operator*(mat<4, 3, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
T const SrcA00 = m1[0][0];
T const SrcA01 = m1[0][1];
@@ -501,7 +495,7 @@ namespace glm
T const SrcB22 = m2[2][2];
T const SrcB23 = m2[2][3];
- tmat3x3<T, P> Result(uninitialize);
+ mat<3, 3, T, P> Result(uninitialize);
Result[0][0] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02 + SrcA30 * SrcB03;
Result[0][1] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02 + SrcA31 * SrcB03;
Result[0][2] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02 + SrcA32 * SrcB03;
@@ -514,10 +508,10 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator*(mat<4, 3, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2] + m1[3][2] * m2[0][3],
@@ -532,20 +526,20 @@ namespace glm
m1[0][2] * m2[3][0] + m1[1][2] * m2[3][1] + m1[2][2] * m2[3][2] + m1[3][2] * m2[3][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator/(tmat4x3<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator/(mat<4, 3, T, P> const & m, T const & s)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
m[0] / s,
m[1] / s,
m[2] / s,
m[3] / s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> operator/(T const & s, tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> operator/(T const & s, mat<4, 3, T, P> const & m)
{
- return tmat4x3<T, P>(
+ return mat<4, 3, T, P>(
s / m[0],
s / m[1],
s / m[2],
@@ -554,14 +548,14 @@ namespace glm
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]) && (m1[3] == m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<4, 3, T, P> const & m1, mat<4, 3, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]);
}
diff --git a/3rdparty/glm/glm/detail/type_mat4x4.hpp b/3rdparty/glm/glm/detail/type_mat4x4.hpp
index d0043944b68..e0d109ac2f5 100644
--- a/3rdparty/glm/glm/detail/type_mat4x4.hpp
+++ b/3rdparty/glm/glm/detail/type_mat4x4.hpp
@@ -11,34 +11,42 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tmat4x4
+ template<typename T, precision P>
+ struct mat<4, 4, T, P>
{
- typedef tvec4<T, P> col_type;
- typedef tvec4<T, P> row_type;
- typedef tmat4x4<T, P> type;
- typedef tmat4x4<T, P> transpose_type;
+ typedef vec<4, T, P> col_type;
+ typedef vec<4, T, P> row_type;
+ typedef mat<4, 4, T, P> type;
+ typedef mat<4, 4, T, P> transpose_type;
typedef T value_type;
private:
col_type value[4];
public:
+ // -- Accesses --
+
+ typedef length_t length_type;
+ GLM_FUNC_DECL static length_type length(){return 4;}
+
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+
// -- Constructors --
- GLM_FUNC_DECL tmat4x4() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tmat4x4(tmat4x4<T, P> const & m) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);
+ GLM_FUNC_DECL mat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL mat(mat<4, 4, T, P> const& m) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL mat(mat<4, 4, T, Q> const& m);
- GLM_FUNC_DECL explicit tmat4x4(ctor);
- GLM_FUNC_DECL explicit tmat4x4(T const & x);
- GLM_FUNC_DECL tmat4x4(
+ GLM_FUNC_DECL explicit mat(ctor);
+ GLM_FUNC_DECL explicit mat(T const & x);
+ GLM_FUNC_DECL mat(
T const & x0, T const & y0, T const & z0, T const & w0,
T const & x1, T const & y1, T const & z1, T const & w1,
T const & x2, T const & y2, T const & z2, T const & w2,
T const & x3, T const & y3, T const & z3, T const & w3);
- GLM_FUNC_DECL tmat4x4(
+ GLM_FUNC_DECL mat(
col_type const & v0,
col_type const & v1,
col_type const & v2,
@@ -46,148 +54,140 @@ namespace glm
// -- Conversions --
- template <
+ template<
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2,
typename X3, typename Y3, typename Z3, typename W3,
typename X4, typename Y4, typename Z4, typename W4>
- GLM_FUNC_DECL tmat4x4(
+ GLM_FUNC_DECL mat(
X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
- template <typename V1, typename V2, typename V3, typename V4>
- GLM_FUNC_DECL tmat4x4(
- tvec4<V1, P> const & v1,
- tvec4<V2, P> const & v2,
- tvec4<V3, P> const & v3,
- tvec4<V4, P> const & v4);
+ template<typename V1, typename V2, typename V3, typename V4>
+ GLM_FUNC_DECL mat(
+ vec<4, V1, P> const & v1,
+ vec<4, V2, P> const & v2,
+ vec<4, V3, P> const & v3,
+ vec<4, V4, P> const & v4);
// -- Matrix conversions --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x4<U, Q> const & m);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 4, U, Q> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x3<T, P> const & x);
-
- // -- Accesses --
-
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
-
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 3, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<2, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 2, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<3, 4, T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT mat(mat<4, 3, T, P> const & x);
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator+=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator+=(tmat4x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator-=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator-=(tmat4x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator*=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator*=(tmat4x4<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator/=(U s);
- template <typename U>
- GLM_FUNC_DECL tmat4x4<T, P> & operator/=(tmat4x4<U, P> const & m);
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator=(mat<4, 4, T, P> const & m) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator=(mat<4, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator+=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator+=(mat<4, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator-=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator-=(mat<4, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator*=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator*=(mat<4, 4, U, P> const & m);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator/=(U s);
+ template<typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator/=(mat<4, 4, U, P> const & m);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tmat4x4<T, P> & operator++();
- GLM_FUNC_DECL tmat4x4<T, P> & operator--();
- GLM_FUNC_DECL tmat4x4<T, P> operator++(int);
- GLM_FUNC_DECL tmat4x4<T, P> operator--(int);
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator++();
+ GLM_FUNC_DECL mat<4, 4, T, P> & operator--();
+ GLM_FUNC_DECL mat<4, 4, T, P> operator++(int);
+ GLM_FUNC_DECL mat<4, 4, T, P> operator--(int);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator+(mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator-(mat<4, 4, T, P> const & m);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator+(mat<4, 4, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator+(T const & s, tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator+(T const & s, mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator+(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator-(mat<4, 4, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator-(T const & s, tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator-(T const & s, mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator-(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const& m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator*(mat<4, 4, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator*(T const & s, tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator*(T const & s, mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator*(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 4, T, P>::col_type operator*(mat<4, 4, T, P> const & m, typename mat<4, 4, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator*(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 4, T, P>::row_type operator*(typename mat<4, 4, T, P>::col_type const & v, mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat2x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> operator*(mat<4, 4, T, P> const & m1, mat<2, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat3x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> operator*(mat<4, 4, T, P> const & m1, mat<3, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator*(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> const & m, T const & s);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator/(mat<4, 4, T, P> const & m, T const & s);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator/(T const & s, tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator/(T const & s, mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 4, T, P>::col_type operator/(mat<4, 4, T, P> const & m, typename mat<4, 4, T, P>::row_type const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator/(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL typename mat<4, 4, T, P>::row_type operator/(typename mat<4, 4, T, P>::col_type const & v, mat<4, 4, T, P> const & m);
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> operator/(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const& m2);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_mat4x4.inl b/3rdparty/glm/glm/detail/type_mat4x4.inl
index 81b27503844..880ce9311f5 100644
--- a/3rdparty/glm/glm/detail/type_mat4x4.inl
+++ b/3rdparty/glm/glm/detail/type_mat4x4.inl
@@ -8,8 +8,8 @@ namespace glm
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
this->value[0] = col_type(1, 0, 0, 0);
@@ -21,8 +21,8 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<4, 4, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -31,9 +31,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat4x4<T, Q> const & m)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<4, 4, T, Q> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -41,12 +41,12 @@ namespace glm
this->value[3] = m[3];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(T const & s)
{
this->value[0] = col_type(s, 0, 0, 0);
this->value[1] = col_type(0, s, 0, 0);
@@ -54,8 +54,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat
(
T const & x0, T const & y0, T const & z0, T const & w0,
T const & x1, T const & y1, T const & z1, T const & w1,
@@ -69,8 +69,8 @@ namespace glm
this->value[3] = col_type(x3, y3, z3, w3);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat
(
col_type const & v0,
col_type const & v1,
@@ -84,11 +84,11 @@ namespace glm
this->value[3] = v3;
}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat
(
- tmat4x4<U, Q> const & m
+ mat<4, 4, U, Q> const & m
)
{
this->value[0] = col_type(m[0]);
@@ -99,13 +99,13 @@ namespace glm
// -- Conversions --
- template <typename T, precision P>
- template <
+ template<typename T, precision P>
+ template<
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2,
typename X3, typename Y3, typename Z3, typename W3,
typename X4, typename Y4, typename Z4, typename W4>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat
(
X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
@@ -113,25 +113,25 @@ namespace glm
X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4
)
{
- GLM_STATIC_ASSERT(std::numeric_limits<X1>::is_iec559 || std::numeric_limits<X1>::is_integer, "*mat4x4 constructor only takes float and integer types, 1st parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Y1>::is_iec559 || std::numeric_limits<Y1>::is_integer, "*mat4x4 constructor only takes float and integer types, 2nd parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Z1>::is_iec559 || std::numeric_limits<Z1>::is_integer, "*mat4x4 constructor only takes float and integer types, 3rd parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<W1>::is_iec559 || std::numeric_limits<W1>::is_integer, "*mat4x4 constructor only takes float and integer types, 4th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<X1>::is_iec559 || std::numeric_limits<X1>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 1st parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Y1>::is_iec559 || std::numeric_limits<Y1>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 2nd parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Z1>::is_iec559 || std::numeric_limits<Z1>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 3rd parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<W1>::is_iec559 || std::numeric_limits<W1>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 4th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<X2>::is_iec559 || std::numeric_limits<X2>::is_integer, "*mat4x4 constructor only takes float and integer types, 5th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Y2>::is_iec559 || std::numeric_limits<Y2>::is_integer, "*mat4x4 constructor only takes float and integer types, 6th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Z2>::is_iec559 || std::numeric_limits<Z2>::is_integer, "*mat4x4 constructor only takes float and integer types, 7th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<W2>::is_iec559 || std::numeric_limits<W2>::is_integer, "*mat4x4 constructor only takes float and integer types, 8th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<X2>::is_iec559 || std::numeric_limits<X2>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 5th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Y2>::is_iec559 || std::numeric_limits<Y2>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 6th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Z2>::is_iec559 || std::numeric_limits<Z2>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 7th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<W2>::is_iec559 || std::numeric_limits<W2>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 8th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<X3>::is_iec559 || std::numeric_limits<X3>::is_integer, "*mat4x4 constructor only takes float and integer types, 9th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Y3>::is_iec559 || std::numeric_limits<Y3>::is_integer, "*mat4x4 constructor only takes float and integer types, 10th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Z3>::is_iec559 || std::numeric_limits<Z3>::is_integer, "*mat4x4 constructor only takes float and integer types, 11th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<W3>::is_iec559 || std::numeric_limits<W3>::is_integer, "*mat4x4 constructor only takes float and integer types, 12th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<X3>::is_iec559 || std::numeric_limits<X3>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 9th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Y3>::is_iec559 || std::numeric_limits<Y3>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 10th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Z3>::is_iec559 || std::numeric_limits<Z3>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 11th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<W3>::is_iec559 || std::numeric_limits<W3>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 12th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<X4>::is_iec559 || std::numeric_limits<X4>::is_integer, "*mat4x4 constructor only takes float and integer types, 13th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Y4>::is_iec559 || std::numeric_limits<Y4>::is_integer, "*mat4x4 constructor only takes float and integer types, 14th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<Z4>::is_iec559 || std::numeric_limits<Z4>::is_integer, "*mat4x4 constructor only takes float and integer types, 15th parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<W4>::is_iec559 || std::numeric_limits<W4>::is_integer, "*mat4x4 constructor only takes float and integer types, 16th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<X4>::is_iec559 || std::numeric_limits<X4>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 13th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Y4>::is_iec559 || std::numeric_limits<Y4>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 14th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<Z4>::is_iec559 || std::numeric_limits<Z4>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 15th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<W4>::is_iec559 || std::numeric_limits<W4>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 16th parameter type invalid.");
this->value[0] = col_type(static_cast<T>(x1), value_type(y1), value_type(z1), value_type(w1));
this->value[1] = col_type(static_cast<T>(x2), value_type(y2), value_type(z2), value_type(w2));
@@ -139,20 +139,20 @@ namespace glm
this->value[3] = col_type(static_cast<T>(x4), value_type(y4), value_type(z4), value_type(w4));
}
- template <typename T, precision P>
- template <typename V1, typename V2, typename V3, typename V4>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4
+ template<typename T, precision P>
+ template<typename V1, typename V2, typename V3, typename V4>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat
(
- tvec4<V1, P> const & v1,
- tvec4<V2, P> const & v2,
- tvec4<V3, P> const & v3,
- tvec4<V4, P> const & v4
+ vec<4, V1, P> const & v1,
+ vec<4, V2, P> const & v2,
+ vec<4, V3, P> const & v3,
+ vec<4, V4, P> const & v4
)
{
- GLM_STATIC_ASSERT(std::numeric_limits<V1>::is_iec559 || std::numeric_limits<V1>::is_integer, "*mat4x4 constructor only takes float and integer types, 1st parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<V2>::is_iec559 || std::numeric_limits<V2>::is_integer, "*mat4x4 constructor only takes float and integer types, 2nd parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<V3>::is_iec559 || std::numeric_limits<V3>::is_integer, "*mat4x4 constructor only takes float and integer types, 3rd parameter type invalid.");
- GLM_STATIC_ASSERT(std::numeric_limits<V4>::is_iec559 || std::numeric_limits<V4>::is_integer, "*mat4x4 constructor only takes float and integer types, 4th parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<V1>::is_iec559 || std::numeric_limits<V1>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 1st parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<V2>::is_iec559 || std::numeric_limits<V2>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 2nd parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<V3>::is_iec559 || std::numeric_limits<V3>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 3rd parameter type invalid.");
+ GLM_STATIC_ASSERT(std::numeric_limits<V4>::is_iec559 || std::numeric_limits<V4>::is_integer || GLM_UNRESTRICTED_GENTYPE, "*mat4x4 constructor only takes float and integer types, 4th parameter type invalid.");
this->value[0] = col_type(v1);
this->value[1] = col_type(v2);
@@ -162,8 +162,8 @@ namespace glm
// -- Matrix conversions --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<2, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
@@ -171,8 +171,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<3, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -180,8 +180,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat2x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<2, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -189,8 +189,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat3x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<3, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
@@ -198,8 +198,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<2, 4, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -207,8 +207,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat4x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<4, 2, T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
this->value[1] = col_type(m[1], 0, 0);
@@ -216,8 +216,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<3, 4, T, P> const & m)
{
this->value[0] = m[0];
this->value[1] = m[1];
@@ -225,8 +225,8 @@ namespace glm
this->value[3] = col_type(0, 0, 0, 1);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>::tmat4x4(tmat4x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>::mat(mat<4, 3, T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
this->value[1] = col_type(m[1], 0);
@@ -236,21 +236,15 @@ namespace glm
// -- Accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4<T, P>::length_type tmat4x4<T, P>::length() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 4, T, P>::col_type & mat<4, 4, T, P>::operator[](typename mat<4, 4, T, P>::length_type i)
{
assert(i < this->length());
return this->value[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type const & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 4, T, P>::col_type const & mat<4, 4, T, P>::operator[](typename mat<4, 4, T, P>::length_type i) const
{
assert(i < this->length());
return this->value[i];
@@ -259,8 +253,8 @@ namespace glm
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>& tmat4x4<T, P>::operator=(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>& mat<4, 4, T, P>::operator=(mat<4, 4, T, P> const & m)
{
//memcpy could be faster
//memcpy(&this->value, &m.value, 16 * sizeof(valType));
@@ -272,9 +266,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>& tmat4x4<T, P>::operator=(tmat4x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>& mat<4, 4, T, P>::operator=(mat<4, 4, U, P> const & m)
{
//memcpy could be faster
//memcpy(&this->value, &m.value, 16 * sizeof(valType));
@@ -285,9 +279,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>& tmat4x4<T, P>::operator+=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>& mat<4, 4, T, P>::operator+=(U s)
{
this->value[0] += s;
this->value[1] += s;
@@ -296,9 +290,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P>& tmat4x4<T, P>::operator+=(tmat4x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P>& mat<4, 4, T, P>::operator+=(mat<4, 4, U, P> const & m)
{
this->value[0] += m[0];
this->value[1] += m[1];
@@ -307,9 +301,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator-=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator-=(U s)
{
this->value[0] -= s;
this->value[1] -= s;
@@ -318,9 +312,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator-=(tmat4x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator-=(mat<4, 4, U, P> const & m)
{
this->value[0] -= m[0];
this->value[1] -= m[1];
@@ -329,9 +323,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator*=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator*=(U s)
{
this->value[0] *= s;
this->value[1] *= s;
@@ -340,16 +334,16 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator*=(tmat4x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator*=(mat<4, 4, U, P> const & m)
{
return (*this = *this * m);
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator/=(U s)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator/=(U s)
{
this->value[0] /= s;
this->value[1] /= s;
@@ -358,17 +352,17 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator/=(tmat4x4<U, P> const & m)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator/=(mat<4, 4, U, P> const & m)
{
return *this *= inverse(m);
}
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator++()
{
++this->value[0];
++this->value[1];
@@ -377,8 +371,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> & mat<4, 4, T, P>::operator--()
{
--this->value[0];
--this->value[1];
@@ -387,34 +381,34 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> tmat4x4<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> mat<4, 4, T, P>::operator++(int)
{
- tmat4x4<T, P> Result(*this);
+ mat<4, 4, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> tmat4x4<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> mat<4, 4, T, P>::operator--(int)
{
- tmat4x4<T, P> Result(*this);
+ mat<4, 4, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary constant operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator+(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator+(mat<4, 4, T, P> const & m)
{
return m;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator-(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator-(mat<4, 4, T, P> const & m)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
-m[0],
-m[1],
-m[2],
@@ -423,91 +417,91 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator+(tmat4x4<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator+(mat<4, 4, T, P> const & m, T const & s)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m[0] + s,
m[1] + s,
m[2] + s,
m[3] + s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator+(T const & s, tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator+(T const & s, mat<4, 4, T, P> const & m)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m[0] + s,
m[1] + s,
m[2] + s,
m[3] + s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator+(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator+(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m1[0] + m2[0],
m1[1] + m2[1],
m1[2] + m2[2],
m1[3] + m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator-(tmat4x4<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator-(mat<4, 4, T, P> const & m, T const & s)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m[0] - s,
m[1] - s,
m[2] - s,
m[3] - s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator-(T const & s, tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator-(T const & s, mat<4, 4, T, P> const & m)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
s - m[0],
s - m[1],
s - m[2],
s - m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator-(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator-(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m1[0] - m2[0],
m1[1] - m2[1],
m1[2] - m2[2],
m1[3] - m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator*(tmat4x4<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator*(mat<4, 4, T, P> const & m, T const & s)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m[0] * s,
m[1] * s,
m[2] * s,
m[3] * s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator*(T const & s, tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator*(T const & s, mat<4, 4, T, P> const & m)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m[0] * s,
m[1] * s,
m[2] * s,
m[3] * s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 4, T, P>::col_type operator*
(
- tmat4x4<T, P> const & m,
- typename tmat4x4<T, P>::row_type const & v
+ mat<4, 4, T, P> const& m,
+ typename mat<4, 4, T, P>::row_type const & v
)
{
/*
@@ -526,24 +520,24 @@ namespace glm
__m128 a2 = _mm_add_ps(a0, a1);
- return typename tmat4x4<T, P>::col_type(a2);
+ return typename mat<4, 4, T, P>::col_type(a2);
*/
- typename tmat4x4<T, P>::col_type const Mov0(v[0]);
- typename tmat4x4<T, P>::col_type const Mov1(v[1]);
- typename tmat4x4<T, P>::col_type const Mul0 = m[0] * Mov0;
- typename tmat4x4<T, P>::col_type const Mul1 = m[1] * Mov1;
- typename tmat4x4<T, P>::col_type const Add0 = Mul0 + Mul1;
- typename tmat4x4<T, P>::col_type const Mov2(v[2]);
- typename tmat4x4<T, P>::col_type const Mov3(v[3]);
- typename tmat4x4<T, P>::col_type const Mul2 = m[2] * Mov2;
- typename tmat4x4<T, P>::col_type const Mul3 = m[3] * Mov3;
- typename tmat4x4<T, P>::col_type const Add1 = Mul2 + Mul3;
- typename tmat4x4<T, P>::col_type const Add2 = Add0 + Add1;
+ typename mat<4, 4, T, P>::col_type const Mov0(v[0]);
+ typename mat<4, 4, T, P>::col_type const Mov1(v[1]);
+ typename mat<4, 4, T, P>::col_type const Mul0 = m[0] * Mov0;
+ typename mat<4, 4, T, P>::col_type const Mul1 = m[1] * Mov1;
+ typename mat<4, 4, T, P>::col_type const Add0 = Mul0 + Mul1;
+ typename mat<4, 4, T, P>::col_type const Mov2(v[2]);
+ typename mat<4, 4, T, P>::col_type const Mov3(v[3]);
+ typename mat<4, 4, T, P>::col_type const Mul2 = m[2] * Mov2;
+ typename mat<4, 4, T, P>::col_type const Mul3 = m[3] * Mov3;
+ typename mat<4, 4, T, P>::col_type const Add1 = Mul2 + Mul3;
+ typename mat<4, 4, T, P>::col_type const Add2 = Add0 + Add1;
return Add2;
/*
- return typename tmat4x4<T, P>::col_type(
+ return typename mat<4, 4, T, P>::col_type(
m[0][0] * v[0] + m[1][0] * v[1] + m[2][0] * v[2] + m[3][0] * v[3],
m[0][1] * v[0] + m[1][1] * v[1] + m[2][1] * v[2] + m[3][1] * v[3],
m[0][2] * v[0] + m[1][2] * v[1] + m[2][2] * v[2] + m[3][2] * v[3],
@@ -551,24 +545,24 @@ namespace glm
*/
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::row_type operator*
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 4, T, P>::row_type operator*
(
- typename tmat4x4<T, P>::col_type const & v,
- tmat4x4<T, P> const & m
+ typename mat<4, 4, T, P>::col_type const & v,
+ mat<4, 4, T, P> const& m
)
{
- return typename tmat4x4<T, P>::row_type(
+ return typename mat<4, 4, T, P>::row_type(
m[0][0] * v[0] + m[0][1] * v[1] + m[0][2] * v[2] + m[0][3] * v[3],
m[1][0] * v[0] + m[1][1] * v[1] + m[1][2] * v[2] + m[1][3] * v[3],
m[2][0] * v[0] + m[2][1] * v[1] + m[2][2] * v[2] + m[2][3] * v[3],
m[3][0] * v[0] + m[3][1] * v[1] + m[3][2] * v[2] + m[3][3] * v[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat2x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> operator*(mat<4, 4, T, P> const & m1, mat<2, 4, T, P> const & m2)
{
- return tmat2x4<T, P>(
+ return mat<2, 4, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2] + m1[3][2] * m2[0][3],
@@ -579,10 +573,10 @@ namespace glm
m1[0][3] * m2[1][0] + m1[1][3] * m2[1][1] + m1[2][3] * m2[1][2] + m1[3][3] * m2[1][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat3x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> operator*(mat<4, 4, T, P> const & m1, mat<3, 4, T, P> const & m2)
{
- return tmat3x4<T, P>(
+ return mat<3, 4, T, P>(
m1[0][0] * m2[0][0] + m1[1][0] * m2[0][1] + m1[2][0] * m2[0][2] + m1[3][0] * m2[0][3],
m1[0][1] * m2[0][0] + m1[1][1] * m2[0][1] + m1[2][1] * m2[0][2] + m1[3][1] * m2[0][3],
m1[0][2] * m2[0][0] + m1[1][2] * m2[0][1] + m1[2][2] * m2[0][2] + m1[3][2] * m2[0][3],
@@ -597,20 +591,20 @@ namespace glm
m1[0][3] * m2[2][0] + m1[1][3] * m2[2][1] + m1[2][3] * m2[2][2] + m1[3][3] * m2[2][3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator*(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
- typename tmat4x4<T, P>::col_type const SrcA0 = m1[0];
- typename tmat4x4<T, P>::col_type const SrcA1 = m1[1];
- typename tmat4x4<T, P>::col_type const SrcA2 = m1[2];
- typename tmat4x4<T, P>::col_type const SrcA3 = m1[3];
+ typename mat<4, 4, T, P>::col_type const SrcA0 = m1[0];
+ typename mat<4, 4, T, P>::col_type const SrcA1 = m1[1];
+ typename mat<4, 4, T, P>::col_type const SrcA2 = m1[2];
+ typename mat<4, 4, T, P>::col_type const SrcA3 = m1[3];
- typename tmat4x4<T, P>::col_type const SrcB0 = m2[0];
- typename tmat4x4<T, P>::col_type const SrcB1 = m2[1];
- typename tmat4x4<T, P>::col_type const SrcB2 = m2[2];
- typename tmat4x4<T, P>::col_type const SrcB3 = m2[3];
+ typename mat<4, 4, T, P>::col_type const SrcB0 = m2[0];
+ typename mat<4, 4, T, P>::col_type const SrcB1 = m2[1];
+ typename mat<4, 4, T, P>::col_type const SrcB2 = m2[2];
+ typename mat<4, 4, T, P>::col_type const SrcB3 = m2[3];
- tmat4x4<T, P> Result(uninitialize);
+ mat<4, 4, T, P> Result(uninitialize);
Result[0] = SrcA0 * SrcB0[0] + SrcA1 * SrcB0[1] + SrcA2 * SrcB0[2] + SrcA3 * SrcB0[3];
Result[1] = SrcA0 * SrcB1[0] + SrcA1 * SrcB1[1] + SrcA2 * SrcB1[2] + SrcA3 * SrcB1[3];
Result[2] = SrcA0 * SrcB2[0] + SrcA1 * SrcB2[1] + SrcA2 * SrcB2[2] + SrcA3 * SrcB2[3];
@@ -618,55 +612,55 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator/(tmat4x4<T, P> const & m, T const & s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator/(mat<4, 4, T, P> const & m, T const & s)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
m[0] / s,
m[1] / s,
m[2] / s,
m[3] / s);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator/(T const & s, tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator/(T const & s, mat<4, 4, T, P> const& m)
{
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
s / m[0],
s / m[1],
s / m[2],
s / m[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 4, T, P>::col_type operator/(mat<4, 4, T, P> const & m, typename mat<4, 4, T, P>::row_type const & v)
{
return inverse(m) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::row_type operator/(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename mat<4, 4, T, P>::row_type operator/(typename mat<4, 4, T, P>::col_type const & v, mat<4, 4, T, P> const & m)
{
return v * inverse(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> operator/(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> operator/(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
- tmat4x4<T, P> m1_copy(m1);
+ mat<4, 4, T, P> m1_copy(m1);
return m1_copy /= m2;
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]) && (m1[3] == m2[3]);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(mat<4, 4, T, P> const & m1, mat<4, 4, T, P> const & m2)
{
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]);
}
diff --git a/3rdparty/glm/glm/detail/type_vec.hpp b/3rdparty/glm/glm/detail/type_vec.hpp
index 23e463e7f03..4fe69c1886f 100644
--- a/3rdparty/glm/glm/detail/type_vec.hpp
+++ b/3rdparty/glm/glm/detail/type_vec.hpp
@@ -9,16 +9,7 @@
namespace glm{
namespace detail
{
- template<std::size_t N> struct aligned {};
- template<> GLM_ALIGNED_STRUCT(1) aligned<1>{};
- template<> GLM_ALIGNED_STRUCT(2) aligned<2>{};
- template<> GLM_ALIGNED_STRUCT(4) aligned<4>{};
- template<> GLM_ALIGNED_STRUCT(8) aligned<8>{};
- template<> GLM_ALIGNED_STRUCT(16) aligned<16>{};
- template<> GLM_ALIGNED_STRUCT(32) aligned<32>{};
- template<> GLM_ALIGNED_STRUCT(64) aligned<64>{};
-
- template <typename T, std::size_t size, bool aligned>
+ template<typename T, std::size_t size, bool aligned>
struct storage
{
typedef struct type {
@@ -26,29 +17,36 @@ namespace detail
} type;
};
- template <typename T, std::size_t size>
- struct storage<T, size, true>
- {
- struct type : aligned<size>
- {
- uint8 data[size];
+ #define GLM_ALIGNED_STORAGE_TYPE_STRUCT(x) \
+ template<typename T> \
+ struct storage<T, x, true> { \
+ GLM_ALIGNED_STRUCT(x) type { \
+ uint8 data[x]; \
+ }; \
};
- };
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(1)
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(2)
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(4)
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(8)
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(16)
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(32)
+ GLM_ALIGNED_STORAGE_TYPE_STRUCT(64)
+
# if GLM_ARCH & GLM_ARCH_SSE2_BIT
- template <>
+ template<>
struct storage<float, 16, true>
{
typedef glm_vec4 type;
};
- template <>
+ template<>
struct storage<int, 16, true>
{
typedef glm_ivec4 type;
};
- template <>
+ template<>
struct storage<unsigned int, 16, true>
{
typedef glm_uvec4 type;
@@ -60,19 +58,19 @@ namespace detail
unsigned __int8 data[16];
} glm_128;
- template <>
+ template<>
struct storage<float, 16, true>
{
typedef glm_128 type;
};
- template <>
+ template<>
struct storage<int, 16, true>
{
typedef glm_128 type;
};
- template <>
+ template<>
struct storage<unsigned int, 16, true>
{
typedef glm_128 type;
@@ -81,7 +79,7 @@ namespace detail
# endif
# if (GLM_ARCH & GLM_ARCH_AVX_BIT)
- template <>
+ template<>
struct storage<double, 32, true>
{
typedef glm_dvec4 type;
@@ -89,13 +87,13 @@ namespace detail
# endif
# if (GLM_ARCH & GLM_ARCH_AVX2_BIT)
- template <>
+ template<>
struct storage<int64, 32, true>
{
typedef glm_i64vec4 type;
};
- template <>
+ template<>
struct storage<uint64, 32, true>
{
typedef glm_u64vec4 type;
@@ -103,26 +101,28 @@ namespace detail
# endif
}//namespace detail
- template <typename T, precision P> struct tvec1;
- template <typename T, precision P> struct tvec2;
- template <typename T, precision P> struct tvec3;
- template <typename T, precision P> struct tvec4;
-
- typedef tvec1<float, highp> highp_vec1_t;
- typedef tvec1<float, mediump> mediump_vec1_t;
- typedef tvec1<float, lowp> lowp_vec1_t;
- typedef tvec1<double, highp> highp_dvec1_t;
- typedef tvec1<double, mediump> mediump_dvec1_t;
- typedef tvec1<double, lowp> lowp_dvec1_t;
- typedef tvec1<int, highp> highp_ivec1_t;
- typedef tvec1<int, mediump> mediump_ivec1_t;
- typedef tvec1<int, lowp> lowp_ivec1_t;
- typedef tvec1<uint, highp> highp_uvec1_t;
- typedef tvec1<uint, mediump> mediump_uvec1_t;
- typedef tvec1<uint, lowp> lowp_uvec1_t;
- typedef tvec1<bool, highp> highp_bvec1_t;
- typedef tvec1<bool, mediump> mediump_bvec1_t;
- typedef tvec1<bool, lowp> lowp_bvec1_t;
+#if GLM_HAS_TEMPLATE_ALIASES
+ template <typename T, precision P = defaultp> using tvec1 = vec<1, T, P>;
+ template <typename T, precision P = defaultp> using tvec2 = vec<2, T, P>;
+ template <typename T, precision P = defaultp> using tvec3 = vec<3, T, P>;
+ template <typename T, precision P = defaultp> using tvec4 = vec<4, T, P>;
+#endif//GLM_HAS_TEMPLATE_ALIASES
+
+ typedef vec<1, float, highp> highp_vec1_t;
+ typedef vec<1, float, mediump> mediump_vec1_t;
+ typedef vec<1, float, lowp> lowp_vec1_t;
+ typedef vec<1, double, highp> highp_dvec1_t;
+ typedef vec<1, double, mediump> mediump_dvec1_t;
+ typedef vec<1, double, lowp> lowp_dvec1_t;
+ typedef vec<1, int, highp> highp_ivec1_t;
+ typedef vec<1, int, mediump> mediump_ivec1_t;
+ typedef vec<1, int, lowp> lowp_ivec1_t;
+ typedef vec<1, uint, highp> highp_uvec1_t;
+ typedef vec<1, uint, mediump> mediump_uvec1_t;
+ typedef vec<1, uint, lowp> lowp_uvec1_t;
+ typedef vec<1, bool, highp> highp_bvec1_t;
+ typedef vec<1, bool, mediump> mediump_bvec1_t;
+ typedef vec<1, bool, lowp> lowp_bvec1_t;
/// @addtogroup core_precision
/// @{
@@ -132,105 +132,105 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<float, highp> highp_vec2;
+ typedef vec<2, float, highp> highp_vec2;
/// 2 components vector of medium single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<float, mediump> mediump_vec2;
+ typedef vec<2, float, mediump> mediump_vec2;
/// 2 components vector of low single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<float, lowp> lowp_vec2;
+ typedef vec<2, float, lowp> lowp_vec2;
/// 2 components vector of high double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<double, highp> highp_dvec2;
+ typedef vec<2, double, highp> highp_dvec2;
/// 2 components vector of medium double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<double, mediump> mediump_dvec2;
+ typedef vec<2, double, mediump> mediump_dvec2;
/// 2 components vector of low double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<double, lowp> lowp_dvec2;
+ typedef vec<2, double, lowp> lowp_dvec2;
/// 2 components vector of high precision signed integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<int, highp> highp_ivec2;
+ typedef vec<2, int, highp> highp_ivec2;
/// 2 components vector of medium precision signed integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<int, mediump> mediump_ivec2;
+ typedef vec<2, int, mediump> mediump_ivec2;
/// 2 components vector of low precision signed integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<int, lowp> lowp_ivec2;
+ typedef vec<2, int, lowp> lowp_ivec2;
/// 2 components vector of high precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<uint, highp> highp_uvec2;
+ typedef vec<2, uint, highp> highp_uvec2;
/// 2 components vector of medium precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<uint, mediump> mediump_uvec2;
+ typedef vec<2, uint, mediump> mediump_uvec2;
/// 2 components vector of low precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<uint, lowp> lowp_uvec2;
+ typedef vec<2, uint, lowp> lowp_uvec2;
/// 2 components vector of high precision bool numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<bool, highp> highp_bvec2;
+ typedef vec<2, bool, highp> highp_bvec2;
/// 2 components vector of medium precision bool numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<bool, mediump> mediump_bvec2;
+ typedef vec<2, bool, mediump> mediump_bvec2;
/// 2 components vector of low precision bool numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec2<bool, lowp> lowp_bvec2;
+ typedef vec<2, bool, lowp> lowp_bvec2;
/// @}
@@ -242,102 +242,102 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<float, highp> highp_vec3;
+ typedef vec<3, float, highp> highp_vec3;
/// 3 components vector of medium single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<float, mediump> mediump_vec3;
+ typedef vec<3, float, mediump> mediump_vec3;
/// 3 components vector of low single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<float, lowp> lowp_vec3;
+ typedef vec<3, float, lowp> lowp_vec3;
/// 3 components vector of high double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<double, highp> highp_dvec3;
+ typedef vec<3, double, highp> highp_dvec3;
/// 3 components vector of medium double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<double, mediump> mediump_dvec3;
+ typedef vec<3, double, mediump> mediump_dvec3;
/// 3 components vector of low double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<double, lowp> lowp_dvec3;
+ typedef vec<3, double, lowp> lowp_dvec3;
/// 3 components vector of high precision signed integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<int, highp> highp_ivec3;
+ typedef vec<3, int, highp> highp_ivec3;
/// 3 components vector of medium precision signed integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<int, mediump> mediump_ivec3;
+ typedef vec<3, int, mediump> mediump_ivec3;
/// 3 components vector of low precision signed integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<int, lowp> lowp_ivec3;
+ typedef vec<3, int, lowp> lowp_ivec3;
/// 3 components vector of high precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<uint, highp> highp_uvec3;
+ typedef vec<3, uint, highp> highp_uvec3;
/// 3 components vector of medium precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<uint, mediump> mediump_uvec3;
+ typedef vec<3, uint, mediump> mediump_uvec3;
/// 3 components vector of low precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<uint, lowp> lowp_uvec3;
+ typedef vec<3, uint, lowp> lowp_uvec3;
/// 3 components vector of high precision bool numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<bool, highp> highp_bvec3;
+ typedef vec<3, bool, highp> highp_bvec3;
/// 3 components vector of medium precision bool numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<bool, mediump> mediump_bvec3;
+ typedef vec<3, bool, mediump> mediump_bvec3;
/// 3 components vector of low precision bool numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec3<bool, lowp> lowp_bvec3;
+ typedef vec<3, bool, lowp> lowp_bvec3;
/// @}
@@ -348,91 +348,91 @@ namespace detail
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<float, highp> highp_vec4;
+ typedef vec<4, float, highp> highp_vec4;
/// 4 components vector of medium single-precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<float, mediump> mediump_vec4;
+ typedef vec<4, float, mediump> mediump_vec4;
/// 4 components vector of low single-precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<float, lowp> lowp_vec4;
+ typedef vec<4, float, lowp> lowp_vec4;
/// 4 components vector of high double-precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<double, highp> highp_dvec4;
+ typedef vec<4, double, highp> highp_dvec4;
/// 4 components vector of medium double-precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<double, mediump> mediump_dvec4;
+ typedef vec<4, double, mediump> mediump_dvec4;
/// 4 components vector of low double-precision floating-point numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<double, lowp> lowp_dvec4;
+ typedef vec<4, double, lowp> lowp_dvec4;
/// 4 components vector of high precision signed integer numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<int, highp> highp_ivec4;
+ typedef vec<4, int, highp> highp_ivec4;
/// 4 components vector of medium precision signed integer numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<int, mediump> mediump_ivec4;
+ typedef vec<4, int, mediump> mediump_ivec4;
/// 4 components vector of low precision signed integer numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<int, lowp> lowp_ivec4;
+ typedef vec<4, int, lowp> lowp_ivec4;
/// 4 components vector of high precision unsigned integer numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<uint, highp> highp_uvec4;
+ typedef vec<4, uint, highp> highp_uvec4;
/// 4 components vector of medium precision unsigned integer numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<uint, mediump> mediump_uvec4;
+ typedef vec<4, uint, mediump> mediump_uvec4;
/// 4 components vector of low precision unsigned integer numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<uint, lowp> lowp_uvec4;
+ typedef vec<4, uint, lowp> lowp_uvec4;
/// 4 components vector of high precision bool numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<bool, highp> highp_bvec4;
+ typedef vec<4, bool, highp> highp_bvec4;
/// 4 components vector of medium precision bool numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<bool, mediump> mediump_bvec4;
+ typedef vec<4, bool, mediump> mediump_bvec4;
/// 4 components vector of low precision bool numbers.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tvec4<bool, lowp> lowp_bvec4;
+ typedef vec<4, bool, lowp> lowp_bvec4;
/// @}
diff --git a/3rdparty/glm/glm/detail/type_vec1.hpp b/3rdparty/glm/glm/detail/type_vec1.hpp
index dd673a7ca4e..8f877eda525 100644
--- a/3rdparty/glm/glm/detail/type_vec1.hpp
+++ b/3rdparty/glm/glm/detail/type_vec1.hpp
@@ -16,18 +16,21 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tvec1
+ template<typename T, precision P>
+ struct vec<1, T, P>
{
// -- Implementation detail --
typedef T value_type;
- typedef tvec1<T, P> type;
- typedef tvec1<bool, P> bool_type;
+ typedef vec type;
+ typedef vec<1, bool, P> bool_type;
// -- Data --
-# if GLM_HAS_ALIGNED_TYPE
+# if GLM_HAS_ONLY_XYZW
+ T x;
+
+# elif GLM_HAS_ALIGNED_TYPE
# if GLM_COMPILER & GLM_COMPILER_GCC
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wpedantic"
@@ -75,44 +78,44 @@ namespace glm
/// Return the count of components of the vector
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 1;}
GLM_FUNC_DECL T & operator[](length_type i);
GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR tvec1() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1<T, P> const & v) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1<T, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec const& v) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, T, Q> const& v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec1(ctor);
- GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec1(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(T scalar);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec2<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<2, U, Q> const& v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec3<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<3, U, Q> const& v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec4<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<4, U, Q> const& v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec1<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<1, U, Q> const& v);
// -- Swizzle constructors --
/*
# if(GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))
- template <int E0>
- GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1, E0, -1,-2,-3> const & that)
+ template<int E0>
+ GLM_FUNC_DECL tvec(detail::_swizzle<1, T, P, tvec1, E0, -1,-2,-3> const & that)
{
*this = that();
}
@@ -120,178 +123,178 @@ namespace glm
*/
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<T, P> const & v) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator+=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator-=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator*=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator/=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> const & v);
+ GLM_FUNC_DECL vec & operator=(vec const & v) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL vec & operator=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator+=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator+=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator-=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator-=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator*=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator*=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator/=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator/=(vec<1, U, P> const& v);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tvec1<T, P> & operator++();
- GLM_FUNC_DECL tvec1<T, P> & operator--();
- GLM_FUNC_DECL tvec1<T, P> operator++(int);
- GLM_FUNC_DECL tvec1<T, P> operator--(int);
+ GLM_FUNC_DECL vec & operator++();
+ GLM_FUNC_DECL vec & operator--();
+ GLM_FUNC_DECL vec operator++(int);
+ GLM_FUNC_DECL vec operator--(int);
// -- Unary bit operators --
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator%=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator&=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator|=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator^=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator<<=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator>>=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(vec<1, U, P> const& v);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator+(vec<1, T, P> const& v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator-(vec<1, T, P> const& v);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator+(vec<1, T, P> const& v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator+(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator+(T scalar, vec<1, T, P> const& v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator+(vec<1, T, P> const& v1, vec<1, T, P> const& v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator-(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator-(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator-(T scalar, vec<1, T, P> const& v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator-(vec<1, T, P> const& v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator*(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator*(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator*(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator*(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator/(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator/(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator/(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator/(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator%(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator%(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator%(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator%(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator&(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator&(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator&(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator&(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator|(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator|(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator|(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator|(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator^(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator^(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator^(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator^(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator<<(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator<<(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator<<(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator<<(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator>>(vec<1, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator>>(T scalar, tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator>>(T scalar, vec<1, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator>>(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<1, T, P> operator~(vec<1, T, P> const & v);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(vec<1, T, P> const & v1, vec<1, T, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec1<bool, P> operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<1, bool, P> operator&&(vec<1, bool, P> const & v1, vec<1, bool, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec1<bool, P> operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<1, bool, P> operator||(vec<1, bool, P> const & v1, vec<1, bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_vec1.inl b/3rdparty/glm/glm/detail/type_vec1.inl
index 56f6b25bb6f..e3f56b259ef 100644
--- a/3rdparty/glm/glm/detail/type_vec1.inl
+++ b/3rdparty/glm/glm/detail/type_vec1.inl
@@ -6,8 +6,8 @@ namespace glm
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0)
# endif
@@ -15,72 +15,66 @@ namespace glm
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(vec<1, T, P> const & v)
: x(v.x)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec1<T, Q> const & v)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(vec<1, T, Q> const& v)
: x(v.x)
{}
// -- Explicit basic constructors --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec1<T, P>::tvec1(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(T scalar)
: x(scalar)
{}
// -- Conversion vector constructors --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec1<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(vec<1, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec2<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(vec<2, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec3<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(vec<3, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec4<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<1, T, P>::vec(vec<4, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
// -- Component accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1<T, P>::length_type tvec1<T, P>::length() const
- {
- return 1;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec1<T, P>::operator[](typename tvec1<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T & vec<1, T, P>::operator[](typename vec<1, T, P>::length_type i)
{
assert(i >= 0 && i < this->length());
return (&x)[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec1<T, P>::operator[](typename tvec1<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & vec<1, T, P>::operator[](typename vec<1, T, P>::length_type i) const
{
assert(i >= 0 && i < this->length());
return (&x)[i];
@@ -89,81 +83,81 @@ namespace glm
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator=(tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator=(vec<1, T, P> const & v)
{
this->x = v.x;
return *this;
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator=(vec<1, U, P> const & v)
{
this->x = static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator+=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator+=(U scalar)
{
this->x += static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator+=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator+=(vec<1, U, P> const & v)
{
this->x += static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator-=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator-=(U scalar)
{
this->x -= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator-=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator-=(vec<1, U, P> const & v)
{
this->x -= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator*=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator*=(U scalar)
{
this->x *= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator*=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator*=(vec<1, U, P> const & v)
{
this->x *= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator/=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator/=(U scalar)
{
this->x /= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator/=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator/=(vec<1, U, P> const & v)
{
this->x /= static_cast<T>(v.x);
return *this;
@@ -171,129 +165,129 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator++()
{
++this->x;
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator--()
{
--this->x;
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> tvec1<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> vec<1, T, P>::operator++(int)
{
- tvec1<T, P> Result(*this);
+ vec<1, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> tvec1<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> vec<1, T, P>::operator--(int)
{
- tvec1<T, P> Result(*this);
+ vec<1, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary bit operators --
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator%=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator%=(U scalar)
{
this->x %= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator%=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator%=(vec<1, U, P> const & v)
{
this->x %= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator&=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator&=(U scalar)
{
this->x &= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator&=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator&=(vec<1, U, P> const & v)
{
this->x &= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator|=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator|=(U scalar)
{
this->x |= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator|=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator|=(vec<1, U, P> const & v)
{
this->x |= U(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator^=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator^=(U scalar)
{
this->x ^= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator^=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator^=(vec<1, U, P> const & v)
{
this->x ^= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator<<=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator<<=(U scalar)
{
this->x <<= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator<<=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator<<=(vec<1, U, P> const & v)
{
this->x <<= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator>>=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator>>=(U scalar)
{
this->x >>= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator>>=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<1, T, P> & vec<1, T, P>::operator>>=(vec<1, U, P> const & v)
{
this->x >>= static_cast<T>(v.x);
return *this;
@@ -301,264 +295,264 @@ namespace glm
// -- Unary constant operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator+(tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator+(vec<1, T, P> const & v)
{
return v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator-(tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator-(vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
-v.x);
}
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator+(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator+(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator+(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator+(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar + v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator+(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x + v2.x);
}
//operator-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator-(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator-(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator-(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator-(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar - v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator-(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator-(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x - v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator*(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator*(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator*(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator*(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar * v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator*(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x * v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator/(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator/(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator/(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator/(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar / v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator/(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x / v2.x);
}
// -- Binary bit operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator%(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator%(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x % scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator%(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator%(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar % v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator%(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x % v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator&(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator&(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x & scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator&(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator&(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar & v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator&(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x & v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator|(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator|(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x | scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator|(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator|(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar | v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator|(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x | v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator^(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator^(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x ^ scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator^(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator^(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar ^ v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator^(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x ^ v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator<<(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x << scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator<<(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar << v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator<<(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x << v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(tvec1<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator>>(vec<1, T, P> const & v, T scalar)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v.x >> scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(T scalar, tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator>>(T scalar, vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
scalar >> v.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator>>(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
v1.x >> v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator~(tvec1<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, T, P> operator~(vec<1, T, P> const & v)
{
- return tvec1<T, P>(
+ return vec<1, T, P>(
~v.x);
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
return (v1.x == v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(vec<1, T, P> const & v1, vec<1, T, P> const & v2)
{
return (v1.x != v2.x);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec1<bool, P> operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<1, bool, P> operator&&(vec<1, bool, P> const & v1, vec<1, bool, P> const & v2)
{
- return tvec1<bool, P>(v1.x && v2.x);
+ return vec<1, bool, P>(v1.x && v2.x);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec1<bool, P> operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<1, bool, P> operator||(vec<1, bool, P> const & v1, vec<1, bool, P> const & v2)
{
- return tvec1<bool, P>(v1.x || v2.x);
+ return vec<1, bool, P>(v1.x || v2.x);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/type_vec2.hpp b/3rdparty/glm/glm/detail/type_vec2.hpp
index 9a9ef42d7c1..1eb81c92794 100644
--- a/3rdparty/glm/glm/detail/type_vec2.hpp
+++ b/3rdparty/glm/glm/detail/type_vec2.hpp
@@ -15,18 +15,21 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tvec2
+ template<typename T, precision P>
+ struct vec<2, T, P>
{
// -- Implementation detail --
typedef T value_type;
- typedef tvec2<T, P> type;
- typedef tvec2<bool, P> bool_type;
+ typedef vec type;
+ typedef vec<2, bool, P> bool_type;
// -- Data --
-# if GLM_HAS_ALIGNED_TYPE
+# if GLM_HAS_ONLY_XYZW
+ T x, y;
+
+# elif GLM_HAS_ALIGNED_TYPE
# if GLM_COMPILER & GLM_COMPILER_GCC
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wpedantic"
@@ -44,15 +47,15 @@ namespace glm
struct{ T s, t; };
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, x, y)
- _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, r, g)
- _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, s, t)
- _GLM_SWIZZLE2_3_MEMBERS(T, P, glm::tvec3, x, y)
- _GLM_SWIZZLE2_3_MEMBERS(T, P, glm::tvec3, r, g)
- _GLM_SWIZZLE2_3_MEMBERS(T, P, glm::tvec3, s, t)
- _GLM_SWIZZLE2_4_MEMBERS(T, P, glm::tvec4, x, y)
- _GLM_SWIZZLE2_4_MEMBERS(T, P, glm::tvec4, r, g)
- _GLM_SWIZZLE2_4_MEMBERS(T, P, glm::tvec4, s, t)
+ _GLM_SWIZZLE2_2_MEMBERS(T, P, x, y)
+ _GLM_SWIZZLE2_2_MEMBERS(T, P, r, g)
+ _GLM_SWIZZLE2_2_MEMBERS(T, P, s, t)
+ _GLM_SWIZZLE2_3_MEMBERS(T, P, x, y)
+ _GLM_SWIZZLE2_3_MEMBERS(T, P, r, g)
+ _GLM_SWIZZLE2_3_MEMBERS(T, P, s, t)
+ _GLM_SWIZZLE2_4_MEMBERS(T, P, x, y)
+ _GLM_SWIZZLE2_4_MEMBERS(T, P, r, g)
+ _GLM_SWIZZLE2_4_MEMBERS(T, P, s, t)
# endif//GLM_SWIZZLE
};
@@ -68,7 +71,7 @@ namespace glm
union {T y, g, t;};
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P)
# endif//GLM_SWIZZLE
# endif
@@ -76,49 +79,49 @@ namespace glm
/// Return the count of components of the vector
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 2;}
- GLM_FUNC_DECL T & operator[](length_type i);
- GLM_FUNC_DECL T const & operator[](length_type i) const;
+ GLM_FUNC_DECL T& operator[](length_type i);
+ GLM_FUNC_DECL T const& operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR tvec2() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2<T, P> const& v) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2<T, Q> const& v);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec const& v) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, T, Q> const& v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec2(ctor);
- GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(T scalar);
- GLM_FUNC_DECL GLM_CONSTEXPR tvec2(T s1, T s2);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(T x, T y);
// -- Conversion constructors --
- /// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec2(A x, B y);
- template <typename A, typename B>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec1<A, P> const & v1, tvec1<B, P> const & v2);
+ /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
+ template<typename A, typename B>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A x, B y);
+ template<typename A, typename B>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, P> const& x, vec<1, B, P> const& y);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec3<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<3, U, Q> const& v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec4<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<4, U, Q> const& v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec2<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<2, U, Q> const& v);
// -- Swizzle constructors --
# if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
- template <int E0, int E1>
- GLM_FUNC_DECL tvec2(detail::_swizzle<2, T, P, glm::tvec2, E0, E1,-1,-2> const& that)
+ template<int E0, int E1>
+ GLM_FUNC_DECL vec(detail::_swizzle<2, T, P, E0, E1,-1,-2> const& that)
{
*this = that();
}
@@ -126,258 +129,258 @@ namespace glm
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tvec2<T, P>& operator=(tvec2<T, P> const & v) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator+=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator+=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator+=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator-=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator-=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator-=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator*=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator*=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator*=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator/=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator/=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P>& operator/=(tvec2<U, P> const & v);
+ GLM_FUNC_DECL vec& operator=(vec const & v) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL vec& operator=(vec<2, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator+=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator+=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator+=(vec<2, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator-=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator-=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator-=(vec<2, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator*=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator*=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator*=(vec<2, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator/=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator/=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec& operator/=(vec<2, U, P> const& v);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tvec2<T, P> & operator++();
- GLM_FUNC_DECL tvec2<T, P> & operator--();
- GLM_FUNC_DECL tvec2<T, P> operator++(int);
- GLM_FUNC_DECL tvec2<T, P> operator--(int);
+ GLM_FUNC_DECL vec & operator++();
+ GLM_FUNC_DECL vec & operator--();
+ GLM_FUNC_DECL vec operator++(int);
+ GLM_FUNC_DECL vec operator--(int);
// -- Unary bit operators --
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator%=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator%=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator%=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator&=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator&=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator&=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator|=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator|=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator|=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator^=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator^=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator^=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator<<=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec2<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator>>=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec2<U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(vec<2, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(vec<2, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(vec<2, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(vec<2, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(vec<2, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(vec<2, U, P> const & v);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator+(vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator-(vec<2, T, P> const & v);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator+(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator+(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator+(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator+(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator+(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator-(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator-(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator-(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator-(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator-(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator*(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator*(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator*(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator*(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator*(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator/(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator/(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator/(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator/(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator/(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator%(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator%(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator%(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator%(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator%(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator&(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator&(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator&(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator&(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator&(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator|(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator|(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator|(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator|(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator|(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator^(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator^(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator^(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator^(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator^(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator<<(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator<<(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator<<(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator<<(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator<<(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator>>(vec<2, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator>>(vec<2, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(T scalar, tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator>>(T scalar, vec<2, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator>>(vec<1, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator>>(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> operator~(vec<2, T, P> const & v);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(vec<2, T, P> const & v1, vec<2, T, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec2<bool, P> operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<2, bool, P> operator&&(vec<2, bool, P> const & v1, vec<2, bool, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec2<bool, P> operator||(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<2, bool, P> operator||(vec<2, bool, P> const & v1, vec<2, bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_vec2.inl b/3rdparty/glm/glm/detail/type_vec2.inl
index d10f96e6ab0..fa6c2902784 100644
--- a/3rdparty/glm/glm/detail/type_vec2.inl
+++ b/3rdparty/glm/glm/detail/type_vec2.inl
@@ -3,24 +3,11 @@
namespace glm
{
-# ifdef GLM_STATIC_CONST_MEMBERS
- template <typename T, precision P>
- const tvec2<T, P> tvec2<T, P>::ZERO(static_cast<T>(0), static_cast<T>(0));
-
- template <typename T, precision P>
- const tvec2<T, P> tvec2<T, P>::X(static_cast<T>(1), static_cast<T>(0));
-
- template <typename T, precision P>
- const tvec2<T, P> tvec2<T, P>::Y(static_cast<T>(0), static_cast<T>(1));
-
- template <typename T, precision P>
- const tvec2<T, P> tvec2<T, P>::XY(static_cast<T>(1), static_cast<T>(1));
-# endif
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0)
# endif
@@ -28,90 +15,84 @@ namespace glm
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(vec<2, T, P> const& v)
: x(v.x), y(v.y)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec2<T, Q> const & v)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(vec<2, T, Q> const& v)
: x(v.x), y(v.y)
{}
// -- Explicit basic constructors --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec2<T, P>::tvec2(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(T scalar)
: x(scalar), y(scalar)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(T s1, T s2)
- : x(s1), y(s2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(T _x, T _y)
+ : x(_x), y(_y)
{}
// -- Conversion scalar constructors --
- template <typename T, precision P>
- template <typename A, typename B>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(A a, B b)
- : x(static_cast<T>(a))
- , y(static_cast<T>(b))
+ template<typename T, precision P>
+ template<typename A, typename B>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(A _x, B _y)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_y))
{}
- template <typename T, precision P>
- template <typename A, typename B>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec1<A, P> const & a, tvec1<B, P> const & b)
- : x(static_cast<T>(a.x))
- , y(static_cast<T>(b.x))
+ template<typename T, precision P>
+ template<typename A, typename B>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(vec<1, A, P> const& _x, vec<1, B, P> const& _y)
+ : x(static_cast<T>(_x.x))
+ , y(static_cast<T>(_y.x))
{}
// -- Conversion vector constructors --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec2<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(vec<2, U, Q> const& v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec3<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(vec<3, U, Q> const& v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec4<U, Q> const & v)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<2, T, P>::vec(vec<4, U, Q> const& v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
// -- Component accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2<T, P>::length_type tvec2<T, P>::length() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec2<T, P>::operator[](typename tvec2<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T & vec<2, T, P>::operator[](typename vec<2, T, P>::length_type i)
{
assert(i >= 0 && i < this->length());
return (&x)[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec2<T, P>::operator[](typename tvec2<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & vec<2, T, P>::operator[](typename vec<2, T, P>::length_type i) const
{
assert(i >= 0 && i < this->length());
return (&x)[i];
@@ -120,8 +101,8 @@ namespace glm
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator=(tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator=(vec<2, T, P> const& v)
{
this->x = v.x;
this->y = v.y;
@@ -129,117 +110,117 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator=(vec<2, U, P> const& v)
{
this->x = static_cast<T>(v.x);
this->y = static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator+=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator+=(U scalar)
{
this->x += static_cast<T>(scalar);
this->y += static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator+=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator+=(vec<1, U, P> const& v)
{
this->x += static_cast<T>(v.x);
this->y += static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator+=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator+=(vec<2, U, P> const& v)
{
this->x += static_cast<T>(v.x);
this->y += static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator-=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator-=(U scalar)
{
this->x -= static_cast<T>(scalar);
this->y -= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator-=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator-=(vec<1, U, P> const& v)
{
this->x -= static_cast<T>(v.x);
this->y -= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator-=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator-=(vec<2, U, P> const& v)
{
this->x -= static_cast<T>(v.x);
this->y -= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator*=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator*=(U scalar)
{
this->x *= static_cast<T>(scalar);
this->y *= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator*=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator*=(vec<1, U, P> const& v)
{
this->x *= static_cast<T>(v.x);
this->y *= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator*=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator*=(vec<2, U, P> const& v)
{
this->x *= static_cast<T>(v.x);
this->y *= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator/=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator/=(U scalar)
{
this->x /= static_cast<T>(scalar);
this->y /= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator/=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator/=(vec<1, U, P> const& v)
{
this->x /= static_cast<T>(v.x);
this->y /= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator/=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator/=(vec<2, U, P> const& v)
{
this->x /= static_cast<T>(v.x);
this->y /= static_cast<T>(v.y);
@@ -248,196 +229,196 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator++()
{
++this->x;
++this->y;
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator--()
{
--this->x;
--this->y;
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> tvec2<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> vec<2, T, P>::operator++(int)
{
- tvec2<T, P> Result(*this);
+ vec<2, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> tvec2<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> vec<2, T, P>::operator--(int)
{
- tvec2<T, P> Result(*this);
+ vec<2, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary bit operators --
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator%=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator%=(U scalar)
{
this->x %= static_cast<T>(scalar);
this->y %= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator%=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator%=(vec<1, U, P> const& v)
{
this->x %= static_cast<T>(v.x);
this->y %= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator%=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator%=(vec<2, U, P> const& v)
{
this->x %= static_cast<T>(v.x);
this->y %= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator&=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator&=(U scalar)
{
this->x &= static_cast<T>(scalar);
this->y &= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator&=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator&=(vec<1, U, P> const& v)
{
this->x &= static_cast<T>(v.x);
this->y &= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator&=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator&=(vec<2, U, P> const& v)
{
this->x &= static_cast<T>(v.x);
this->y &= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator|=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator|=(U scalar)
{
this->x |= static_cast<T>(scalar);
this->y |= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator|=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator|=(vec<1, U, P> const& v)
{
this->x |= static_cast<T>(v.x);
this->y |= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator|=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator|=(vec<2, U, P> const& v)
{
this->x |= static_cast<T>(v.x);
this->y |= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator^=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator^=(U scalar)
{
this->x ^= static_cast<T>(scalar);
this->y ^= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator^=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator^=(vec<1, U, P> const& v)
{
this->x ^= static_cast<T>(v.x);
this->y ^= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator^=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator^=(vec<2, U, P> const& v)
{
this->x ^= static_cast<T>(v.x);
this->y ^= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator<<=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator<<=(U scalar)
{
this->x <<= static_cast<T>(scalar);
this->y <<= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator<<=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator<<=(vec<1, U, P> const& v)
{
this->x <<= static_cast<T>(v.x);
this->y <<= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator<<=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator<<=(vec<2, U, P> const& v)
{
this->x <<= static_cast<T>(v.x);
this->y <<= static_cast<T>(v.y);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator>>=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator>>=(U scalar)
{
this->x >>= static_cast<T>(scalar);
this->y >>= static_cast<T>(scalar);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator>>=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator>>=(vec<1, U, P> const& v)
{
this->x >>= static_cast<T>(v.x);
this->y >>= static_cast<T>(v.x);
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec2<T, P> & tvec2<T, P>::operator>>=(tvec2<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<2, T, P> & vec<2, T, P>::operator>>=(vec<2, U, P> const& v)
{
this->x >>= static_cast<T>(v.x);
this->y >>= static_cast<T>(v.y);
@@ -446,455 +427,455 @@ namespace glm
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator+(vec<2, T, P> const& v)
{
return v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator-(vec<2, T, P> const& v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
-v.x,
-v.y);
}
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator+(vec<2, T, P> const& v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x + scalar,
v.y + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator+(vec<2, T, P> const& v1, vec<1, T, P> const& v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x + v2.x,
v1.y + v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator+(T scalar, vec<2, T, P> const& v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar + v.x,
scalar + v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator+(vec<1, T, P> const& v1, vec<2, T, P> const& v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x + v2.x,
v1.x + v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator+(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x + v2.x,
v1.y + v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator-(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x - scalar,
v.y - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator-(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x - v2.x,
v1.y - v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator-(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar - v.x,
scalar - v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator-(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x - v2.x,
v1.x - v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator-(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x - v2.x,
v1.y - v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator*(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x * scalar,
v.y * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator*(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x * v2.x,
v1.y * v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator*(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar * v.x,
scalar * v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator*(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x * v2.x,
v1.x * v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator*(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x * v2.x,
v1.y * v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator/(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x / scalar,
v.y / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator/(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x / v2.x,
v1.y / v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator/(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar / v.x,
scalar / v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator/(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x / v2.x,
v1.x / v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator/(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x / v2.x,
v1.y / v2.y);
}
// -- Binary bit operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator%(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x % scalar,
v.y % scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator%(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x % v2.x,
v1.y % v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator%(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar % v.x,
scalar % v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator%(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x % v2.x,
v1.x % v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator%(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x % v2.x,
v1.y % v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator&(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x & scalar,
v.y & scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator&(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x & v2.x,
v1.y & v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator&(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar & v.x,
scalar & v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator&(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x & v2.x,
v1.x & v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator&(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x & v2.x,
v1.y & v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator|(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x | scalar,
v.y | scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator|(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x | v2.x,
v1.y | v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator|(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar | v.x,
scalar | v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator|(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x | v2.x,
v1.x | v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator|(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x | v2.x,
v1.y | v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator^(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x ^ scalar,
v.y ^ scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator^(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x ^ v2.x,
v1.y ^ v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator^(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar ^ v.x,
scalar ^ v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator^(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x ^ v2.x,
v1.x ^ v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator^(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x ^ v2.x,
v1.y ^ v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator<<(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x << scalar,
v.y << scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator<<(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x << v2.x,
v1.y << v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator<<(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar << v.x,
scalar << v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator<<(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x << v2.x,
v1.x << v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator<<(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x << v2.x,
v1.y << v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(tvec2<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator>>(vec<2, T, P> const & v, T scalar)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v.x >> scalar,
v.y >> scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator>>(vec<2, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x >> v2.x,
v1.y >> v2.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(T scalar, tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator>>(T scalar, vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
scalar >> v.x,
scalar >> v.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(tvec1<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator>>(vec<1, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x >> v2.x,
v1.x >> v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator>>(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
v1.x >> v2.x,
v1.y >> v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator~(tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> operator~(vec<2, T, P> const & v)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
~v.x,
~v.y);
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
return (v1.x == v2.x) && (v1.y == v2.y);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tvec2<T, P> const & v1, tvec2<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(vec<2, T, P> const & v1, vec<2, T, P> const & v2)
{
return (v1.x != v2.x) || (v1.y != v2.y);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec2<bool, P> operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<2, bool, P> operator&&(vec<2, bool, P> const & v1, vec<2, bool, P> const & v2)
{
- return tvec2<bool, P>(v1.x && v2.x, v1.y && v2.y);
+ return vec<2, bool, P>(v1.x && v2.x, v1.y && v2.y);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec2<bool, P> operator||(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<2, bool, P> operator||(vec<2, bool, P> const & v1, vec<2, bool, P> const & v2)
{
- return tvec2<bool, P>(v1.x || v2.x, v1.y || v2.y);
+ return vec<2, bool, P>(v1.x || v2.x, v1.y || v2.y);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/type_vec3.hpp b/3rdparty/glm/glm/detail/type_vec3.hpp
index ebd135d62f5..bd95530adc7 100644
--- a/3rdparty/glm/glm/detail/type_vec3.hpp
+++ b/3rdparty/glm/glm/detail/type_vec3.hpp
@@ -15,18 +15,21 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tvec3
+ template<typename T, precision P>
+ struct vec<3, T, P>
{
// -- Implementation detail --
typedef T value_type;
- typedef tvec3<T, P> type;
- typedef tvec3<bool, P> bool_type;
+ typedef vec type;
+ typedef vec<3, bool, P> bool_type;
// -- Data --
-# if GLM_HAS_ALIGNED_TYPE
+# if GLM_HAS_ONLY_XYZW
+ T x, y, z;
+
+# elif GLM_HAS_ALIGNED_TYPE
# if GLM_COMPILER & GLM_COMPILER_GCC
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wpedantic"
@@ -44,15 +47,15 @@ namespace glm
struct{ T s, t, p; };
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, x, y, z)
- _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, r, g, b)
- _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, s, t, p)
- _GLM_SWIZZLE3_3_MEMBERS(T, P, glm::tvec3, x, y, z)
- _GLM_SWIZZLE3_3_MEMBERS(T, P, glm::tvec3, r, g, b)
- _GLM_SWIZZLE3_3_MEMBERS(T, P, glm::tvec3, s, t, p)
- _GLM_SWIZZLE3_4_MEMBERS(T, P, glm::tvec4, x, y, z)
- _GLM_SWIZZLE3_4_MEMBERS(T, P, glm::tvec4, r, g, b)
- _GLM_SWIZZLE3_4_MEMBERS(T, P, glm::tvec4, s, t, p)
+ _GLM_SWIZZLE3_2_MEMBERS(T, P, x, y, z)
+ _GLM_SWIZZLE3_2_MEMBERS(T, P, r, g, b)
+ _GLM_SWIZZLE3_2_MEMBERS(T, P, s, t, p)
+ _GLM_SWIZZLE3_3_MEMBERS(T, P, x, y, z)
+ _GLM_SWIZZLE3_3_MEMBERS(T, P, r, g, b)
+ _GLM_SWIZZLE3_3_MEMBERS(T, P, s, t, p)
+ _GLM_SWIZZLE3_4_MEMBERS(T, P, x, y, z)
+ _GLM_SWIZZLE3_4_MEMBERS(T, P, r, g, b)
+ _GLM_SWIZZLE3_4_MEMBERS(T, P, s, t, p)
# endif//GLM_SWIZZLE
};
@@ -68,7 +71,7 @@ namespace glm
union { T z, b, p; };
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P)
# endif//GLM_SWIZZLE
# endif//GLM_LANG
@@ -76,329 +79,329 @@ namespace glm
/// Return the count of components of the vector
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 3;}
GLM_FUNC_DECL T & operator[](length_type i);
GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3<T, P> const & v) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3<T, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec const & v) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<3, T, Q> const & v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec3(ctor);
- GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(T scalar);
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(T a, T b, T c);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit vec(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(T a, T b, T c);
// -- Conversion scalar constructors --
/// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, B b, C c);
- template <typename A, typename B, typename C>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c);
+ template<typename X, typename Y, typename Z>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(X x, Y y, Z z);
+ template<typename X, typename Y, typename Z>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, X, P> const& _x, vec<1, Y, P> const& _y, vec<1, Z, P> const& _z);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2<A, Q> const & a, B b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, Q> const& _xy, B _z);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, Q> const& _xy, vec<1, B, Q> const& _z);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, tvec2<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, vec<2, B, Q> const& _yz);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, Q> const& _x, vec<2, B, Q> const& _yz);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec4<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<4, U, Q> const& v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec3<U, Q> const & v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<3, U, Q> const& v);
// -- Swizzle constructors --
# if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
- template <int E0, int E1, int E2>
- GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> const & that)
+ template<int E0, int E1, int E2>
+ GLM_FUNC_DECL vec(detail::_swizzle<3, T, P, E0, E1, E2, -1> const & that)
{
*this = that();
}
- template <int E0, int E1>
- GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, T const & scalar)
+ template<int E0, int E1>
+ GLM_FUNC_DECL vec(detail::_swizzle<2, T, P, E0, E1, -1, -2> const & v, T const & scalar)
{
- *this = tvec3<T, P>(v(), scalar);
+ *this = vec(v(), scalar);
}
- template <int E0, int E1>
- GLM_FUNC_DECL tvec3(T const & scalar, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v)
+ template<int E0, int E1>
+ GLM_FUNC_DECL vec(T const & scalar, detail::_swizzle<2, T, P, E0, E1, -1, -2> const & v)
{
- *this = tvec3<T, P>(scalar, v());
+ *this = vec(scalar, v());
}
# endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<T, P> const & v) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator+=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator-=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator*=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator/=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> const & v);
+ GLM_FUNC_DECL vec & operator=(vec const & v) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL vec & operator=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator+=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator+=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator+=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator-=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator-=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator-=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator*=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator*=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator*=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator/=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator/=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator/=(vec<3, U, P> const & v);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tvec3<T, P> & operator++();
- GLM_FUNC_DECL tvec3<T, P> & operator--();
- GLM_FUNC_DECL tvec3<T, P> operator++(int);
- GLM_FUNC_DECL tvec3<T, P> operator--(int);
+ GLM_FUNC_DECL vec & operator++();
+ GLM_FUNC_DECL vec & operator--();
+ GLM_FUNC_DECL vec operator++(int);
+ GLM_FUNC_DECL vec operator--(int);
// -- Unary bit operators --
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator%=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator&=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator|=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator^=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator<<=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator>>=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator%=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator&=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator|=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator^=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator<<=(vec<3, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec & operator>>=(vec<3, U, P> const & v);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator+(vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator-(vec<3, T, P> const & v);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator+(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator+(vec<3, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator+(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator+(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator+(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator-(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator-(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator-(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator-(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator-(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator/(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator/(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator/(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator/(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator/(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator%(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator%(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(T const & scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator%(T const & scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator%(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator%(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator&(vec<3, T, P> const & v1, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator&(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator&(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator&(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator&(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator|(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator|(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator|(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator|(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator|(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator^(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator^(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator^(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator^(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator^(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator<<(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator<<(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator<<(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator<<(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator<<(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator>>(vec<3, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator>>(vec<3, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(T scalar, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator>>(T scalar, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator>>(vec<1, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator>>(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator~(vec<3, T, P> const & v);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(vec<3, T, P> const & v1, vec<3, T, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec3<bool, P> operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<3, bool, P> operator&&(vec<3, bool, P> const & v1, vec<3, bool, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec3<bool, P> operator||(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<3, bool, P> operator||(vec<3, bool, P> const & v1, vec<3, bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_vec3.inl b/3rdparty/glm/glm/detail/type_vec3.inl
index cc0424fb03a..e5524ab3aa7 100644
--- a/3rdparty/glm/glm/detail/type_vec3.inl
+++ b/3rdparty/glm/glm/detail/type_vec3.inl
@@ -3,37 +3,11 @@
namespace glm
{
-
-# ifdef GLM_STATIC_CONST_MEMBERS
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::ZERO(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::X(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::Y(static_cast<T>(0), static_cast<T>(1), static_cast<T>(0));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::Z(static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::XY(static_cast<T>(1), static_cast<T>(1), static_cast<T>(0));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::XZ(static_cast<T>(1), static_cast<T>(0), static_cast<T>(1));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::YZ(static_cast<T>(0), static_cast<T>(1), static_cast<T>(1));
-
- template <typename T, precision P>
- const tvec3<T, P> tvec3<T, P>::XYZ(static_cast<T>(1), static_cast<T>(1), static_cast<T>(1));
-# endif
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0), z(0)
# endif
@@ -41,97 +15,97 @@ namespace glm
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<3, T, P> const & v)
: x(v.x), y(v.y), z(v.z)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec3<T, Q> const & v)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<3, T, Q> const & v)
: x(v.x), y(v.y), z(v.z)
{}
// -- Explicit basic constructors --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec3<T, P>::tvec3(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(T scalar)
: x(scalar), y(scalar), z(scalar)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(T a, T b, T c)
- : x(a), y(b), z(c)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(T _x, T _y, T _z)
+ : x(_x), y(_y), z(_z)
{}
// -- Conversion scalar constructors --
- template <typename T, precision P>
- template <typename A, typename B, typename C>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(A a, B b, C c) :
- x(static_cast<T>(a)),
- y(static_cast<T>(b)),
- z(static_cast<T>(c))
+ template<typename T, precision P>
+ template<typename X, typename Y, typename Z>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(X _x, Y _y, Z _z)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_y))
+ , z(static_cast<T>(_z))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c) :
- x(static_cast<T>(a)),
- y(static_cast<T>(b)),
- z(static_cast<T>(c))
+ template<typename T, precision P>
+ template<typename X, typename Y, typename Z>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<1, X, P> const& _x, vec<1, Y, P> const& _y, vec<1, Z, P> const& _z)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_y))
+ , z(static_cast<T>(_z))
{}
// -- Conversion vector constructors --
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec2<A, Q> const & a, B b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(b))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<2, A, Q> const& _xy, B _z)
+ : x(static_cast<T>(_xy.x))
+ , y(static_cast<T>(_xy.y))
+ , z(static_cast<T>(_z))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(b.x))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<2, A, Q> const& _xy, vec<1, B, Q> const& _z)
+ : x(static_cast<T>(_xy.x))
+ , y(static_cast<T>(_xy.y))
+ , z(static_cast<T>(_z.x))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(A a, tvec2<B, Q> const & b) :
- x(static_cast<T>(a)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(b.y))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(A _x, vec<2, B, Q> const& _yz)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_yz.x))
+ , z(static_cast<T>(_yz.y))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(b.y))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<1, A, Q> const& _x, vec<2, B, Q> const& _yz)
+ : x(static_cast<T>(_x.x))
+ , y(static_cast<T>(_yz.x))
+ , z(static_cast<T>(_yz.y))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec3<U, Q> const & v) :
- x(static_cast<T>(v.x)),
- y(static_cast<T>(v.y)),
- z(static_cast<T>(v.z))
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<3, U, Q> const& v)
+ : x(static_cast<T>(v.x))
+ , y(static_cast<T>(v.y))
+ , z(static_cast<T>(v.z))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec4<U, Q> const & v) :
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<3, T, P>::vec(vec<4, U, Q> const& v) :
x(static_cast<T>(v.x)),
y(static_cast<T>(v.y)),
z(static_cast<T>(v.z))
@@ -139,21 +113,15 @@ namespace glm
// -- Component accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3<T, P>::length_type tvec3<T, P>::length() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec3<T, P>::operator[](typename tvec3<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T & vec<3, T, P>::operator[](typename vec<3, T, P>::length_type i)
{
assert(i >= 0 && i < this->length());
return (&x)[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec3<T, P>::operator[](typename tvec3<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & vec<3, T, P>::operator[](typename vec<3, T, P>::length_type i) const
{
assert(i >= 0 && i < this->length());
return (&x)[i];
@@ -162,8 +130,8 @@ namespace glm
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P>& tvec3<T, P>::operator=(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P>& vec<3, T, P>::operator=(vec<3, T, P> const & v)
{
this->x = v.x;
this->y = v.y;
@@ -172,9 +140,9 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P>& tvec3<T, P>::operator=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P>& vec<3, T, P>::operator=(vec<3, U, P> const & v)
{
this->x = static_cast<T>(v.x);
this->y = static_cast<T>(v.y);
@@ -182,9 +150,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator+=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator+=(U scalar)
{
this->x += static_cast<T>(scalar);
this->y += static_cast<T>(scalar);
@@ -192,9 +160,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator+=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator+=(vec<1, U, P> const & v)
{
this->x += static_cast<T>(v.x);
this->y += static_cast<T>(v.x);
@@ -202,9 +170,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator+=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator+=(vec<3, U, P> const & v)
{
this->x += static_cast<T>(v.x);
this->y += static_cast<T>(v.y);
@@ -212,9 +180,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator-=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator-=(U scalar)
{
this->x -= static_cast<T>(scalar);
this->y -= static_cast<T>(scalar);
@@ -222,9 +190,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator-=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator-=(vec<1, U, P> const & v)
{
this->x -= static_cast<T>(v.x);
this->y -= static_cast<T>(v.x);
@@ -232,9 +200,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator-=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator-=(vec<3, U, P> const & v)
{
this->x -= static_cast<T>(v.x);
this->y -= static_cast<T>(v.y);
@@ -242,9 +210,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator*=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator*=(U scalar)
{
this->x *= static_cast<T>(scalar);
this->y *= static_cast<T>(scalar);
@@ -252,9 +220,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator*=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator*=(vec<1, U, P> const & v)
{
this->x *= static_cast<T>(v.x);
this->y *= static_cast<T>(v.x);
@@ -262,9 +230,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator*=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator*=(vec<3, U, P> const & v)
{
this->x *= static_cast<T>(v.x);
this->y *= static_cast<T>(v.y);
@@ -272,9 +240,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator/=(U v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator/=(U v)
{
this->x /= static_cast<T>(v);
this->y /= static_cast<T>(v);
@@ -282,9 +250,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator/=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator/=(vec<1, U, P> const & v)
{
this->x /= static_cast<T>(v.x);
this->y /= static_cast<T>(v.x);
@@ -292,9 +260,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator/=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator/=(vec<3, U, P> const & v)
{
this->x /= static_cast<T>(v.x);
this->y /= static_cast<T>(v.y);
@@ -304,8 +272,8 @@ namespace glm
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator++()
{
++this->x;
++this->y;
@@ -313,8 +281,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator--()
{
--this->x;
--this->y;
@@ -322,27 +290,27 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> tvec3<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> vec<3, T, P>::operator++(int)
{
- tvec3<T, P> Result(*this);
+ vec<3, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> tvec3<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> vec<3, T, P>::operator--(int)
{
- tvec3<T, P> Result(*this);
+ vec<3, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary bit operators --
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator%=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator%=(U scalar)
{
this->x %= scalar;
this->y %= scalar;
@@ -350,9 +318,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator%=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator%=(vec<1, U, P> const & v)
{
this->x %= v.x;
this->y %= v.x;
@@ -360,9 +328,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator%=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator%=(vec<3, U, P> const & v)
{
this->x %= v.x;
this->y %= v.y;
@@ -370,9 +338,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator&=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator&=(U scalar)
{
this->x &= scalar;
this->y &= scalar;
@@ -380,9 +348,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator&=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator&=(vec<1, U, P> const & v)
{
this->x &= v.x;
this->y &= v.x;
@@ -390,9 +358,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator&=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator&=(vec<3, U, P> const & v)
{
this->x &= v.x;
this->y &= v.y;
@@ -400,9 +368,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator|=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator|=(U scalar)
{
this->x |= scalar;
this->y |= scalar;
@@ -410,9 +378,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator|=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator|=(vec<1, U, P> const & v)
{
this->x |= v.x;
this->y |= v.x;
@@ -420,9 +388,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator|=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator|=(vec<3, U, P> const & v)
{
this->x |= v.x;
this->y |= v.y;
@@ -430,9 +398,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator^=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator^=(U scalar)
{
this->x ^= scalar;
this->y ^= scalar;
@@ -440,9 +408,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator^=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator^=(vec<1, U, P> const & v)
{
this->x ^= v.x;
this->y ^= v.x;
@@ -450,9 +418,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator^=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator^=(vec<3, U, P> const & v)
{
this->x ^= v.x;
this->y ^= v.y;
@@ -460,9 +428,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator<<=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator<<=(U scalar)
{
this->x <<= scalar;
this->y <<= scalar;
@@ -470,9 +438,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator<<=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator<<=(vec<1, U, P> const & v)
{
this->x <<= static_cast<T>(v.x);
this->y <<= static_cast<T>(v.x);
@@ -480,9 +448,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator<<=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator<<=(vec<3, U, P> const & v)
{
this->x <<= static_cast<T>(v.x);
this->y <<= static_cast<T>(v.y);
@@ -490,9 +458,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator>>=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator>>=(U scalar)
{
this->x >>= static_cast<T>(scalar);
this->y >>= static_cast<T>(scalar);
@@ -500,9 +468,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator>>=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator>>=(vec<1, U, P> const & v)
{
this->x >>= static_cast<T>(v.x);
this->y >>= static_cast<T>(v.x);
@@ -510,9 +478,9 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec3<T, P> & tvec3<T, P>::operator>>=(tvec3<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<3, T, P> & vec<3, T, P>::operator>>=(vec<3, U, P> const & v)
{
this->x >>= static_cast<T>(v.x);
this->y >>= static_cast<T>(v.y);
@@ -522,16 +490,16 @@ namespace glm
// -- Unary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator+(vec<3, T, P> const & v)
{
return v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator-(vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
-v.x,
-v.y,
-v.z);
@@ -539,181 +507,181 @@ namespace glm
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator+(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x + scalar,
v.y + scalar,
v.z + scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator+(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x + scalar.x,
v.y + scalar.x,
v.z + scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator+(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar + v.x,
scalar + v.y,
scalar + v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator+(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x + v.x,
scalar.x + v.y,
scalar.x + v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator+(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x + v2.x,
v1.y + v2.y,
v1.z + v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator-(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x - scalar,
v.y - scalar,
v.z - scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator-(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x - scalar.x,
v.y - scalar.x,
v.z - scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator-(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar - v.x,
scalar - v.y,
scalar - v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator-(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x - v.x,
scalar.x - v.y,
scalar.x - v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator-(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x - v2.x,
v1.y - v2.y,
v1.z - v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x * scalar,
v.y * scalar,
v.z * scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x * scalar.x,
v.y * scalar.x,
v.z * scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar * v.x,
scalar * v.y,
scalar * v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x * v.x,
scalar.x * v.y,
scalar.x * v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x * v2.x,
v1.y * v2.y,
v1.z * v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator/(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x / scalar,
v.y / scalar,
v.z / scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator/(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x / scalar.x,
v.y / scalar.x,
v.z / scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator/(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar / v.x,
scalar / v.y,
scalar / v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator/(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x / v.x,
scalar.x / v.y,
scalar.x / v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator/(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x / v2.x,
v1.y / v2.y,
v1.z / v2.z);
@@ -721,280 +689,280 @@ namespace glm
// -- Binary bit operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator%(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x % scalar,
v.y % scalar,
v.z % scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator%(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x % scalar.x,
v.y % scalar.x,
v.z % scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator%(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar % v.x,
scalar % v.y,
scalar % v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator%(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x % v.x,
scalar.x % v.y,
scalar.x % v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator%(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x % v2.x,
v1.y % v2.y,
v1.z % v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator&(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x & scalar,
v.y & scalar,
v.z & scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator&(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x & scalar.x,
v.y & scalar.x,
v.z & scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator&(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar & v.x,
scalar & v.y,
scalar & v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator&(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x & v.x,
scalar.x & v.y,
scalar.x & v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator&(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x & v2.x,
v1.y & v2.y,
v1.z & v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator|(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x | scalar,
v.y | scalar,
v.z | scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator|(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x | scalar.x,
v.y | scalar.x,
v.z | scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator|(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar | v.x,
scalar | v.y,
scalar | v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator|(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x | v.x,
scalar.x | v.y,
scalar.x | v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator|(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x | v2.x,
v1.y | v2.y,
v1.z | v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator^(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x ^ scalar,
v.y ^ scalar,
v.z ^ scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator^(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x ^ scalar.x,
v.y ^ scalar.x,
v.z ^ scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator^(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar ^ v.x,
scalar ^ v.y,
scalar ^ v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator^(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x ^ v.x,
scalar.x ^ v.y,
scalar.x ^ v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator^(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x ^ v2.x,
v1.y ^ v2.y,
v1.z ^ v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator<<(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x << scalar,
v.y << scalar,
v.z << scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator<<(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x << scalar.x,
v.y << scalar.x,
v.z << scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator<<(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar << v.x,
scalar << v.y,
scalar << v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator<<(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x << v.x,
scalar.x << v.y,
scalar.x << v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator<<(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x << v2.x,
v1.y << v2.y,
v1.z << v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(tvec3<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator>>(vec<3, T, P> const & v, T scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x >> scalar,
v.y >> scalar,
v.z >> scalar);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(tvec3<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator>>(vec<3, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v.x >> scalar.x,
v.y >> scalar.x,
v.z >> scalar.x);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(T scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator>>(T scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar >> v.x,
scalar >> v.y,
scalar >> v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(tvec1<T, P> const & scalar, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator>>(vec<1, T, P> const & scalar, vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
scalar.x >> v.x,
scalar.x >> v.y,
scalar.x >> v.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator>>(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
v1.x >> v2.x,
v1.y >> v2.y,
v1.z >> v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator~(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator~(vec<3, T, P> const & v)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
~v.x,
~v.y,
~v.z);
@@ -1002,27 +970,27 @@ namespace glm
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tvec3<T, P> const & v1, tvec3<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(vec<3, T, P> const & v1, vec<3, T, P> const & v2)
{
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec3<bool, P> operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<3, bool, P> operator&&(vec<3, bool, P> const & v1, vec<3, bool, P> const & v2)
{
- return tvec3<bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z);
+ return vec<3, bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec3<bool, P> operator||(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<3, bool, P> operator||(vec<3, bool, P> const & v1, vec<3, bool, P> const & v2)
{
- return tvec3<bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z);
+ return vec<3, bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/type_vec4.hpp b/3rdparty/glm/glm/detail/type_vec4.hpp
index 4cd69dcd00a..6ecb160280e 100644
--- a/3rdparty/glm/glm/detail/type_vec4.hpp
+++ b/3rdparty/glm/glm/detail/type_vec4.hpp
@@ -15,18 +15,21 @@
namespace glm
{
- template <typename T, precision P = defaultp>
- struct tvec4
+ template<typename T, precision P>
+ struct vec<4, T, P>
{
// -- Implementation detail --
typedef T value_type;
- typedef tvec4<T, P> type;
- typedef tvec4<bool, P> bool_type;
+ typedef vec<4, T, P> type;
+ typedef vec<4, bool, P> bool_type;
// -- Data --
-# if GLM_HAS_ALIGNED_TYPE
+# if GLM_HAS_ONLY_XYZW
+ T x, y, z, w;
+
+# elif GLM_HAS_ALIGNED_TYPE
# if GLM_COMPILER & GLM_COMPILER_GCC
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wpedantic"
@@ -36,7 +39,7 @@ namespace glm
# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
# pragma clang diagnostic ignored "-Wnested-anon-types"
# endif
-
+
union
{
struct { T x, y, z, w;};
@@ -46,15 +49,15 @@ namespace glm
typename detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, x, y, z, w)
- _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, r, g, b, a)
- _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, s, t, p, q)
- _GLM_SWIZZLE4_3_MEMBERS(T, P, glm::tvec3, x, y, z, w)
- _GLM_SWIZZLE4_3_MEMBERS(T, P, glm::tvec3, r, g, b, a)
- _GLM_SWIZZLE4_3_MEMBERS(T, P, glm::tvec3, s, t, p, q)
- _GLM_SWIZZLE4_4_MEMBERS(T, P, glm::tvec4, x, y, z, w)
- _GLM_SWIZZLE4_4_MEMBERS(T, P, glm::tvec4, r, g, b, a)
- _GLM_SWIZZLE4_4_MEMBERS(T, P, glm::tvec4, s, t, p, q)
+ _GLM_SWIZZLE4_2_MEMBERS(T, P, x, y, z, w)
+ _GLM_SWIZZLE4_2_MEMBERS(T, P, r, g, b, a)
+ _GLM_SWIZZLE4_2_MEMBERS(T, P, s, t, p, q)
+ _GLM_SWIZZLE4_3_MEMBERS(T, P, x, y, z, w)
+ _GLM_SWIZZLE4_3_MEMBERS(T, P, r, g, b, a)
+ _GLM_SWIZZLE4_3_MEMBERS(T, P, s, t, p, q)
+ _GLM_SWIZZLE4_4_MEMBERS(T, P, x, y, z, w)
+ _GLM_SWIZZLE4_4_MEMBERS(T, P, r, g, b, a)
+ _GLM_SWIZZLE4_4_MEMBERS(T, P, s, t, p, q)
# endif//GLM_SWIZZLE
};
@@ -71,7 +74,7 @@ namespace glm
union { T w, a, q; };
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)
+ GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P)
# endif//GLM_SWIZZLE
# endif
@@ -79,371 +82,371 @@ namespace glm
/// Return the count of components of the vector
typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 4;}
GLM_FUNC_DECL T & operator[](length_type i);
GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4<T, P> const& v) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4<T, Q> const& v);
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD vec() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD vec(vec<4, T, P> const& v) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD vec(vec<4, T, Q> const& v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec4(ctor);
- GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit tvec4(T scalar);
- GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(T a, T b, T c, T d);
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit vec(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit vec(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD vec(T x, T y, T z, T w);
// -- Conversion scalar constructors --
- /// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, typename D>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, C c, D d);
- template <typename A, typename B, typename C, typename D>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, P> const& a, tvec1<B, P> const& b, tvec1<C, P> const& c, tvec1<D, P> const& d);
+ /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
+ template<typename X, typename Y, typename Z, typename W>
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD vec(X _x, Y _y, Z _z, W _w);
+ template<typename X, typename Y, typename Z, typename W>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, X, P> const& _x, vec<1, Y, P> const& _Y, vec<1, Z, P> const& _z, vec<1, W, P> const& _w);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, B b, C c);
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, Q> const& _xy, B _z, C _w);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c);
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, Q> const& _xy, vec<1, B, Q> const& _z, vec<1, C, Q> const& _w);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec2<B, Q> const & b, C c);
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, vec<2, B, Q> const& _yz, C _w);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c);
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, Q> const& _x, vec<2, B, Q> const& _yz, vec<1, C, Q> const& _w);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, tvec2<C, Q> const & c);
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, B _y, vec<2, C, Q> const& _zw);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c);
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, Q> const& _x, vec<1, B, Q> const& _y, vec<2, C, Q> const& _zw);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3<A, Q> const & a, B b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<3, A, Q> const& _xyz, B _w);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<3, A, Q> const& _xyz, vec<1, B, Q> const& _w);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec3<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(A _x, vec<3, B, Q> const& _yzw);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<1, A, Q> const& _x, vec<3, B, Q> const& _yzw);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename A, typename B, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b);
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR vec(vec<2, A, Q> const& _xy, vec<2, B, Q> const& _zw);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec4(tvec4<U, Q> const& v);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR GLM_EXPLICIT vec(vec<4, U, Q> const& v);
// -- Swizzle constructors --
# if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
- template <int E0, int E1, int E2, int E3>
- GLM_FUNC_DECL tvec4(detail::_swizzle<4, T, P, glm::tvec4, E0, E1, E2, E3> const & that)
+ template<int E0, int E1, int E2, int E3>
+ GLM_FUNC_DECL vec(detail::_swizzle<4, T, P, E0, E1, E2, E3> const & that)
{
*this = that();
}
- template <int E0, int E1, int F0, int F1>
- GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, detail::_swizzle<2, T, P, glm::tvec2, F0, F1, -1, -2> const & u)
+ template<int E0, int E1, int F0, int F1>
+ GLM_FUNC_DECL vec(detail::_swizzle<2, T, P, E0, E1, -1, -2> const & v, detail::_swizzle<2, T, P, F0, F1, -1, -2> const & u)
{
- *this = tvec4<T, P>(v(), u());
+ *this = vec<4, T, P>(v(), u());
}
- template <int E0, int E1>
- GLM_FUNC_DECL tvec4(T const & x, T const & y, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v)
+ template<int E0, int E1>
+ GLM_FUNC_DECL vec(T const & x, T const & y, detail::_swizzle<2, T, P, E0, E1, -1, -2> const & v)
{
- *this = tvec4<T, P>(x, y, v());
+ *this = vec<4, T, P>(x, y, v());
}
- template <int E0, int E1>
- GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, T const & w)
+ template<int E0, int E1>
+ GLM_FUNC_DECL vec(T const & x, detail::_swizzle<2, T, P, E0, E1, -1, -2> const & v, T const & w)
{
- *this = tvec4<T, P>(x, v(), w);
+ *this = vec<4, T, P>(x, v(), w);
}
- template <int E0, int E1>
- GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, T const & z, T const & w)
+ template<int E0, int E1>
+ GLM_FUNC_DECL vec(detail::_swizzle<2, T, P, E0, E1, -1, -2> const & v, T const & z, T const & w)
{
- *this = tvec4<T, P>(v(), z, w);
+ *this = vec<4, T, P>(v(), z, w);
}
- template <int E0, int E1, int E2>
- GLM_FUNC_DECL tvec4(detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> const & v, T const & w)
+ template<int E0, int E1, int E2>
+ GLM_FUNC_DECL vec(detail::_swizzle<3, T, P, E0, E1, E2, -1> const & v, T const & w)
{
- *this = tvec4<T, P>(v(), w);
+ *this = vec<4, T, P>(v(), w);
}
- template <int E0, int E1, int E2>
- GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> const & v)
+ template<int E0, int E1, int E2>
+ GLM_FUNC_DECL vec(T const & x, detail::_swizzle<3, T, P, E0, E1, E2, -1> const & v)
{
- *this = tvec4<T, P>(x, v());
+ *this = vec<4, T, P>(x, v());
}
# endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<T, P> const & v) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator+=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator-=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator*=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec1<U, P> const& v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> const& v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator/=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec4<U, P> const & v);
+ GLM_FUNC_DECL vec<4, T, P>& operator=(vec<4, T, P> const & v) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator+=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator+=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator+=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator-=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator-=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator-=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator*=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator*=(vec<1, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator*=(vec<4, U, P> const& v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator/=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator/=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P>& operator/=(vec<4, U, P> const & v);
// -- Increment and decrement operators --
- GLM_FUNC_DECL tvec4<T, P> & operator++();
- GLM_FUNC_DECL tvec4<T, P> & operator--();
- GLM_FUNC_DECL tvec4<T, P> operator++(int);
- GLM_FUNC_DECL tvec4<T, P> operator--(int);
+ GLM_FUNC_DECL vec<4, T, P> & operator++();
+ GLM_FUNC_DECL vec<4, T, P> & operator--();
+ GLM_FUNC_DECL vec<4, T, P> operator++(int);
+ GLM_FUNC_DECL vec<4, T, P> operator--(int);
// -- Unary bit operators --
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator%=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator&=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator|=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator^=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator<<=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec4<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator>>=(U scalar);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec1<U, P> const & v);
- template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec4<U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator%=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator%=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator%=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator&=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator&=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator&=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator|=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator|=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator|=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator^=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator^=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator^=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator<<=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator<<=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator<<=(vec<4, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator>>=(U scalar);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator>>=(vec<1, U, P> const & v);
+ template<typename U>
+ GLM_FUNC_DECL vec<4, T, P> & operator>>=(vec<4, U, P> const & v);
};
// -- Unary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator+(vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator-(vec<4, T, P> const & v);
// -- Binary operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator+(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator+(vec<4, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator+(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator+(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator+(tvec1<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator+(vec<1, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator+(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator-(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator-(vec<4, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator-(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator-(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator-(tvec1<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator-(vec<1, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator-(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(vec<4, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tvec1<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(vec<1, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator/(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec1<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator/(vec<4, T, P> const & v1, vec<1, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator/(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator/(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator/(tvec1<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator/(vec<1, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator/(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator%(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator%(vec<4, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator%(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator%(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator%(tvec1<T, P> const & scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator%(vec<1, T, P> const & scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator%(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator&(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator&(vec<4, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator&(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator&(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator&(tvec1<T, P> const & scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator&(vec<1, T, P> const & scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator&(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator|(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator|(vec<4, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator|(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator|(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator|(tvec1<T, P> const & scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator|(vec<1, T, P> const & scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator|(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator^(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator^(vec<4, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator^(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator^(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator^(tvec1<T, P> const & scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator^(vec<1, T, P> const & scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator^(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator<<(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator<<(vec<4, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator<<(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator<<(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator<<(tvec1<T, P> const & scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator<<(vec<1, T, P> const & scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator<<(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v, T scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator>>(vec<4, T, P> const & v, T scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v, tvec1<T, P> const & scalar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator>>(vec<4, T, P> const & v, vec<1, T, P> const & scalar);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator>>(T scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator>>(T scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator>>(tvec1<T, P> const & scalar, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator>>(vec<1, T, P> const & scalar, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator>>(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator~(tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator~(vec<4, T, P> const & v);
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator==(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator==(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <typename T, precision P>
- GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL bool operator!=(vec<4, T, P> const & v1, vec<4, T, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec4<bool, P> operator&&(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<4, bool, P> operator&&(vec<4, bool, P> const & v1, vec<4, bool, P> const & v2);
- template <precision P>
- GLM_FUNC_DECL tvec4<bool, P> operator||(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2);
+ template<precision P>
+ GLM_FUNC_DECL vec<4, bool, P> operator||(vec<4, bool, P> const & v1, vec<4, bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/3rdparty/glm/glm/detail/type_vec4.inl b/3rdparty/glm/glm/detail/type_vec4.inl
index d891e0387fd..e333de19b2c 100644
--- a/3rdparty/glm/glm/detail/type_vec4.inl
+++ b/3rdparty/glm/glm/detail/type_vec4.inl
@@ -4,150 +4,150 @@
namespace glm{
namespace detail
{
- template <typename T>
+ template<typename T>
struct is_int
{
enum test {value = 0};
};
- template <>
+ template<>
struct is_int<uint32>
{
enum test {value = ~0};
};
- template <>
+ template<>
struct is_int<int32>
{
enum test {value = ~0};
};
- template <>
+ template<>
struct is_int<uint64>
{
enum test {value = ~0};
};
- template <>
+ template<>
struct is_int<int64>
{
enum test {value = ~0};
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_vec4_add
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
+ return vec<4, T, P>(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_vec4_sub
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
+ return vec<4, T, P>(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_vec4_mul
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
+ return vec<4, T, P>(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_vec4_div
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w);
+ return vec<4, T, P>(a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w);
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_vec4_mod
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x % b.x, a.y % b.y, a.z % b.z, a.w % b.w);
+ return vec<4, T, P>(a.x % b.x, a.y % b.y, a.z % b.z, a.w % b.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_and
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x & b.x, a.y & b.y, a.z & b.z, a.w & b.w);
+ return vec<4, T, P>(a.x & b.x, a.y & b.y, a.z & b.z, a.w & b.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_or
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x | b.x, a.y | b.y, a.z | b.z, a.w | b.w);
+ return vec<4, T, P>(a.x | b.x, a.y | b.y, a.z | b.z, a.w | b.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_xor
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x ^ b.x, a.y ^ b.y, a.z ^ b.z, a.w ^ b.w);
+ return vec<4, T, P>(a.x ^ b.x, a.y ^ b.y, a.z ^ b.z, a.w ^ b.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_shift_left
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x << b.x, a.y << b.y, a.z << b.z, a.w << b.w);
+ return vec<4, T, P>(a.x << b.x, a.y << b.y, a.z << b.z, a.w << b.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_shift_right
{
- static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & a, vec<4, T, P> const & b)
{
- return tvec4<T, P>(a.x >> b.x, a.y >> b.y, a.z >> b.z, a.w >> b.w);
+ return vec<4, T, P>(a.x >> b.x, a.y >> b.y, a.z >> b.z, a.w >> b.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_equal
{
- static bool call(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ GLM_FUNC_QUALIFIER static bool call(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z) && (v1.w == v2.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_nequal
{
- static bool call(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ GLM_FUNC_QUALIFIER static bool call(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
}
};
- template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ template<typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
struct compute_vec4_bitwise_not
{
- static tvec4<T, P> call(tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const & v)
{
- return tvec4<T, P>(~v.x, ~v.y, ~v.z, ~v.w);
+ return vec<4, T, P>(~v.x, ~v.y, ~v.z, ~v.w);
}
};
}//namespace detail
@@ -155,8 +155,8 @@ namespace detail
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0), z(0), w(0)
# endif
@@ -164,158 +164,158 @@ namespace detail
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec(vec<4, T, P> const & v)
: x(v.x), y(v.y), z(v.z), w(v.w)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec4<T, Q> const & v)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec(vec<4, T, Q> const & v)
: x(v.x), y(v.y), z(v.z), w(v.w)
{}
// -- Explicit basic constructors --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<T, P>::tvec4(ctor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<T, P>::tvec4(T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec(T scalar)
: x(scalar), y(scalar), z(scalar), w(scalar)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<T, P>::tvec4(T a, T b, T c, T d)
- : x(a), y(b), z(c), w(d)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec(T _x, T _y, T _z, T _w)
+ : x(_x), y(_y), z(_z), w(_w)
{}
// -- Conversion scalar constructors --
- template <typename T, precision P>
- template <typename A, typename B, typename C, typename D>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A a, B b, C c, D d) :
- x(static_cast<T>(a)),
- y(static_cast<T>(b)),
- z(static_cast<T>(c)),
- w(static_cast<T>(d))
+ template<typename T, precision P>
+ template<typename X, typename Y, typename Z, typename W>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, T, P>::vec(X _x, Y _y, Z _z, W _w)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_y))
+ , z(static_cast<T>(_z))
+ , w(static_cast<T>(_w))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C, typename D>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> const & d) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(c.x)),
- w(static_cast<T>(d.x))
+ template<typename T, precision P>
+ template<typename X, typename Y, typename Z, typename W>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<1, X, P> const& _x, vec<1, Y, P> const& _y, vec<1, Z, P> const& _z, vec<1, W, P> const& _w)
+ : x(static_cast<T>(_x.x))
+ , y(static_cast<T>(_y.x))
+ , z(static_cast<T>(_z.x))
+ , w(static_cast<T>(_w.x))
{}
// -- Conversion vector constructors --
- template <typename T, precision P>
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec2<A, Q> const & a, B b, C c) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(b)),
- w(static_cast<T>(c))
+ template<typename T, precision P>
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<2, A, Q> const& _xy, B _z, C _w)
+ : x(static_cast<T>(_xy.x))
+ , y(static_cast<T>(_xy.y))
+ , z(static_cast<T>(_z))
+ , w(static_cast<T>(_w))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(b.x)),
- w(static_cast<T>(c.x))
+ template<typename T, precision P>
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<2, A, Q> const& _xy, vec<1, B, Q> const& _z, vec<1, C, Q> const& _w)
+ : x(static_cast<T>(_xy.x))
+ , y(static_cast<T>(_xy.y))
+ , z(static_cast<T>(_z.x))
+ , w(static_cast<T>(_w.x))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A s1, tvec2<B, Q> const & v, C s2) :
- x(static_cast<T>(s1)),
- y(static_cast<T>(v.x)),
- z(static_cast<T>(v.y)),
- w(static_cast<T>(s2))
+ template<typename T, precision P>
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(A _x, vec<2, B, Q> const& _yz, C _w)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_yz.x))
+ , z(static_cast<T>(_yz.y))
+ , w(static_cast<T>(_w))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(b.y)),
- w(static_cast<T>(c.x))
+ template<typename T, precision P>
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<1, A, Q> const& _x, vec<2, B, Q> const& _yz, vec<1, C, Q> const& _w)
+ : x(static_cast<T>(_x.x))
+ , y(static_cast<T>(_yz.x))
+ , z(static_cast<T>(_yz.y))
+ , w(static_cast<T>(_w.x))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A s1, B s2, tvec2<C, Q> const & v) :
- x(static_cast<T>(s1)),
- y(static_cast<T>(s2)),
- z(static_cast<T>(v.x)),
- w(static_cast<T>(v.y))
+ template<typename T, precision P>
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(A _x, B _y, vec<2, C, Q> const& _zw)
+ : x(static_cast<T>(_x))
+ , y(static_cast<T>(_y))
+ , z(static_cast<T>(_zw.x))
+ , w(static_cast<T>(_zw.y))
{}
- template <typename T, precision P>
- template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(c.x)),
- w(static_cast<T>(c.y))
+ template<typename T, precision P>
+ template<typename A, typename B, typename C, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<1, A, Q> const& _x, vec<1, B, Q> const& _y, vec<2, C, Q> const& _zw)
+ : x(static_cast<T>(_x.x))
+ , y(static_cast<T>(_y.x))
+ , z(static_cast<T>(_zw.x))
+ , w(static_cast<T>(_zw.y))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec3<A, Q> const & a, B b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(a.z)),
- w(static_cast<T>(b))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<3, A, Q> const& _xyz, B _w) :
+ x(static_cast<T>(_xyz.x)),
+ y(static_cast<T>(_xyz.y)),
+ z(static_cast<T>(_xyz.z)),
+ w(static_cast<T>(_w))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(a.z)),
- w(static_cast<T>(b.x))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<3, A, Q> const& _xyz, vec<1, B, Q> const& _w) :
+ x(static_cast<T>(_xyz.x)),
+ y(static_cast<T>(_xyz.y)),
+ z(static_cast<T>(_xyz.z)),
+ w(static_cast<T>(_w.x))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A a, tvec3<B, Q> const & b) :
- x(static_cast<T>(a)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(b.y)),
- w(static_cast<T>(b.z))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(A _x, vec<3, B, Q> const& _yzw) :
+ x(static_cast<T>(_x)),
+ y(static_cast<T>(_yzw.x)),
+ z(static_cast<T>(_yzw.y)),
+ w(static_cast<T>(_yzw.z))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(b.x)),
- z(static_cast<T>(b.y)),
- w(static_cast<T>(b.z))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<1, A, Q> const& _x, vec<3, B, Q> const& _yzw) :
+ x(static_cast<T>(_x.x)),
+ y(static_cast<T>(_yzw.x)),
+ z(static_cast<T>(_yzw.y)),
+ w(static_cast<T>(_yzw.z))
{}
- template <typename T, precision P>
- template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b) :
- x(static_cast<T>(a.x)),
- y(static_cast<T>(a.y)),
- z(static_cast<T>(b.x)),
- w(static_cast<T>(b.y))
+ template<typename T, precision P>
+ template<typename A, typename B, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<2, A, Q> const& _xy, vec<2, B, Q> const& _zw) :
+ x(static_cast<T>(_xy.x)),
+ y(static_cast<T>(_xy.y)),
+ z(static_cast<T>(_zw.x)),
+ w(static_cast<T>(_zw.y))
{}
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec4<U, Q> const & v) :
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR vec<4, T, P>::vec(vec<4, U, Q> const& v) :
x(static_cast<T>(v.x)),
y(static_cast<T>(v.y)),
z(static_cast<T>(v.z)),
@@ -324,21 +324,15 @@ namespace detail
// -- Component accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4<T, P>::length_type tvec4<T, P>::length() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec4<T, P>::operator[](typename tvec4<T, P>::length_type i)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T& vec<4, T, P>::operator[](typename vec<4, T, P>::length_type i)
{
assert(i >= 0 && i < this->length());
return (&x)[i];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec4<T, P>::operator[](typename tvec4<T, P>::length_type i) const
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T const& vec<4, T, P>::operator[](typename vec<4, T, P>::length_type i) const
{
assert(i >= 0 && i < this->length());
return (&x)[i];
@@ -347,8 +341,8 @@ namespace detail
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P>& tvec4<T, P>::operator=(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P>& vec<4, T, P>::operator=(vec<4, T, P> const & v)
{
this->x = v.x;
this->y = v.y;
@@ -358,9 +352,9 @@ namespace detail
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P>& tvec4<T, P>::operator=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P>& vec<4, T, P>::operator=(vec<4, U, P> const & v)
{
this->x = static_cast<T>(v.x);
this->y = static_cast<T>(v.y);
@@ -369,94 +363,94 @@ namespace detail
return *this;
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator+=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator+=(U scalar)
{
- return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator+=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator+=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
+ return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v.x)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator+=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator+=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator-=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator-=(U scalar)
{
- return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator-=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator-=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
+ return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v.x)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator-=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator-=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator*=(U scalar)
{
- return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator*=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
+ return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v.x)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator*=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator/=(U scalar)
{
- return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator/=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
+ return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v.x)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator/=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
// -- Increment and decrement operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator++()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator++()
{
++this->x;
++this->y;
@@ -465,8 +459,8 @@ namespace detail
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator--()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator--()
{
--this->x;
--this->y;
@@ -475,498 +469,498 @@ namespace detail
return *this;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> tvec4<T, P>::operator++(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> vec<4, T, P>::operator++(int)
{
- tvec4<T, P> Result(*this);
+ vec<4, T, P> Result(*this);
++*this;
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> tvec4<T, P>::operator--(int)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> vec<4, T, P>::operator--(int)
{
- tvec4<T, P> Result(*this);
+ vec<4, T, P> Result(*this);
--*this;
return Result;
}
// -- Unary bit operators --
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator%=(U scalar)
{
- return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(tvec1<U, P> const& v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator%=(vec<1, U, P> const& v)
{
- return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(tvec4<U, P> const& v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator%=(vec<4, U, P> const& v)
{
- return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator&=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator&=(U scalar)
{
- return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator&=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator&=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator&=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator&=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator|=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator|=(U scalar)
{
- return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator|=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator|=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator|=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator|=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator^=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator^=(U scalar)
{
- return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator^=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator^=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator^=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator^=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator<<=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator<<=(U scalar)
{
- return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator<<=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator<<=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator<<=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator<<=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator>>=(U scalar)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator>>=(U scalar)
{
- return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
+ return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(scalar)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator>>=(tvec1<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator>>=(vec<1, U, P> const & v)
{
- return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
- template <typename T, precision P>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator>>=(tvec4<U, P> const & v)
+ template<typename T, precision P>
+ template<typename U>
+ GLM_FUNC_QUALIFIER vec<4, T, P> & vec<4, T, P>::operator>>=(vec<4, U, P> const & v)
{
- return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
+ return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, vec<4, T, P>(v)));
}
// -- Unary constant operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator+(vec<4, T, P> const & v)
{
return v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator-(vec<4, T, P> const & v)
{
- return tvec4<T, P>(0) -= v;
+ return vec<4, T, P>(0) -= v;
}
// -- Binary arithmetic operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator+(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) += scalar;
+ return vec<4, T, P>(v) += scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator+(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) += v2;
+ return vec<4, T, P>(v1) += v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator+(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator+(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(v) += scalar;
+ return vec<4, T, P>(v) += scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator+(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v2) += v1;
+ return vec<4, T, P>(v2) += v1;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator+(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) += v2;
+ return vec<4, T, P>(v1) += v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator-(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) -= scalar;
+ return vec<4, T, P>(v) -= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator-(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) -= v2;
+ return vec<4, T, P>(v1) -= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator-(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator-(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) -= v;
+ return vec<4, T, P>(scalar) -= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator-(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) -= v2;
+ return vec<4, T, P>(v1.x) -= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator-(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) -= v2;
+ return vec<4, T, P>(v1) -= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) *= scalar;
+ return vec<4, T, P>(v) *= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) *= v2;
+ return vec<4, T, P>(v1) *= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(v) *= scalar;
+ return vec<4, T, P>(v) *= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v2) *= v1;
+ return vec<4, T, P>(v2) *= v1;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) *= v2;
+ return vec<4, T, P>(v1) *= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator/(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) /= scalar;
+ return vec<4, T, P>(v) /= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator/(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) /= v2;
+ return vec<4, T, P>(v1) /= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator/(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator/(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) /= v;
+ return vec<4, T, P>(scalar) /= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator/(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) /= v2;
+ return vec<4, T, P>(v1.x) /= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator/(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) /= v2;
+ return vec<4, T, P>(v1) /= v2;
}
// -- Binary bit operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator%(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) %= scalar;
+ return vec<4, T, P>(v) %= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator%(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) %= v2.x;
+ return vec<4, T, P>(v1) %= v2.x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator%(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator%(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) %= v;
+ return vec<4, T, P>(scalar) %= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator%(vec<1, T, P> const & scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar.x) %= v;
+ return vec<4, T, P>(scalar.x) %= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator%(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) %= v2;
+ return vec<4, T, P>(v1) %= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator&(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) &= scalar;
+ return vec<4, T, P>(v) &= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator&(vec<4, T, P> const & v, vec<1, T, P> const & scalar)
{
- return tvec4<T, P>(v) &= scalar;
+ return vec<4, T, P>(v) &= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator&(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator&(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) &= v;
+ return vec<4, T, P>(scalar) &= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator&(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) &= v2;
+ return vec<4, T, P>(v1.x) &= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator&(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) &= v2;
+ return vec<4, T, P>(v1) &= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator|(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) |= scalar;
+ return vec<4, T, P>(v) |= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator|(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) |= v2.x;
+ return vec<4, T, P>(v1) |= v2.x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator|(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) |= v;
+ return vec<4, T, P>(scalar) |= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator|(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) |= v2;
+ return vec<4, T, P>(v1.x) |= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator|(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) |= v2;
+ return vec<4, T, P>(v1) |= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator^(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) ^= scalar;
+ return vec<4, T, P>(v) ^= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator^(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) ^= v2.x;
+ return vec<4, T, P>(v1) ^= v2.x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator^(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) ^= v;
+ return vec<4, T, P>(scalar) ^= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator^(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) ^= v2;
+ return vec<4, T, P>(v1.x) ^= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator^(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) ^= v2;
+ return vec<4, T, P>(v1) ^= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator<<(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) <<= scalar;
+ return vec<4, T, P>(v) <<= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator<<(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) <<= v2.x;
+ return vec<4, T, P>(v1) <<= v2.x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator<<(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) <<= v;
+ return vec<4, T, P>(scalar) <<= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator<<(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) <<= v2;
+ return vec<4, T, P>(v1.x) <<= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator<<(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) <<= v2;
+ return vec<4, T, P>(v1) <<= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v, T scalar)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator>>(vec<4, T, P> const & v, T scalar)
{
- return tvec4<T, P>(v) >>= scalar;
+ return vec<4, T, P>(v) >>= scalar;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator>>(vec<4, T, P> const & v1, vec<1, T, P> const & v2)
{
- return tvec4<T, P>(v1) >>= v2.x;
+ return vec<4, T, P>(v1) >>= v2.x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(T scalar, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator>>(T scalar, vec<4, T, P> const & v)
{
- return tvec4<T, P>(scalar) >>= v;
+ return vec<4, T, P>(scalar) >>= v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator>>(vec<1, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1.x) >>= v2;
+ return vec<4, T, P>(v1.x) >>= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator>>(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
- return tvec4<T, P>(v1) >>= v2;
+ return vec<4, T, P>(v1) >>= v2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator~(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator~(vec<4, T, P> const & v)
{
return detail::compute_vec4_bitwise_not<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(v);
}
// -- Boolean operators --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator==(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator==(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
return detail::compute_vec4_equal<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(v1, v2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool operator!=(vec<4, T, P> const & v1, vec<4, T, P> const & v2)
{
return detail::compute_vec4_nequal<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(v1, v2);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> operator&&(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> operator&&(vec<4, bool, P> const & v1, vec<4, bool, P> const & v2)
{
- return tvec4<bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z, v1.w && v2.w);
+ return vec<4, bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z, v1.w && v2.w);
}
- template <precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> operator||(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2)
+ template<precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> operator||(vec<4, bool, P> const & v1, vec<4, bool, P> const & v2)
{
- return tvec4<bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z, v1.w || v2.w);
+ return vec<4, bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z, v1.w || v2.w);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/detail/type_vec4_simd.inl b/3rdparty/glm/glm/detail/type_vec4_simd.inl
index 6ae818f5378..f109d4ab488 100644
--- a/3rdparty/glm/glm/detail/type_vec4_simd.inl
+++ b/3rdparty/glm/glm/detail/type_vec4_simd.inl
@@ -7,14 +7,14 @@ namespace glm{
namespace detail
{
# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- template <precision P, int E0, int E1, int E2, int E3>
- struct _swizzle_base1<4, float, P, glm::tvec4, E0,E1,E2,E3, true> : public _swizzle_base0<float, 4>
+ template<precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base1<4, float, P, E0,E1,E2,E3, true> : public _swizzle_base0<float, 4>
{
- GLM_FUNC_QUALIFIER tvec4<float, P> operator ()() const
+ GLM_FUNC_QUALIFIER vec<4, float, P> operator ()() const
{
__m128 data = *reinterpret_cast<__m128 const*>(&this->_buffer);
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
# if GLM_ARCH & GLM_ARCH_AVX_BIT
Result.data = _mm_permute_ps(data, _MM_SHUFFLE(E3, E2, E1, E0));
# else
@@ -24,315 +24,315 @@ namespace detail
}
};
- template <precision P, int E0, int E1, int E2, int E3>
- struct _swizzle_base1<4, int32, P, glm::tvec4, E0,E1,E2,E3, true> : public _swizzle_base0<int32, 4>
+ template<precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base1<4, int32, P, E0,E1,E2,E3, true> : public _swizzle_base0<int32, 4>
{
- GLM_FUNC_QUALIFIER tvec4<int32, P> operator ()() const
+ GLM_FUNC_QUALIFIER vec<4, int32, P> operator ()() const
{
__m128i data = *reinterpret_cast<__m128i const*>(&this->_buffer);
- tvec4<int32, P> Result(uninitialize);
+ vec<4, int32, P> Result(uninitialize);
Result.data = _mm_shuffle_epi32(data, _MM_SHUFFLE(E3, E2, E1, E0));
return Result;
}
};
- template <precision P, int E0, int E1, int E2, int E3>
- struct _swizzle_base1<4, uint32, P, glm::tvec4, E0,E1,E2,E3, true> : public _swizzle_base0<uint32, 4>
+ template<precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base1<4, uint32, P, E0,E1,E2,E3, true> : public _swizzle_base0<uint32, 4>
{
- GLM_FUNC_QUALIFIER tvec4<uint32, P> operator ()() const
+ GLM_FUNC_QUALIFIER vec<4, uint32, P> operator ()() const
{
__m128i data = *reinterpret_cast<__m128i const*>(&this->_buffer);
- tvec4<uint32, P> Result(uninitialize);
+ vec<4, uint32, P> Result(uninitialize);
Result.data = _mm_shuffle_epi32(data, _MM_SHUFFLE(E3, E2, E1, E0));
return Result;
}
};
# endif// GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
- template <precision P>
+ template<precision P>
struct compute_vec4_add<float, P, true>
{
- static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ static vec<4, float, P> call(vec<4, float, P> const & a, vec<4, float, P> const & b)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_add_ps(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_vec4_add<double, P, true>
{
- static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ static vec<4, double, P> call(vec<4, double, P> const & a, vec<4, double, P> const & b)
{
- tvec4<double, P> Result(uninitialize);
+ vec<4, double, P> Result(uninitialize);
Result.data = _mm256_add_pd(a.data, b.data);
return Result;
}
};
# endif
- template <precision P>
+ template<precision P>
struct compute_vec4_sub<float, P, true>
{
- static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ static vec<4, float, P> call(vec<4, float, P> const & a, vec<4, float, P> const & b)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_sub_ps(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_vec4_sub<double, P, true>
{
- static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ static vec<4, double, P> call(vec<4, double, P> const & a, vec<4, double, P> const & b)
{
- tvec4<double, P> Result(uninitialize);
+ vec<4, double, P> Result(uninitialize);
Result.data = _mm256_sub_pd(a.data, b.data);
return Result;
}
};
# endif
- template <precision P>
+ template<precision P>
struct compute_vec4_mul<float, P, true>
{
- static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ static vec<4, float, P> call(vec<4, float, P> const & a, vec<4, float, P> const & b)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_mul_ps(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_vec4_mul<double, P, true>
{
- static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ static vec<4, double, P> call(vec<4, double, P> const & a, vec<4, double, P> const & b)
{
- tvec4<double, P> Result(uninitialize);
+ vec<4, double, P> Result(uninitialize);
Result.data = _mm256_mul_pd(a.data, b.data);
return Result;
}
};
# endif
- template <precision P>
+ template<precision P>
struct compute_vec4_div<float, P, true>
{
- static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ static vec<4, float, P> call(vec<4, float, P> const & a, vec<4, float, P> const & b)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_div_ps(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_vec4_div<double, P, true>
{
- static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ static vec<4, double, P> call(vec<4, double, P> const & a, vec<4, double, P> const & b)
{
- tvec4<double, P> Result(uninitialize);
+ vec<4, double, P> Result(uninitialize);
Result.data = _mm256_div_pd(a.data, b.data);
return Result;
}
};
# endif
- template <>
+ template<>
struct compute_vec4_div<float, aligned_lowp, true>
{
- static tvec4<float, aligned_lowp> call(tvec4<float, aligned_lowp> const & a, tvec4<float, aligned_lowp> const & b)
+ static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const & a, vec<4, float, aligned_lowp> const & b)
{
- tvec4<float, aligned_lowp> Result(uninitialize);
+ vec<4, float, aligned_lowp> Result(uninitialize);
Result.data = _mm_mul_ps(a.data, _mm_rcp_ps(b.data));
return Result;
}
};
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_and<T, P, true, 32, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm_and_si128(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_and<T, P, true, 64, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm256_and_si256(a.data, b.data);
return Result;
}
};
# endif
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_or<T, P, true, 32, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm_or_si128(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_or<T, P, true, 64, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm256_or_si256(a.data, b.data);
return Result;
}
};
# endif
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_xor<T, P, true, 32, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm_xor_si128(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_xor<T, P, true, 64, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm256_xor_si256(a.data, b.data);
return Result;
}
};
# endif
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_shift_left<T, P, true, 32, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm_sll_epi32(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_shift_left<T, P, true, 64, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm256_sll_epi64(a.data, b.data);
return Result;
}
};
# endif
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_shift_right<T, P, true, 32, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm_srl_epi32(a.data, b.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_shift_right<T, P, true, 64, true>
{
- static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ static vec<4, T, P> call(vec<4, T, P> const& a, vec<4, T, P> const& b)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm256_srl_epi64(a.data, b.data);
return Result;
}
};
# endif
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_bitwise_not<T, P, true, 32, true>
{
- static tvec4<T, P> call(tvec4<T, P> const & v)
+ static vec<4, T, P> call(vec<4, T, P> const & v)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm_xor_si128(v.data, _mm_set1_epi32(-1));
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <typename T, precision P>
+ template<typename T, precision P>
struct compute_vec4_bitwise_not<T, P, true, 64, true>
{
- static tvec4<T, P> call(tvec4<T, P> const & v)
+ static vec<4, T, P> call(vec<4, T, P> const & v)
{
- tvec4<T, P> Result(uninitialize);
+ vec<4, T, P> Result(uninitialize);
Result.data = _mm256_xor_si256(v.data, _mm_set1_epi32(-1));
return Result;
}
};
# endif
- template <precision P>
+ template<precision P>
struct compute_vec4_equal<float, P, false, 32, true>
{
- static bool call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ static bool call(vec<4, float, P> const & v1, vec<4, float, P> const & v2)
{
return _mm_movemask_ps(_mm_cmpeq_ps(v1.data, v2.data)) != 0;
}
};
- template <precision P>
+ template<precision P>
struct compute_vec4_equal<int32, P, true, 32, true>
{
- static bool call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ static bool call(vec<4, int32, P> const & v1, vec<4, int32, P> const & v2)
{
return _mm_movemask_epi8(_mm_cmpeq_epi32(v1.data, v2.data)) != 0;
}
};
- template <precision P>
+ template<precision P>
struct compute_vec4_nequal<float, P, false, 32, true>
{
- static bool call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ static bool call(vec<4, float, P> const & v1, vec<4, float, P> const & v2)
{
return _mm_movemask_ps(_mm_cmpneq_ps(v1.data, v2.data)) != 0;
}
};
- template <precision P>
+ template<precision P>
struct compute_vec4_nequal<int32, P, true, 32, true>
{
- static bool call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ static bool call(vec<4, int32, P> const & v1, vec<4, int32, P> const & v2)
{
return _mm_movemask_epi8(_mm_cmpneq_epi32(v1.data, v2.data)) != 0;
}
@@ -340,143 +340,142 @@ namespace detail
}//namespace detail
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<float, aligned_lowp>::tvec4()
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: data(_mm_setzero_ps())
# endif
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<float, aligned_mediump>::tvec4()
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: data(_mm_setzero_ps())
# endif
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<float, aligned_highp>::tvec4()
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec()
# ifndef GLM_FORCE_NO_CTOR_INIT
: data(_mm_setzero_ps())
# endif
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_lowp>::tvec4(float s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec(float s) :
data(_mm_set1_ps(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_mediump>::tvec4(float s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec(float s) :
data(_mm_set1_ps(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_highp>::tvec4(float s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec(float s) :
data(_mm_set1_ps(s))
{}
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<double, aligned_lowp>::tvec4(double s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, double, aligned_lowp>::vec(double s) :
data(_mm256_set1_pd(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<double, aligned_mediump>::tvec4(double s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, double, aligned_mediump>::vec(double s) :
data(_mm256_set1_pd(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<double, aligned_highp>::tvec4(double s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, double, aligned_highp>::vec(double s) :
data(_mm256_set1_pd(s))
{}
# endif
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_lowp>::tvec4(int32 s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_lowp>::vec(int32 s) :
data(_mm_set1_epi32(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_mediump>::tvec4(int32 s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_mediump>::vec(int32 s) :
data(_mm_set1_epi32(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_highp>::tvec4(int32 s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_highp>::vec(int32 s) :
data(_mm_set1_epi32(s))
{}
# if GLM_ARCH & GLM_ARCH_AVX2_BIT
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int64, aligned_lowp>::tvec4(int64 s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int64, aligned_lowp>::vec(int64 s) :
data(_mm256_set1_epi64x(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int64, aligned_mediump>::tvec4(int64 s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int64, aligned_mediump>::vec(int64 s) :
data(_mm256_set1_epi64x(s))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int64, aligned_highp>::tvec4(int64 s) :
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int64, aligned_highp>::vec(int64 s) :
data(_mm256_set1_epi64x(s))
{}
# endif
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_lowp>::tvec4(float a, float b, float c, float d) :
- data(_mm_set_ps(d, c, b, a))
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec(float _x, float _y, float _z, float _w) :
+ data(_mm_set_ps(_w, _z, _y, _x))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_mediump>::tvec4(float a, float b, float c, float d) :
- data(_mm_set_ps(d, c, b, a))
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec(float _x, float _y, float _z, float _w) :
+ data(_mm_set_ps(_w, _z, _y, _x))
{}
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_highp>::tvec4(float a, float b, float c, float d) :
- data(_mm_set_ps(d, c, b, a))
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec(float _x, float _y, float _z, float _w) :
+ data(_mm_set_ps(_w, _z, _y, _x))
{}
- template <>
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_lowp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
- data(_mm_set_epi32(d, c, b, a))
+ template<>
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_lowp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
+ data(_mm_set_epi32(_w, _z, _y, _x))
{}
- template <>
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_mediump>::tvec4(int32 a, int32 b, int32 c, int32 d) :
- data(_mm_set_epi32(d, c, b, a))
+ template<>
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_mediump>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
+ data(_mm_set_epi32(_w, _z, _y, _x))
{}
- template <>
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_highp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
- data(_mm_set_epi32(d, c, b, a))
+ template<>
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, int32, aligned_highp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
+ data(_mm_set_epi32(_w, _z, _y, _x))
{}
-/*
- template <>
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_lowp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
- data(_mm_castsi128_ps(_mm_set_epi32(d, c, b, a)))
+
+ template<>
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
+ data(_mm_castsi128_ps(_mm_set_epi32(_w, _z, _y, _x)))
{}
- template <>
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_mediump>::tvec4(int32 a, int32 b, int32 c, int32 d) :
- data(_mm_castsi128_ps(_mm_set_epi32(d, c, b, a)))
+ template<>
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
+ data(_mm_castsi128_ps(_mm_set_epi32(_w, _z, _y, _x)))
{}
- template <>
- template <>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_highp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
- data(_mm_castsi128_ps(_mm_set_epi32(d, c, b, a)))
+ template<>
+ template<>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec(int32 _x, int32 _y, int32 _z, int32 _w) :
+ data(_mm_castsi128_ps(_mm_set_epi32(_w, _z, _y, _x)))
{}
-*/
}//namespace glm
#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/3rdparty/glm/glm/ext.hpp b/3rdparty/glm/glm/ext.hpp
index ca2e9e82406..9dedc01cc05 100644
--- a/3rdparty/glm/glm/ext.hpp
+++ b/3rdparty/glm/glm/ext.hpp
@@ -35,8 +35,10 @@
#endif//GLM_MESSAGES
#include "./gtc/bitfield.hpp"
+#include "./gtc/color_space.hpp"
#include "./gtc/constants.hpp"
#include "./gtc/epsilon.hpp"
+#include "./gtc/functions.hpp"
#include "./gtc/integer.hpp"
#include "./gtc/matrix_access.hpp"
#include "./gtc/matrix_integer.hpp"
@@ -48,6 +50,7 @@
#include "./gtc/random.hpp"
#include "./gtc/reciprocal.hpp"
#include "./gtc/round.hpp"
+//#include "./gtc/type_aligned.hpp"
#include "./gtc/type_precision.hpp"
#include "./gtc/type_ptr.hpp"
#include "./gtc/ulp.hpp"
@@ -56,9 +59,11 @@
# include "./gtc/type_aligned.hpp"
#endif
+#ifdef GLM_ENABLE_EXPERIMENTAL
#include "./gtx/associated_min_max.hpp"
#include "./gtx/bit.hpp"
#include "./gtx/closest_point.hpp"
+#include "./gtx/color_encoding.hpp"
#include "./gtx/color_space.hpp"
#include "./gtx/color_space_YCoCg.hpp"
#include "./gtx/compatibility.hpp"
@@ -100,6 +105,7 @@
#endif
#include "./gtx/transform.hpp"
#include "./gtx/transform2.hpp"
+#include "./gtx/vec_swizzle.hpp"
#include "./gtx/vector_angle.hpp"
#include "./gtx/vector_query.hpp"
#include "./gtx/wrap.hpp"
@@ -111,3 +117,4 @@
#if GLM_HAS_RANGE_FOR
# include "./gtx/range.hpp"
#endif
+#endif//GLM_ENABLE_EXPERIMENTAL
diff --git a/3rdparty/glm/glm/fwd.hpp b/3rdparty/glm/glm/fwd.hpp
index f90c4d04d44..04c7c5a7e27 100644
--- a/3rdparty/glm/glm/fwd.hpp
+++ b/3rdparty/glm/glm/fwd.hpp
@@ -12,7 +12,7 @@
// GLM_GTC_quaternion
namespace glm
{
- template <typename T, precision P> struct tquat;
+ template<typename T, precision P> struct tquat;
/// Quaternion of low single-precision floating-point numbers.
///
@@ -300,53 +300,53 @@ namespace glm
/// Low precision 8 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i8, lowp> lowp_i8vec1;
+ typedef vec<1, i8, lowp> lowp_i8vec1;
/// Low precision 8 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i8, lowp> lowp_i8vec2;
+ typedef vec<2, i8, lowp> lowp_i8vec2;
/// Low precision 8 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i8, lowp> lowp_i8vec3;
+ typedef vec<3, i8, lowp> lowp_i8vec3;
/// Low precision 8 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i8, lowp> lowp_i8vec4;
+ typedef vec<4, i8, lowp> lowp_i8vec4;
/// Medium precision 8 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i8, mediump> mediump_i8vec1;
+ typedef vec<1, i8, mediump> mediump_i8vec1;
/// Medium precision 8 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i8, mediump> mediump_i8vec2;
+ typedef vec<2, i8, mediump> mediump_i8vec2;
/// Medium precision 8 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i8, mediump> mediump_i8vec3;
+ typedef vec<3, i8, mediump> mediump_i8vec3;
/// Medium precision 8 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i8, mediump> mediump_i8vec4;
+ typedef vec<4, i8, mediump> mediump_i8vec4;
/// High precision 8 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i8, highp> highp_i8vec1;
+ typedef vec<1, i8, highp> highp_i8vec1;
/// High precision 8 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i8, highp> highp_i8vec2;
+ typedef vec<2, i8, highp> highp_i8vec2;
/// High precision 8 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i8, highp> highp_i8vec3;
+ typedef vec<3, i8, highp> highp_i8vec3;
/// High precision 8 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i8, highp> highp_i8vec4;
+ typedef vec<4, i8, highp> highp_i8vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_i8vec1 i8vec1;
@@ -379,53 +379,53 @@ namespace glm
/// Low precision 16 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i16, lowp> lowp_i16vec1;
+ typedef vec<1, i16, lowp> lowp_i16vec1;
/// Low precision 16 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i16, lowp> lowp_i16vec2;
+ typedef vec<2, i16, lowp> lowp_i16vec2;
/// Low precision 16 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i16, lowp> lowp_i16vec3;
+ typedef vec<3, i16, lowp> lowp_i16vec3;
/// Low precision 16 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i16, lowp> lowp_i16vec4;
+ typedef vec<4, i16, lowp> lowp_i16vec4;
/// Medium precision 16 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i16, mediump> mediump_i16vec1;
+ typedef vec<1, i16, mediump> mediump_i16vec1;
/// Medium precision 16 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i16, mediump> mediump_i16vec2;
+ typedef vec<2, i16, mediump> mediump_i16vec2;
/// Medium precision 16 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i16, mediump> mediump_i16vec3;
+ typedef vec<3, i16, mediump> mediump_i16vec3;
/// Medium precision 16 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i16, mediump> mediump_i16vec4;
+ typedef vec<4, i16, mediump> mediump_i16vec4;
/// High precision 16 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i16, highp> highp_i16vec1;
+ typedef vec<1, i16, highp> highp_i16vec1;
/// High precision 16 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i16, highp> highp_i16vec2;
+ typedef vec<2, i16, highp> highp_i16vec2;
/// High precision 16 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i16, highp> highp_i16vec3;
+ typedef vec<3, i16, highp> highp_i16vec3;
/// High precision 16 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i16, highp> highp_i16vec4;
+ typedef vec<4, i16, highp> highp_i16vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
@@ -459,53 +459,53 @@ namespace glm
/// Low precision 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, lowp> lowp_i32vec1;
+ typedef vec<1, i32, lowp> lowp_i32vec1;
/// Low precision 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, lowp> lowp_i32vec2;
+ typedef vec<2, i32, lowp> lowp_i32vec2;
/// Low precision 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, lowp> lowp_i32vec3;
+ typedef vec<3, i32, lowp> lowp_i32vec3;
/// Low precision 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, lowp> lowp_i32vec4;
+ typedef vec<4, i32, lowp> lowp_i32vec4;
/// Medium precision 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, mediump> mediump_i32vec1;
+ typedef vec<1, i32, mediump> mediump_i32vec1;
/// Medium precision 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, mediump> mediump_i32vec2;
+ typedef vec<2, i32, mediump> mediump_i32vec2;
/// Medium precision 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, mediump> mediump_i32vec3;
+ typedef vec<3, i32, mediump> mediump_i32vec3;
/// Medium precision 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, mediump> mediump_i32vec4;
+ typedef vec<4, i32, mediump> mediump_i32vec4;
/// High precision 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, highp> highp_i32vec1;
+ typedef vec<1, i32, highp> highp_i32vec1;
/// High precision 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, highp> highp_i32vec2;
+ typedef vec<2, i32, highp> highp_i32vec2;
/// High precision 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, highp> highp_i32vec3;
+ typedef vec<3, i32, highp> highp_i32vec3;
/// High precision 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, highp> highp_i32vec4;
+ typedef vec<4, i32, highp> highp_i32vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_i32vec1 i32vec1;
@@ -538,53 +538,53 @@ namespace glm
/// Low precision 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, lowp> lowp_i32vec1;
+ typedef vec<1, i32, lowp> lowp_i32vec1;
/// Low precision 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, lowp> lowp_i32vec2;
+ typedef vec<2, i32, lowp> lowp_i32vec2;
/// Low precision 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, lowp> lowp_i32vec3;
+ typedef vec<3, i32, lowp> lowp_i32vec3;
/// Low precision 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, lowp> lowp_i32vec4;
+ typedef vec<4, i32, lowp> lowp_i32vec4;
/// Medium precision 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, mediump> mediump_i32vec1;
+ typedef vec<1, i32, mediump> mediump_i32vec1;
/// Medium precision 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, mediump> mediump_i32vec2;
+ typedef vec<2, i32, mediump> mediump_i32vec2;
/// Medium precision 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, mediump> mediump_i32vec3;
+ typedef vec<3, i32, mediump> mediump_i32vec3;
/// Medium precision 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, mediump> mediump_i32vec4;
+ typedef vec<4, i32, mediump> mediump_i32vec4;
/// High precision 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, highp> highp_i32vec1;
+ typedef vec<1, i32, highp> highp_i32vec1;
/// High precision 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, highp> highp_i32vec2;
+ typedef vec<2, i32, highp> highp_i32vec2;
/// High precision 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, highp> highp_i32vec3;
+ typedef vec<3, i32, highp> highp_i32vec3;
/// High precision 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, highp> highp_i32vec4;
+ typedef vec<4, i32, highp> highp_i32vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_i32vec1 i32vec1;
@@ -618,53 +618,53 @@ namespace glm
/// Low precision 64 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i64, lowp> lowp_i64vec1;
+ typedef vec<1, i64, lowp> lowp_i64vec1;
/// Low precision 64 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i64, lowp> lowp_i64vec2;
+ typedef vec<2, i64, lowp> lowp_i64vec2;
/// Low precision 64 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i64, lowp> lowp_i64vec3;
+ typedef vec<3, i64, lowp> lowp_i64vec3;
/// Low precision 64 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i64, lowp> lowp_i64vec4;
+ typedef vec<4, i64, lowp> lowp_i64vec4;
/// Medium precision 64 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i64, mediump> mediump_i64vec1;
+ typedef vec<1, i64, mediump> mediump_i64vec1;
/// Medium precision 64 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i64, mediump> mediump_i64vec2;
+ typedef vec<2, i64, mediump> mediump_i64vec2;
/// Medium precision 64 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i64, mediump> mediump_i64vec3;
+ typedef vec<3, i64, mediump> mediump_i64vec3;
/// Medium precision 64 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i64, mediump> mediump_i64vec4;
+ typedef vec<4, i64, mediump> mediump_i64vec4;
/// High precision 64 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i64, highp> highp_i64vec1;
+ typedef vec<1, i64, highp> highp_i64vec1;
/// High precision 64 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i64, highp> highp_i64vec2;
+ typedef vec<2, i64, highp> highp_i64vec2;
/// High precision 64 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i64, highp> highp_i64vec3;
+ typedef vec<3, i64, highp> highp_i64vec3;
/// High precision 64 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i64, highp> highp_i64vec4;
+ typedef vec<4, i64, highp> highp_i64vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_i64vec1 i64vec1;
@@ -909,53 +909,53 @@ namespace glm
/// Low precision 8 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u8, lowp> lowp_u8vec1;
+ typedef vec<1, u8, lowp> lowp_u8vec1;
/// Low precision 8 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u8, lowp> lowp_u8vec2;
+ typedef vec<2, u8, lowp> lowp_u8vec2;
/// Low precision 8 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u8, lowp> lowp_u8vec3;
+ typedef vec<3, u8, lowp> lowp_u8vec3;
/// Low precision 8 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u8, lowp> lowp_u8vec4;
+ typedef vec<4, u8, lowp> lowp_u8vec4;
/// Medium precision 8 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u8, mediump> mediump_u8vec1;
+ typedef vec<1, u8, mediump> mediump_u8vec1;
/// Medium precision 8 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u8, mediump> mediump_u8vec2;
+ typedef vec<2, u8, mediump> mediump_u8vec2;
/// Medium precision 8 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u8, mediump> mediump_u8vec3;
+ typedef vec<3, u8, mediump> mediump_u8vec3;
/// Medium precision 8 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u8, mediump> mediump_u8vec4;
+ typedef vec<4, u8, mediump> mediump_u8vec4;
/// High precision 8 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u8, highp> highp_u8vec1;
+ typedef vec<1, u8, highp> highp_u8vec1;
/// High precision 8 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u8, highp> highp_u8vec2;
+ typedef vec<2, u8, highp> highp_u8vec2;
/// High precision 8 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u8, highp> highp_u8vec3;
+ typedef vec<3, u8, highp> highp_u8vec3;
/// High precision 8 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u8, highp> highp_u8vec4;
+ typedef vec<4, u8, highp> highp_u8vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_u8vec1 u8vec1;
@@ -988,53 +988,53 @@ namespace glm
/// Low precision 16 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u16, lowp> lowp_u16vec1;
+ typedef vec<1, u16, lowp> lowp_u16vec1;
/// Low precision 16 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u16, lowp> lowp_u16vec2;
+ typedef vec<2, u16, lowp> lowp_u16vec2;
/// Low precision 16 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u16, lowp> lowp_u16vec3;
+ typedef vec<3, u16, lowp> lowp_u16vec3;
/// Low precision 16 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u16, lowp> lowp_u16vec4;
+ typedef vec<4, u16, lowp> lowp_u16vec4;
/// Medium precision 16 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u16, mediump> mediump_u16vec1;
+ typedef vec<1, u16, mediump> mediump_u16vec1;
/// Medium precision 16 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u16, mediump> mediump_u16vec2;
+ typedef vec<2, u16, mediump> mediump_u16vec2;
/// Medium precision 16 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u16, mediump> mediump_u16vec3;
+ typedef vec<3, u16, mediump> mediump_u16vec3;
/// Medium precision 16 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u16, mediump> mediump_u16vec4;
+ typedef vec<4, u16, mediump> mediump_u16vec4;
/// High precision 16 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u16, highp> highp_u16vec1;
+ typedef vec<1, u16, highp> highp_u16vec1;
/// High precision 16 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u16, highp> highp_u16vec2;
+ typedef vec<2, u16, highp> highp_u16vec2;
/// High precision 16 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u16, highp> highp_u16vec3;
+ typedef vec<3, u16, highp> highp_u16vec3;
/// High precision 16 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u16, highp> highp_u16vec4;
+ typedef vec<4, u16, highp> highp_u16vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
@@ -1068,53 +1068,53 @@ namespace glm
/// Low precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, lowp> lowp_u32vec1;
+ typedef vec<1, u32, lowp> lowp_u32vec1;
/// Low precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, lowp> lowp_u32vec2;
+ typedef vec<2, u32, lowp> lowp_u32vec2;
/// Low precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, lowp> lowp_u32vec3;
+ typedef vec<3, u32, lowp> lowp_u32vec3;
/// Low precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, lowp> lowp_u32vec4;
+ typedef vec<4, u32, lowp> lowp_u32vec4;
/// Medium precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, mediump> mediump_u32vec1;
+ typedef vec<1, u32, mediump> mediump_u32vec1;
/// Medium precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, mediump> mediump_u32vec2;
+ typedef vec<2, u32, mediump> mediump_u32vec2;
/// Medium precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, mediump> mediump_u32vec3;
+ typedef vec<3, u32, mediump> mediump_u32vec3;
/// Medium precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, mediump> mediump_u32vec4;
+ typedef vec<4, u32, mediump> mediump_u32vec4;
/// High precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, highp> highp_u32vec1;
+ typedef vec<1, u32, highp> highp_u32vec1;
/// High precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, highp> highp_u32vec2;
+ typedef vec<2, u32, highp> highp_u32vec2;
/// High precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, highp> highp_u32vec3;
+ typedef vec<3, u32, highp> highp_u32vec3;
/// High precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, highp> highp_u32vec4;
+ typedef vec<4, u32, highp> highp_u32vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_u32vec1 u32vec1;
@@ -1147,53 +1147,53 @@ namespace glm
/// Low precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, lowp> lowp_u32vec1;
+ typedef vec<1, u32, lowp> lowp_u32vec1;
/// Low precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, lowp> lowp_u32vec2;
+ typedef vec<2, u32, lowp> lowp_u32vec2;
/// Low precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, lowp> lowp_u32vec3;
+ typedef vec<3, u32, lowp> lowp_u32vec3;
/// Low precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, lowp> lowp_u32vec4;
+ typedef vec<4, u32, lowp> lowp_u32vec4;
/// Medium precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, mediump> mediump_u32vec1;
+ typedef vec<1, u32, mediump> mediump_u32vec1;
/// Medium precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, mediump> mediump_u32vec2;
+ typedef vec<2, u32, mediump> mediump_u32vec2;
/// Medium precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, mediump> mediump_u32vec3;
+ typedef vec<3, u32, mediump> mediump_u32vec3;
/// Medium precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, mediump> mediump_u32vec4;
+ typedef vec<4, u32, mediump> mediump_u32vec4;
/// High precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, highp> highp_u32vec1;
+ typedef vec<1, u32, highp> highp_u32vec1;
/// High precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, highp> highp_u32vec2;
+ typedef vec<2, u32, highp> highp_u32vec2;
/// High precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, highp> highp_u32vec3;
+ typedef vec<3, u32, highp> highp_u32vec3;
/// High precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, highp> highp_u32vec4;
+ typedef vec<4, u32, highp> highp_u32vec4;
#if(defined(GLM_PRECISION_LOWP_INT))
typedef lowp_u32vec1 u32vec1;
@@ -1227,53 +1227,53 @@ namespace glm
/// Low precision 64 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u64, lowp> lowp_u64vec1;
+ typedef vec<1, u64, lowp> lowp_u64vec1;
/// Low precision 64 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u64, lowp> lowp_u64vec2;
+ typedef vec<2, u64, lowp> lowp_u64vec2;
/// Low precision 64 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u64, lowp> lowp_u64vec3;
+ typedef vec<3, u64, lowp> lowp_u64vec3;
/// Low precision 64 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u64, lowp> lowp_u64vec4;
+ typedef vec<4, u64, lowp> lowp_u64vec4;
/// Medium precision 64 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u64, mediump> mediump_u64vec1;
+ typedef vec<1, u64, mediump> mediump_u64vec1;
/// Medium precision 64 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u64, mediump> mediump_u64vec2;
+ typedef vec<2, u64, mediump> mediump_u64vec2;
/// Medium precision 64 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u64, mediump> mediump_u64vec3;
+ typedef vec<3, u64, mediump> mediump_u64vec3;
/// Medium precision 64 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u64, mediump> mediump_u64vec4;
+ typedef vec<4, u64, mediump> mediump_u64vec4;
/// High precision 64 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u64, highp> highp_u64vec1;
+ typedef vec<1, u64, highp> highp_u64vec1;
/// High precision 64 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u64, highp> highp_u64vec2;
+ typedef vec<2, u64, highp> highp_u64vec2;
/// High precision 64 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u64, highp> highp_u64vec3;
+ typedef vec<3, u64, highp> highp_u64vec3;
/// High precision 64 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u64, highp> highp_u64vec4;
+ typedef vec<4, u64, highp> highp_u64vec4;
#if(defined(GLM_PRECISION_LOWP_UINT))
typedef lowp_u64vec1 u64vec1;
@@ -1512,199 +1512,199 @@ namespace glm
/// Low single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, lowp> lowp_vec1;
+ typedef vec<1, float, lowp> lowp_vec1;
/// Low single-precision floating-point vector of 2 components.
/// @see core_precision
- typedef tvec2<float, lowp> lowp_vec2;
+ typedef vec<2, float, lowp> lowp_vec2;
/// Low single-precision floating-point vector of 3 components.
/// @see core_precision
- typedef tvec3<float, lowp> lowp_vec3;
+ typedef vec<3, float, lowp> lowp_vec3;
/// Low single-precision floating-point vector of 4 components.
/// @see core_precision
- typedef tvec4<float, lowp> lowp_vec4;
+ typedef vec<4, float, lowp> lowp_vec4;
/// Low single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, lowp> lowp_fvec1;
+ typedef vec<1, float, lowp> lowp_fvec1;
/// Low single-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<float, lowp> lowp_fvec2;
+ typedef vec<2, float, lowp> lowp_fvec2;
/// Low single-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<float, lowp> lowp_fvec3;
+ typedef vec<3, float, lowp> lowp_fvec3;
/// Low single-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<float, lowp> lowp_fvec4;
+ typedef vec<4, float, lowp> lowp_fvec4;
/// Medium single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, mediump> mediump_vec1;
+ typedef vec<1, float, mediump> mediump_vec1;
/// Medium Single-precision floating-point vector of 2 components.
/// @see core_precision
- typedef tvec2<float, mediump> mediump_vec2;
+ typedef vec<2, float, mediump> mediump_vec2;
/// Medium Single-precision floating-point vector of 3 components.
/// @see core_precision
- typedef tvec3<float, mediump> mediump_vec3;
+ typedef vec<3, float, mediump> mediump_vec3;
/// Medium Single-precision floating-point vector of 4 components.
/// @see core_precision
- typedef tvec4<float, mediump> mediump_vec4;
+ typedef vec<4, float, mediump> mediump_vec4;
/// Medium single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, mediump> mediump_fvec1;
+ typedef vec<1, float, mediump> mediump_fvec1;
/// Medium Single-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<float, mediump> mediump_fvec2;
+ typedef vec<2, float, mediump> mediump_fvec2;
/// Medium Single-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<float, mediump> mediump_fvec3;
+ typedef vec<3, float, mediump> mediump_fvec3;
/// Medium Single-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<float, mediump> mediump_fvec4;
+ typedef vec<4, float, mediump> mediump_fvec4;
/// High single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, highp> highp_vec1;
+ typedef vec<1, float, highp> highp_vec1;
/// High Single-precision floating-point vector of 2 components.
/// @see core_precision
- typedef tvec2<float, highp> highp_vec2;
+ typedef vec<2, float, highp> highp_vec2;
/// High Single-precision floating-point vector of 3 components.
/// @see core_precision
- typedef tvec3<float, highp> highp_vec3;
+ typedef vec<3, float, highp> highp_vec3;
/// High Single-precision floating-point vector of 4 components.
/// @see core_precision
- typedef tvec4<float, highp> highp_vec4;
+ typedef vec<4, float, highp> highp_vec4;
/// High single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, highp> highp_fvec1;
+ typedef vec<1, float, highp> highp_fvec1;
/// High Single-precision floating-point vector of 2 components.
/// @see core_precision
- typedef tvec2<float, highp> highp_fvec2;
+ typedef vec<2, float, highp> highp_fvec2;
/// High Single-precision floating-point vector of 3 components.
/// @see core_precision
- typedef tvec3<float, highp> highp_fvec3;
+ typedef vec<3, float, highp> highp_fvec3;
/// High Single-precision floating-point vector of 4 components.
/// @see core_precision
- typedef tvec4<float, highp> highp_fvec4;
+ typedef vec<4, float, highp> highp_fvec4;
/// Low single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f32, lowp> lowp_f32vec1;
+ typedef vec<1, f32, lowp> lowp_f32vec1;
/// Low single-precision floating-point vector of 2 components.
/// @see core_precision
- typedef tvec2<f32, lowp> lowp_f32vec2;
+ typedef vec<2, f32, lowp> lowp_f32vec2;
/// Low single-precision floating-point vector of 3 components.
/// @see core_precision
- typedef tvec3<f32, lowp> lowp_f32vec3;
+ typedef vec<3, f32, lowp> lowp_f32vec3;
/// Low single-precision floating-point vector of 4 components.
/// @see core_precision
- typedef tvec4<f32, lowp> lowp_f32vec4;
+ typedef vec<4, f32, lowp> lowp_f32vec4;
/// Medium single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f32, mediump> mediump_f32vec1;
+ typedef vec<1, f32, mediump> mediump_f32vec1;
/// Medium single-precision floating-point vector of 2 components.
/// @see core_precision
- typedef tvec2<f32, mediump> mediump_f32vec2;
+ typedef vec<2, f32, mediump> mediump_f32vec2;
/// Medium single-precision floating-point vector of 3 components.
/// @see core_precision
- typedef tvec3<f32, mediump> mediump_f32vec3;
+ typedef vec<3, f32, mediump> mediump_f32vec3;
/// Medium single-precision floating-point vector of 4 components.
/// @see core_precision
- typedef tvec4<f32, mediump> mediump_f32vec4;
+ typedef vec<4, f32, mediump> mediump_f32vec4;
/// High single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f32, highp> highp_f32vec1;
+ typedef vec<1, f32, highp> highp_f32vec1;
/// High single-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<f32, highp> highp_f32vec2;
+ typedef vec<2, f32, highp> highp_f32vec2;
/// High single-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<f32, highp> highp_f32vec3;
+ typedef vec<3, f32, highp> highp_f32vec3;
/// High single-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<f32, highp> highp_f32vec4;
+ typedef vec<4, f32, highp> highp_f32vec4;
/// Low double-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f64, lowp> lowp_f64vec1;
+ typedef vec<1, f64, lowp> lowp_f64vec1;
/// Low double-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<f64, lowp> lowp_f64vec2;
+ typedef vec<2, f64, lowp> lowp_f64vec2;
/// Low double-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<f64, lowp> lowp_f64vec3;
+ typedef vec<3, f64, lowp> lowp_f64vec3;
/// Low double-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<f64, lowp> lowp_f64vec4;
+ typedef vec<4, f64, lowp> lowp_f64vec4;
/// Medium double-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f64, mediump> mediump_f64vec1;
+ typedef vec<1, f64, mediump> mediump_f64vec1;
/// Medium double-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<f64, mediump> mediump_f64vec2;
+ typedef vec<2, f64, mediump> mediump_f64vec2;
/// Medium double-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<f64, mediump> mediump_f64vec3;
+ typedef vec<3, f64, mediump> mediump_f64vec3;
/// Medium double-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<f64, mediump> mediump_f64vec4;
+ typedef vec<4, f64, mediump> mediump_f64vec4;
/// High double-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f64, highp> highp_f64vec1;
+ typedef vec<1, f64, highp> highp_f64vec1;
/// High double-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<f64, highp> highp_f64vec2;
+ typedef vec<2, f64, highp> highp_f64vec2;
/// High double-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<f64, highp> highp_f64vec3;
+ typedef vec<3, f64, highp> highp_f64vec3;
/// High double-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<f64, highp> highp_f64vec4;
+ typedef vec<4, f64, highp> highp_f64vec4;
//////////////////////
@@ -1716,39 +1716,39 @@ namespace glm
/// Low single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, lowp> lowp_fmat2x2;
+ typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
/// Low single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, lowp> lowp_fmat2x3;
+ typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
/// Low single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, lowp> lowp_fmat2x4;
+ typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
/// Low single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, lowp> lowp_fmat3x2;
+ typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
/// Low single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, lowp> lowp_fmat3x3;
+ typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
/// Low single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, lowp> lowp_fmat3x4;
+ typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
/// Low single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, lowp> lowp_fmat4x2;
+ typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
/// Low single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, lowp> lowp_fmat4x3;
+ typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
/// Low single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, lowp> lowp_fmat4x4;
+ typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
/// Low single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -1773,39 +1773,39 @@ namespace glm
/// Medium single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, mediump> mediump_fmat2x2;
+ typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
/// Medium single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, mediump> mediump_fmat2x3;
+ typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
/// Medium single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, mediump> mediump_fmat2x4;
+ typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
/// Medium single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, mediump> mediump_fmat3x2;
+ typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
/// Medium single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, mediump> mediump_fmat3x3;
+ typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
/// Medium single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, mediump> mediump_fmat3x4;
+ typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
/// Medium single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, mediump> mediump_fmat4x2;
+ typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
/// Medium single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, mediump> mediump_fmat4x3;
+ typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
/// Medium single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, mediump> mediump_fmat4x4;
+ typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
/// Medium single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -1830,39 +1830,39 @@ namespace glm
/// High single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, highp> highp_fmat2x2;
+ typedef mat<2, 2, f32, highp> highp_fmat2x2;
/// High single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, highp> highp_fmat2x3;
+ typedef mat<2, 3, f32, highp> highp_fmat2x3;
/// High single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, highp> highp_fmat2x4;
+ typedef mat<2, 4, f32, highp> highp_fmat2x4;
/// High single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, highp> highp_fmat3x2;
+ typedef mat<3, 2, f32, highp> highp_fmat3x2;
/// High single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, highp> highp_fmat3x3;
+ typedef mat<3, 3, f32, highp> highp_fmat3x3;
/// High single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, highp> highp_fmat3x4;
+ typedef mat<3, 4, f32, highp> highp_fmat3x4;
/// High single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, highp> highp_fmat4x2;
+ typedef mat<4, 2, f32, highp> highp_fmat4x2;
/// High single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, highp> highp_fmat4x3;
+ typedef mat<4, 3, f32, highp> highp_fmat4x3;
/// High single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, highp> highp_fmat4x4;
+ typedef mat<4, 4, f32, highp> highp_fmat4x4;
/// High single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -1887,39 +1887,39 @@ namespace glm
/// Low single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, lowp> lowp_f32mat2x2;
+ typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
/// Low single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, lowp> lowp_f32mat2x3;
+ typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
/// Low single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, lowp> lowp_f32mat2x4;
+ typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
/// Low single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, lowp> lowp_f32mat3x2;
+ typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
/// Low single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, lowp> lowp_f32mat3x3;
+ typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
/// Low single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, lowp> lowp_f32mat3x4;
+ typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
/// Low single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, lowp> lowp_f32mat4x2;
+ typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
/// Low single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, lowp> lowp_f32mat4x3;
+ typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
/// Low single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, lowp> lowp_f32mat4x4;
+ typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
/// Low single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -1944,39 +1944,39 @@ namespace glm
/// Low single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, mediump> mediump_f32mat2x2;
+ typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
/// Medium single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, mediump> mediump_f32mat2x3;
+ typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
/// Medium single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, mediump> mediump_f32mat2x4;
+ typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
/// Medium single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, mediump> mediump_f32mat3x2;
+ typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
/// Medium single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, mediump> mediump_f32mat3x3;
+ typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
/// Medium single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, mediump> mediump_f32mat3x4;
+ typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
/// Medium single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, mediump> mediump_f32mat4x2;
+ typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
/// Medium single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, mediump> mediump_f32mat4x3;
+ typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
/// Medium single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, mediump> mediump_f32mat4x4;
+ typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
/// Medium single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -2001,39 +2001,39 @@ namespace glm
/// High single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, highp> highp_f32mat2x2;
+ typedef mat<2, 2, f32, highp> highp_f32mat2x2;
/// High single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, highp> highp_f32mat2x3;
+ typedef mat<2, 3, f32, highp> highp_f32mat2x3;
/// High single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, highp> highp_f32mat2x4;
+ typedef mat<2, 4, f32, highp> highp_f32mat2x4;
/// High single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, highp> highp_f32mat3x2;
+ typedef mat<3, 2, f32, highp> highp_f32mat3x2;
/// High single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, highp> highp_f32mat3x3;
+ typedef mat<3, 3, f32, highp> highp_f32mat3x3;
/// High single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, highp> highp_f32mat3x4;
+ typedef mat<3, 4, f32, highp> highp_f32mat3x4;
/// High single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, highp> highp_f32mat4x2;
+ typedef mat<4, 2, f32, highp> highp_f32mat4x2;
/// High single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, highp> highp_f32mat4x3;
+ typedef mat<4, 3, f32, highp> highp_f32mat4x3;
/// High single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, highp> highp_f32mat4x4;
+ typedef mat<4, 4, f32, highp> highp_f32mat4x4;
/// High single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -2058,39 +2058,39 @@ namespace glm
/// Low double-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f64, lowp> lowp_f64mat2x2;
+ typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
/// Low double-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f64, lowp> lowp_f64mat2x3;
+ typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
/// Low double-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f64, lowp> lowp_f64mat2x4;
+ typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
/// Low double-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f64, lowp> lowp_f64mat3x2;
+ typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
/// Low double-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f64, lowp> lowp_f64mat3x3;
+ typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
/// Low double-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f64, lowp> lowp_f64mat3x4;
+ typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
/// Low double-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f64, lowp> lowp_f64mat4x2;
+ typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
/// Low double-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f64, lowp> lowp_f64mat4x3;
+ typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
/// Low double-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f64, lowp> lowp_f64mat4x4;
+ typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
/// Low double-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -2115,39 +2115,39 @@ namespace glm
/// Medium double-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f64, mediump> mediump_f64mat2x2;
+ typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
/// Medium double-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f64, mediump> mediump_f64mat2x3;
+ typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
/// Medium double-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f64, mediump> mediump_f64mat2x4;
+ typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
/// Medium double-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f64, mediump> mediump_f64mat3x2;
+ typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
/// Medium double-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f64, mediump> mediump_f64mat3x3;
+ typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
/// Medium double-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f64, mediump> mediump_f64mat3x4;
+ typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
/// Medium double-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f64, mediump> mediump_f64mat4x2;
+ typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
/// Medium double-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f64, mediump> mediump_f64mat4x3;
+ typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
/// Medium double-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f64, mediump> mediump_f64mat4x4;
+ typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
/// Medium double-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
@@ -2171,39 +2171,39 @@ namespace glm
/// High double-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f64, highp> highp_f64mat2x2;
+ typedef mat<2, 2, f64, highp> highp_f64mat2x2;
/// High double-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f64, highp> highp_f64mat2x3;
+ typedef mat<2, 3, f64, highp> highp_f64mat2x3;
/// High double-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f64, highp> highp_f64mat2x4;
+ typedef mat<2, 4, f64, highp> highp_f64mat2x4;
/// High double-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f64, highp> highp_f64mat3x2;
+ typedef mat<3, 2, f64, highp> highp_f64mat3x2;
/// High double-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f64, highp> highp_f64mat3x3;
+ typedef mat<3, 3, f64, highp> highp_f64mat3x3;
/// High double-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f64, highp> highp_f64mat3x4;
+ typedef mat<3, 4, f64, highp> highp_f64mat3x4;
/// High double-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f64, highp> highp_f64mat4x2;
+ typedef mat<4, 2, f64, highp> highp_f64mat4x2;
/// High double-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f64, highp> highp_f64mat4x3;
+ typedef mat<4, 3, f64, highp> highp_f64mat4x3;
/// High double-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f64, highp> highp_f64mat4x4;
+ typedef mat<4, 4, f64, highp> highp_f64mat4x4;
/// High double-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
diff --git a/3rdparty/glm/glm/glm.hpp b/3rdparty/glm/glm/glm.hpp
index 021a3609f95..bf226da7315 100644
--- a/3rdparty/glm/glm/glm.hpp
+++ b/3rdparty/glm/glm/glm.hpp
@@ -14,7 +14,7 @@
/// <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2
/// (pdf file)</a>.
///
-/// GLM core functionnalities require <glm/glm.hpp> to be included to be used.
+/// GLM core functionalities require <glm/glm.hpp> to be included to be used.
///
/// @defgroup core_types Types
///
diff --git a/3rdparty/glm/glm/gtc/bitfield.hpp b/3rdparty/glm/glm/gtc/bitfield.hpp
index 38a38b695ce..8a34139b4c4 100644
--- a/3rdparty/glm/glm/gtc/bitfield.hpp
+++ b/3rdparty/glm/glm/gtc/bitfield.hpp
@@ -32,62 +32,62 @@ namespace glm
/// Build a mask of 'count' bits
///
/// @see gtc_bitfield
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType mask(genIUType Bits);
/// Build a mask of 'count' bits
///
/// @see gtc_bitfield
- template <typename T, precision P, template <typename, precision> class vecIUType>
+ template<typename T, precision P, template<typename, precision> class vecIUType>
GLM_FUNC_DECL vecIUType<T, P> mask(vecIUType<T, P> const & v);
/// Rotate all bits to the right. All the bits dropped in the right side are inserted back on the left side.
///
/// @see gtc_bitfield
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType bitfieldRotateRight(genIUType In, int Shift);
/// Rotate all bits to the right. All the bits dropped in the right side are inserted back on the left side.
///
/// @see gtc_bitfield
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldRotateRight(vecType<T, P> const & In, int Shift);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldRotateRight(vecType<L, T, P> const & In, int Shift);
/// Rotate all bits to the left. All the bits dropped in the left side are inserted back on the right side.
///
/// @see gtc_bitfield
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType bitfieldRotateLeft(genIUType In, int Shift);
/// Rotate all bits to the left. All the bits dropped in the left side are inserted back on the right side.
///
/// @see gtc_bitfield
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldRotateLeft(vecType<T, P> const & In, int Shift);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldRotateLeft(vecType<L, T, P> const & In, int Shift);
/// Set to 1 a range of bits.
///
/// @see gtc_bitfield
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType bitfieldFillOne(genIUType Value, int FirstBit, int BitCount);
/// Set to 1 a range of bits.
///
/// @see gtc_bitfield
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldFillOne(vecType<T, P> const & Value, int FirstBit, int BitCount);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldFillOne(vecType<L, T, P> const & Value, int FirstBit, int BitCount);
/// Set to 0 a range of bits.
///
/// @see gtc_bitfield
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType bitfieldFillZero(genIUType Value, int FirstBit, int BitCount);
/// Set to 0 a range of bits.
///
/// @see gtc_bitfield
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> bitfieldFillZero(vecType<T, P> const & Value, int FirstBit, int BitCount);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> bitfieldFillZero(vecType<L, T, P> const & Value, int FirstBit, int BitCount);
/// Interleaves the bits of x and y.
/// The first bit is the first bit of x followed by the first bit of y.
diff --git a/3rdparty/glm/glm/gtc/bitfield.inl b/3rdparty/glm/glm/gtc/bitfield.inl
index 490cfb321eb..4331eec5bcf 100644
--- a/3rdparty/glm/glm/gtc/bitfield.inl
+++ b/3rdparty/glm/glm/gtc/bitfield.inl
@@ -6,16 +6,16 @@
namespace glm{
namespace detail
{
- template <typename PARAM, typename RET>
+ template<typename PARAM, typename RET>
GLM_FUNC_DECL RET bitfieldInterleave(PARAM x, PARAM y);
- template <typename PARAM, typename RET>
+ template<typename PARAM, typename RET>
GLM_FUNC_DECL RET bitfieldInterleave(PARAM x, PARAM y, PARAM z);
- template <typename PARAM, typename RET>
+ template<typename PARAM, typename RET>
GLM_FUNC_DECL RET bitfieldInterleave(PARAM x, PARAM y, PARAM z, PARAM w);
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint16 bitfieldInterleave(glm::uint8 x, glm::uint8 y)
{
glm::uint16 REG1(x);
@@ -33,7 +33,7 @@ namespace detail
return REG1 | (REG2 << 1);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint32 bitfieldInterleave(glm::uint16 x, glm::uint16 y)
{
glm::uint32 REG1(x);
@@ -54,7 +54,7 @@ namespace detail
return REG1 | (REG2 << 1);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint64 bitfieldInterleave(glm::uint32 x, glm::uint32 y)
{
glm::uint64 REG1(x);
@@ -78,7 +78,7 @@ namespace detail
return REG1 | (REG2 << 1);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint32 bitfieldInterleave(glm::uint8 x, glm::uint8 y, glm::uint8 z)
{
glm::uint32 REG1(x);
@@ -104,7 +104,7 @@ namespace detail
return REG1 | (REG2 << 1) | (REG3 << 2);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint64 bitfieldInterleave(glm::uint16 x, glm::uint16 y, glm::uint16 z)
{
glm::uint64 REG1(x);
@@ -134,7 +134,7 @@ namespace detail
return REG1 | (REG2 << 1) | (REG3 << 2);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint64 bitfieldInterleave(glm::uint32 x, glm::uint32 y, glm::uint32 z)
{
glm::uint64 REG1(x);
@@ -164,7 +164,7 @@ namespace detail
return REG1 | (REG2 << 1) | (REG3 << 2);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint32 bitfieldInterleave(glm::uint8 x, glm::uint8 y, glm::uint8 z, glm::uint8 w)
{
glm::uint32 REG1(x);
@@ -190,7 +190,7 @@ namespace detail
return REG1 | (REG2 << 1) | (REG3 << 2) | (REG4 << 3);
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER glm::uint64 bitfieldInterleave(glm::uint16 x, glm::uint16 y, glm::uint16 z, glm::uint16 w)
{
glm::uint64 REG1(x);
@@ -222,7 +222,7 @@ namespace detail
}
}//namespace detail
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType mask(genIUType Bits)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'mask' accepts only integer values");
@@ -230,15 +230,15 @@ namespace detail
return Bits >= sizeof(genIUType) * 8 ? ~static_cast<genIUType>(0) : (static_cast<genIUType>(1) << Bits) - static_cast<genIUType>(1);
}
- template <typename T, precision P, template <typename, precision> class vecIUType>
- GLM_FUNC_QUALIFIER vecIUType<T, P> mask(vecIUType<T, P> const& v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecIUType>
+ GLM_FUNC_QUALIFIER vecIUType<L, T, P> mask(vecIUType<L, T, P> const& v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'mask' accepts only integer values");
- return detail::functor1<T, T, P, vecIUType>::call(mask, v);
+ return detail::functor1<L, T, T, P>::call(mask, v);
}
- template <typename genIType>
+ template<typename genIType>
GLM_FUNC_QUALIFIER genIType bitfieldRotateRight(genIType In, int Shift)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIType>::is_integer, "'bitfieldRotateRight' accepts only integer values");
@@ -247,8 +247,8 @@ namespace detail
return (In << static_cast<genIType>(Shift)) | (In >> static_cast<genIType>(BitSize - Shift));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldRotateRight(vecType<T, P> const & In, int Shift)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldRotateRight(vecType<L, T, P> const & In, int Shift)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitfieldRotateRight' accepts only integer values");
@@ -256,7 +256,7 @@ namespace detail
return (In << static_cast<T>(Shift)) | (In >> static_cast<T>(BitSize - Shift));
}
- template <typename genIType>
+ template<typename genIType>
GLM_FUNC_QUALIFIER genIType bitfieldRotateLeft(genIType In, int Shift)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIType>::is_integer, "'bitfieldRotateLeft' accepts only integer values");
@@ -265,8 +265,8 @@ namespace detail
return (In >> static_cast<genIType>(Shift)) | (In << static_cast<genIType>(BitSize - Shift));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldRotateLeft(vecType<T, P> const& In, int Shift)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldRotateLeft(vecType<L, T, P> const& In, int Shift)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitfieldRotateLeft' accepts only integer values");
@@ -274,26 +274,26 @@ namespace detail
return (In >> static_cast<T>(Shift)) | (In << static_cast<T>(BitSize - Shift));
}
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)
{
return Value | static_cast<genIUType>(mask(BitCount) << FirstBit);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldFillOne(vecType<T, P> const& Value, int FirstBit, int BitCount)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldFillOne(vecType<L, T, P> const& Value, int FirstBit, int BitCount)
{
return Value | static_cast<T>(mask(BitCount) << FirstBit);
}
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)
{
return Value & static_cast<genIUType>(~(mask(BitCount) << FirstBit));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldFillZero(vecType<T, P> const& Value, int FirstBit, int BitCount)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldFillZero(vecType<L, T, P> const& Value, int FirstBit, int BitCount)
{
return Value & static_cast<T>(~(mask(BitCount) << FirstBit));
}
diff --git a/3rdparty/glm/glm/gtc/color_space.hpp b/3rdparty/glm/glm/gtc/color_space.hpp
index 636e5ed8f22..da300d932db 100644
--- a/3rdparty/glm/glm/gtc/color_space.hpp
+++ b/3rdparty/glm/glm/gtc/color_space.hpp
@@ -9,7 +9,7 @@
///
/// @brief Allow to perform bit operations on integer values
///
-/// <glm/gtc/color.hpp> need to be included to use these functionalities.
+/// <glm/gtc/color_space.hpp> need to be included to use these functionalities.
#pragma once
@@ -30,21 +30,25 @@ namespace glm
/// @addtogroup gtc_color_space
/// @{
- /// Convert a linear color to sRGB color using a standard gamma correction
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> convertLinearToSRGB(vecType<T, P> const & ColorLinear);
-
- /// Convert a linear color to sRGB color using a custom gamma correction
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> convertLinearToSRGB(vecType<T, P> const & ColorLinear, T Gamma);
-
- /// Convert a sRGB color to linear color using a standard gamma correction
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> convertSRGBToLinear(vecType<T, P> const & ColorSRGB);
-
- /// Convert a sRGB color to linear color using a custom gamma correction
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> convertSRGBToLinear(vecType<T, P> const & ColorSRGB, T Gamma);
+ /// Convert a linear color to sRGB color using a standard gamma correction.
+ /// IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> convertLinearToSRGB(vecType<L, T, P> const & ColorLinear);
+
+ /// Convert a linear color to sRGB color using a custom gamma correction.
+ /// IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> convertLinearToSRGB(vecType<L, T, P> const & ColorLinear, T Gamma);
+
+ /// Convert a sRGB color to linear color using a standard gamma correction.
+ /// IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> convertSRGBToLinear(vecType<L, T, P> const & ColorSRGB);
+
+ /// Convert a sRGB color to linear color using a custom gamma correction.
+ // IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> convertSRGBToLinear(vecType<L, T, P> const & ColorSRGB, T Gamma);
/// @}
} //namespace glm
diff --git a/3rdparty/glm/glm/gtc/color_space.inl b/3rdparty/glm/glm/gtc/color_space.inl
index 3fe293b0039..56341dea17b 100644
--- a/3rdparty/glm/glm/gtc/color_space.inl
+++ b/3rdparty/glm/glm/gtc/color_space.inl
@@ -4,72 +4,82 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
struct compute_rgbToSrgb
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const& ColorRGB, T GammaCorrection)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& ColorRGB, T GammaCorrection)
{
- vecType<T, P> const ClampedColor(clamp(ColorRGB, static_cast<T>(0), static_cast<T>(1)));
+ vecType<L, T, P> const ClampedColor(clamp(ColorRGB, static_cast<T>(0), static_cast<T>(1)));
return mix(
- pow(ClampedColor, vecType<T, P>(GammaCorrection)) * static_cast<T>(1.055) - static_cast<T>(0.055),
+ pow(ClampedColor, vecType<L, T, P>(GammaCorrection)) * static_cast<T>(1.055) - static_cast<T>(0.055),
ClampedColor * static_cast<T>(12.92),
- lessThan(ClampedColor, vecType<T, P>(static_cast<T>(0.0031308))));
+ lessThan(ClampedColor, vecType<L, T, P>(static_cast<T>(0.0031308))));
}
};
- template <typename T, precision P>
- struct compute_rgbToSrgb<T, P, tvec4>
+ template<typename T, precision P>
+ struct compute_rgbToSrgb<4, T, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorRGB, T GammaCorrection)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const& ColorRGB, T GammaCorrection)
{
- return tvec4<T, P>(compute_rgbToSrgb<T, P, tvec3>::call(tvec3<T, P>(ColorRGB), GammaCorrection), ColorRGB.a);
+ return vec<4, T, P>(compute_rgbToSrgb<3, T, P, vec>::call(vec<3, T, P>(ColorRGB), GammaCorrection), ColorRGB.w);
}
};
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
struct compute_srgbToRgb
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const& ColorSRGB, T Gamma)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& ColorSRGB, T Gamma)
{
return mix(
- pow((ColorSRGB + static_cast<T>(0.055)) * static_cast<T>(0.94786729857819905213270142180095), vecType<T, P>(Gamma)),
+ pow((ColorSRGB + static_cast<T>(0.055)) * static_cast<T>(0.94786729857819905213270142180095), vecType<L, T, P>(Gamma)),
ColorSRGB * static_cast<T>(0.07739938080495356037151702786378),
- lessThanEqual(ColorSRGB, vecType<T, P>(static_cast<T>(0.04045))));
+ lessThanEqual(ColorSRGB, vecType<L, T, P>(static_cast<T>(0.04045))));
}
};
- template <typename T, precision P>
- struct compute_srgbToRgb<T, P, tvec4>
+ template<typename T, precision P>
+ struct compute_srgbToRgb<4, T, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorSRGB, T Gamma)
+ GLM_FUNC_QUALIFIER static vec<4, T, P> call(vec<4, T, P> const& ColorSRGB, T Gamma)
{
- return tvec4<T, P>(compute_srgbToRgb<T, P, tvec3>::call(tvec3<T, P>(ColorSRGB), Gamma), ColorSRGB.a);
+ return vec<4, T, P>(compute_srgbToRgb<3, T, P, vec>::call(vec<3, T, P>(ColorSRGB), Gamma), ColorSRGB.w);
}
};
}//namespace detail
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertLinearToSRGB(vecType<T, P> const& ColorLinear)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> convertLinearToSRGB(vecType<L, T, P> const& ColorLinear)
{
- return detail::compute_rgbToSrgb<T, P, vecType>::call(ColorLinear, static_cast<T>(0.41666));
+ return detail::compute_rgbToSrgb<L, T, P, vecType>::call(ColorLinear, static_cast<T>(0.41666));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertLinearToSRGB(vecType<T, P> const& ColorLinear, T Gamma)
+ // Based on Ian Taylor http://chilliant.blogspot.fr/2012/08/srgb-approximations-for-hlsl.html
+ template<>
+ GLM_FUNC_QUALIFIER vec<3, float, lowp> convertLinearToSRGB(vec<3, float, lowp> const& ColorLinear)
{
- return detail::compute_rgbToSrgb<T, P, vecType>::call(ColorLinear, static_cast<T>(1) / Gamma);
+ vec<3, float, lowp> S1 = sqrt(ColorLinear);
+ vec<3, float, lowp> S2 = sqrt(S1);
+ vec<3, float, lowp> S3 = sqrt(S2);
+ return 0.662002687f * S1 + 0.684122060f * S2 - 0.323583601f * S3 - 0.0225411470f * ColorLinear;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertSRGBToLinear(vecType<T, P> const& ColorSRGB)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> convertLinearToSRGB(vecType<L, T, P> const& ColorLinear, T Gamma)
{
- return detail::compute_srgbToRgb<T, P, vecType>::call(ColorSRGB, static_cast<T>(2.4));
+ return detail::compute_rgbToSrgb<L, T, P, vecType>::call(ColorLinear, static_cast<T>(1) / Gamma);
}
-
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertSRGBToLinear(vecType<T, P> const& ColorSRGB, T Gamma)
+
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> convertSRGBToLinear(vecType<L, T, P> const& ColorSRGB)
+ {
+ return detail::compute_srgbToRgb<L, T, P, vecType>::call(ColorSRGB, static_cast<T>(2.4));
+ }
+
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> convertSRGBToLinear(vecType<L, T, P> const& ColorSRGB, T Gamma)
{
- return detail::compute_srgbToRgb<T, P, vecType>::call(ColorSRGB, Gamma);
+ return detail::compute_srgbToRgb<L, T, P, vecType>::call(ColorSRGB, Gamma);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/constants.hpp b/3rdparty/glm/glm/gtc/constants.hpp
index d3358c7616a..dd8f285621f 100644
--- a/3rdparty/glm/glm/gtc/constants.hpp
+++ b/3rdparty/glm/glm/gtc/constants.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/constants.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
///
/// @defgroup gtc_constants GLM_GTC_constants
/// @ingroup gtc
@@ -27,147 +26,147 @@ namespace glm
/// Return the epsilon constant for floating point types.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon();
/// Return 0.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType zero();
/// Return 1.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType one();
/// Return the pi constant.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType pi();
/// Return pi * 2.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi();
/// Return square root of pi.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi();
/// Return pi / 2.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi();
/// Return pi / 2 * 3.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi();
/// Return pi / 4.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi();
/// Return 1 / pi.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi();
/// Return 1 / (pi * 2).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi();
/// Return 2 / pi.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi();
/// Return 4 / pi.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi();
/// Return 2 / sqrt(pi).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi();
/// Return 1 / sqrt(2).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two();
/// Return sqrt(pi / 2).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi();
/// Return sqrt(2 * pi).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi();
/// Return sqrt(ln(4)).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four();
/// Return e constant.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType e();
/// Return Euler's constant.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType euler();
/// Return sqrt(2).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two();
/// Return sqrt(3).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three();
/// Return sqrt(5).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five();
/// Return ln(2).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two();
/// Return ln(10).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten();
/// Return ln(ln(2)).
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two();
/// Return 1 / 3.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType third();
/// Return 2 / 3.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds();
/// Return the golden ratio constant.
/// @see gtc_constants
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio();
/// @}
diff --git a/3rdparty/glm/glm/gtc/constants.inl b/3rdparty/glm/glm/gtc/constants.inl
index cb451d0dc71..2ea1085592d 100644
--- a/3rdparty/glm/glm/gtc/constants.inl
+++ b/3rdparty/glm/glm/gtc/constants.inl
@@ -5,175 +5,175 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType epsilon()
{
return std::numeric_limits<genType>::epsilon();
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType zero()
{
return genType(0);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType one()
{
return genType(1);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType pi()
{
return genType(3.14159265358979323846264338327950288);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType two_pi()
{
return genType(6.28318530717958647692528676655900576);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_pi()
{
return genType(1.772453850905516027);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType half_pi()
{
return genType(1.57079632679489661923132169163975144);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType three_over_two_pi()
{
return genType(4.71238898038468985769396507491925432);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType quarter_pi()
{
return genType(0.785398163397448309615660845819875721);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType one_over_pi()
{
return genType(0.318309886183790671537767526745028724);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType one_over_two_pi()
{
return genType(0.159154943091895335768883763372514362);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType two_over_pi()
{
return genType(0.636619772367581343075535053490057448);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType four_over_pi()
{
return genType(1.273239544735162686151070106980114898);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType two_over_root_pi()
{
return genType(1.12837916709551257389615890312154517);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType one_over_root_two()
{
return genType(0.707106781186547524400844362104849039);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_half_pi()
{
return genType(1.253314137315500251);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_two_pi()
{
return genType(2.506628274631000502);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_ln_four()
{
return genType(1.17741002251547469);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType e()
{
return genType(2.71828182845904523536);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType euler()
{
return genType(0.577215664901532860606);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_two()
{
return genType(1.41421356237309504880168872420969808);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_three()
{
return genType(1.73205080756887729352744634150587236);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType root_five()
{
return genType(2.23606797749978969640917366873127623);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType ln_two()
{
return genType(0.693147180559945309417232121458176568);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType ln_ten()
{
return genType(2.30258509299404568401799145468436421);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType ln_ln_two()
{
return genType(-0.3665129205816643);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType third()
{
return genType(0.3333333333333333333333333333333333333333);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType two_thirds()
{
return genType(0.666666666666666666666666666666666666667);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType golden_ratio()
{
return genType(1.61803398874989484820458683436563811);
diff --git a/3rdparty/glm/glm/gtc/epsilon.hpp b/3rdparty/glm/glm/gtc/epsilon.hpp
index 289f5b74a86..5510daf21dd 100644
--- a/3rdparty/glm/glm/gtc/epsilon.hpp
+++ b/3rdparty/glm/glm/gtc/epsilon.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/epsilon.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence)
///
/// @defgroup gtc_epsilon GLM_GTC_epsilon
@@ -31,17 +30,17 @@ namespace glm
/// True if this expression is satisfied.
///
/// @see gtc_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,
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> epsilonEqual(
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& y,
T const & epsilon);
/// Returns the component-wise comparison of |x - y| < epsilon.
/// True if this expression is satisfied.
///
/// @see gtc_epsilon
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL bool epsilonEqual(
genType const & x,
genType const & y,
@@ -51,7 +50,7 @@ namespace glm
/// True if this expression is not satisfied.
///
/// @see gtc_epsilon
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::boolType epsilonNotEqual(
genType const & x,
genType const & y,
@@ -61,7 +60,7 @@ namespace glm
/// True if this expression is not satisfied.
///
/// @see gtc_epsilon
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL bool epsilonNotEqual(
genType const & x,
genType const & y,
diff --git a/3rdparty/glm/glm/gtc/epsilon.inl b/3rdparty/glm/glm/gtc/epsilon.inl
index b5577d933d7..fd86b7ad522 100644
--- a/3rdparty/glm/glm/gtc/epsilon.inl
+++ b/3rdparty/glm/glm/gtc/epsilon.inl
@@ -11,7 +11,7 @@
namespace glm
{
- template <>
+ template<>
GLM_FUNC_QUALIFIER bool epsilonEqual
(
float const & x,
@@ -22,7 +22,7 @@ namespace glm
return abs(x - y) < epsilon;
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER bool epsilonEqual
(
double const & x,
@@ -33,7 +33,7 @@ namespace glm
return abs(x - y) < epsilon;
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER bool epsilonNotEqual
(
float const & x,
@@ -44,7 +44,7 @@ namespace glm
return abs(x - y) >= epsilon;
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER bool epsilonNotEqual
(
double const & x,
@@ -55,71 +55,71 @@ namespace glm
return abs(x - y) >= epsilon;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> epsilonEqual
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> epsilonEqual
(
- vecType<T, P> const & x,
- vecType<T, P> const & y,
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& y,
T const & epsilon
)
{
- return lessThan(abs(x - y), vecType<T, P>(epsilon));
+ return lessThan(abs(x - y), vecType<L, T, P>(epsilon));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> epsilonEqual
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> epsilonEqual
(
- vecType<T, P> const & x,
- vecType<T, P> const & y,
- vecType<T, P> const & epsilon
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& y,
+ vecType<L, T, P> const& epsilon
)
{
- return lessThan(abs(x - y), vecType<T, P>(epsilon));
+ return lessThan(abs(x - y), vecType<L, T, P>(epsilon));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> epsilonNotEqual
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> epsilonNotEqual
(
- vecType<T, P> const & x,
- vecType<T, P> const & y,
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& y,
T const & epsilon
)
{
- return greaterThanEqual(abs(x - y), vecType<T, P>(epsilon));
+ return greaterThanEqual(abs(x - y), vecType<L, T, P>(epsilon));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> epsilonNotEqual
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> epsilonNotEqual
(
- vecType<T, P> const & x,
- vecType<T, P> const & y,
- vecType<T, P> const & epsilon
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& y,
+ vecType<L, T, P> const& epsilon
)
{
- return greaterThanEqual(abs(x - y), vecType<T, P>(epsilon));
+ return greaterThanEqual(abs(x - y), vecType<L, T, P>(epsilon));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> epsilonEqual
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> epsilonEqual
(
tquat<T, P> const & x,
tquat<T, P> const & y,
T const & epsilon
)
{
- tvec4<T, P> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
- return lessThan(abs(v), tvec4<T, P>(epsilon));
+ vec<4, T, P> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
+ return lessThan(abs(v), vec<4, T, P>(epsilon));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> epsilonNotEqual
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> epsilonNotEqual
(
tquat<T, P> const & x,
tquat<T, P> const & y,
T const & epsilon
)
{
- tvec4<T, P> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
- return greaterThanEqual(abs(v), tvec4<T, P>(epsilon));
+ vec<4, T, P> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
+ return greaterThanEqual(abs(v), vec<4, T, P>(epsilon));
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/functions.hpp b/3rdparty/glm/glm/gtc/functions.hpp
index ab1590b4984..89048cc18a6 100644
--- a/3rdparty/glm/glm/gtc/functions.hpp
+++ b/3rdparty/glm/glm/gtc/functions.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/functions.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence)
///
/// @defgroup gtc_functions GLM_GTC_functions
@@ -31,7 +30,7 @@ namespace glm
/// 1D gauss function
///
/// @see gtc_epsilon
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T gauss(
T x,
T ExpectedValue,
@@ -40,11 +39,11 @@ namespace glm
/// 2D gauss function
///
/// @see gtc_epsilon
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T gauss(
- tvec2<T, P> const& Coord,
- tvec2<T, P> const& ExpectedValue,
- tvec2<T, P> const& StandardDeviation);
+ vec<2, T, P> const& Coord,
+ vec<2, T, P> const& ExpectedValue,
+ vec<2, T, P> const& StandardDeviation);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/functions.inl b/3rdparty/glm/glm/gtc/functions.inl
index 1dbc4967b97..b332e9ebd03 100644
--- a/3rdparty/glm/glm/gtc/functions.inl
+++ b/3rdparty/glm/glm/gtc/functions.inl
@@ -5,7 +5,7 @@
namespace glm
{
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T gauss
(
T x,
@@ -16,15 +16,15 @@ namespace glm
return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast<T>(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast<T>(6.28318530717958647692528676655900576)));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T gauss
(
- tvec2<T, P> const& Coord,
- tvec2<T, P> const& ExpectedValue,
- tvec2<T, P> const& StandardDeviation
+ vec<2, T, P> const& Coord,
+ vec<2, T, P> const& ExpectedValue,
+ vec<2, T, P> const& StandardDeviation
)
{
- tvec2<T, P> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast<T>(2) * StandardDeviation * StandardDeviation);
+ vec<2, T, P> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast<T>(2) * StandardDeviation * StandardDeviation);
return exp(-(Squared.x + Squared.y));
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/integer.hpp b/3rdparty/glm/glm/gtc/integer.hpp
index 69ffb1d3ba3..894500c5dc1 100644
--- a/3rdparty/glm/glm/gtc/integer.hpp
+++ b/3rdparty/glm/glm/gtc/integer.hpp
@@ -32,7 +32,7 @@ namespace glm
/// Returns the log2 of x for integer values. Can be reliably using to compute mipmap count from the texture size.
/// @see gtc_integer
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType log2(genIUType x);
/// Modulus. Returns x % y
@@ -43,7 +43,7 @@ namespace glm
/// @see gtc_integer
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y);
/// Modulus. Returns x % y
@@ -55,8 +55,8 @@ namespace glm
/// @see gtc_integer
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, T y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> mod(vecType<L, T, P> const & x, T y);
/// Modulus. Returns x % y
/// for each component in x using the floating point value y.
@@ -67,8 +67,8 @@ namespace glm
/// @see gtc_integer
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> mod(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Returns a value equal to the nearest integer to x.
/// The fraction 0.5 will round in a direction chosen by the
@@ -80,8 +80,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a>
/// @see gtc_integer
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<int, P> iround(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, int, P> iround(vecType<L, T, P> const & x);
/// Returns a value equal to the nearest integer to x.
/// The fraction 0.5 will round in a direction chosen by the
@@ -93,8 +93,8 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a>
/// @see gtc_integer
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<uint, P> uround(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, uint, P> uround(vecType<L, T, P> const & x);
/// @}
} //namespace glm
diff --git a/3rdparty/glm/glm/gtc/integer.inl b/3rdparty/glm/glm/gtc/integer.inl
index 7ce2918a88a..1dfe9038674 100644
--- a/3rdparty/glm/glm/gtc/integer.inl
+++ b/3rdparty/glm/glm/gtc/integer.inl
@@ -4,36 +4,36 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
- struct compute_log2<T, P, vecType, false, Aligned>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool Aligned>
+ struct compute_log2<L, T, P, vecType, false, Aligned>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & vec)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const& v)
{
//Equivalent to return findMSB(vec); but save one function call in ASM with VC
//return findMSB(vec);
- return vecType<T, P>(detail::compute_findMSB_vec<T, P, vecType, sizeof(T) * 8>::call(vec));
+ return vecType<L, T, P>(detail::compute_findMSB_vec<L, T, P, vecType, sizeof(T) * 8>::call(v));
}
};
# if GLM_HAS_BITSCAN_WINDOWS
- template <precision P, bool Aligned>
- struct compute_log2<int, P, tvec4, false, Aligned>
+ template<precision P, bool Aligned>
+ struct compute_log2<4, int, P, vec, false, Aligned>
{
- GLM_FUNC_QUALIFIER static tvec4<int, P> call(tvec4<int, P> const & vec)
+ GLM_FUNC_QUALIFIER static vec<4, int, P> call(vec<4, int, P> const& v)
{
- tvec4<int, P> Result(glm::uninitialize);
+ vec<4, int, P> Result(glm::uninitialize);
- _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.x), vec.x);
- _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.y), vec.y);
- _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.z), vec.z);
- _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.w), vec.w);
+ _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.x), v.x);
+ _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.y), v.y);
+ _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.z), v.z);
+ _BitScanReverse(reinterpret_cast<unsigned long*>(&Result.w), v.w);
return Result;
}
};
# endif//GLM_HAS_BITSCAN_WINDOWS
}//namespace detail
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER int iround(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'iround' only accept floating-point inputs");
@@ -42,16 +42,16 @@ namespace detail
return static_cast<int>(x + static_cast<genType>(0.5));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<int, P> iround(vecType<T, P> const& x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, int, P> iround(vecType<L, T, P> const& x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'iround' only accept floating-point inputs");
- assert(all(lessThanEqual(vecType<T, P>(0), x)));
+ assert(all(lessThanEqual(vecType<L, T, P>(0), x)));
- return vecType<int, P>(x + static_cast<T>(0.5));
+ return vecType<L, int, P>(x + static_cast<T>(0.5));
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER uint uround(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'uround' only accept floating-point inputs");
@@ -60,12 +60,12 @@ namespace detail
return static_cast<uint>(x + static_cast<genType>(0.5));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<uint, P> uround(vecType<T, P> const& x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, uint, P> uround(vecType<L, T, P> const& x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'uround' only accept floating-point inputs");
- assert(all(lessThanEqual(vecType<T, P>(0), x)));
+ assert(all(lessThanEqual(vecType<L, T, P>(0), x)));
- return vecType<uint, P>(x + static_cast<T>(0.5));
+ return vecType<L, uint, P>(x + static_cast<T>(0.5));
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/matrix_access.hpp b/3rdparty/glm/glm/gtc/matrix_access.hpp
index e4156ef4441..ae3bd8d12f6 100644
--- a/3rdparty/glm/glm/gtc/matrix_access.hpp
+++ b/3rdparty/glm/glm/gtc/matrix_access.hpp
@@ -25,14 +25,14 @@ namespace glm
/// Get a specific row of a matrix.
/// @see gtc_matrix_access
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::row_type row(
genType const & m,
length_t index);
/// Set a specific row to a matrix.
/// @see gtc_matrix_access
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType row(
genType const & m,
length_t index,
@@ -40,14 +40,14 @@ namespace glm
/// Get a specific column of a matrix.
/// @see gtc_matrix_access
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::col_type column(
genType const & m,
length_t index);
/// Set a specific column to a matrix.
/// @see gtc_matrix_access
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType column(
genType const & m,
length_t index,
diff --git a/3rdparty/glm/glm/gtc/matrix_access.inl b/3rdparty/glm/glm/gtc/matrix_access.inl
index 831b94056e0..23ba348c6aa 100644
--- a/3rdparty/glm/glm/gtc/matrix_access.inl
+++ b/3rdparty/glm/glm/gtc/matrix_access.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType row
(
genType const & m,
@@ -19,7 +19,7 @@ namespace glm
return Result;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER typename genType::row_type row
(
genType const & m,
@@ -34,7 +34,7 @@ namespace glm
return Result;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType column
(
genType const & m,
@@ -49,7 +49,7 @@ namespace glm
return Result;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER typename genType::col_type column
(
genType const & m,
diff --git a/3rdparty/glm/glm/gtc/matrix_integer.hpp b/3rdparty/glm/glm/gtc/matrix_integer.hpp
index fdc816d5f24..0f2c0d994de 100644
--- a/3rdparty/glm/glm/gtc/matrix_integer.hpp
+++ b/3rdparty/glm/glm/gtc/matrix_integer.hpp
@@ -33,300 +33,300 @@ namespace glm
/// High-precision signed integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<int, highp> highp_imat2;
+ typedef mat<2, 2, int, highp> highp_imat2;
/// High-precision signed integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<int, highp> highp_imat3;
+ typedef mat<3, 3, int, highp> highp_imat3;
/// High-precision signed integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<int, highp> highp_imat4;
+ typedef mat<4, 4, int, highp> highp_imat4;
/// High-precision signed integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<int, highp> highp_imat2x2;
+ typedef mat<2, 2, int, highp> highp_imat2x2;
/// High-precision signed integer 2x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x3<int, highp> highp_imat2x3;
+ typedef mat<2, 3, int, highp> highp_imat2x3;
/// High-precision signed integer 2x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x4<int, highp> highp_imat2x4;
+ typedef mat<2, 4, int, highp> highp_imat2x4;
/// High-precision signed integer 3x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x2<int, highp> highp_imat3x2;
+ typedef mat<3, 2, int, highp> highp_imat3x2;
/// High-precision signed integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<int, highp> highp_imat3x3;
+ typedef mat<3, 3, int, highp> highp_imat3x3;
/// High-precision signed integer 3x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x4<int, highp> highp_imat3x4;
+ typedef mat<3, 4, int, highp> highp_imat3x4;
/// High-precision signed integer 4x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x2<int, highp> highp_imat4x2;
+ typedef mat<4, 2, int, highp> highp_imat4x2;
/// High-precision signed integer 4x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x3<int, highp> highp_imat4x3;
+ typedef mat<4, 3, int, highp> highp_imat4x3;
/// High-precision signed integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<int, highp> highp_imat4x4;
+ typedef mat<4, 4, int, highp> highp_imat4x4;
/// Medium-precision signed integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<int, mediump> mediump_imat2;
+ typedef mat<2, 2, int, mediump> mediump_imat2;
/// Medium-precision signed integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<int, mediump> mediump_imat3;
+ typedef mat<3, 3, int, mediump> mediump_imat3;
/// Medium-precision signed integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<int, mediump> mediump_imat4;
+ typedef mat<4, 4, int, mediump> mediump_imat4;
/// Medium-precision signed integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<int, mediump> mediump_imat2x2;
+ typedef mat<2, 2, int, mediump> mediump_imat2x2;
/// Medium-precision signed integer 2x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x3<int, mediump> mediump_imat2x3;
+ typedef mat<2, 3, int, mediump> mediump_imat2x3;
/// Medium-precision signed integer 2x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x4<int, mediump> mediump_imat2x4;
+ typedef mat<2, 4, int, mediump> mediump_imat2x4;
/// Medium-precision signed integer 3x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x2<int, mediump> mediump_imat3x2;
+ typedef mat<3, 2, int, mediump> mediump_imat3x2;
/// Medium-precision signed integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<int, mediump> mediump_imat3x3;
+ typedef mat<3, 3, int, mediump> mediump_imat3x3;
/// Medium-precision signed integer 3x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x4<int, mediump> mediump_imat3x4;
+ typedef mat<3, 4, int, mediump> mediump_imat3x4;
/// Medium-precision signed integer 4x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x2<int, mediump> mediump_imat4x2;
+ typedef mat<4, 2, int, mediump> mediump_imat4x2;
/// Medium-precision signed integer 4x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x3<int, mediump> mediump_imat4x3;
+ typedef mat<4, 3, int, mediump> mediump_imat4x3;
/// Medium-precision signed integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<int, mediump> mediump_imat4x4;
+ typedef mat<4, 4, int, mediump> mediump_imat4x4;
/// Low-precision signed integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<int, lowp> lowp_imat2;
+ typedef mat<2, 2, int, lowp> lowp_imat2;
/// Low-precision signed integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<int, lowp> lowp_imat3;
+ typedef mat<3, 3, int, lowp> lowp_imat3;
/// Low-precision signed integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<int, lowp> lowp_imat4;
+ typedef mat<4, 4, int, lowp> lowp_imat4;
/// Low-precision signed integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<int, lowp> lowp_imat2x2;
+ typedef mat<2, 2, int, lowp> lowp_imat2x2;
/// Low-precision signed integer 2x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x3<int, lowp> lowp_imat2x3;
+ typedef mat<2, 3, int, lowp> lowp_imat2x3;
/// Low-precision signed integer 2x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x4<int, lowp> lowp_imat2x4;
+ typedef mat<2, 4, int, lowp> lowp_imat2x4;
/// Low-precision signed integer 3x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x2<int, lowp> lowp_imat3x2;
+ typedef mat<3, 2, int, lowp> lowp_imat3x2;
/// Low-precision signed integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<int, lowp> lowp_imat3x3;
+ typedef mat<3, 3, int, lowp> lowp_imat3x3;
/// Low-precision signed integer 3x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x4<int, lowp> lowp_imat3x4;
+ typedef mat<3, 4, int, lowp> lowp_imat3x4;
/// Low-precision signed integer 4x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x2<int, lowp> lowp_imat4x2;
+ typedef mat<4, 2, int, lowp> lowp_imat4x2;
/// Low-precision signed integer 4x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x3<int, lowp> lowp_imat4x3;
+ typedef mat<4, 3, int, lowp> lowp_imat4x3;
/// Low-precision signed integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<int, lowp> lowp_imat4x4;
+ typedef mat<4, 4, int, lowp> lowp_imat4x4;
/// High-precision unsigned integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<uint, highp> highp_umat2;
+ typedef mat<2, 2, uint, highp> highp_umat2;
/// High-precision unsigned integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<uint, highp> highp_umat3;
+ typedef mat<3, 3, uint, highp> highp_umat3;
/// High-precision unsigned integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<uint, highp> highp_umat4;
+ typedef mat<4, 4, uint, highp> highp_umat4;
/// High-precision unsigned integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<uint, highp> highp_umat2x2;
+ typedef mat<2, 2, uint, highp> highp_umat2x2;
/// High-precision unsigned integer 2x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x3<uint, highp> highp_umat2x3;
+ typedef mat<2, 3, uint, highp> highp_umat2x3;
/// High-precision unsigned integer 2x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x4<uint, highp> highp_umat2x4;
+ typedef mat<2, 4, uint, highp> highp_umat2x4;
/// High-precision unsigned integer 3x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x2<uint, highp> highp_umat3x2;
+ typedef mat<3, 2, uint, highp> highp_umat3x2;
/// High-precision unsigned integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<uint, highp> highp_umat3x3;
+ typedef mat<3, 3, uint, highp> highp_umat3x3;
/// High-precision unsigned integer 3x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x4<uint, highp> highp_umat3x4;
+ typedef mat<3, 4, uint, highp> highp_umat3x4;
/// High-precision unsigned integer 4x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x2<uint, highp> highp_umat4x2;
+ typedef mat<4, 2, uint, highp> highp_umat4x2;
/// High-precision unsigned integer 4x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x3<uint, highp> highp_umat4x3;
+ typedef mat<4, 3, uint, highp> highp_umat4x3;
/// High-precision unsigned integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<uint, highp> highp_umat4x4;
+ typedef mat<4, 4, uint, highp> highp_umat4x4;
/// Medium-precision unsigned integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<uint, mediump> mediump_umat2;
+ typedef mat<2, 2, uint, mediump> mediump_umat2;
/// Medium-precision unsigned integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<uint, mediump> mediump_umat3;
+ typedef mat<3, 3, uint, mediump> mediump_umat3;
/// Medium-precision unsigned integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<uint, mediump> mediump_umat4;
+ typedef mat<4, 4, uint, mediump> mediump_umat4;
/// Medium-precision unsigned integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<uint, mediump> mediump_umat2x2;
+ typedef mat<2, 2, uint, mediump> mediump_umat2x2;
/// Medium-precision unsigned integer 2x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x3<uint, mediump> mediump_umat2x3;
+ typedef mat<2, 3, uint, mediump> mediump_umat2x3;
/// Medium-precision unsigned integer 2x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x4<uint, mediump> mediump_umat2x4;
+ typedef mat<2, 4, uint, mediump> mediump_umat2x4;
/// Medium-precision unsigned integer 3x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x2<uint, mediump> mediump_umat3x2;
+ typedef mat<3, 2, uint, mediump> mediump_umat3x2;
/// Medium-precision unsigned integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<uint, mediump> mediump_umat3x3;
+ typedef mat<3, 3, uint, mediump> mediump_umat3x3;
/// Medium-precision unsigned integer 3x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x4<uint, mediump> mediump_umat3x4;
+ typedef mat<3, 4, uint, mediump> mediump_umat3x4;
/// Medium-precision unsigned integer 4x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x2<uint, mediump> mediump_umat4x2;
+ typedef mat<4, 2, uint, mediump> mediump_umat4x2;
/// Medium-precision unsigned integer 4x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x3<uint, mediump> mediump_umat4x3;
+ typedef mat<4, 3, uint, mediump> mediump_umat4x3;
/// Medium-precision unsigned integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<uint, mediump> mediump_umat4x4;
+ typedef mat<4, 4, uint, mediump> mediump_umat4x4;
/// Low-precision unsigned integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<uint, lowp> lowp_umat2;
+ typedef mat<2, 2, uint, lowp> lowp_umat2;
/// Low-precision unsigned integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<uint, lowp> lowp_umat3;
+ typedef mat<3, 3, uint, lowp> lowp_umat3;
/// Low-precision unsigned integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<uint, lowp> lowp_umat4;
+ typedef mat<4, 4, uint, lowp> lowp_umat4;
/// Low-precision unsigned integer 2x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x2<uint, lowp> lowp_umat2x2;
+ typedef mat<2, 2, uint, lowp> lowp_umat2x2;
/// Low-precision unsigned integer 2x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x3<uint, lowp> lowp_umat2x3;
+ typedef mat<2, 3, uint, lowp> lowp_umat2x3;
/// Low-precision unsigned integer 2x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat2x4<uint, lowp> lowp_umat2x4;
+ typedef mat<2, 4, uint, lowp> lowp_umat2x4;
/// Low-precision unsigned integer 3x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x2<uint, lowp> lowp_umat3x2;
+ typedef mat<3, 2, uint, lowp> lowp_umat3x2;
/// Low-precision unsigned integer 3x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x3<uint, lowp> lowp_umat3x3;
+ typedef mat<3, 3, uint, lowp> lowp_umat3x3;
/// Low-precision unsigned integer 3x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat3x4<uint, lowp> lowp_umat3x4;
+ typedef mat<3, 4, uint, lowp> lowp_umat3x4;
/// Low-precision unsigned integer 4x2 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x2<uint, lowp> lowp_umat4x2;
+ typedef mat<4, 2, uint, lowp> lowp_umat4x2;
/// Low-precision unsigned integer 4x3 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x3<uint, lowp> lowp_umat4x3;
+ typedef mat<4, 3, uint, lowp> lowp_umat4x3;
/// Low-precision unsigned integer 4x4 matrix.
/// @see gtc_matrix_integer
- typedef tmat4x4<uint, lowp> lowp_umat4x4;
+ typedef mat<4, 4, uint, lowp> lowp_umat4x4;
#if(defined(GLM_PRECISION_HIGHP_INT))
typedef highp_imat2 imat2;
diff --git a/3rdparty/glm/glm/gtc/matrix_inverse.hpp b/3rdparty/glm/glm/gtc/matrix_inverse.hpp
index 589381d4728..bbc73800eb7 100644
--- a/3rdparty/glm/glm/gtc/matrix_inverse.hpp
+++ b/3rdparty/glm/glm/gtc/matrix_inverse.hpp
@@ -32,7 +32,7 @@ namespace glm
/// @param m Input matrix to invert.
/// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
/// @see gtc_matrix_inverse
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType affineInverse(genType const & m);
/// Compute the inverse transpose of a matrix.
@@ -40,7 +40,7 @@ namespace glm
/// @param m Input matrix to invert transpose.
/// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate.
/// @see gtc_matrix_inverse
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType inverseTranspose(genType const & m);
/// @}
diff --git a/3rdparty/glm/glm/gtc/matrix_inverse.inl b/3rdparty/glm/glm/gtc/matrix_inverse.inl
index 36c9bf7c7f4..b1d9d900548 100644
--- a/3rdparty/glm/glm/gtc/matrix_inverse.inl
+++ b/3rdparty/glm/glm/gtc/matrix_inverse.inl
@@ -3,35 +3,35 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> affineInverse(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> affineInverse(mat<3, 3, T, P> const & m)
{
- tmat2x2<T, P> const Inv(inverse(tmat2x2<T, P>(m)));
+ mat<2, 2, T, P> const Inv(inverse(mat<2, 2, T, P>(m)));
- return tmat3x3<T, P>(
- tvec3<T, P>(Inv[0], static_cast<T>(0)),
- tvec3<T, P>(Inv[1], static_cast<T>(0)),
- tvec3<T, P>(-Inv * tvec2<T, P>(m[2]), static_cast<T>(1)));
+ return mat<3, 3, T, P>(
+ vec<3, T, P>(Inv[0], static_cast<T>(0)),
+ vec<3, T, P>(Inv[1], static_cast<T>(0)),
+ vec<3, T, P>(-Inv * vec<2, T, P>(m[2]), static_cast<T>(1)));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> affineInverse(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> affineInverse(mat<4, 4, T, P> const & m)
{
- tmat3x3<T, P> const Inv(inverse(tmat3x3<T, P>(m)));
+ mat<3, 3, T, P> const Inv(inverse(mat<3, 3, T, P>(m)));
- return tmat4x4<T, P>(
- tvec4<T, P>(Inv[0], static_cast<T>(0)),
- tvec4<T, P>(Inv[1], static_cast<T>(0)),
- tvec4<T, P>(Inv[2], static_cast<T>(0)),
- tvec4<T, P>(-Inv * tvec3<T, P>(m[3]), static_cast<T>(1)));
+ return mat<4, 4, T, P>(
+ vec<4, T, P>(Inv[0], static_cast<T>(0)),
+ vec<4, T, P>(Inv[1], static_cast<T>(0)),
+ vec<4, T, P>(Inv[2], static_cast<T>(0)),
+ vec<4, T, P>(-Inv * vec<3, T, P>(m[3]), static_cast<T>(1)));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> inverseTranspose(tmat2x2<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> inverseTranspose(mat<2, 2, T, P> const & m)
{
T Determinant = m[0][0] * m[1][1] - m[1][0] * m[0][1];
- tmat2x2<T, P> Inverse(
+ mat<2, 2, T, P> Inverse(
+ m[1][1] / Determinant,
- m[0][1] / Determinant,
- m[1][0] / Determinant,
@@ -40,15 +40,15 @@ namespace glm
return Inverse;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> inverseTranspose(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> inverseTranspose(mat<3, 3, T, P> const & m)
{
T Determinant =
+ m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
- m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
+ m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);
- tmat3x3<T, P> Inverse(uninitialize);
+ mat<3, 3, T, P> Inverse(uninitialize);
Inverse[0][0] = + (m[1][1] * m[2][2] - m[2][1] * m[1][2]);
Inverse[0][1] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]);
Inverse[0][2] = + (m[1][0] * m[2][1] - m[2][0] * m[1][1]);
@@ -63,8 +63,8 @@ namespace glm
return Inverse;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> inverseTranspose(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> inverseTranspose(mat<4, 4, T, P> const & m)
{
T SubFactor00 = m[2][2] * m[3][3] - m[3][2] * m[2][3];
T SubFactor01 = m[2][1] * m[3][3] - m[3][1] * m[2][3];
@@ -86,7 +86,7 @@ namespace glm
T SubFactor17 = m[1][0] * m[2][2] - m[2][0] * m[1][2];
T SubFactor18 = m[1][0] * m[2][1] - m[2][0] * m[1][1];
- tmat4x4<T, P> Inverse(uninitialize);
+ mat<4, 4, T, P> Inverse(uninitialize);
Inverse[0][0] = + (m[1][1] * SubFactor00 - m[1][2] * SubFactor01 + m[1][3] * SubFactor02);
Inverse[0][1] = - (m[1][0] * SubFactor00 - m[1][2] * SubFactor03 + m[1][3] * SubFactor04);
Inverse[0][2] = + (m[1][0] * SubFactor01 - m[1][1] * SubFactor03 + m[1][3] * SubFactor05);
diff --git a/3rdparty/glm/glm/gtc/matrix_transform.hpp b/3rdparty/glm/glm/gtc/matrix_transform.hpp
index c97b89a6d9e..bbbbcfc2ce1 100644
--- a/3rdparty/glm/glm/gtc/matrix_transform.hpp
+++ b/3rdparty/glm/glm/gtc/matrix_transform.hpp
@@ -52,12 +52,12 @@ namespace glm
/// // m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
/// @endcode
/// @see gtc_matrix_transform
- /// @see - translate(tmat4x4<T, P> const & m, T x, T y, T z)
- /// @see - translate(tvec3<T, P> const & v)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> translate(
- tmat4x4<T, P> const & m,
- tvec3<T, P> const & v);
+ /// @see - translate(mat<4, 4, T, P> const & m, T x, T y, T z)
+ /// @see - translate(vec<3, T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> translate(
+ mat<4, 4, T, P> const& m,
+ vec<3, T, P> const & v);
/// Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
///
@@ -66,26 +66,26 @@ namespace glm
/// @param axis Rotation axis, recommended to be normalized.
/// @tparam T Value type used to build the matrix. Supported: half, float or double.
/// @see gtc_matrix_transform
- /// @see - rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z)
- /// @see - rotate(T angle, tvec3<T, P> const & v)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> rotate(
- tmat4x4<T, P> const & m,
+ /// @see - rotate(mat<4, 4, T, P> const & m, T angle, T x, T y, T z)
+ /// @see - rotate(T angle, vec<3, T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> rotate(
+ mat<4, 4, T, P> const& m,
T angle,
- tvec3<T, P> const & axis);
+ vec<3, T, P> const & axis);
/// Builds a scale 4 * 4 matrix created from 3 scalars.
///
/// @param m Input matrix multiplied by this scale matrix.
/// @param v Ratio of scaling for each axis.
- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double.
/// @see gtc_matrix_transform
- /// @see - scale(tmat4x4<T, P> const & m, T x, T y, T z)
- /// @see - scale(tvec3<T, P> const & v)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> scale(
- tmat4x4<T, P> const & m,
- tvec3<T, P> const & v);
+ /// @see - scale(mat<4, 4, T, P> const & m, T x, T y, T z)
+ /// @see - scale(vec<3, T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> scale(
+ mat<4, 4, T, P> const& m,
+ vec<3, T, P> const & v);
/// Creates a matrix for an orthographic parallel viewing volume, using the default handedness.
///
@@ -98,8 +98,8 @@ namespace glm
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> ortho(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
T left,
T right,
T bottom,
@@ -118,8 +118,8 @@ namespace glm
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> orthoLH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH(
T left,
T right,
T bottom,
@@ -138,8 +138,8 @@ namespace glm
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> orthoRH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH(
T left,
T right,
T bottom,
@@ -156,8 +156,8 @@ namespace glm
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> ortho(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
T left,
T right,
T bottom,
@@ -173,8 +173,8 @@ namespace glm
/// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> frustum(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> frustum(
T left,
T right,
T bottom,
@@ -192,8 +192,8 @@ namespace glm
/// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> frustumLH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH(
T left,
T right,
T bottom,
@@ -211,8 +211,8 @@ namespace glm
/// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> frustumRH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH(
T left,
T right,
T bottom,
@@ -228,8 +228,8 @@ namespace glm
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> perspective(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> perspective(
T fovy,
T aspect,
T near,
@@ -243,8 +243,8 @@ namespace glm
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveRH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH(
T fovy,
T aspect,
T near,
@@ -258,8 +258,8 @@ namespace glm
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveLH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH(
T fovy,
T aspect,
T near,
@@ -274,8 +274,8 @@ namespace glm
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFov(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFov(
T fov,
T width,
T height,
@@ -291,8 +291,8 @@ namespace glm
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFovRH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH(
T fov,
T width,
T height,
@@ -308,8 +308,8 @@ namespace glm
/// @param far Specifies the distance from the viewer to the far clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> perspectiveFovLH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH(
T fov,
T width,
T height,
@@ -323,8 +323,8 @@ namespace glm
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspective(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspective(
T fovy, T aspect, T near);
/// Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite.
@@ -334,8 +334,8 @@ namespace glm
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspectiveLH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveLH(
T fovy, T aspect, T near);
/// Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite.
@@ -345,8 +345,8 @@ namespace glm
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspectiveRH(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveRH(
T fovy, T aspect, T near);
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
@@ -356,8 +356,8 @@ namespace glm
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> tweakedInfinitePerspective(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
T fovy, T aspect, T near);
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
@@ -368,8 +368,8 @@ namespace glm
/// @param ep
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> tweakedInfinitePerspective(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
T fovy, T aspect, T near, T ep);
/// Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
@@ -382,12 +382,12 @@ namespace glm
/// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double.
/// @tparam U Currently supported: Floating-point types and integer types.
/// @see gtc_matrix_transform
- template <typename T, typename U, precision P>
- GLM_FUNC_DECL tvec3<T, P> project(
- tvec3<T, P> const & obj,
- tmat4x4<T, P> const & model,
- tmat4x4<T, P> const & proj,
- tvec4<U, P> const & viewport);
+ template<typename T, typename U, precision P>
+ GLM_FUNC_DECL vec<3, T, P> project(
+ vec<3, T, P> const & obj,
+ mat<4, 4, T, P> const& model,
+ mat<4, 4, T, P> const& proj,
+ vec<4, U, P> const & viewport);
/// Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
///
@@ -399,12 +399,12 @@ namespace glm
/// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double.
/// @tparam U Currently supported: Floating-point types and integer types.
/// @see gtc_matrix_transform
- template <typename T, typename U, precision P>
- GLM_FUNC_DECL tvec3<T, P> unProject(
- tvec3<T, P> const & win,
- tmat4x4<T, P> const & model,
- tmat4x4<T, P> const & proj,
- tvec4<U, P> const & viewport);
+ template<typename T, typename U, precision P>
+ GLM_FUNC_DECL vec<3, T, P> unProject(
+ vec<3, T, P> const & win,
+ mat<4, 4, T, P> const& model,
+ mat<4, 4, T, P> const& proj,
+ vec<4, U, P> const & viewport);
/// Define a picking region
///
@@ -414,11 +414,11 @@ namespace glm
/// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double.
/// @tparam U Currently supported: Floating-point types and integer types.
/// @see gtc_matrix_transform
- template <typename T, precision P, typename U>
- GLM_FUNC_DECL tmat4x4<T, P> pickMatrix(
- tvec2<T, P> const & center,
- tvec2<T, P> const & delta,
- tvec4<U, P> const & viewport);
+ template<typename T, precision P, typename U>
+ GLM_FUNC_DECL mat<4, 4, T, P> pickMatrix(
+ vec<2, T, P> const & center,
+ vec<2, T, P> const & delta,
+ vec<4, U, P> const & viewport);
/// Build a look at view matrix based on the default handedness.
///
@@ -427,11 +427,11 @@ namespace glm
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// @see gtc_matrix_transform
/// @see - 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)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> lookAt(
- tvec3<T, P> const & eye,
- tvec3<T, P> const & center,
- tvec3<T, P> const & up);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> lookAt(
+ vec<3, T, P> const & eye,
+ vec<3, T, P> const & center,
+ vec<3, T, P> const & up);
/// Build a right handed look at view matrix.
///
@@ -440,11 +440,11 @@ namespace glm
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// @see gtc_matrix_transform
/// @see - 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)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> lookAtRH(
- tvec3<T, P> const & eye,
- tvec3<T, P> const & center,
- tvec3<T, P> const & up);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> lookAtRH(
+ vec<3, T, P> const & eye,
+ vec<3, T, P> const & center,
+ vec<3, T, P> const & up);
/// Build a left handed look at view matrix.
///
@@ -453,11 +453,11 @@ namespace glm
/// @param up Normalized up vector, how the camera is oriented. Typically (0, 0, 1)
/// @see gtc_matrix_transform
/// @see - 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)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> lookAtLH(
- tvec3<T, P> const & eye,
- tvec3<T, P> const & center,
- tvec3<T, P> const & up);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> lookAtLH(
+ vec<3, T, P> const & eye,
+ vec<3, T, P> const & center,
+ vec<3, T, P> const & up);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/matrix_transform.inl b/3rdparty/glm/glm/gtc/matrix_transform.inl
index dac55a4a96f..bf8aed6ce2c 100644
--- a/3rdparty/glm/glm/gtc/matrix_transform.inl
+++ b/3rdparty/glm/glm/gtc/matrix_transform.inl
@@ -7,25 +7,25 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> translate(tmat4x4<T, P> const & m, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> translate(mat<4, 4, T, P> const & m, vec<3, T, P> const & v)
{
- tmat4x4<T, P> Result(m);
+ mat<4, 4, T, P> Result(m);
Result[3] = m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate(tmat4x4<T, P> const & m, T angle, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> rotate(mat<4, 4, T, P> const & m, T angle, vec<3, T, P> const & v)
{
T const a = angle;
T const c = cos(a);
T const s = sin(a);
- tvec3<T, P> axis(normalize(v));
- tvec3<T, P> temp((T(1) - c) * axis);
+ vec<3, T, P> axis(normalize(v));
+ vec<3, T, P> temp((T(1) - c) * axis);
- tmat4x4<T, P> Rotate(uninitialize);
+ mat<4, 4, T, P> Rotate(uninitialize);
Rotate[0][0] = c + temp[0] * axis[0];
Rotate[0][1] = temp[0] * axis[1] + s * axis[2];
Rotate[0][2] = temp[0] * axis[2] - s * axis[1];
@@ -38,7 +38,7 @@ namespace glm
Rotate[2][1] = temp[2] * axis[1] - s * axis[0];
Rotate[2][2] = c + temp[2] * axis[2];
- tmat4x4<T, P> Result(uninitialize);
+ mat<4, 4, T, P> Result(uninitialize);
Result[0] = m[0] * Rotate[0][0] + m[1] * Rotate[0][1] + m[2] * Rotate[0][2];
Result[1] = m[0] * Rotate[1][0] + m[1] * Rotate[1][1] + m[2] * Rotate[1][2];
Result[2] = m[0] * Rotate[2][0] + m[1] * Rotate[2][1] + m[2] * Rotate[2][2];
@@ -46,15 +46,15 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate_slow(tmat4x4<T, P> const & m, T angle, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> rotate_slow(mat<4, 4, T, P> const & m, T angle, vec<3, T, P> const & v)
{
T const a = angle;
T const c = cos(a);
T const s = sin(a);
- tmat4x4<T, P> Result;
+ mat<4, 4, T, P> Result;
- tvec3<T, P> axis = normalize(v);
+ vec<3, T, P> axis = normalize(v);
Result[0][0] = c + (static_cast<T>(1) - c) * axis.x * axis.x;
Result[0][1] = (static_cast<T>(1) - c) * axis.x * axis.y + s * axis.z;
@@ -71,14 +71,14 @@ namespace glm
Result[2][2] = c + (static_cast<T>(1) - c) * axis.z * axis.z;
Result[2][3] = static_cast<T>(0);
- Result[3] = tvec4<T, P>(0, 0, 0, 1);
+ Result[3] = vec<4, T, P>(0, 0, 0, 1);
return m * Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scale(tmat4x4<T, P> const & m, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> scale(mat<4, 4, T, P> const & m, vec<3, T, P> const & v)
{
- tmat4x4<T, P> Result(uninitialize);
+ mat<4, 4, T, P> Result(uninitialize);
Result[0] = m[0] * v[0];
Result[1] = m[1] * v[1];
Result[2] = m[2] * v[2];
@@ -86,18 +86,18 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scale_slow(tmat4x4<T, P> const & m, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> scale_slow(mat<4, 4, T, P> const & m, vec<3, T, P> const & v)
{
- tmat4x4<T, P> Result(T(1));
+ mat<4, 4, T, P> Result(T(1));
Result[0][0] = v.x;
Result[1][1] = v.y;
Result[2][2] = v.z;
return m * Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> ortho
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> ortho
(
T left, T right,
T bottom, T top,
@@ -111,15 +111,15 @@ namespace glm
# endif
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> orthoLH
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> orthoLH
(
T left, T right,
T bottom, T top,
T zNear, T zFar
)
{
- tmat4x4<T, defaultp> Result(1);
+ mat<4, 4, T, defaultp> Result(1);
Result[0][0] = static_cast<T>(2) / (right - left);
Result[1][1] = static_cast<T>(2) / (top - bottom);
Result[3][0] = - (right + left) / (right - left);
@@ -136,15 +136,15 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> orthoRH
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> orthoRH
(
T left, T right,
T bottom, T top,
T zNear, T zFar
)
{
- tmat4x4<T, defaultp> Result(1);
+ mat<4, 4, T, defaultp> Result(1);
Result[0][0] = static_cast<T>(2) / (right - left);
Result[1][1] = static_cast<T>(2) / (top - bottom);
Result[3][0] = - (right + left) / (right - left);
@@ -161,14 +161,14 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> ortho
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> ortho
(
T left, T right,
T bottom, T top
)
{
- tmat4x4<T, defaultp> Result(1);
+ mat<4, 4, T, defaultp> Result(static_cast<T>(1));
Result[0][0] = static_cast<T>(2) / (right - left);
Result[1][1] = static_cast<T>(2) / (top - bottom);
Result[2][2] = - static_cast<T>(1);
@@ -177,8 +177,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> frustum
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> frustum
(
T left, T right,
T bottom, T top,
@@ -192,15 +192,15 @@ namespace glm
# endif
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> frustumLH
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> frustumLH
(
T left, T right,
T bottom, T top,
T nearVal, T farVal
)
{
- tmat4x4<T, defaultp> Result(0);
+ mat<4, 4, T, defaultp> Result(0);
Result[0][0] = (static_cast<T>(2) * nearVal) / (right - left);
Result[1][1] = (static_cast<T>(2) * nearVal) / (top - bottom);
Result[2][0] = (right + left) / (right - left);
@@ -218,15 +218,15 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> frustumRH
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> frustumRH
(
T left, T right,
T bottom, T top,
T nearVal, T farVal
)
{
- tmat4x4<T, defaultp> Result(0);
+ mat<4, 4, T, defaultp> Result(0);
Result[0][0] = (static_cast<T>(2) * nearVal) / (right - left);
Result[1][1] = (static_cast<T>(2) * nearVal) / (top - bottom);
Result[2][0] = (right + left) / (right - left);
@@ -244,8 +244,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspective(T fovy, T aspect, T zNear, T zFar)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> perspective(T fovy, T aspect, T zNear, T zFar)
{
# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return perspectiveLH(fovy, aspect, zNear, zFar);
@@ -254,14 +254,14 @@ namespace glm
# endif
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveRH(T fovy, T aspect, T zNear, T zFar)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> perspectiveRH(T fovy, T aspect, T zNear, T zFar)
{
assert(abs(aspect - std::numeric_limits<T>::epsilon()) > static_cast<T>(0));
T const tanHalfFovy = tan(fovy / static_cast<T>(2));
- tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ mat<4, 4, T, defaultp> Result(static_cast<T>(0));
Result[0][0] = static_cast<T>(1) / (aspect * tanHalfFovy);
Result[1][1] = static_cast<T>(1) / (tanHalfFovy);
Result[2][3] = - static_cast<T>(1);
@@ -277,14 +277,14 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveLH(T fovy, T aspect, T zNear, T zFar)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> perspectiveLH(T fovy, T aspect, T zNear, T zFar)
{
assert(abs(aspect - std::numeric_limits<T>::epsilon()) > static_cast<T>(0));
T const tanHalfFovy = tan(fovy / static_cast<T>(2));
- tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ mat<4, 4, T, defaultp> Result(static_cast<T>(0));
Result[0][0] = static_cast<T>(1) / (aspect * tanHalfFovy);
Result[1][1] = static_cast<T>(1) / (tanHalfFovy);
Result[2][3] = static_cast<T>(1);
@@ -300,8 +300,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFov(T fov, T width, T height, T zNear, T zFar)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> perspectiveFov(T fov, T width, T height, T zNear, T zFar)
{
# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return perspectiveFovLH(fov, width, height, zNear, zFar);
@@ -310,8 +310,8 @@ namespace glm
# endif
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFovRH(T fov, T width, T height, T zNear, T zFar)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> perspectiveFovRH(T fov, T width, T height, T zNear, T zFar)
{
assert(width > static_cast<T>(0));
assert(height > static_cast<T>(0));
@@ -321,7 +321,7 @@ namespace glm
T const h = glm::cos(static_cast<T>(0.5) * rad) / glm::sin(static_cast<T>(0.5) * rad);
T const w = h * height / width; ///todo max(width , Height) / min(width , Height)?
- tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ mat<4, 4, T, defaultp> Result(static_cast<T>(0));
Result[0][0] = w;
Result[1][1] = h;
Result[2][3] = - static_cast<T>(1);
@@ -337,8 +337,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFovLH(T fov, T width, T height, T zNear, T zFar)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> perspectiveFovLH(T fov, T width, T height, T zNear, T zFar)
{
assert(width > static_cast<T>(0));
assert(height > static_cast<T>(0));
@@ -348,7 +348,7 @@ namespace glm
T const h = glm::cos(static_cast<T>(0.5) * rad) / glm::sin(static_cast<T>(0.5) * rad);
T const w = h * height / width; ///todo max(width , Height) / min(width , Height)?
- tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ mat<4, 4, T, defaultp> Result(static_cast<T>(0));
Result[0][0] = w;
Result[1][1] = h;
Result[2][3] = static_cast<T>(1);
@@ -364,8 +364,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspective(T fovy, T aspect, T zNear)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> infinitePerspective(T fovy, T aspect, T zNear)
{
# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return infinitePerspectiveLH(fovy, aspect, zNear);
@@ -374,8 +374,8 @@ namespace glm
# endif
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspectiveRH(T fovy, T aspect, T zNear)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> infinitePerspectiveRH(T fovy, T aspect, T zNear)
{
T const range = tan(fovy / static_cast<T>(2)) * zNear;
T const left = -range * aspect;
@@ -383,7 +383,7 @@ namespace glm
T const bottom = -range;
T const top = range;
- tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ mat<4, 4, T, defaultp> Result(static_cast<T>(0));
Result[0][0] = (static_cast<T>(2) * zNear) / (right - left);
Result[1][1] = (static_cast<T>(2) * zNear) / (top - bottom);
Result[2][2] = - static_cast<T>(1);
@@ -392,8 +392,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspectiveLH(T fovy, T aspect, T zNear)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> infinitePerspectiveLH(T fovy, T aspect, T zNear)
{
T const range = tan(fovy / static_cast<T>(2)) * zNear;
T const left = -range * aspect;
@@ -401,7 +401,7 @@ namespace glm
T const bottom = -range;
T const top = range;
- tmat4x4<T, defaultp> Result(T(0));
+ mat<4, 4, T, defaultp> Result(T(0));
Result[0][0] = (static_cast<T>(2) * zNear) / (right - left);
Result[1][1] = (static_cast<T>(2) * zNear) / (top - bottom);
Result[2][2] = static_cast<T>(1);
@@ -411,8 +411,8 @@ namespace glm
}
// Infinite projection matrix: http://www.terathon.com/gdc07_lengyel.pdf
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> tweakedInfinitePerspective(T fovy, T aspect, T zNear, T ep)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> tweakedInfinitePerspective(T fovy, T aspect, T zNear, T ep)
{
T const range = tan(fovy / static_cast<T>(2)) * zNear;
T const left = -range * aspect;
@@ -420,7 +420,7 @@ namespace glm
T const bottom = -range;
T const top = range;
- tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ mat<4, 4, T, defaultp> Result(static_cast<T>(0));
Result[0][0] = (static_cast<T>(2) * zNear) / (right - left);
Result[1][1] = (static_cast<T>(2) * zNear) / (top - bottom);
Result[2][2] = ep - static_cast<T>(1);
@@ -429,22 +429,22 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> tweakedInfinitePerspective(T fovy, T aspect, T zNear)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> tweakedInfinitePerspective(T fovy, T aspect, T zNear)
{
return tweakedInfinitePerspective(fovy, aspect, zNear, epsilon<T>());
}
- template <typename T, typename U, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> project
+ template<typename T, typename U, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> project
(
- tvec3<T, P> const & obj,
- tmat4x4<T, P> const & model,
- tmat4x4<T, P> const & proj,
- tvec4<U, P> const & viewport
+ vec<3, T, P> const & obj,
+ mat<4, 4, T, P> const& model,
+ mat<4, 4, T, P> const& proj,
+ vec<4, U, P> const & viewport
)
{
- tvec4<T, P> tmp = tvec4<T, P>(obj, static_cast<T>(1));
+ vec<4, T, P> tmp = vec<4, T, P>(obj, static_cast<T>(1));
tmp = model * tmp;
tmp = proj * tmp;
@@ -458,21 +458,21 @@ namespace glm
tmp[0] = tmp[0] * T(viewport[2]) + T(viewport[0]);
tmp[1] = tmp[1] * T(viewport[3]) + T(viewport[1]);
- return tvec3<T, P>(tmp);
+ return vec<3, T, P>(tmp);
}
- template <typename T, typename U, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> unProject
+ template<typename T, typename U, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> unProject
(
- tvec3<T, P> const & win,
- tmat4x4<T, P> const & model,
- tmat4x4<T, P> const & proj,
- tvec4<U, P> const & viewport
+ vec<3, T, P> const & win,
+ mat<4, 4, T, P> const& model,
+ mat<4, 4, T, P> const& proj,
+ vec<4, U, P> const & viewport
)
{
- tmat4x4<T, P> Inverse = inverse(proj * model);
+ mat<4, 4, T, P> Inverse = inverse(proj * model);
- tvec4<T, P> tmp = tvec4<T, P>(win, T(1));
+ vec<4, T, P> tmp = vec<4, T, P>(win, T(1));
tmp.x = (tmp.x - T(viewport[0])) / T(viewport[2]);
tmp.y = (tmp.y - T(viewport[1])) / T(viewport[3]);
# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
@@ -482,33 +482,33 @@ namespace glm
tmp = tmp * static_cast<T>(2) - static_cast<T>(1);
# endif
- tvec4<T, P> obj = Inverse * tmp;
+ vec<4, T, P> obj = Inverse * tmp;
obj /= obj.w;
- return tvec3<T, P>(obj);
+ return vec<3, T, P>(obj);
}
- template <typename T, precision P, typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> pickMatrix(tvec2<T, P> const & center, tvec2<T, P> const & delta, tvec4<U, P> const & viewport)
+ template<typename T, precision P, typename U>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> pickMatrix(vec<2, T, P> const & center, vec<2, T, P> const & delta, vec<4, U, P> const & viewport)
{
assert(delta.x > static_cast<T>(0) && delta.y > static_cast<T>(0));
- tmat4x4<T, P> Result(static_cast<T>(1));
+ mat<4, 4, T, P> Result(static_cast<T>(1));
if(!(delta.x > static_cast<T>(0) && delta.y > static_cast<T>(0)))
return Result; // Error
- tvec3<T, P> Temp(
+ vec<3, T, P> Temp(
(static_cast<T>(viewport[2]) - static_cast<T>(2) * (center.x - static_cast<T>(viewport[0]))) / delta.x,
(static_cast<T>(viewport[3]) - static_cast<T>(2) * (center.y - static_cast<T>(viewport[1]))) / delta.y,
static_cast<T>(0));
// Translate and scale the picked region to the entire window
Result = translate(Result, Temp);
- return scale(Result, tvec3<T, P>(static_cast<T>(viewport[2]) / delta.x, static_cast<T>(viewport[3]) / delta.y, static_cast<T>(1)));
+ return scale(Result, vec<3, T, P>(static_cast<T>(viewport[2]) / delta.x, static_cast<T>(viewport[3]) / delta.y, static_cast<T>(1)));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> lookAt(tvec3<T, P> const & eye, tvec3<T, P> const & center, tvec3<T, P> const & up)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> lookAt(vec<3, T, P> const & eye, vec<3, T, P> const & center, vec<3, T, P> const & up)
{
# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return lookAtLH(eye, center, up);
@@ -517,19 +517,19 @@ namespace glm
# endif
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> lookAtRH
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> lookAtRH
(
- tvec3<T, P> const & eye,
- tvec3<T, P> const & center,
- tvec3<T, P> const & up
+ vec<3, T, P> const & eye,
+ vec<3, T, P> const & center,
+ vec<3, T, P> const & up
)
{
- tvec3<T, P> const f(normalize(center - eye));
- tvec3<T, P> const s(normalize(cross(f, up)));
- tvec3<T, P> const u(cross(s, f));
+ vec<3, T, P> const f(normalize(center - eye));
+ vec<3, T, P> const s(normalize(cross(f, up)));
+ vec<3, T, P> const u(cross(s, f));
- tmat4x4<T, P> Result(1);
+ mat<4, 4, T, P> Result(1);
Result[0][0] = s.x;
Result[1][0] = s.y;
Result[2][0] = s.z;
@@ -545,19 +545,19 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> lookAtLH
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> lookAtLH
(
- tvec3<T, P> const & eye,
- tvec3<T, P> const & center,
- tvec3<T, P> const & up
+ vec<3, T, P> const & eye,
+ vec<3, T, P> const & center,
+ vec<3, T, P> const & up
)
{
- tvec3<T, P> const f(normalize(center - eye));
- tvec3<T, P> const s(normalize(cross(up, f)));
- tvec3<T, P> const u(cross(f, s));
+ vec<3, T, P> const f(normalize(center - eye));
+ vec<3, T, P> const s(normalize(cross(up, f)));
+ vec<3, T, P> const u(cross(f, s));
- tmat4x4<T, P> Result(1);
+ mat<4, 4, T, P> Result(1);
Result[0][0] = s.x;
Result[1][0] = s.y;
Result[2][0] = s.z;
diff --git a/3rdparty/glm/glm/gtc/noise.hpp b/3rdparty/glm/glm/gtc/noise.hpp
index aec4f18dd22..870c5fbc111 100644
--- a/3rdparty/glm/glm/gtc/noise.hpp
+++ b/3rdparty/glm/glm/gtc/noise.hpp
@@ -37,22 +37,22 @@ namespace glm
/// Classic perlin noise.
/// @see gtc_noise
- template <typename T, precision P, template<typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T perlin(
- vecType<T, P> const & p);
+ vecType<L, T, P> const& p);
/// Periodic perlin noise.
/// @see gtc_noise
- template <typename T, precision P, template<typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T perlin(
- vecType<T, P> const & p,
- vecType<T, P> const & rep);
+ vecType<L, T, P> const& p,
+ vecType<L, T, P> const& rep);
/// Simplex noise.
/// @see gtc_noise
- template <typename T, precision P, template<typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T simplex(
- vecType<T, P> const & p);
+ vecType<L, T, P> const& p);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/noise.inl b/3rdparty/glm/glm/gtc/noise.inl
index 4f2731c4d41..d3a676f253b 100644
--- a/3rdparty/glm/glm/gtc/noise.inl
+++ b/3rdparty/glm/glm/gtc/noise.inl
@@ -9,635 +9,635 @@
namespace glm{
namespace gtc
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> grad4(T const & j, tvec4<T, P> const & ip)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> grad4(T const & j, vec<4, T, P> const & ip)
{
- tvec3<T, P> pXYZ = floor(fract(tvec3<T, P>(j) * tvec3<T, P>(ip)) * T(7)) * ip[2] - T(1);
- T pW = static_cast<T>(1.5) - dot(abs(pXYZ), tvec3<T, P>(1));
- tvec4<T, P> s = tvec4<T, P>(lessThan(tvec4<T, P>(pXYZ, pW), tvec4<T, P>(0.0)));
- pXYZ = pXYZ + (tvec3<T, P>(s) * T(2) - T(1)) * s.w;
- return tvec4<T, P>(pXYZ, pW);
+ vec<3, T, P> pXYZ = floor(fract(vec<3, T, P>(j) * vec<3, T, P>(ip)) * T(7)) * ip[2] - T(1);
+ T pW = static_cast<T>(1.5) - dot(abs(pXYZ), vec<3, T, P>(1));
+ vec<4, T, P> s = vec<4, T, P>(lessThan(vec<4, T, P>(pXYZ, pW), vec<4, T, P>(0.0)));
+ pXYZ = pXYZ + (vec<3, T, P>(s) * T(2) - T(1)) * s.w;
+ return vec<4, T, P>(pXYZ, pW);
}
}//namespace gtc
// Classic Perlin noise
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec2<T, P> const & Position)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<2, T, P> const & Position)
{
- tvec4<T, P> Pi = glm::floor(tvec4<T, P>(Position.x, Position.y, Position.x, Position.y)) + tvec4<T, P>(0.0, 0.0, 1.0, 1.0);
- tvec4<T, P> Pf = glm::fract(tvec4<T, P>(Position.x, Position.y, Position.x, Position.y)) - tvec4<T, P>(0.0, 0.0, 1.0, 1.0);
- Pi = mod(Pi, tvec4<T, P>(289)); // To avoid truncation effects in permutation
- tvec4<T, P> ix(Pi.x, Pi.z, Pi.x, Pi.z);
- tvec4<T, P> iy(Pi.y, Pi.y, Pi.w, Pi.w);
- tvec4<T, P> fx(Pf.x, Pf.z, Pf.x, Pf.z);
- tvec4<T, P> fy(Pf.y, Pf.y, Pf.w, Pf.w);
-
- tvec4<T, P> i = detail::permute(detail::permute(ix) + iy);
-
- tvec4<T, P> gx = static_cast<T>(2) * glm::fract(i / T(41)) - T(1);
- tvec4<T, P> gy = glm::abs(gx) - T(0.5);
- tvec4<T, P> tx = glm::floor(gx + T(0.5));
+ vec<4, T, P> Pi = glm::floor(vec<4, T, P>(Position.x, Position.y, Position.x, Position.y)) + vec<4, T, P>(0.0, 0.0, 1.0, 1.0);
+ vec<4, T, P> Pf = glm::fract(vec<4, T, P>(Position.x, Position.y, Position.x, Position.y)) - vec<4, T, P>(0.0, 0.0, 1.0, 1.0);
+ Pi = mod(Pi, vec<4, T, P>(289)); // To avoid truncation effects in permutation
+ vec<4, T, P> ix(Pi.x, Pi.z, Pi.x, Pi.z);
+ vec<4, T, P> iy(Pi.y, Pi.y, Pi.w, Pi.w);
+ vec<4, T, P> fx(Pf.x, Pf.z, Pf.x, Pf.z);
+ vec<4, T, P> fy(Pf.y, Pf.y, Pf.w, Pf.w);
+
+ vec<4, T, P> i = detail::permute(detail::permute(ix) + iy);
+
+ vec<4, T, P> gx = static_cast<T>(2) * glm::fract(i / T(41)) - T(1);
+ vec<4, T, P> gy = glm::abs(gx) - T(0.5);
+ vec<4, T, P> tx = glm::floor(gx + T(0.5));
gx = gx - tx;
- tvec2<T, P> g00(gx.x, gy.x);
- tvec2<T, P> g10(gx.y, gy.y);
- tvec2<T, P> g01(gx.z, gy.z);
- tvec2<T, P> g11(gx.w, gy.w);
+ vec<2, T, P> g00(gx.x, gy.x);
+ vec<2, T, P> g10(gx.y, gy.y);
+ vec<2, T, P> g01(gx.z, gy.z);
+ vec<2, T, P> g11(gx.w, gy.w);
- tvec4<T, P> norm = detail::taylorInvSqrt(tvec4<T, P>(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));
+ vec<4, T, P> norm = detail::taylorInvSqrt(vec<4, T, P>(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));
g00 *= norm.x;
g01 *= norm.y;
g10 *= norm.z;
g11 *= norm.w;
- T n00 = dot(g00, tvec2<T, P>(fx.x, fy.x));
- T n10 = dot(g10, tvec2<T, P>(fx.y, fy.y));
- T n01 = dot(g01, tvec2<T, P>(fx.z, fy.z));
- T n11 = dot(g11, tvec2<T, P>(fx.w, fy.w));
+ T n00 = dot(g00, vec<2, T, P>(fx.x, fy.x));
+ T n10 = dot(g10, vec<2, T, P>(fx.y, fy.y));
+ T n01 = dot(g01, vec<2, T, P>(fx.z, fy.z));
+ T n11 = dot(g11, vec<2, T, P>(fx.w, fy.w));
- tvec2<T, P> fade_xy = detail::fade(tvec2<T, P>(Pf.x, Pf.y));
- tvec2<T, P> n_x = mix(tvec2<T, P>(n00, n01), tvec2<T, P>(n10, n11), fade_xy.x);
+ vec<2, T, P> fade_xy = detail::fade(vec<2, T, P>(Pf.x, Pf.y));
+ vec<2, T, P> n_x = mix(vec<2, T, P>(n00, n01), vec<2, T, P>(n10, n11), fade_xy.x);
T n_xy = mix(n_x.x, n_x.y, fade_xy.y);
return T(2.3) * n_xy;
}
// Classic Perlin noise
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec3<T, P> const & Position)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<3, T, P> const & Position)
{
- tvec3<T, P> Pi0 = floor(Position); // Integer part for indexing
- tvec3<T, P> Pi1 = Pi0 + T(1); // Integer part + 1
+ vec<3, T, P> Pi0 = floor(Position); // Integer part for indexing
+ vec<3, T, P> Pi1 = Pi0 + T(1); // Integer part + 1
Pi0 = detail::mod289(Pi0);
Pi1 = detail::mod289(Pi1);
- tvec3<T, P> Pf0 = fract(Position); // Fractional part for interpolation
- tvec3<T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
- tvec4<T, P> ix(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
- tvec4<T, P> iy = tvec4<T, P>(tvec2<T, P>(Pi0.y), tvec2<T, P>(Pi1.y));
- tvec4<T, P> iz0(Pi0.z);
- tvec4<T, P> iz1(Pi1.z);
-
- tvec4<T, P> ixy = detail::permute(detail::permute(ix) + iy);
- tvec4<T, P> ixy0 = detail::permute(ixy + iz0);
- tvec4<T, P> ixy1 = detail::permute(ixy + iz1);
-
- tvec4<T, P> gx0 = ixy0 * T(1.0 / 7.0);
- tvec4<T, P> gy0 = fract(floor(gx0) * T(1.0 / 7.0)) - T(0.5);
+ vec<3, T, P> Pf0 = fract(Position); // Fractional part for interpolation
+ vec<3, T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
+ vec<4, T, P> ix(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
+ vec<4, T, P> iy = vec<4, T, P>(vec<2, T, P>(Pi0.y), vec<2, T, P>(Pi1.y));
+ vec<4, T, P> iz0(Pi0.z);
+ vec<4, T, P> iz1(Pi1.z);
+
+ vec<4, T, P> ixy = detail::permute(detail::permute(ix) + iy);
+ vec<4, T, P> ixy0 = detail::permute(ixy + iz0);
+ vec<4, T, P> ixy1 = detail::permute(ixy + iz1);
+
+ vec<4, T, P> gx0 = ixy0 * T(1.0 / 7.0);
+ vec<4, T, P> gy0 = fract(floor(gx0) * T(1.0 / 7.0)) - T(0.5);
gx0 = fract(gx0);
- tvec4<T, P> gz0 = tvec4<T, P>(0.5) - abs(gx0) - abs(gy0);
- tvec4<T, P> sz0 = step(gz0, tvec4<T, P>(0.0));
+ vec<4, T, P> gz0 = vec<4, T, P>(0.5) - abs(gx0) - abs(gy0);
+ vec<4, T, P> sz0 = step(gz0, vec<4, T, P>(0.0));
gx0 -= sz0 * (step(T(0), gx0) - T(0.5));
gy0 -= sz0 * (step(T(0), gy0) - T(0.5));
- tvec4<T, P> gx1 = ixy1 * T(1.0 / 7.0);
- tvec4<T, P> gy1 = fract(floor(gx1) * T(1.0 / 7.0)) - T(0.5);
+ vec<4, T, P> gx1 = ixy1 * T(1.0 / 7.0);
+ vec<4, T, P> gy1 = fract(floor(gx1) * T(1.0 / 7.0)) - T(0.5);
gx1 = fract(gx1);
- tvec4<T, P> gz1 = tvec4<T, P>(0.5) - abs(gx1) - abs(gy1);
- tvec4<T, P> sz1 = step(gz1, tvec4<T, P>(0.0));
+ vec<4, T, P> gz1 = vec<4, T, P>(0.5) - abs(gx1) - abs(gy1);
+ vec<4, T, P> sz1 = step(gz1, vec<4, T, P>(0.0));
gx1 -= sz1 * (step(T(0), gx1) - T(0.5));
gy1 -= sz1 * (step(T(0), gy1) - T(0.5));
- tvec3<T, P> g000(gx0.x, gy0.x, gz0.x);
- tvec3<T, P> g100(gx0.y, gy0.y, gz0.y);
- tvec3<T, P> g010(gx0.z, gy0.z, gz0.z);
- tvec3<T, P> g110(gx0.w, gy0.w, gz0.w);
- tvec3<T, P> g001(gx1.x, gy1.x, gz1.x);
- tvec3<T, P> g101(gx1.y, gy1.y, gz1.y);
- tvec3<T, P> g011(gx1.z, gy1.z, gz1.z);
- tvec3<T, P> g111(gx1.w, gy1.w, gz1.w);
+ vec<3, T, P> g000(gx0.x, gy0.x, gz0.x);
+ vec<3, T, P> g100(gx0.y, gy0.y, gz0.y);
+ vec<3, T, P> g010(gx0.z, gy0.z, gz0.z);
+ vec<3, T, P> g110(gx0.w, gy0.w, gz0.w);
+ vec<3, T, P> g001(gx1.x, gy1.x, gz1.x);
+ vec<3, T, P> g101(gx1.y, gy1.y, gz1.y);
+ vec<3, T, P> g011(gx1.z, gy1.z, gz1.z);
+ vec<3, T, P> g111(gx1.w, gy1.w, gz1.w);
- tvec4<T, P> norm0 = detail::taylorInvSqrt(tvec4<T, P>(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
+ vec<4, T, P> norm0 = detail::taylorInvSqrt(vec<4, T, P>(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
g000 *= norm0.x;
g010 *= norm0.y;
g100 *= norm0.z;
g110 *= norm0.w;
- tvec4<T, P> norm1 = detail::taylorInvSqrt(tvec4<T, P>(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
+ vec<4, T, P> norm1 = detail::taylorInvSqrt(vec<4, T, P>(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
g001 *= norm1.x;
g011 *= norm1.y;
g101 *= norm1.z;
g111 *= norm1.w;
T n000 = dot(g000, Pf0);
- T n100 = dot(g100, tvec3<T, P>(Pf1.x, Pf0.y, Pf0.z));
- T n010 = dot(g010, tvec3<T, P>(Pf0.x, Pf1.y, Pf0.z));
- T n110 = dot(g110, tvec3<T, P>(Pf1.x, Pf1.y, Pf0.z));
- T n001 = dot(g001, tvec3<T, P>(Pf0.x, Pf0.y, Pf1.z));
- T n101 = dot(g101, tvec3<T, P>(Pf1.x, Pf0.y, Pf1.z));
- T n011 = dot(g011, tvec3<T, P>(Pf0.x, Pf1.y, Pf1.z));
+ T n100 = dot(g100, vec<3, T, P>(Pf1.x, Pf0.y, Pf0.z));
+ T n010 = dot(g010, vec<3, T, P>(Pf0.x, Pf1.y, Pf0.z));
+ T n110 = dot(g110, vec<3, T, P>(Pf1.x, Pf1.y, Pf0.z));
+ T n001 = dot(g001, vec<3, T, P>(Pf0.x, Pf0.y, Pf1.z));
+ T n101 = dot(g101, vec<3, T, P>(Pf1.x, Pf0.y, Pf1.z));
+ T n011 = dot(g011, vec<3, T, P>(Pf0.x, Pf1.y, Pf1.z));
T n111 = dot(g111, Pf1);
- tvec3<T, P> fade_xyz = detail::fade(Pf0);
- tvec4<T, P> n_z = mix(tvec4<T, P>(n000, n100, n010, n110), tvec4<T, P>(n001, n101, n011, n111), fade_xyz.z);
- tvec2<T, P> n_yz = mix(tvec2<T, P>(n_z.x, n_z.y), tvec2<T, P>(n_z.z, n_z.w), fade_xyz.y);
+ vec<3, T, P> fade_xyz = detail::fade(Pf0);
+ vec<4, T, P> n_z = mix(vec<4, T, P>(n000, n100, n010, n110), vec<4, T, P>(n001, n101, n011, n111), fade_xyz.z);
+ vec<2, T, P> n_yz = mix(vec<2, T, P>(n_z.x, n_z.y), vec<2, T, P>(n_z.z, n_z.w), fade_xyz.y);
T n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
return T(2.2) * n_xyz;
}
/*
// Classic Perlin noise
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec3<T, P> const & P)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<3, T, P> const & P)
{
- tvec3<T, P> Pi0 = floor(P); // Integer part for indexing
- tvec3<T, P> Pi1 = Pi0 + T(1); // Integer part + 1
+ vec<3, T, P> Pi0 = floor(P); // Integer part for indexing
+ vec<3, T, P> Pi1 = Pi0 + T(1); // Integer part + 1
Pi0 = mod(Pi0, T(289));
Pi1 = mod(Pi1, T(289));
- tvec3<T, P> Pf0 = fract(P); // Fractional part for interpolation
- tvec3<T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
- tvec4<T, P> ix(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
- tvec4<T, P> iy(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
- tvec4<T, P> iz0(Pi0.z);
- tvec4<T, P> iz1(Pi1.z);
-
- tvec4<T, P> ixy = permute(permute(ix) + iy);
- tvec4<T, P> ixy0 = permute(ixy + iz0);
- tvec4<T, P> ixy1 = permute(ixy + iz1);
-
- tvec4<T, P> gx0 = ixy0 / T(7);
- tvec4<T, P> gy0 = fract(floor(gx0) / T(7)) - T(0.5);
+ vec<3, T, P> Pf0 = fract(P); // Fractional part for interpolation
+ vec<3, T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
+ vec<4, T, P> ix(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
+ vec<4, T, P> iy(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
+ vec<4, T, P> iz0(Pi0.z);
+ vec<4, T, P> iz1(Pi1.z);
+
+ vec<4, T, P> ixy = permute(permute(ix) + iy);
+ vec<4, T, P> ixy0 = permute(ixy + iz0);
+ vec<4, T, P> ixy1 = permute(ixy + iz1);
+
+ vec<4, T, P> gx0 = ixy0 / T(7);
+ vec<4, T, P> gy0 = fract(floor(gx0) / T(7)) - T(0.5);
gx0 = fract(gx0);
- tvec4<T, P> gz0 = tvec4<T, P>(0.5) - abs(gx0) - abs(gy0);
- tvec4<T, P> sz0 = step(gz0, tvec4<T, P>(0.0));
+ vec<4, T, P> gz0 = vec<4, T, P>(0.5) - abs(gx0) - abs(gy0);
+ vec<4, T, P> sz0 = step(gz0, vec<4, T, P>(0.0));
gx0 -= sz0 * (step(0.0, gx0) - T(0.5));
gy0 -= sz0 * (step(0.0, gy0) - T(0.5));
- tvec4<T, P> gx1 = ixy1 / T(7);
- tvec4<T, P> gy1 = fract(floor(gx1) / T(7)) - T(0.5);
+ vec<4, T, P> gx1 = ixy1 / T(7);
+ vec<4, T, P> gy1 = fract(floor(gx1) / T(7)) - T(0.5);
gx1 = fract(gx1);
- tvec4<T, P> gz1 = tvec4<T, P>(0.5) - abs(gx1) - abs(gy1);
- tvec4<T, P> sz1 = step(gz1, tvec4<T, P>(0.0));
+ vec<4, T, P> gz1 = vec<4, T, P>(0.5) - abs(gx1) - abs(gy1);
+ vec<4, T, P> sz1 = step(gz1, vec<4, T, P>(0.0));
gx1 -= sz1 * (step(T(0), gx1) - T(0.5));
gy1 -= sz1 * (step(T(0), gy1) - T(0.5));
- tvec3<T, P> g000(gx0.x, gy0.x, gz0.x);
- tvec3<T, P> g100(gx0.y, gy0.y, gz0.y);
- tvec3<T, P> g010(gx0.z, gy0.z, gz0.z);
- tvec3<T, P> g110(gx0.w, gy0.w, gz0.w);
- tvec3<T, P> g001(gx1.x, gy1.x, gz1.x);
- tvec3<T, P> g101(gx1.y, gy1.y, gz1.y);
- tvec3<T, P> g011(gx1.z, gy1.z, gz1.z);
- tvec3<T, P> g111(gx1.w, gy1.w, gz1.w);
+ vec<3, T, P> g000(gx0.x, gy0.x, gz0.x);
+ vec<3, T, P> g100(gx0.y, gy0.y, gz0.y);
+ vec<3, T, P> g010(gx0.z, gy0.z, gz0.z);
+ vec<3, T, P> g110(gx0.w, gy0.w, gz0.w);
+ vec<3, T, P> g001(gx1.x, gy1.x, gz1.x);
+ vec<3, T, P> g101(gx1.y, gy1.y, gz1.y);
+ vec<3, T, P> g011(gx1.z, gy1.z, gz1.z);
+ vec<3, T, P> g111(gx1.w, gy1.w, gz1.w);
- tvec4<T, P> norm0 = taylorInvSqrt(tvec4<T, P>(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
+ vec<4, T, P> norm0 = taylorInvSqrt(vec<4, T, P>(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
g000 *= norm0.x;
g010 *= norm0.y;
g100 *= norm0.z;
g110 *= norm0.w;
- tvec4<T, P> norm1 = taylorInvSqrt(tvec4<T, P>(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
+ vec<4, T, P> norm1 = taylorInvSqrt(vec<4, T, P>(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
g001 *= norm1.x;
g011 *= norm1.y;
g101 *= norm1.z;
g111 *= norm1.w;
T n000 = dot(g000, Pf0);
- T n100 = dot(g100, tvec3<T, P>(Pf1.x, Pf0.y, Pf0.z));
- T n010 = dot(g010, tvec3<T, P>(Pf0.x, Pf1.y, Pf0.z));
- T n110 = dot(g110, tvec3<T, P>(Pf1.x, Pf1.y, Pf0.z));
- T n001 = dot(g001, tvec3<T, P>(Pf0.x, Pf0.y, Pf1.z));
- T n101 = dot(g101, tvec3<T, P>(Pf1.x, Pf0.y, Pf1.z));
- T n011 = dot(g011, tvec3<T, P>(Pf0.x, Pf1.y, Pf1.z));
+ T n100 = dot(g100, vec<3, T, P>(Pf1.x, Pf0.y, Pf0.z));
+ T n010 = dot(g010, vec<3, T, P>(Pf0.x, Pf1.y, Pf0.z));
+ T n110 = dot(g110, vec<3, T, P>(Pf1.x, Pf1.y, Pf0.z));
+ T n001 = dot(g001, vec<3, T, P>(Pf0.x, Pf0.y, Pf1.z));
+ T n101 = dot(g101, vec<3, T, P>(Pf1.x, Pf0.y, Pf1.z));
+ T n011 = dot(g011, vec<3, T, P>(Pf0.x, Pf1.y, Pf1.z));
T n111 = dot(g111, Pf1);
- tvec3<T, P> fade_xyz = fade(Pf0);
- tvec4<T, P> n_z = mix(tvec4<T, P>(n000, n100, n010, n110), tvec4<T, P>(n001, n101, n011, n111), fade_xyz.z);
- tvec2<T, P> n_yz = mix(
- tvec2<T, P>(n_z.x, n_z.y),
- tvec2<T, P>(n_z.z, n_z.w), fade_xyz.y);
+ vec<3, T, P> fade_xyz = fade(Pf0);
+ vec<4, T, P> n_z = mix(vec<4, T, P>(n000, n100, n010, n110), vec<4, T, P>(n001, n101, n011, n111), fade_xyz.z);
+ vec<2, T, P> n_yz = mix(
+ vec<2, T, P>(n_z.x, n_z.y),
+ vec<2, T, P>(n_z.z, n_z.w), fade_xyz.y);
T n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
return T(2.2) * n_xyz;
}
*/
// Classic Perlin noise
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec4<T, P> const & Position)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<4, T, P> const & Position)
{
- tvec4<T, P> Pi0 = floor(Position); // Integer part for indexing
- tvec4<T, P> Pi1 = Pi0 + T(1); // Integer part + 1
- Pi0 = mod(Pi0, tvec4<T, P>(289));
- Pi1 = mod(Pi1, tvec4<T, P>(289));
- tvec4<T, P> Pf0 = fract(Position); // Fractional part for interpolation
- tvec4<T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
- tvec4<T, P> ix(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
- tvec4<T, P> iy(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
- tvec4<T, P> iz0(Pi0.z);
- tvec4<T, P> iz1(Pi1.z);
- tvec4<T, P> iw0(Pi0.w);
- tvec4<T, P> iw1(Pi1.w);
-
- tvec4<T, P> ixy = detail::permute(detail::permute(ix) + iy);
- tvec4<T, P> ixy0 = detail::permute(ixy + iz0);
- tvec4<T, P> ixy1 = detail::permute(ixy + iz1);
- tvec4<T, P> ixy00 = detail::permute(ixy0 + iw0);
- tvec4<T, P> ixy01 = detail::permute(ixy0 + iw1);
- tvec4<T, P> ixy10 = detail::permute(ixy1 + iw0);
- tvec4<T, P> ixy11 = detail::permute(ixy1 + iw1);
-
- tvec4<T, P> gx00 = ixy00 / T(7);
- tvec4<T, P> gy00 = floor(gx00) / T(7);
- tvec4<T, P> gz00 = floor(gy00) / T(6);
+ vec<4, T, P> Pi0 = floor(Position); // Integer part for indexing
+ vec<4, T, P> Pi1 = Pi0 + T(1); // Integer part + 1
+ Pi0 = mod(Pi0, vec<4, T, P>(289));
+ Pi1 = mod(Pi1, vec<4, T, P>(289));
+ vec<4, T, P> Pf0 = fract(Position); // Fractional part for interpolation
+ vec<4, T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
+ vec<4, T, P> ix(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
+ vec<4, T, P> iy(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
+ vec<4, T, P> iz0(Pi0.z);
+ vec<4, T, P> iz1(Pi1.z);
+ vec<4, T, P> iw0(Pi0.w);
+ vec<4, T, P> iw1(Pi1.w);
+
+ vec<4, T, P> ixy = detail::permute(detail::permute(ix) + iy);
+ vec<4, T, P> ixy0 = detail::permute(ixy + iz0);
+ vec<4, T, P> ixy1 = detail::permute(ixy + iz1);
+ vec<4, T, P> ixy00 = detail::permute(ixy0 + iw0);
+ vec<4, T, P> ixy01 = detail::permute(ixy0 + iw1);
+ vec<4, T, P> ixy10 = detail::permute(ixy1 + iw0);
+ vec<4, T, P> ixy11 = detail::permute(ixy1 + iw1);
+
+ vec<4, T, P> gx00 = ixy00 / T(7);
+ vec<4, T, P> gy00 = floor(gx00) / T(7);
+ vec<4, T, P> gz00 = floor(gy00) / T(6);
gx00 = fract(gx00) - T(0.5);
gy00 = fract(gy00) - T(0.5);
gz00 = fract(gz00) - T(0.5);
- tvec4<T, P> gw00 = tvec4<T, P>(0.75) - abs(gx00) - abs(gy00) - abs(gz00);
- tvec4<T, P> sw00 = step(gw00, tvec4<T, P>(0.0));
+ vec<4, T, P> gw00 = vec<4, T, P>(0.75) - abs(gx00) - abs(gy00) - abs(gz00);
+ vec<4, T, P> sw00 = step(gw00, vec<4, T, P>(0.0));
gx00 -= sw00 * (step(T(0), gx00) - T(0.5));
gy00 -= sw00 * (step(T(0), gy00) - T(0.5));
- tvec4<T, P> gx01 = ixy01 / T(7);
- tvec4<T, P> gy01 = floor(gx01) / T(7);
- tvec4<T, P> gz01 = floor(gy01) / T(6);
+ vec<4, T, P> gx01 = ixy01 / T(7);
+ vec<4, T, P> gy01 = floor(gx01) / T(7);
+ vec<4, T, P> gz01 = floor(gy01) / T(6);
gx01 = fract(gx01) - T(0.5);
gy01 = fract(gy01) - T(0.5);
gz01 = fract(gz01) - T(0.5);
- tvec4<T, P> gw01 = tvec4<T, P>(0.75) - abs(gx01) - abs(gy01) - abs(gz01);
- tvec4<T, P> sw01 = step(gw01, tvec4<T, P>(0.0));
+ vec<4, T, P> gw01 = vec<4, T, P>(0.75) - abs(gx01) - abs(gy01) - abs(gz01);
+ vec<4, T, P> sw01 = step(gw01, vec<4, T, P>(0.0));
gx01 -= sw01 * (step(T(0), gx01) - T(0.5));
gy01 -= sw01 * (step(T(0), gy01) - T(0.5));
- tvec4<T, P> gx10 = ixy10 / T(7);
- tvec4<T, P> gy10 = floor(gx10) / T(7);
- tvec4<T, P> gz10 = floor(gy10) / T(6);
+ vec<4, T, P> gx10 = ixy10 / T(7);
+ vec<4, T, P> gy10 = floor(gx10) / T(7);
+ vec<4, T, P> gz10 = floor(gy10) / T(6);
gx10 = fract(gx10) - T(0.5);
gy10 = fract(gy10) - T(0.5);
gz10 = fract(gz10) - T(0.5);
- tvec4<T, P> gw10 = tvec4<T, P>(0.75) - abs(gx10) - abs(gy10) - abs(gz10);
- tvec4<T, P> sw10 = step(gw10, tvec4<T, P>(0));
+ vec<4, T, P> gw10 = vec<4, T, P>(0.75) - abs(gx10) - abs(gy10) - abs(gz10);
+ vec<4, T, P> sw10 = step(gw10, vec<4, T, P>(0));
gx10 -= sw10 * (step(T(0), gx10) - T(0.5));
gy10 -= sw10 * (step(T(0), gy10) - T(0.5));
- tvec4<T, P> gx11 = ixy11 / T(7);
- tvec4<T, P> gy11 = floor(gx11) / T(7);
- tvec4<T, P> gz11 = floor(gy11) / T(6);
+ vec<4, T, P> gx11 = ixy11 / T(7);
+ vec<4, T, P> gy11 = floor(gx11) / T(7);
+ vec<4, T, P> gz11 = floor(gy11) / T(6);
gx11 = fract(gx11) - T(0.5);
gy11 = fract(gy11) - T(0.5);
gz11 = fract(gz11) - T(0.5);
- tvec4<T, P> gw11 = tvec4<T, P>(0.75) - abs(gx11) - abs(gy11) - abs(gz11);
- tvec4<T, P> sw11 = step(gw11, tvec4<T, P>(0.0));
+ vec<4, T, P> gw11 = vec<4, T, P>(0.75) - abs(gx11) - abs(gy11) - abs(gz11);
+ vec<4, T, P> sw11 = step(gw11, vec<4, T, P>(0.0));
gx11 -= sw11 * (step(T(0), gx11) - T(0.5));
gy11 -= sw11 * (step(T(0), gy11) - T(0.5));
- tvec4<T, P> g0000(gx00.x, gy00.x, gz00.x, gw00.x);
- tvec4<T, P> g1000(gx00.y, gy00.y, gz00.y, gw00.y);
- tvec4<T, P> g0100(gx00.z, gy00.z, gz00.z, gw00.z);
- tvec4<T, P> g1100(gx00.w, gy00.w, gz00.w, gw00.w);
- tvec4<T, P> g0010(gx10.x, gy10.x, gz10.x, gw10.x);
- tvec4<T, P> g1010(gx10.y, gy10.y, gz10.y, gw10.y);
- tvec4<T, P> g0110(gx10.z, gy10.z, gz10.z, gw10.z);
- tvec4<T, P> g1110(gx10.w, gy10.w, gz10.w, gw10.w);
- tvec4<T, P> g0001(gx01.x, gy01.x, gz01.x, gw01.x);
- tvec4<T, P> g1001(gx01.y, gy01.y, gz01.y, gw01.y);
- tvec4<T, P> g0101(gx01.z, gy01.z, gz01.z, gw01.z);
- tvec4<T, P> g1101(gx01.w, gy01.w, gz01.w, gw01.w);
- tvec4<T, P> g0011(gx11.x, gy11.x, gz11.x, gw11.x);
- tvec4<T, P> g1011(gx11.y, gy11.y, gz11.y, gw11.y);
- tvec4<T, P> g0111(gx11.z, gy11.z, gz11.z, gw11.z);
- tvec4<T, P> g1111(gx11.w, gy11.w, gz11.w, gw11.w);
-
- tvec4<T, P> norm00 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));
+ vec<4, T, P> g0000(gx00.x, gy00.x, gz00.x, gw00.x);
+ vec<4, T, P> g1000(gx00.y, gy00.y, gz00.y, gw00.y);
+ vec<4, T, P> g0100(gx00.z, gy00.z, gz00.z, gw00.z);
+ vec<4, T, P> g1100(gx00.w, gy00.w, gz00.w, gw00.w);
+ vec<4, T, P> g0010(gx10.x, gy10.x, gz10.x, gw10.x);
+ vec<4, T, P> g1010(gx10.y, gy10.y, gz10.y, gw10.y);
+ vec<4, T, P> g0110(gx10.z, gy10.z, gz10.z, gw10.z);
+ vec<4, T, P> g1110(gx10.w, gy10.w, gz10.w, gw10.w);
+ vec<4, T, P> g0001(gx01.x, gy01.x, gz01.x, gw01.x);
+ vec<4, T, P> g1001(gx01.y, gy01.y, gz01.y, gw01.y);
+ vec<4, T, P> g0101(gx01.z, gy01.z, gz01.z, gw01.z);
+ vec<4, T, P> g1101(gx01.w, gy01.w, gz01.w, gw01.w);
+ vec<4, T, P> g0011(gx11.x, gy11.x, gz11.x, gw11.x);
+ vec<4, T, P> g1011(gx11.y, gy11.y, gz11.y, gw11.y);
+ vec<4, T, P> g0111(gx11.z, gy11.z, gz11.z, gw11.z);
+ vec<4, T, P> g1111(gx11.w, gy11.w, gz11.w, gw11.w);
+
+ vec<4, T, P> norm00 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));
g0000 *= norm00.x;
g0100 *= norm00.y;
g1000 *= norm00.z;
g1100 *= norm00.w;
- tvec4<T, P> norm01 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));
+ vec<4, T, P> norm01 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));
g0001 *= norm01.x;
g0101 *= norm01.y;
g1001 *= norm01.z;
g1101 *= norm01.w;
- tvec4<T, P> norm10 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));
+ vec<4, T, P> norm10 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));
g0010 *= norm10.x;
g0110 *= norm10.y;
g1010 *= norm10.z;
g1110 *= norm10.w;
- tvec4<T, P> norm11 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));
+ vec<4, T, P> norm11 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));
g0011 *= norm11.x;
g0111 *= norm11.y;
g1011 *= norm11.z;
g1111 *= norm11.w;
T n0000 = dot(g0000, Pf0);
- T n1000 = dot(g1000, tvec4<T, P>(Pf1.x, Pf0.y, Pf0.z, Pf0.w));
- T n0100 = dot(g0100, tvec4<T, P>(Pf0.x, Pf1.y, Pf0.z, Pf0.w));
- T n1100 = dot(g1100, tvec4<T, P>(Pf1.x, Pf1.y, Pf0.z, Pf0.w));
- T n0010 = dot(g0010, tvec4<T, P>(Pf0.x, Pf0.y, Pf1.z, Pf0.w));
- T n1010 = dot(g1010, tvec4<T, P>(Pf1.x, Pf0.y, Pf1.z, Pf0.w));
- T n0110 = dot(g0110, tvec4<T, P>(Pf0.x, Pf1.y, Pf1.z, Pf0.w));
- T n1110 = dot(g1110, tvec4<T, P>(Pf1.x, Pf1.y, Pf1.z, Pf0.w));
- T n0001 = dot(g0001, tvec4<T, P>(Pf0.x, Pf0.y, Pf0.z, Pf1.w));
- T n1001 = dot(g1001, tvec4<T, P>(Pf1.x, Pf0.y, Pf0.z, Pf1.w));
- T n0101 = dot(g0101, tvec4<T, P>(Pf0.x, Pf1.y, Pf0.z, Pf1.w));
- T n1101 = dot(g1101, tvec4<T, P>(Pf1.x, Pf1.y, Pf0.z, Pf1.w));
- T n0011 = dot(g0011, tvec4<T, P>(Pf0.x, Pf0.y, Pf1.z, Pf1.w));
- T n1011 = dot(g1011, tvec4<T, P>(Pf1.x, Pf0.y, Pf1.z, Pf1.w));
- T n0111 = dot(g0111, tvec4<T, P>(Pf0.x, Pf1.y, Pf1.z, Pf1.w));
+ T n1000 = dot(g1000, vec<4, T, P>(Pf1.x, Pf0.y, Pf0.z, Pf0.w));
+ T n0100 = dot(g0100, vec<4, T, P>(Pf0.x, Pf1.y, Pf0.z, Pf0.w));
+ T n1100 = dot(g1100, vec<4, T, P>(Pf1.x, Pf1.y, Pf0.z, Pf0.w));
+ T n0010 = dot(g0010, vec<4, T, P>(Pf0.x, Pf0.y, Pf1.z, Pf0.w));
+ T n1010 = dot(g1010, vec<4, T, P>(Pf1.x, Pf0.y, Pf1.z, Pf0.w));
+ T n0110 = dot(g0110, vec<4, T, P>(Pf0.x, Pf1.y, Pf1.z, Pf0.w));
+ T n1110 = dot(g1110, vec<4, T, P>(Pf1.x, Pf1.y, Pf1.z, Pf0.w));
+ T n0001 = dot(g0001, vec<4, T, P>(Pf0.x, Pf0.y, Pf0.z, Pf1.w));
+ T n1001 = dot(g1001, vec<4, T, P>(Pf1.x, Pf0.y, Pf0.z, Pf1.w));
+ T n0101 = dot(g0101, vec<4, T, P>(Pf0.x, Pf1.y, Pf0.z, Pf1.w));
+ T n1101 = dot(g1101, vec<4, T, P>(Pf1.x, Pf1.y, Pf0.z, Pf1.w));
+ T n0011 = dot(g0011, vec<4, T, P>(Pf0.x, Pf0.y, Pf1.z, Pf1.w));
+ T n1011 = dot(g1011, vec<4, T, P>(Pf1.x, Pf0.y, Pf1.z, Pf1.w));
+ T n0111 = dot(g0111, vec<4, T, P>(Pf0.x, Pf1.y, Pf1.z, Pf1.w));
T n1111 = dot(g1111, Pf1);
- tvec4<T, P> fade_xyzw = detail::fade(Pf0);
- tvec4<T, P> n_0w = mix(tvec4<T, P>(n0000, n1000, n0100, n1100), tvec4<T, P>(n0001, n1001, n0101, n1101), fade_xyzw.w);
- tvec4<T, P> n_1w = mix(tvec4<T, P>(n0010, n1010, n0110, n1110), tvec4<T, P>(n0011, n1011, n0111, n1111), fade_xyzw.w);
- tvec4<T, P> n_zw = mix(n_0w, n_1w, fade_xyzw.z);
- tvec2<T, P> n_yzw = mix(tvec2<T, P>(n_zw.x, n_zw.y), tvec2<T, P>(n_zw.z, n_zw.w), fade_xyzw.y);
+ vec<4, T, P> fade_xyzw = detail::fade(Pf0);
+ vec<4, T, P> n_0w = mix(vec<4, T, P>(n0000, n1000, n0100, n1100), vec<4, T, P>(n0001, n1001, n0101, n1101), fade_xyzw.w);
+ vec<4, T, P> n_1w = mix(vec<4, T, P>(n0010, n1010, n0110, n1110), vec<4, T, P>(n0011, n1011, n0111, n1111), fade_xyzw.w);
+ vec<4, T, P> n_zw = mix(n_0w, n_1w, fade_xyzw.z);
+ vec<2, T, P> n_yzw = mix(vec<2, T, P>(n_zw.x, n_zw.y), vec<2, T, P>(n_zw.z, n_zw.w), fade_xyzw.y);
T n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);
return T(2.2) * n_xyzw;
}
// Classic Perlin noise, periodic variant
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec2<T, P> const & Position, tvec2<T, P> const & rep)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<2, T, P> const & Position, vec<2, T, P> const & rep)
{
- tvec4<T, P> Pi = floor(tvec4<T, P>(Position.x, Position.y, Position.x, Position.y)) + tvec4<T, P>(0.0, 0.0, 1.0, 1.0);
- tvec4<T, P> Pf = fract(tvec4<T, P>(Position.x, Position.y, Position.x, Position.y)) - tvec4<T, P>(0.0, 0.0, 1.0, 1.0);
- Pi = mod(Pi, tvec4<T, P>(rep.x, rep.y, rep.x, rep.y)); // To create noise with explicit period
- Pi = mod(Pi, tvec4<T, P>(289)); // To avoid truncation effects in permutation
- tvec4<T, P> ix(Pi.x, Pi.z, Pi.x, Pi.z);
- tvec4<T, P> iy(Pi.y, Pi.y, Pi.w, Pi.w);
- tvec4<T, P> fx(Pf.x, Pf.z, Pf.x, Pf.z);
- tvec4<T, P> fy(Pf.y, Pf.y, Pf.w, Pf.w);
-
- tvec4<T, P> i = detail::permute(detail::permute(ix) + iy);
-
- tvec4<T, P> gx = static_cast<T>(2) * fract(i / T(41)) - T(1);
- tvec4<T, P> gy = abs(gx) - T(0.5);
- tvec4<T, P> tx = floor(gx + T(0.5));
+ vec<4, T, P> Pi = floor(vec<4, T, P>(Position.x, Position.y, Position.x, Position.y)) + vec<4, T, P>(0.0, 0.0, 1.0, 1.0);
+ vec<4, T, P> Pf = fract(vec<4, T, P>(Position.x, Position.y, Position.x, Position.y)) - vec<4, T, P>(0.0, 0.0, 1.0, 1.0);
+ Pi = mod(Pi, vec<4, T, P>(rep.x, rep.y, rep.x, rep.y)); // To create noise with explicit period
+ Pi = mod(Pi, vec<4, T, P>(289)); // To avoid truncation effects in permutation
+ vec<4, T, P> ix(Pi.x, Pi.z, Pi.x, Pi.z);
+ vec<4, T, P> iy(Pi.y, Pi.y, Pi.w, Pi.w);
+ vec<4, T, P> fx(Pf.x, Pf.z, Pf.x, Pf.z);
+ vec<4, T, P> fy(Pf.y, Pf.y, Pf.w, Pf.w);
+
+ vec<4, T, P> i = detail::permute(detail::permute(ix) + iy);
+
+ vec<4, T, P> gx = static_cast<T>(2) * fract(i / T(41)) - T(1);
+ vec<4, T, P> gy = abs(gx) - T(0.5);
+ vec<4, T, P> tx = floor(gx + T(0.5));
gx = gx - tx;
- tvec2<T, P> g00(gx.x, gy.x);
- tvec2<T, P> g10(gx.y, gy.y);
- tvec2<T, P> g01(gx.z, gy.z);
- tvec2<T, P> g11(gx.w, gy.w);
+ vec<2, T, P> g00(gx.x, gy.x);
+ vec<2, T, P> g10(gx.y, gy.y);
+ vec<2, T, P> g01(gx.z, gy.z);
+ vec<2, T, P> g11(gx.w, gy.w);
- tvec4<T, P> norm = detail::taylorInvSqrt(tvec4<T, P>(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));
+ vec<4, T, P> norm = detail::taylorInvSqrt(vec<4, T, P>(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));
g00 *= norm.x;
g01 *= norm.y;
g10 *= norm.z;
g11 *= norm.w;
- T n00 = dot(g00, tvec2<T, P>(fx.x, fy.x));
- T n10 = dot(g10, tvec2<T, P>(fx.y, fy.y));
- T n01 = dot(g01, tvec2<T, P>(fx.z, fy.z));
- T n11 = dot(g11, tvec2<T, P>(fx.w, fy.w));
+ T n00 = dot(g00, vec<2, T, P>(fx.x, fy.x));
+ T n10 = dot(g10, vec<2, T, P>(fx.y, fy.y));
+ T n01 = dot(g01, vec<2, T, P>(fx.z, fy.z));
+ T n11 = dot(g11, vec<2, T, P>(fx.w, fy.w));
- tvec2<T, P> fade_xy = detail::fade(tvec2<T, P>(Pf.x, Pf.y));
- tvec2<T, P> n_x = mix(tvec2<T, P>(n00, n01), tvec2<T, P>(n10, n11), fade_xy.x);
+ vec<2, T, P> fade_xy = detail::fade(vec<2, T, P>(Pf.x, Pf.y));
+ vec<2, T, P> n_x = mix(vec<2, T, P>(n00, n01), vec<2, T, P>(n10, n11), fade_xy.x);
T n_xy = mix(n_x.x, n_x.y, fade_xy.y);
return T(2.3) * n_xy;
}
// Classic Perlin noise, periodic variant
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec3<T, P> const & Position, tvec3<T, P> const & rep)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<3, T, P> const & Position, vec<3, T, P> const & rep)
{
- tvec3<T, P> Pi0 = mod(floor(Position), rep); // Integer part, modulo period
- tvec3<T, P> Pi1 = mod(Pi0 + tvec3<T, P>(T(1)), rep); // Integer part + 1, mod period
- Pi0 = mod(Pi0, tvec3<T, P>(289));
- Pi1 = mod(Pi1, tvec3<T, P>(289));
- tvec3<T, P> Pf0 = fract(Position); // Fractional part for interpolation
- tvec3<T, P> Pf1 = Pf0 - tvec3<T, P>(T(1)); // Fractional part - 1.0
- tvec4<T, P> ix = tvec4<T, P>(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
- tvec4<T, P> iy = tvec4<T, P>(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
- tvec4<T, P> iz0(Pi0.z);
- tvec4<T, P> iz1(Pi1.z);
-
- tvec4<T, P> ixy = detail::permute(detail::permute(ix) + iy);
- tvec4<T, P> ixy0 = detail::permute(ixy + iz0);
- tvec4<T, P> ixy1 = detail::permute(ixy + iz1);
-
- tvec4<T, P> gx0 = ixy0 / T(7);
- tvec4<T, P> gy0 = fract(floor(gx0) / T(7)) - T(0.5);
+ vec<3, T, P> Pi0 = mod(floor(Position), rep); // Integer part, modulo period
+ vec<3, T, P> Pi1 = mod(Pi0 + vec<3, T, P>(T(1)), rep); // Integer part + 1, mod period
+ Pi0 = mod(Pi0, vec<3, T, P>(289));
+ Pi1 = mod(Pi1, vec<3, T, P>(289));
+ vec<3, T, P> Pf0 = fract(Position); // Fractional part for interpolation
+ vec<3, T, P> Pf1 = Pf0 - vec<3, T, P>(T(1)); // Fractional part - 1.0
+ vec<4, T, P> ix = vec<4, T, P>(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
+ vec<4, T, P> iy = vec<4, T, P>(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
+ vec<4, T, P> iz0(Pi0.z);
+ vec<4, T, P> iz1(Pi1.z);
+
+ vec<4, T, P> ixy = detail::permute(detail::permute(ix) + iy);
+ vec<4, T, P> ixy0 = detail::permute(ixy + iz0);
+ vec<4, T, P> ixy1 = detail::permute(ixy + iz1);
+
+ vec<4, T, P> gx0 = ixy0 / T(7);
+ vec<4, T, P> gy0 = fract(floor(gx0) / T(7)) - T(0.5);
gx0 = fract(gx0);
- tvec4<T, P> gz0 = tvec4<T, P>(0.5) - abs(gx0) - abs(gy0);
- tvec4<T, P> sz0 = step(gz0, tvec4<T, P>(0));
+ vec<4, T, P> gz0 = vec<4, T, P>(0.5) - abs(gx0) - abs(gy0);
+ vec<4, T, P> sz0 = step(gz0, vec<4, T, P>(0));
gx0 -= sz0 * (step(T(0), gx0) - T(0.5));
gy0 -= sz0 * (step(T(0), gy0) - T(0.5));
- tvec4<T, P> gx1 = ixy1 / T(7);
- tvec4<T, P> gy1 = fract(floor(gx1) / T(7)) - T(0.5);
+ vec<4, T, P> gx1 = ixy1 / T(7);
+ vec<4, T, P> gy1 = fract(floor(gx1) / T(7)) - T(0.5);
gx1 = fract(gx1);
- tvec4<T, P> gz1 = tvec4<T, P>(0.5) - abs(gx1) - abs(gy1);
- tvec4<T, P> sz1 = step(gz1, tvec4<T, P>(T(0)));
+ vec<4, T, P> gz1 = vec<4, T, P>(0.5) - abs(gx1) - abs(gy1);
+ vec<4, T, P> sz1 = step(gz1, vec<4, T, P>(T(0)));
gx1 -= sz1 * (step(T(0), gx1) - T(0.5));
gy1 -= sz1 * (step(T(0), gy1) - T(0.5));
- tvec3<T, P> g000 = tvec3<T, P>(gx0.x, gy0.x, gz0.x);
- tvec3<T, P> g100 = tvec3<T, P>(gx0.y, gy0.y, gz0.y);
- tvec3<T, P> g010 = tvec3<T, P>(gx0.z, gy0.z, gz0.z);
- tvec3<T, P> g110 = tvec3<T, P>(gx0.w, gy0.w, gz0.w);
- tvec3<T, P> g001 = tvec3<T, P>(gx1.x, gy1.x, gz1.x);
- tvec3<T, P> g101 = tvec3<T, P>(gx1.y, gy1.y, gz1.y);
- tvec3<T, P> g011 = tvec3<T, P>(gx1.z, gy1.z, gz1.z);
- tvec3<T, P> g111 = tvec3<T, P>(gx1.w, gy1.w, gz1.w);
+ vec<3, T, P> g000 = vec<3, T, P>(gx0.x, gy0.x, gz0.x);
+ vec<3, T, P> g100 = vec<3, T, P>(gx0.y, gy0.y, gz0.y);
+ vec<3, T, P> g010 = vec<3, T, P>(gx0.z, gy0.z, gz0.z);
+ vec<3, T, P> g110 = vec<3, T, P>(gx0.w, gy0.w, gz0.w);
+ vec<3, T, P> g001 = vec<3, T, P>(gx1.x, gy1.x, gz1.x);
+ vec<3, T, P> g101 = vec<3, T, P>(gx1.y, gy1.y, gz1.y);
+ vec<3, T, P> g011 = vec<3, T, P>(gx1.z, gy1.z, gz1.z);
+ vec<3, T, P> g111 = vec<3, T, P>(gx1.w, gy1.w, gz1.w);
- tvec4<T, P> norm0 = detail::taylorInvSqrt(tvec4<T, P>(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
+ vec<4, T, P> norm0 = detail::taylorInvSqrt(vec<4, T, P>(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
g000 *= norm0.x;
g010 *= norm0.y;
g100 *= norm0.z;
g110 *= norm0.w;
- tvec4<T, P> norm1 = detail::taylorInvSqrt(tvec4<T, P>(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
+ vec<4, T, P> norm1 = detail::taylorInvSqrt(vec<4, T, P>(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
g001 *= norm1.x;
g011 *= norm1.y;
g101 *= norm1.z;
g111 *= norm1.w;
T n000 = dot(g000, Pf0);
- T n100 = dot(g100, tvec3<T, P>(Pf1.x, Pf0.y, Pf0.z));
- T n010 = dot(g010, tvec3<T, P>(Pf0.x, Pf1.y, Pf0.z));
- T n110 = dot(g110, tvec3<T, P>(Pf1.x, Pf1.y, Pf0.z));
- T n001 = dot(g001, tvec3<T, P>(Pf0.x, Pf0.y, Pf1.z));
- T n101 = dot(g101, tvec3<T, P>(Pf1.x, Pf0.y, Pf1.z));
- T n011 = dot(g011, tvec3<T, P>(Pf0.x, Pf1.y, Pf1.z));
+ T n100 = dot(g100, vec<3, T, P>(Pf1.x, Pf0.y, Pf0.z));
+ T n010 = dot(g010, vec<3, T, P>(Pf0.x, Pf1.y, Pf0.z));
+ T n110 = dot(g110, vec<3, T, P>(Pf1.x, Pf1.y, Pf0.z));
+ T n001 = dot(g001, vec<3, T, P>(Pf0.x, Pf0.y, Pf1.z));
+ T n101 = dot(g101, vec<3, T, P>(Pf1.x, Pf0.y, Pf1.z));
+ T n011 = dot(g011, vec<3, T, P>(Pf0.x, Pf1.y, Pf1.z));
T n111 = dot(g111, Pf1);
- tvec3<T, P> fade_xyz = detail::fade(Pf0);
- tvec4<T, P> n_z = mix(tvec4<T, P>(n000, n100, n010, n110), tvec4<T, P>(n001, n101, n011, n111), fade_xyz.z);
- tvec2<T, P> n_yz = mix(tvec2<T, P>(n_z.x, n_z.y), tvec2<T, P>(n_z.z, n_z.w), fade_xyz.y);
+ vec<3, T, P> fade_xyz = detail::fade(Pf0);
+ vec<4, T, P> n_z = mix(vec<4, T, P>(n000, n100, n010, n110), vec<4, T, P>(n001, n101, n011, n111), fade_xyz.z);
+ vec<2, T, P> n_yz = mix(vec<2, T, P>(n_z.x, n_z.y), vec<2, T, P>(n_z.z, n_z.w), fade_xyz.y);
T n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
return T(2.2) * n_xyz;
}
// Classic Perlin noise, periodic version
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T perlin(tvec4<T, P> const & Position, tvec4<T, P> const & rep)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T perlin(vec<4, T, P> const & Position, vec<4, T, P> const & rep)
{
- tvec4<T, P> Pi0 = mod(floor(Position), rep); // Integer part modulo rep
- tvec4<T, P> Pi1 = mod(Pi0 + T(1), rep); // Integer part + 1 mod rep
- tvec4<T, P> Pf0 = fract(Position); // Fractional part for interpolation
- tvec4<T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
- tvec4<T, P> ix = tvec4<T, P>(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
- tvec4<T, P> iy = tvec4<T, P>(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
- tvec4<T, P> iz0(Pi0.z);
- tvec4<T, P> iz1(Pi1.z);
- tvec4<T, P> iw0(Pi0.w);
- tvec4<T, P> iw1(Pi1.w);
-
- tvec4<T, P> ixy = detail::permute(detail::permute(ix) + iy);
- tvec4<T, P> ixy0 = detail::permute(ixy + iz0);
- tvec4<T, P> ixy1 = detail::permute(ixy + iz1);
- tvec4<T, P> ixy00 = detail::permute(ixy0 + iw0);
- tvec4<T, P> ixy01 = detail::permute(ixy0 + iw1);
- tvec4<T, P> ixy10 = detail::permute(ixy1 + iw0);
- tvec4<T, P> ixy11 = detail::permute(ixy1 + iw1);
-
- tvec4<T, P> gx00 = ixy00 / T(7);
- tvec4<T, P> gy00 = floor(gx00) / T(7);
- tvec4<T, P> gz00 = floor(gy00) / T(6);
+ vec<4, T, P> Pi0 = mod(floor(Position), rep); // Integer part modulo rep
+ vec<4, T, P> Pi1 = mod(Pi0 + T(1), rep); // Integer part + 1 mod rep
+ vec<4, T, P> Pf0 = fract(Position); // Fractional part for interpolation
+ vec<4, T, P> Pf1 = Pf0 - T(1); // Fractional part - 1.0
+ vec<4, T, P> ix = vec<4, T, P>(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
+ vec<4, T, P> iy = vec<4, T, P>(Pi0.y, Pi0.y, Pi1.y, Pi1.y);
+ vec<4, T, P> iz0(Pi0.z);
+ vec<4, T, P> iz1(Pi1.z);
+ vec<4, T, P> iw0(Pi0.w);
+ vec<4, T, P> iw1(Pi1.w);
+
+ vec<4, T, P> ixy = detail::permute(detail::permute(ix) + iy);
+ vec<4, T, P> ixy0 = detail::permute(ixy + iz0);
+ vec<4, T, P> ixy1 = detail::permute(ixy + iz1);
+ vec<4, T, P> ixy00 = detail::permute(ixy0 + iw0);
+ vec<4, T, P> ixy01 = detail::permute(ixy0 + iw1);
+ vec<4, T, P> ixy10 = detail::permute(ixy1 + iw0);
+ vec<4, T, P> ixy11 = detail::permute(ixy1 + iw1);
+
+ vec<4, T, P> gx00 = ixy00 / T(7);
+ vec<4, T, P> gy00 = floor(gx00) / T(7);
+ vec<4, T, P> gz00 = floor(gy00) / T(6);
gx00 = fract(gx00) - T(0.5);
gy00 = fract(gy00) - T(0.5);
gz00 = fract(gz00) - T(0.5);
- tvec4<T, P> gw00 = tvec4<T, P>(0.75) - abs(gx00) - abs(gy00) - abs(gz00);
- tvec4<T, P> sw00 = step(gw00, tvec4<T, P>(0));
+ vec<4, T, P> gw00 = vec<4, T, P>(0.75) - abs(gx00) - abs(gy00) - abs(gz00);
+ vec<4, T, P> sw00 = step(gw00, vec<4, T, P>(0));
gx00 -= sw00 * (step(T(0), gx00) - T(0.5));
gy00 -= sw00 * (step(T(0), gy00) - T(0.5));
- tvec4<T, P> gx01 = ixy01 / T(7);
- tvec4<T, P> gy01 = floor(gx01) / T(7);
- tvec4<T, P> gz01 = floor(gy01) / T(6);
+ vec<4, T, P> gx01 = ixy01 / T(7);
+ vec<4, T, P> gy01 = floor(gx01) / T(7);
+ vec<4, T, P> gz01 = floor(gy01) / T(6);
gx01 = fract(gx01) - T(0.5);
gy01 = fract(gy01) - T(0.5);
gz01 = fract(gz01) - T(0.5);
- tvec4<T, P> gw01 = tvec4<T, P>(0.75) - abs(gx01) - abs(gy01) - abs(gz01);
- tvec4<T, P> sw01 = step(gw01, tvec4<T, P>(0.0));
+ vec<4, T, P> gw01 = vec<4, T, P>(0.75) - abs(gx01) - abs(gy01) - abs(gz01);
+ vec<4, T, P> sw01 = step(gw01, vec<4, T, P>(0.0));
gx01 -= sw01 * (step(T(0), gx01) - T(0.5));
gy01 -= sw01 * (step(T(0), gy01) - T(0.5));
- tvec4<T, P> gx10 = ixy10 / T(7);
- tvec4<T, P> gy10 = floor(gx10) / T(7);
- tvec4<T, P> gz10 = floor(gy10) / T(6);
+ vec<4, T, P> gx10 = ixy10 / T(7);
+ vec<4, T, P> gy10 = floor(gx10) / T(7);
+ vec<4, T, P> gz10 = floor(gy10) / T(6);
gx10 = fract(gx10) - T(0.5);
gy10 = fract(gy10) - T(0.5);
gz10 = fract(gz10) - T(0.5);
- tvec4<T, P> gw10 = tvec4<T, P>(0.75) - abs(gx10) - abs(gy10) - abs(gz10);
- tvec4<T, P> sw10 = step(gw10, tvec4<T, P>(0.0));
+ vec<4, T, P> gw10 = vec<4, T, P>(0.75) - abs(gx10) - abs(gy10) - abs(gz10);
+ vec<4, T, P> sw10 = step(gw10, vec<4, T, P>(0.0));
gx10 -= sw10 * (step(T(0), gx10) - T(0.5));
gy10 -= sw10 * (step(T(0), gy10) - T(0.5));
- tvec4<T, P> gx11 = ixy11 / T(7);
- tvec4<T, P> gy11 = floor(gx11) / T(7);
- tvec4<T, P> gz11 = floor(gy11) / T(6);
+ vec<4, T, P> gx11 = ixy11 / T(7);
+ vec<4, T, P> gy11 = floor(gx11) / T(7);
+ vec<4, T, P> gz11 = floor(gy11) / T(6);
gx11 = fract(gx11) - T(0.5);
gy11 = fract(gy11) - T(0.5);
gz11 = fract(gz11) - T(0.5);
- tvec4<T, P> gw11 = tvec4<T, P>(0.75) - abs(gx11) - abs(gy11) - abs(gz11);
- tvec4<T, P> sw11 = step(gw11, tvec4<T, P>(T(0)));
+ vec<4, T, P> gw11 = vec<4, T, P>(0.75) - abs(gx11) - abs(gy11) - abs(gz11);
+ vec<4, T, P> sw11 = step(gw11, vec<4, T, P>(T(0)));
gx11 -= sw11 * (step(T(0), gx11) - T(0.5));
gy11 -= sw11 * (step(T(0), gy11) - T(0.5));
- tvec4<T, P> g0000(gx00.x, gy00.x, gz00.x, gw00.x);
- tvec4<T, P> g1000(gx00.y, gy00.y, gz00.y, gw00.y);
- tvec4<T, P> g0100(gx00.z, gy00.z, gz00.z, gw00.z);
- tvec4<T, P> g1100(gx00.w, gy00.w, gz00.w, gw00.w);
- tvec4<T, P> g0010(gx10.x, gy10.x, gz10.x, gw10.x);
- tvec4<T, P> g1010(gx10.y, gy10.y, gz10.y, gw10.y);
- tvec4<T, P> g0110(gx10.z, gy10.z, gz10.z, gw10.z);
- tvec4<T, P> g1110(gx10.w, gy10.w, gz10.w, gw10.w);
- tvec4<T, P> g0001(gx01.x, gy01.x, gz01.x, gw01.x);
- tvec4<T, P> g1001(gx01.y, gy01.y, gz01.y, gw01.y);
- tvec4<T, P> g0101(gx01.z, gy01.z, gz01.z, gw01.z);
- tvec4<T, P> g1101(gx01.w, gy01.w, gz01.w, gw01.w);
- tvec4<T, P> g0011(gx11.x, gy11.x, gz11.x, gw11.x);
- tvec4<T, P> g1011(gx11.y, gy11.y, gz11.y, gw11.y);
- tvec4<T, P> g0111(gx11.z, gy11.z, gz11.z, gw11.z);
- tvec4<T, P> g1111(gx11.w, gy11.w, gz11.w, gw11.w);
-
- tvec4<T, P> norm00 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));
+ vec<4, T, P> g0000(gx00.x, gy00.x, gz00.x, gw00.x);
+ vec<4, T, P> g1000(gx00.y, gy00.y, gz00.y, gw00.y);
+ vec<4, T, P> g0100(gx00.z, gy00.z, gz00.z, gw00.z);
+ vec<4, T, P> g1100(gx00.w, gy00.w, gz00.w, gw00.w);
+ vec<4, T, P> g0010(gx10.x, gy10.x, gz10.x, gw10.x);
+ vec<4, T, P> g1010(gx10.y, gy10.y, gz10.y, gw10.y);
+ vec<4, T, P> g0110(gx10.z, gy10.z, gz10.z, gw10.z);
+ vec<4, T, P> g1110(gx10.w, gy10.w, gz10.w, gw10.w);
+ vec<4, T, P> g0001(gx01.x, gy01.x, gz01.x, gw01.x);
+ vec<4, T, P> g1001(gx01.y, gy01.y, gz01.y, gw01.y);
+ vec<4, T, P> g0101(gx01.z, gy01.z, gz01.z, gw01.z);
+ vec<4, T, P> g1101(gx01.w, gy01.w, gz01.w, gw01.w);
+ vec<4, T, P> g0011(gx11.x, gy11.x, gz11.x, gw11.x);
+ vec<4, T, P> g1011(gx11.y, gy11.y, gz11.y, gw11.y);
+ vec<4, T, P> g0111(gx11.z, gy11.z, gz11.z, gw11.z);
+ vec<4, T, P> g1111(gx11.w, gy11.w, gz11.w, gw11.w);
+
+ vec<4, T, P> norm00 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));
g0000 *= norm00.x;
g0100 *= norm00.y;
g1000 *= norm00.z;
g1100 *= norm00.w;
- tvec4<T, P> norm01 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));
+ vec<4, T, P> norm01 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));
g0001 *= norm01.x;
g0101 *= norm01.y;
g1001 *= norm01.z;
g1101 *= norm01.w;
- tvec4<T, P> norm10 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));
+ vec<4, T, P> norm10 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));
g0010 *= norm10.x;
g0110 *= norm10.y;
g1010 *= norm10.z;
g1110 *= norm10.w;
- tvec4<T, P> norm11 = detail::taylorInvSqrt(tvec4<T, P>(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));
+ vec<4, T, P> norm11 = detail::taylorInvSqrt(vec<4, T, P>(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));
g0011 *= norm11.x;
g0111 *= norm11.y;
g1011 *= norm11.z;
g1111 *= norm11.w;
T n0000 = dot(g0000, Pf0);
- T n1000 = dot(g1000, tvec4<T, P>(Pf1.x, Pf0.y, Pf0.z, Pf0.w));
- T n0100 = dot(g0100, tvec4<T, P>(Pf0.x, Pf1.y, Pf0.z, Pf0.w));
- T n1100 = dot(g1100, tvec4<T, P>(Pf1.x, Pf1.y, Pf0.z, Pf0.w));
- T n0010 = dot(g0010, tvec4<T, P>(Pf0.x, Pf0.y, Pf1.z, Pf0.w));
- T n1010 = dot(g1010, tvec4<T, P>(Pf1.x, Pf0.y, Pf1.z, Pf0.w));
- T n0110 = dot(g0110, tvec4<T, P>(Pf0.x, Pf1.y, Pf1.z, Pf0.w));
- T n1110 = dot(g1110, tvec4<T, P>(Pf1.x, Pf1.y, Pf1.z, Pf0.w));
- T n0001 = dot(g0001, tvec4<T, P>(Pf0.x, Pf0.y, Pf0.z, Pf1.w));
- T n1001 = dot(g1001, tvec4<T, P>(Pf1.x, Pf0.y, Pf0.z, Pf1.w));
- T n0101 = dot(g0101, tvec4<T, P>(Pf0.x, Pf1.y, Pf0.z, Pf1.w));
- T n1101 = dot(g1101, tvec4<T, P>(Pf1.x, Pf1.y, Pf0.z, Pf1.w));
- T n0011 = dot(g0011, tvec4<T, P>(Pf0.x, Pf0.y, Pf1.z, Pf1.w));
- T n1011 = dot(g1011, tvec4<T, P>(Pf1.x, Pf0.y, Pf1.z, Pf1.w));
- T n0111 = dot(g0111, tvec4<T, P>(Pf0.x, Pf1.y, Pf1.z, Pf1.w));
+ T n1000 = dot(g1000, vec<4, T, P>(Pf1.x, Pf0.y, Pf0.z, Pf0.w));
+ T n0100 = dot(g0100, vec<4, T, P>(Pf0.x, Pf1.y, Pf0.z, Pf0.w));
+ T n1100 = dot(g1100, vec<4, T, P>(Pf1.x, Pf1.y, Pf0.z, Pf0.w));
+ T n0010 = dot(g0010, vec<4, T, P>(Pf0.x, Pf0.y, Pf1.z, Pf0.w));
+ T n1010 = dot(g1010, vec<4, T, P>(Pf1.x, Pf0.y, Pf1.z, Pf0.w));
+ T n0110 = dot(g0110, vec<4, T, P>(Pf0.x, Pf1.y, Pf1.z, Pf0.w));
+ T n1110 = dot(g1110, vec<4, T, P>(Pf1.x, Pf1.y, Pf1.z, Pf0.w));
+ T n0001 = dot(g0001, vec<4, T, P>(Pf0.x, Pf0.y, Pf0.z, Pf1.w));
+ T n1001 = dot(g1001, vec<4, T, P>(Pf1.x, Pf0.y, Pf0.z, Pf1.w));
+ T n0101 = dot(g0101, vec<4, T, P>(Pf0.x, Pf1.y, Pf0.z, Pf1.w));
+ T n1101 = dot(g1101, vec<4, T, P>(Pf1.x, Pf1.y, Pf0.z, Pf1.w));
+ T n0011 = dot(g0011, vec<4, T, P>(Pf0.x, Pf0.y, Pf1.z, Pf1.w));
+ T n1011 = dot(g1011, vec<4, T, P>(Pf1.x, Pf0.y, Pf1.z, Pf1.w));
+ T n0111 = dot(g0111, vec<4, T, P>(Pf0.x, Pf1.y, Pf1.z, Pf1.w));
T n1111 = dot(g1111, Pf1);
- tvec4<T, P> fade_xyzw = detail::fade(Pf0);
- tvec4<T, P> n_0w = mix(tvec4<T, P>(n0000, n1000, n0100, n1100), tvec4<T, P>(n0001, n1001, n0101, n1101), fade_xyzw.w);
- tvec4<T, P> n_1w = mix(tvec4<T, P>(n0010, n1010, n0110, n1110), tvec4<T, P>(n0011, n1011, n0111, n1111), fade_xyzw.w);
- tvec4<T, P> n_zw = mix(n_0w, n_1w, fade_xyzw.z);
- tvec2<T, P> n_yzw = mix(tvec2<T, P>(n_zw.x, n_zw.y), tvec2<T, P>(n_zw.z, n_zw.w), fade_xyzw.y);
+ vec<4, T, P> fade_xyzw = detail::fade(Pf0);
+ vec<4, T, P> n_0w = mix(vec<4, T, P>(n0000, n1000, n0100, n1100), vec<4, T, P>(n0001, n1001, n0101, n1101), fade_xyzw.w);
+ vec<4, T, P> n_1w = mix(vec<4, T, P>(n0010, n1010, n0110, n1110), vec<4, T, P>(n0011, n1011, n0111, n1111), fade_xyzw.w);
+ vec<4, T, P> n_zw = mix(n_0w, n_1w, fade_xyzw.z);
+ vec<2, T, P> n_yzw = mix(vec<2, T, P>(n_zw.x, n_zw.y), vec<2, T, P>(n_zw.z, n_zw.w), fade_xyzw.y);
T n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);
return T(2.2) * n_xyzw;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T simplex(glm::tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T simplex(glm::vec<2, T, P> const & v)
{
- tvec4<T, P> const C = tvec4<T, P>(
+ vec<4, T, P> const C = vec<4, T, P>(
T( 0.211324865405187), // (3.0 - sqrt(3.0)) / 6.0
T( 0.366025403784439), // 0.5 * (sqrt(3.0) - 1.0)
T(-0.577350269189626), // -1.0 + 2.0 * C.x
T( 0.024390243902439)); // 1.0 / 41.0
// First corner
- tvec2<T, P> i = floor(v + dot(v, tvec2<T, P>(C[1])));
- tvec2<T, P> x0 = v - i + dot(i, tvec2<T, P>(C[0]));
+ vec<2, T, P> i = floor(v + dot(v, vec<2, T, P>(C[1])));
+ vec<2, T, P> x0 = v - i + dot(i, vec<2, T, P>(C[0]));
// Other corners
//i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0
//i1.y = 1.0 - i1.x;
- tvec2<T, P> i1 = (x0.x > x0.y) ? tvec2<T, P>(1, 0) : tvec2<T, P>(0, 1);
+ vec<2, T, P> i1 = (x0.x > x0.y) ? vec<2, T, P>(1, 0) : vec<2, T, P>(0, 1);
// x0 = x0 - 0.0 + 0.0 * C.xx ;
// x1 = x0 - i1 + 1.0 * C.xx ;
// x2 = x0 - 1.0 + 2.0 * C.xx ;
- tvec4<T, P> x12 = tvec4<T, P>(x0.x, x0.y, x0.x, x0.y) + tvec4<T, P>(C.x, C.x, C.z, C.z);
- x12 = tvec4<T, P>(tvec2<T, P>(x12) - i1, x12.z, x12.w);
+ vec<4, T, P> x12 = vec<4, T, P>(x0.x, x0.y, x0.x, x0.y) + vec<4, T, P>(C.x, C.x, C.z, C.z);
+ x12 = vec<4, T, P>(vec<2, T, P>(x12) - i1, x12.z, x12.w);
// Permutations
- i = mod(i, tvec2<T, P>(289)); // Avoid truncation effects in permutation
- tvec3<T, P> p = detail::permute(
- detail::permute(i.y + tvec3<T, P>(T(0), i1.y, T(1)))
- + i.x + tvec3<T, P>(T(0), i1.x, T(1)));
+ i = mod(i, vec<2, T, P>(289)); // Avoid truncation effects in permutation
+ vec<3, T, P> p = detail::permute(
+ detail::permute(i.y + vec<3, T, P>(T(0), i1.y, T(1)))
+ + i.x + vec<3, T, P>(T(0), i1.x, T(1)));
- tvec3<T, P> m = max(tvec3<T, P>(0.5) - tvec3<T, P>(
+ vec<3, T, P> m = max(vec<3, T, P>(0.5) - vec<3, T, P>(
dot(x0, x0),
- dot(tvec2<T, P>(x12.x, x12.y), tvec2<T, P>(x12.x, x12.y)),
- dot(tvec2<T, P>(x12.z, x12.w), tvec2<T, P>(x12.z, x12.w))), tvec3<T, P>(0));
+ dot(vec<2, T, P>(x12.x, x12.y), vec<2, T, P>(x12.x, x12.y)),
+ dot(vec<2, T, P>(x12.z, x12.w), vec<2, T, P>(x12.z, x12.w))), vec<3, T, P>(0));
m = m * m ;
m = m * m ;
// Gradients: 41 points uniformly over a line, mapped onto a diamond.
// The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287)
- tvec3<T, P> x = static_cast<T>(2) * fract(p * C.w) - T(1);
- tvec3<T, P> h = abs(x) - T(0.5);
- tvec3<T, P> ox = floor(x + T(0.5));
- tvec3<T, P> a0 = x - ox;
+ vec<3, T, P> x = static_cast<T>(2) * fract(p * C.w) - T(1);
+ vec<3, T, P> h = abs(x) - T(0.5);
+ vec<3, T, P> ox = floor(x + T(0.5));
+ vec<3, T, P> a0 = x - ox;
// Normalise gradients implicitly by scaling m
// Inlined for speed: m *= taylorInvSqrt( a0*a0 + h*h );
m *= static_cast<T>(1.79284291400159) - T(0.85373472095314) * (a0 * a0 + h * h);
// Compute final noise value at P
- tvec3<T, P> g;
+ vec<3, T, P> g;
g.x = a0.x * x0.x + h.x * x0.y;
//g.yz = a0.yz * x12.xz + h.yz * x12.yw;
g.y = a0.y * x12.x + h.y * x12.y;
@@ -645,85 +645,85 @@ namespace gtc
return T(130) * dot(m, g);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T simplex(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T simplex(vec<3, T, P> const & v)
{
- tvec2<T, P> const C(1.0 / 6.0, 1.0 / 3.0);
- tvec4<T, P> const D(0.0, 0.5, 1.0, 2.0);
+ vec<2, T, P> const C(1.0 / 6.0, 1.0 / 3.0);
+ vec<4, T, P> const D(0.0, 0.5, 1.0, 2.0);
// First corner
- tvec3<T, P> i(floor(v + dot(v, tvec3<T, P>(C.y))));
- tvec3<T, P> x0(v - i + dot(i, tvec3<T, P>(C.x)));
+ vec<3, T, P> i(floor(v + dot(v, vec<3, T, P>(C.y))));
+ vec<3, T, P> x0(v - i + dot(i, vec<3, T, P>(C.x)));
// Other corners
- tvec3<T, P> g(step(tvec3<T, P>(x0.y, x0.z, x0.x), x0));
- tvec3<T, P> l(T(1) - g);
- tvec3<T, P> i1(min(g, tvec3<T, P>(l.z, l.x, l.y)));
- tvec3<T, P> i2(max(g, tvec3<T, P>(l.z, l.x, l.y)));
+ vec<3, T, P> g(step(vec<3, T, P>(x0.y, x0.z, x0.x), x0));
+ vec<3, T, P> l(T(1) - g);
+ vec<3, T, P> i1(min(g, vec<3, T, P>(l.z, l.x, l.y)));
+ vec<3, T, P> i2(max(g, vec<3, T, P>(l.z, l.x, l.y)));
// x0 = x0 - 0.0 + 0.0 * C.xxx;
// x1 = x0 - i1 + 1.0 * C.xxx;
// x2 = x0 - i2 + 2.0 * C.xxx;
// x3 = x0 - 1.0 + 3.0 * C.xxx;
- tvec3<T, P> x1(x0 - i1 + C.x);
- tvec3<T, P> x2(x0 - i2 + C.y); // 2.0*C.x = 1/3 = C.y
- tvec3<T, P> x3(x0 - D.y); // -1.0+3.0*C.x = -0.5 = -D.y
+ vec<3, T, P> x1(x0 - i1 + C.x);
+ vec<3, T, P> x2(x0 - i2 + C.y); // 2.0*C.x = 1/3 = C.y
+ vec<3, T, P> x3(x0 - D.y); // -1.0+3.0*C.x = -0.5 = -D.y
// Permutations
i = detail::mod289(i);
- tvec4<T, P> p(detail::permute(detail::permute(detail::permute(
- i.z + tvec4<T, P>(T(0), i1.z, i2.z, T(1))) +
- i.y + tvec4<T, P>(T(0), i1.y, i2.y, T(1))) +
- i.x + tvec4<T, P>(T(0), i1.x, i2.x, T(1))));
+ vec<4, T, P> p(detail::permute(detail::permute(detail::permute(
+ i.z + vec<4, T, P>(T(0), i1.z, i2.z, T(1))) +
+ i.y + vec<4, T, P>(T(0), i1.y, i2.y, T(1))) +
+ i.x + vec<4, T, P>(T(0), i1.x, i2.x, T(1))));
// Gradients: 7x7 points over a square, mapped onto an octahedron.
// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)
T n_ = static_cast<T>(0.142857142857); // 1.0/7.0
- tvec3<T, P> ns(n_ * tvec3<T, P>(D.w, D.y, D.z) - tvec3<T, P>(D.x, D.z, D.x));
+ vec<3, T, P> ns(n_ * vec<3, T, P>(D.w, D.y, D.z) - vec<3, T, P>(D.x, D.z, D.x));
- tvec4<T, P> j(p - T(49) * floor(p * ns.z * ns.z)); // mod(p,7*7)
+ vec<4, T, P> j(p - T(49) * floor(p * ns.z * ns.z)); // mod(p,7*7)
- tvec4<T, P> x_(floor(j * ns.z));
- tvec4<T, P> y_(floor(j - T(7) * x_)); // mod(j,N)
+ vec<4, T, P> x_(floor(j * ns.z));
+ vec<4, T, P> y_(floor(j - T(7) * x_)); // mod(j,N)
- tvec4<T, P> x(x_ * ns.x + ns.y);
- tvec4<T, P> y(y_ * ns.x + ns.y);
- tvec4<T, P> h(T(1) - abs(x) - abs(y));
+ vec<4, T, P> x(x_ * ns.x + ns.y);
+ vec<4, T, P> y(y_ * ns.x + ns.y);
+ vec<4, T, P> h(T(1) - abs(x) - abs(y));
- tvec4<T, P> b0(x.x, x.y, y.x, y.y);
- tvec4<T, P> b1(x.z, x.w, y.z, y.w);
+ vec<4, T, P> b0(x.x, x.y, y.x, y.y);
+ vec<4, T, P> b1(x.z, x.w, y.z, y.w);
// vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;
// vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;
- tvec4<T, P> s0(floor(b0) * T(2) + T(1));
- tvec4<T, P> s1(floor(b1) * T(2) + T(1));
- tvec4<T, P> sh(-step(h, tvec4<T, P>(0.0)));
+ vec<4, T, P> s0(floor(b0) * T(2) + T(1));
+ vec<4, T, P> s1(floor(b1) * T(2) + T(1));
+ vec<4, T, P> sh(-step(h, vec<4, T, P>(0.0)));
- tvec4<T, P> a0 = tvec4<T, P>(b0.x, b0.z, b0.y, b0.w) + tvec4<T, P>(s0.x, s0.z, s0.y, s0.w) * tvec4<T, P>(sh.x, sh.x, sh.y, sh.y);
- tvec4<T, P> a1 = tvec4<T, P>(b1.x, b1.z, b1.y, b1.w) + tvec4<T, P>(s1.x, s1.z, s1.y, s1.w) * tvec4<T, P>(sh.z, sh.z, sh.w, sh.w);
+ vec<4, T, P> a0 = vec<4, T, P>(b0.x, b0.z, b0.y, b0.w) + vec<4, T, P>(s0.x, s0.z, s0.y, s0.w) * vec<4, T, P>(sh.x, sh.x, sh.y, sh.y);
+ vec<4, T, P> a1 = vec<4, T, P>(b1.x, b1.z, b1.y, b1.w) + vec<4, T, P>(s1.x, s1.z, s1.y, s1.w) * vec<4, T, P>(sh.z, sh.z, sh.w, sh.w);
- tvec3<T, P> p0(a0.x, a0.y, h.x);
- tvec3<T, P> p1(a0.z, a0.w, h.y);
- tvec3<T, P> p2(a1.x, a1.y, h.z);
- tvec3<T, P> p3(a1.z, a1.w, h.w);
+ vec<3, T, P> p0(a0.x, a0.y, h.x);
+ vec<3, T, P> p1(a0.z, a0.w, h.y);
+ vec<3, T, P> p2(a1.x, a1.y, h.z);
+ vec<3, T, P> p3(a1.z, a1.w, h.w);
// Normalise gradients
- tvec4<T, P> norm = detail::taylorInvSqrt(tvec4<T, P>(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
+ vec<4, T, P> norm = detail::taylorInvSqrt(vec<4, T, P>(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
p0 *= norm.x;
p1 *= norm.y;
p2 *= norm.z;
p3 *= norm.w;
// Mix final noise value
- tvec4<T, P> m = max(T(0.6) - tvec4<T, P>(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), tvec4<T, P>(0));
+ vec<4, T, P> m = max(T(0.6) - vec<4, T, P>(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), vec<4, T, P>(0));
m = m * m;
- return T(42) * dot(m * m, tvec4<T, P>(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
+ return T(42) * dot(m * m, vec<4, T, P>(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T simplex(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T simplex(vec<4, T, P> const & v)
{
- tvec4<T, P> const C(
+ vec<4, T, P> const C(
0.138196601125011, // (5 - sqrt(5))/20 G4
0.276393202250021, // 2 * G4
0.414589803375032, // 3 * G4
@@ -733,63 +733,63 @@ namespace gtc
T const F4 = static_cast<T>(0.309016994374947451);
// First corner
- tvec4<T, P> i = floor(v + dot(v, vec4(F4)));
- tvec4<T, P> x0 = v - i + dot(i, vec4(C.x));
+ vec<4, T, P> i = floor(v + dot(v, vec4(F4)));
+ vec<4, T, P> x0 = v - i + dot(i, vec4(C.x));
// Other corners
// Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI)
- tvec4<T, P> i0;
- tvec3<T, P> isX = step(tvec3<T, P>(x0.y, x0.z, x0.w), tvec3<T, P>(x0.x));
- tvec3<T, P> isYZ = step(tvec3<T, P>(x0.z, x0.w, x0.w), tvec3<T, P>(x0.y, x0.y, x0.z));
+ vec<4, T, P> i0;
+ vec<3, T, P> isX = step(vec<3, T, P>(x0.y, x0.z, x0.w), vec<3, T, P>(x0.x));
+ vec<3, T, P> isYZ = step(vec<3, T, P>(x0.z, x0.w, x0.w), vec<3, T, P>(x0.y, x0.y, x0.z));
// i0.x = dot(isX, vec3(1.0));
//i0.x = isX.x + isX.y + isX.z;
//i0.yzw = static_cast<T>(1) - isX;
- i0 = tvec4<T, P>(isX.x + isX.y + isX.z, T(1) - isX);
+ i0 = vec<4, T, P>(isX.x + isX.y + isX.z, T(1) - isX);
// i0.y += dot(isYZ.xy, vec2(1.0));
i0.y += isYZ.x + isYZ.y;
- //i0.zw += 1.0 - tvec2<T, P>(isYZ.x, isYZ.y);
+ //i0.zw += 1.0 - vec<2, T, P>(isYZ.x, isYZ.y);
i0.z += static_cast<T>(1) - isYZ.x;
i0.w += static_cast<T>(1) - isYZ.y;
i0.z += isYZ.z;
i0.w += static_cast<T>(1) - isYZ.z;
// i0 now contains the unique values 0,1,2,3 in each channel
- tvec4<T, P> i3 = clamp(i0, T(0), T(1));
- tvec4<T, P> i2 = clamp(i0 - T(1), T(0), T(1));
- tvec4<T, P> i1 = clamp(i0 - T(2), T(0), T(1));
+ vec<4, T, P> i3 = clamp(i0, T(0), T(1));
+ vec<4, T, P> i2 = clamp(i0 - T(1), T(0), T(1));
+ vec<4, T, P> i1 = clamp(i0 - T(2), T(0), T(1));
// x0 = x0 - 0.0 + 0.0 * C.xxxx
// x1 = x0 - i1 + 0.0 * C.xxxx
// x2 = x0 - i2 + 0.0 * C.xxxx
// x3 = x0 - i3 + 0.0 * C.xxxx
// x4 = x0 - 1.0 + 4.0 * C.xxxx
- tvec4<T, P> x1 = x0 - i1 + C.x;
- tvec4<T, P> x2 = x0 - i2 + C.y;
- tvec4<T, P> x3 = x0 - i3 + C.z;
- tvec4<T, P> x4 = x0 + C.w;
+ vec<4, T, P> x1 = x0 - i1 + C.x;
+ vec<4, T, P> x2 = x0 - i2 + C.y;
+ vec<4, T, P> x3 = x0 - i3 + C.z;
+ vec<4, T, P> x4 = x0 + C.w;
// Permutations
- i = mod(i, tvec4<T, P>(289));
+ i = mod(i, vec<4, T, P>(289));
T j0 = detail::permute(detail::permute(detail::permute(detail::permute(i.w) + i.z) + i.y) + i.x);
- tvec4<T, P> j1 = detail::permute(detail::permute(detail::permute(detail::permute(
- i.w + tvec4<T, P>(i1.w, i2.w, i3.w, T(1))) +
- i.z + tvec4<T, P>(i1.z, i2.z, i3.z, T(1))) +
- i.y + tvec4<T, P>(i1.y, i2.y, i3.y, T(1))) +
- i.x + tvec4<T, P>(i1.x, i2.x, i3.x, T(1)));
+ vec<4, T, P> j1 = detail::permute(detail::permute(detail::permute(detail::permute(
+ i.w + vec<4, T, P>(i1.w, i2.w, i3.w, T(1))) +
+ i.z + vec<4, T, P>(i1.z, i2.z, i3.z, T(1))) +
+ i.y + vec<4, T, P>(i1.y, i2.y, i3.y, T(1))) +
+ i.x + vec<4, T, P>(i1.x, i2.x, i3.x, T(1)));
// Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope
// 7*7*6 = 294, which is close to the ring size 17*17 = 289.
- tvec4<T, P> ip = tvec4<T, P>(T(1) / T(294), T(1) / T(49), T(1) / T(7), T(0));
+ vec<4, T, P> ip = vec<4, T, P>(T(1) / T(294), T(1) / T(49), T(1) / T(7), T(0));
- tvec4<T, P> p0 = gtc::grad4(j0, ip);
- tvec4<T, P> p1 = gtc::grad4(j1.x, ip);
- tvec4<T, P> p2 = gtc::grad4(j1.y, ip);
- tvec4<T, P> p3 = gtc::grad4(j1.z, ip);
- tvec4<T, P> p4 = gtc::grad4(j1.w, ip);
+ vec<4, T, P> p0 = gtc::grad4(j0, ip);
+ vec<4, T, P> p1 = gtc::grad4(j1.x, ip);
+ vec<4, T, P> p2 = gtc::grad4(j1.y, ip);
+ vec<4, T, P> p3 = gtc::grad4(j1.z, ip);
+ vec<4, T, P> p4 = gtc::grad4(j1.w, ip);
// Normalise gradients
- tvec4<T, P> norm = detail::taylorInvSqrt(tvec4<T, P>(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
+ vec<4, T, P> norm = detail::taylorInvSqrt(vec<4, T, P>(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
p0 *= norm.x;
p1 *= norm.y;
p2 *= norm.z;
@@ -797,12 +797,12 @@ namespace gtc
p4 *= detail::taylorInvSqrt(dot(p4, p4));
// Mix contributions from the five corners
- tvec3<T, P> m0 = max(T(0.6) - tvec3<T, P>(dot(x0, x0), dot(x1, x1), dot(x2, x2)), tvec3<T, P>(0));
- tvec2<T, P> m1 = max(T(0.6) - tvec2<T, P>(dot(x3, x3), dot(x4, x4) ), tvec2<T, P>(0));
+ vec<3, T, P> m0 = max(T(0.6) - vec<3, T, P>(dot(x0, x0), dot(x1, x1), dot(x2, x2)), vec<3, T, P>(0));
+ vec<2, T, P> m1 = max(T(0.6) - vec<2, T, P>(dot(x3, x3), dot(x4, x4) ), vec<2, T, P>(0));
m0 = m0 * m0;
m1 = m1 * m1;
return T(49) *
- (dot(m0 * m0, tvec3<T, P>(dot(p0, x0), dot(p1, x1), dot(p2, x2))) +
- dot(m1 * m1, tvec2<T, P>(dot(p3, x3), dot(p4, x4))));
+ (dot(m0 * m0, vec<3, T, P>(dot(p0, x0), dot(p1, x1), dot(p2, x2))) +
+ dot(m1 * m1, vec<2, T, P>(dot(p3, x3), dot(p4, x4))));
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/packing.hpp b/3rdparty/glm/glm/gtc/packing.hpp
index 1389d9595f0..59595648613 100644
--- a/3rdparty/glm/glm/gtc/packing.hpp
+++ b/3rdparty/glm/glm/gtc/packing.hpp
@@ -451,6 +451,8 @@ namespace glm
/// The first vector component specifies the 11 least-significant bits of the result;
/// the last component specifies the 10 most-significant bits.
///
+ /// packF3x9_E1x5 allows encoding into RGBE / RGB9E5 format
+ ///
/// @see gtc_packing
/// @see vec3 unpackF3x9_E1x5(uint32 const & p)
GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const & v);
@@ -460,7 +462,9 @@ namespace glm
///
/// 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.
- ///
+ ///
+ /// unpackF3x9_E1x5 allows decoding RGBE / RGB9E5 data
+ ///
/// @see gtc_packing
/// @see uint32 packF3x9_E1x5(vec3 const & v)
GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p);
@@ -471,48 +475,69 @@ namespace glm
/// the forth component specifies the 16 most-significant bits.
///
/// @see gtc_packing
- /// @see vecType<float, P> unpackHalf(vecType<uint16, P> const & p)
+ /// @see vec<3, T, P> unpackRGBM(vec<4, T, P> const & p)
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
+ template<length_t L, typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> packRGBM(vec<3, T, P> const & rgb);
+
+ /// Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.
+ /// The first component of the vector is obtained from the 16 least-significant bits of v;
+ /// the forth component is obtained from the 16 most-significant bits of v.
+ ///
+ /// @see gtc_packing
+ /// @see vec<4, T, P> packRGBM(vec<3, float, P> const & v)
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
+ template<length_t L, typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> unpackRGBM(vec<4, T, P> const & rgbm);
+
+ /// Returns an unsigned integer vector obtained by converting the components of a floating-point vector
+ /// to the 16-bit floating-point representation found in the OpenGL Specification.
+ /// The first vector component specifies the 16 least-significant bits of the result;
+ /// the forth component specifies the 16 most-significant bits.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<L, float, P> unpackHalf(vecType<L, uint16, P> const & p)
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<uint16, P> packHalf(vecType<float, P> const & v);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, uint16, P> packHalf(vecType<L, float, P> const & v);
/// Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.
/// The first component of the vector is obtained from the 16 least-significant bits of v;
/// the forth component is obtained from the 16 most-significant bits of v.
///
/// @see gtc_packing
- /// @see vecType<uint16, P> packHalf(vecType<float, P> const & v)
+ /// @see vecType<L, uint16, P> packHalf(vecType<L, float, P> const & v)
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<float, P> unpackHalf(vecType<uint16, P> const & p);
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, float, P> unpackHalf(vecType<L, uint16, P> const & p);
/// Convert each component of the normalized floating-point vector into unsigned integer values.
///
/// @see gtc_packing
- /// @see vecType<floatType, P> unpackUnorm(vecType<intType, P> const & p);
- template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<uintType, P> packUnorm(vecType<floatType, P> const & v);
+ /// @see vecType<L, floatType, P> unpackUnorm(vecType<L, intType, P> const & p);
+ template<typename uintType, length_t L, typename floatType, precision P>
+ GLM_FUNC_DECL vec<L, uintType, P> packUnorm(vec<L, floatType, P> const & v);
/// Convert each unsigned integer components of a vector to normalized floating-point values.
///
/// @see gtc_packing
- /// @see vecType<intType, P> packUnorm(vecType<floatType, P> const & v)
- template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<floatType, P> unpackUnorm(vecType<uintType, P> const & v);
+ /// @see vecType<L, intType, P> packUnorm(vecType<L, floatType, P> const & v)
+ template<typename floatType, length_t L, typename uintType, precision P>
+ GLM_FUNC_DECL vec<L, floatType, P> unpackUnorm(vec<L, uintType, P> const & v);
/// Convert each component of the normalized floating-point vector into signed integer values.
///
/// @see gtc_packing
- /// @see vecType<floatType, P> unpackSnorm(vecType<intType, P> const & p);
- template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<intType, P> packSnorm(vecType<floatType, P> const & v);
+ /// @see vecType<L, floatType, P> unpackSnorm(vecType<L, intType, P> const & p);
+ template<typename intType, length_t L, typename floatType, precision P>
+ GLM_FUNC_DECL vec<L, intType, P> packSnorm(vec<L, floatType, P> const & v);
/// Convert each signed integer components of a vector to normalized floating-point values.
///
/// @see gtc_packing
- /// @see vecType<intType, P> packSnorm(vecType<floatType, P> const & v)
- template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<floatType, P> unpackSnorm(vecType<intType, P> const & v);
+ /// @see vecType<L, intType, P> packSnorm(vecType<L, floatType, P> const & v)
+ template<typename floatType, length_t L, typename intType, precision P>
+ GLM_FUNC_DECL vec<L, floatType, P> unpackSnorm(vec<L, intType, P> const & v);
/// Convert each component of the normalized floating-point vector into unsigned integer values.
///
diff --git a/3rdparty/glm/glm/gtc/packing.inl b/3rdparty/glm/glm/gtc/packing.inl
index b3c7c4e05d1..df744b2f32e 100644
--- a/3rdparty/glm/glm/gtc/packing.inl
+++ b/3rdparty/glm/glm/gtc/packing.inl
@@ -270,14 +270,14 @@ namespace detail
uint32 pack;
};
- template <precision P, template <typename, precision> class vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
struct compute_half
{};
- template <precision P>
- struct compute_half<P, tvec1>
+ template<precision P>
+ struct compute_half<1, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec1<uint16, P> pack(tvec1<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<1, uint16, P> pack(vec<1, float, P> const & v)
{
int16 const Unpack(detail::toFloat16(v.x));
u16vec1 Packed(uninitialize);
@@ -285,68 +285,68 @@ namespace detail
return Packed;
}
- GLM_FUNC_QUALIFIER static tvec1<float, P> unpack(tvec1<uint16, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<1, float, P> unpack(vec<1, uint16, P> const & v)
{
i16vec1 Unpack(uninitialize);
memcpy(&Unpack, &v, sizeof(Unpack));
- return tvec1<float, P>(detail::toFloat32(v.x));
+ return vec<1, float, P>(detail::toFloat32(v.x));
}
};
- template <precision P>
- struct compute_half<P, tvec2>
+ template<precision P>
+ struct compute_half<2, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec2<uint16, P> pack(tvec2<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<2, uint16, P> pack(vec<2, float, P> const & v)
{
- tvec2<int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y));
+ vec<2, int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y));
u16vec2 Packed(uninitialize);
memcpy(&Packed, &Unpack, sizeof(Packed));
return Packed;
}
- GLM_FUNC_QUALIFIER static tvec2<float, P> unpack(tvec2<uint16, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<2, float, P> unpack(vec<2, uint16, P> const & v)
{
i16vec2 Unpack(uninitialize);
memcpy(&Unpack, &v, sizeof(Unpack));
- return tvec2<float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y));
+ return vec<2, float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y));
}
};
- template <precision P>
- struct compute_half<P, tvec3>
+ template<precision P>
+ struct compute_half<3, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec3<uint16, P> pack(tvec3<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<3, uint16, P> pack(vec<3, float, P> const & v)
{
- tvec3<int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z));
+ vec<3, int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z));
u16vec3 Packed(uninitialize);
memcpy(&Packed, &Unpack, sizeof(Packed));
return Packed;
}
- GLM_FUNC_QUALIFIER static tvec3<float, P> unpack(tvec3<uint16, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<3, float, P> unpack(vec<3, uint16, P> const & v)
{
i16vec3 Unpack(uninitialize);
memcpy(&Unpack, &v, sizeof(Unpack));
- return tvec3<float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z));
+ return vec<3, float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z));
}
};
- template <precision P>
- struct compute_half<P, tvec4>
+ template<precision P>
+ struct compute_half<4, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec4<uint16, P> pack(tvec4<float, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, uint16, P> pack(vec<4, float, P> const & v)
{
- tvec4<int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z), detail::toFloat16(v.w));
+ vec<4, int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z), detail::toFloat16(v.w));
u16vec4 Packed(uninitialize);
memcpy(&Packed, &Unpack, sizeof(Packed));
return Packed;
}
- GLM_FUNC_QUALIFIER static tvec4<float, P> unpack(tvec4<uint16, P> const & v)
+ GLM_FUNC_QUALIFIER static vec<4, float, P> unpack(vec<4, uint16, P> const & v)
{
i16vec4 Unpack(uninitialize);
memcpy(&Unpack, &v, sizeof(Unpack));
- return tvec4<float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z), detail::toFloat32(v.w));
+ return vec<4, float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z), detail::toFloat32(v.w));
}
};
}//namespace detail
@@ -554,11 +554,13 @@ namespace detail
GLM_FUNC_QUALIFIER uint32 packSnorm3x10_1x2(vec4 const & v)
{
+ ivec4 const Pack(round(clamp(v,-1.0f, 1.0f) * vec4(511.f, 511.f, 511.f, 1.f)));
+
detail::i10i10i10i2 Result;
- Result.data.x = int(round(clamp(v.x,-1.0f, 1.0f) * 511.f));
- Result.data.y = int(round(clamp(v.y,-1.0f, 1.0f) * 511.f));
- Result.data.z = int(round(clamp(v.z,-1.0f, 1.0f) * 511.f));
- Result.data.w = int(round(clamp(v.w,-1.0f, 1.0f) * 1.f));
+ Result.data.x = Pack.x;
+ Result.data.y = Pack.y;
+ Result.data.z = Pack.z;
+ Result.data.w = Pack.w;
return Result.pack;
}
@@ -566,12 +568,10 @@ namespace detail
{
detail::i10i10i10i2 Unpack;
Unpack.pack = v;
- vec4 Result;
- Result.x = clamp(float(Unpack.data.x) / 511.f, -1.0f, 1.0f);
- Result.y = clamp(float(Unpack.data.y) / 511.f, -1.0f, 1.0f);
- Result.z = clamp(float(Unpack.data.z) / 511.f, -1.0f, 1.0f);
- Result.w = clamp(float(Unpack.data.w) / 1.f, -1.0f, 1.0f);
- return Result;
+
+ vec4 const Result(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w);
+
+ return clamp(Result * vec4(1.f / 511.f, 1.f / 511.f, 1.f / 511.f, 1.f), -1.0f, 1.0f);
}
GLM_FUNC_QUALIFIER uint32 packUnorm3x10_1x2(vec4 const & v)
@@ -639,52 +639,68 @@ namespace detail
return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * pow(2.0f, Unpack.data.w - 15.f - 9.f);
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<uint16, P> packHalf(vecType<float, P> const & v)
+ // Based on Brian Karis http://graphicrants.blogspot.fr/2009/04/rgbm-color-encoding.html
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> packRGBM(vec<3, T, P> const & rgb)
+ {
+ vec<3, T, P> const Color(rgb * static_cast<T>(1.0 / 6.0));
+ T Alpha = clamp(max(max(Color.x, Color.y), max(Color.z, static_cast<T>(1e-6))), static_cast<T>(0), static_cast<T>(1));
+ Alpha = ceil(Alpha * static_cast<T>(255.0)) / static_cast<T>(255.0);
+ return vec<4, T, P>(Color / Alpha, Alpha);
+ }
+
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> unpackRGBM(vec<4, T, P> const & rgbm)
+ {
+ return vec<3, T, P>(rgbm.x, rgbm.y, rgbm.z) * rgbm.w * static_cast<T>(6);
+ }
+
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, uint16, P> packHalf(vecType<L, float, P> const & v)
{
- return detail::compute_half<P, vecType>::pack(v);
+ return detail::compute_half<L, P, vecType>::pack(v);
}
- template <precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<float, P> unpackHalf(vecType<uint16, P> const & v)
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, float, P> unpackHalf(vecType<L, uint16, P> const & v)
{
- return detail::compute_half<P, vecType>::unpack(v);
+ return detail::compute_half<L, P, vecType>::unpack(v);
}
- template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<uintType, P> packUnorm(vecType<floatType, P> const & v)
+ template<typename uintType, length_t L, typename floatType, precision P>
+ GLM_FUNC_QUALIFIER vec<L, uintType, P> packUnorm(vec<L, floatType, P> const& v)
{
GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer, "uintType must be an integer type");
GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
- return vecType<uintType, P>(round(clamp(v, static_cast<floatType>(0), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<uintType>::max())));
+ return vec<L, uintType, P>(round(clamp(v, static_cast<floatType>(0), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<uintType>::max())));
}
- template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<floatType, P> unpackUnorm(vecType<uintType, P> const & v)
+ template<typename floatType, length_t L, typename uintType, precision P>
+ GLM_FUNC_QUALIFIER vec<L, floatType, P> unpackUnorm(vec<L, uintType, P> const& v)
{
GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer, "uintType must be an integer type");
GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
- return vecType<float, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<uintType>::max()));
+ return vec<L, float, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<uintType>::max()));
}
- template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<intType, P> packSnorm(vecType<floatType, P> const & v)
+ template<typename intType, length_t L, typename floatType, precision P>
+ GLM_FUNC_QUALIFIER vec<L, intType, P> packSnorm(vec<L, floatType, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<intType>::is_integer, "uintType must be an integer type");
GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
- return vecType<intType, P>(round(clamp(v , static_cast<floatType>(-1), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<intType>::max())));
+ return vec<L, intType, P>(round(clamp(v , static_cast<floatType>(-1), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<intType>::max())));
}
- template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<floatType, P> unpackSnorm(vecType<intType, P> const & v)
+ template<typename floatType, length_t L, typename intType, precision P>
+ GLM_FUNC_QUALIFIER vec<L, floatType, P> unpackSnorm(vec<L, intType, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<intType>::is_integer, "uintType must be an integer type");
GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
- return clamp(vecType<floatType, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<intType>::max())), static_cast<floatType>(-1), static_cast<floatType>(1));
+ return clamp(vec<L, floatType, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<intType>::max())), static_cast<floatType>(-1), static_cast<floatType>(1));
}
GLM_FUNC_QUALIFIER uint8 packUnorm2x4(vec2 const & v)
@@ -725,7 +741,7 @@ namespace detail
GLM_FUNC_QUALIFIER uint16 packUnorm1x5_1x6_1x5(vec3 const & v)
{
- u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(15.f, 31.f, 15.f)));
+ u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(31.f, 63.f, 31.f)));
detail::u5u6u5 Result;
Result.data.x = Unpack.x;
Result.data.y = Unpack.y;
@@ -735,7 +751,7 @@ namespace detail
GLM_FUNC_QUALIFIER vec3 unpackUnorm1x5_1x6_1x5(uint16 v)
{
- vec3 const ScaleFactor(1.f / 15.f, 1.f / 31.f, 1.f / 15.f);
+ vec3 const ScaleFactor(1.f / 31.f, 1.f / 63.f, 1.f / 31.f);
detail::u5u6u5 Unpack;
Unpack.pack = v;
return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
@@ -743,7 +759,7 @@ namespace detail
GLM_FUNC_QUALIFIER uint16 packUnorm3x5_1x1(vec4 const & v)
{
- u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec4(15.f, 15.f, 15.f, 1.f)));
+ u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec4(31.f, 31.f, 31.f, 1.f)));
detail::u5u5u5u1 Result;
Result.data.x = Unpack.x;
Result.data.y = Unpack.y;
@@ -754,7 +770,7 @@ namespace detail
GLM_FUNC_QUALIFIER vec4 unpackUnorm3x5_1x1(uint16 v)
{
- vec4 const ScaleFactor(1.f / 15.f, 1.f / 15.f, 1.f / 15.f, 1.f);
+ vec4 const ScaleFactor(1.f / 31.f, 1.f / 31.f, 1.f / 31.f, 1.f);
detail::u5u5u5u1 Unpack;
Unpack.pack = v;
return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
diff --git a/3rdparty/glm/glm/gtc/quaternion.hpp b/3rdparty/glm/glm/gtc/quaternion.hpp
index 72d06037730..769bab8413b 100644
--- a/3rdparty/glm/glm/gtc/quaternion.hpp
+++ b/3rdparty/glm/glm/gtc/quaternion.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/quaternion.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtc_constants (dependence)
///
/// @defgroup gtc_quaternion GLM_GTC_quaternion
@@ -30,7 +29,7 @@ namespace glm
/// @addtogroup gtc_quaternion
/// @{
- template <typename T, precision P = defaultp>
+ template<typename T, precision P = defaultp>
struct tquat
{
// -- Implementation detail --
@@ -71,7 +70,7 @@ namespace glm
typedef length_t length_type;
/// Return the count of components of a quaternion
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 4;}
GLM_FUNC_DECL T & operator[](length_type i);
GLM_FUNC_DECL T const & operator[](length_type i) const;
@@ -79,25 +78,25 @@ namespace glm
// -- Implicit basic constructors --
GLM_FUNC_DECL GLM_CONSTEXPR tquat() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, P> const & q) GLM_DEFAULT;
- template <precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, Q> const & q);
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, P> const& q) GLM_DEFAULT;
+ template<precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, Q> const& q);
// -- Explicit basic constructors --
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tquat(ctor);
- GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & s, tvec3<T, P> const & v);
- GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & w, T const & x, T const & y, T const & z);
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(T s, vec<3, T, P> const& v);
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(T w, T x, T y, T z);
// -- Conversion constructors --
- template <typename U, precision Q>
- GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tquat<U, Q> const & q);
+ template<typename U, precision Q>
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tquat<U, Q> const& q);
/// Explicit conversion operators
# if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS
- GLM_FUNC_DECL explicit operator tmat3x3<T, P>();
- GLM_FUNC_DECL explicit operator tmat4x4<T, P>();
+ GLM_FUNC_DECL explicit operator mat<3, 3, T, P>();
+ GLM_FUNC_DECL explicit operator mat<4, 4, T, P>();
# endif
/// Create a quaternion from two normalized axis
@@ -106,93 +105,93 @@ namespace glm
/// @param v A second normalized axis
/// @see gtc_quaternion
/// @see http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors
- GLM_FUNC_DECL tquat(tvec3<T, P> const & u, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tquat(vec<3, T, P> const & u, vec<3, T, P> const & v);
/// Build a quaternion from euler angles (pitch, yaw, roll), in radians.
- GLM_FUNC_DECL GLM_EXPLICIT tquat(tvec3<T, P> const & eulerAngles);
- GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat3x3<T, P> const & m);
- GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat4x4<T, P> const & m);
+ GLM_FUNC_DECL GLM_EXPLICIT tquat(vec<3, T, P> const& eulerAngles);
+ GLM_FUNC_DECL GLM_EXPLICIT tquat(mat<3, 3, T, P> const& q);
+ GLM_FUNC_DECL GLM_EXPLICIT tquat(mat<4, 4, T, P> const& q);
// -- Unary arithmetic operators --
- GLM_FUNC_DECL tquat<T, P> & operator=(tquat<T, P> const & m) GLM_DEFAULT;
-
- template <typename U>
- GLM_FUNC_DECL tquat<T, P> & operator=(tquat<U, P> const & m);
- template <typename U>
- GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<U, P> const & q);
- template <typename U>
- GLM_FUNC_DECL tquat<T, P> & operator-=(tquat<U, P> const & q);
- template <typename U>
- GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<U, P> const & q);
- template <typename U>
+ GLM_FUNC_DECL tquat<T, P> & operator=(tquat<T, P> const& q) GLM_DEFAULT;
+
+ template<typename U>
+ GLM_FUNC_DECL tquat<T, P> & operator=(tquat<U, P> const& q);
+ template<typename U>
+ GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<U, P> const& q);
+ template<typename U>
+ GLM_FUNC_DECL tquat<T, P> & operator-=(tquat<U, P> const& q);
+ template<typename U>
+ GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<U, P> const& q);
+ template<typename U>
GLM_FUNC_DECL tquat<T, P> & operator*=(U s);
- template <typename U>
+ template<typename U>
GLM_FUNC_DECL tquat<T, P> & operator/=(U s);
};
// -- Unary bit operators --
- template <typename T, precision P>
- GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> const & q);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> const& q);
- template <typename T, precision P>
- GLM_FUNC_DECL tquat<T, P> operator-(tquat<T, P> const & q);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tquat<T, P> operator-(tquat<T, P> const& q);
// -- Binary operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> const & q, tquat<T, P> const & p);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> const & q, tquat<T, P> const & p);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tquat<T, P> const & q, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(tquat<T, P> const & q, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tquat<T, P> const & q);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(vec<3, T, P> const & v, tquat<T, P> const & q);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tquat<T, P> const & q, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(tquat<T, P> const & q, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tquat<T, P> const & q);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(vec<4, T, P> const & v, tquat<T, P> const & q);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> const & q, T const & s);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> operator*(T const & s, tquat<T, P> const & q);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> operator/(tquat<T, P> const & q, T const & s);
// -- Boolean operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool operator==(tquat<T, P> const & q1, tquat<T, P> const & q2);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool operator!=(tquat<T, P> const & q1, tquat<T, P> const & q2);
/// Returns the length of the quaternion.
///
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T length(tquat<T, P> const & q);
/// Returns the normalized quaternion.
///
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> normalize(tquat<T, P> const & q);
/// Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
///
/// @see gtc_quaternion
- 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 T dot(tquat<T, P> const & x, tquat<T, P> const & y);
/// Spherical linear interpolation of two quaternions.
/// The interpolation is oriented and the rotation is performed at constant speed.
@@ -204,7 +203,7 @@ namespace glm
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
/// @see gtc_quaternion
/// @see - slerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a)
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> mix(tquat<T, P> const & x, tquat<T, P> const & y, T a);
/// Linear interpolation of two quaternions.
@@ -215,7 +214,7 @@ namespace glm
/// @param a Interpolation factor. The interpolation is defined in the range [0, 1].
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> lerp(tquat<T, P> const & x, tquat<T, P> const & y, T a);
/// Spherical linear interpolation of two quaternions.
@@ -226,19 +225,19 @@ namespace glm
/// @param a Interpolation factor. The interpolation is defined beyond the range [0, 1].
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> slerp(tquat<T, P> const & x, tquat<T, P> const & y, T a);
/// Returns the q conjugate.
///
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> conjugate(tquat<T, P> const & q);
/// Returns the q inverse.
///
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> inverse(tquat<T, P> const & q);
/// Rotates a quaternion from a vector of 3 components axis and an angle.
@@ -248,69 +247,69 @@ namespace glm
/// @param axis Axis of the rotation
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tquat<T, P> rotate(tquat<T, P> const & q, T const & angle, tvec3<T, P> const & axis);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tquat<T, P> rotate(tquat<T, P> const & q, T const & angle, vec<3, T, P> const & axis);
/// Returns euler angles, pitch as x, yaw as y, roll as z.
/// The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> eulerAngles(tquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> eulerAngles(tquat<T, P> const & x);
/// Returns roll value of euler angles expressed in radians.
///
/// @see gtx_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T roll(tquat<T, P> const & x);
/// Returns pitch value of euler angles expressed in radians.
///
/// @see gtx_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T pitch(tquat<T, P> const & x);
/// Returns yaw value of euler angles expressed in radians.
///
/// @see gtx_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T yaw(tquat<T, P> const & x);
/// Converts a quaternion to a 3 * 3 matrix.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> mat3_cast(tquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> mat3_cast(tquat<T, P> const & x);
/// Converts a quaternion to a 4 * 4 matrix.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> mat4_cast(tquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> mat4_cast(tquat<T, P> const & x);
/// Converts a 3 * 3 matrix to a quaternion.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tquat<T, P> quat_cast(tmat3x3<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tquat<T, P> quat_cast(mat<3, 3, T, P> const & x);
/// Converts a 4 * 4 matrix to a quaternion.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tquat<T, P> quat_cast(tmat4x4<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tquat<T, P> quat_cast(mat<4, 4, T, P> const & x);
/// Returns the quaternion rotation angle.
///
/// @see gtc_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T angle(tquat<T, P> const & x);
/// Returns the q rotation axis.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> axis(tquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> axis(tquat<T, P> const & x);
/// Build a quaternion from an angle and a normalized axis.
///
@@ -318,56 +317,56 @@ namespace glm
/// @param axis Axis of the quaternion, must be normalized.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tquat<T, P> angleAxis(T const & angle, tvec3<T, P> const & axis);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tquat<T, P> angleAxis(T const & angle, vec<3, T, P> const & axis);
/// Returns the component-wise comparison result of x < y.
///
/// @tparam quatType Floating-point quaternion types.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> lessThan(tquat<T, P> const & x, tquat<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> lessThan(tquat<T, P> const & x, tquat<T, P> const & y);
/// Returns the component-wise comparison of result x <= y.
///
/// @tparam quatType Floating-point quaternion types.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> lessThanEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> lessThanEqual(tquat<T, P> const & x, tquat<T, P> const & y);
/// Returns the component-wise comparison of result x > y.
///
/// @tparam quatType Floating-point quaternion types.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> greaterThan(tquat<T, P> const & x, tquat<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> greaterThan(tquat<T, P> const & x, tquat<T, P> const & y);
/// Returns the component-wise comparison of result x >= y.
///
/// @tparam quatType Floating-point quaternion types.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> greaterThanEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> greaterThanEqual(tquat<T, P> const & x, tquat<T, P> const & y);
/// Returns the component-wise comparison of result x == y.
///
/// @tparam quatType Floating-point quaternion types.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> equal(tquat<T, P> const & x, tquat<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> equal(tquat<T, P> const & x, tquat<T, P> const & y);
/// Returns the component-wise comparison of result x != y.
///
/// @tparam quatType Floating-point quaternion types.
///
/// @see gtc_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y);
/// Returns true if x holds a NaN (not a number)
/// representation in the underlying implementation's set of
@@ -378,8 +377,8 @@ namespace glm
/// /!\ When using compiler fast math, this function may fail.
///
/// @tparam genType Floating-point scalar or vector types.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> isnan(tquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> isnan(tquat<T, P> const & x);
/// Returns true if x holds a positive infinity or negative
/// infinity representation in the underlying implementation's
@@ -388,8 +387,8 @@ namespace glm
/// representations.
///
/// @tparam genType Floating-point scalar or vector types.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<bool, P> isinf(tquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, bool, P> isinf(tquat<T, P> const & x);
/// @}
} //namespace glm
diff --git a/3rdparty/glm/glm/gtc/quaternion.inl b/3rdparty/glm/glm/gtc/quaternion.inl
index f062b0a6362..dbdf504dd1d 100644
--- a/3rdparty/glm/glm/gtc/quaternion.inl
+++ b/3rdparty/glm/glm/gtc/quaternion.inl
@@ -9,17 +9,17 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, bool Aligned>
- struct compute_dot<tquat, T, P, Aligned>
+ template<typename T, precision P, bool Aligned>
+ struct compute_dot<tquat<T, P>, T, Aligned>
{
- static GLM_FUNC_QUALIFIER T call(tquat<T, P> const& x, tquat<T, P> const& y)
+ static GLM_FUNC_QUALIFIER T call(tquat<T, P> const& a, tquat<T, P> const& b)
{
- tvec4<T, P> tmp(x.x * y.x, x.y * y.y, x.z * y.z, x.w * y.w);
+ vec<4, T, P> tmp(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
return (tmp.x + tmp.y) + (tmp.z + tmp.w);
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_quat_add
{
static tquat<T, P> call(tquat<T, P> const& q, tquat<T, P> const& p)
@@ -28,7 +28,7 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_quat_sub
{
static tquat<T, P> call(tquat<T, P> const& q, tquat<T, P> const& p)
@@ -37,7 +37,7 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_quat_mul_scalar
{
static tquat<T, P> call(tquat<T, P> const& q, T s)
@@ -46,7 +46,7 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_quat_div_scalar
{
static tquat<T, P> call(tquat<T, P> const& q, T s)
@@ -55,32 +55,26 @@ namespace detail
}
};
- template <typename T, precision P, bool Aligned>
+ template<typename T, precision P, bool Aligned>
struct compute_quat_mul_vec4
{
- static tvec4<T, P> call(tquat<T, P> const & q, tvec4<T, P> const & v)
+ static vec<4, T, P> call(tquat<T, P> const & q, vec<4, T, P> const & v)
{
- return tvec4<T, P>(q * tvec3<T, P>(v), v.w);
+ return vec<4, T, P>(q * vec<3, T, P>(v), v.w);
}
};
}//namespace detail
// -- Component accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat<T, P>::length_type tquat<T, P>::length() const
- {
- return 4;
- }
-
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T & tquat<T, P>::operator[](typename tquat<T, P>::length_type i)
{
assert(i >= 0 && i < this->length());
return (&x)[i];
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T const & tquat<T, P>::operator[](typename tquat<T, P>::length_type i) const
{
assert(i >= 0 && i < this->length());
@@ -90,7 +84,7 @@ namespace detail
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0), z(0), w(1)
@@ -99,46 +93,46 @@ namespace detail
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<T, P> const & q)
: x(q.x), y(q.y), z(q.z), w(q.w)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<T, Q> const & q)
+ template<typename T, precision P>
+ template<precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<T, Q> const& q)
: x(q.x), y(q.y), z(q.z), w(q.w)
{}
// -- Explicit basic constructors --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tquat<T, P>::tquat(ctor)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(T const & s, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(T s, vec<3, T, P> const& v)
: x(v.x), y(v.y), z(v.z), w(s)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(T const & w, T const & x, T const & y, T const & z)
- : x(x), y(y), z(z), w(w)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(T _w, T _x, T _y, T _z)
+ : x(_x), y(_y), z(_z), w(_w)
{}
// -- Conversion constructors --
- template <typename T, precision P>
- template <typename U, precision Q>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<U, Q> const & q)
+ template<typename T, precision P>
+ template<typename U, precision Q>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<U, Q> const& q)
: x(static_cast<T>(q.x))
, y(static_cast<T>(q.y))
, z(static_cast<T>(q.z))
, w(static_cast<T>(q.w))
{}
- //template <typename valType>
+ //template<typename valType>
//GLM_FUNC_QUALIFIER tquat<valType>::tquat
//(
// valType const & pitch,
@@ -146,9 +140,9 @@ namespace detail
// valType const & roll
//)
//{
- // tvec3<valType> eulerAngle(pitch * valType(0.5), yaw * valType(0.5), roll * valType(0.5));
- // tvec3<valType> c = glm::cos(eulerAngle * valType(0.5));
- // tvec3<valType> s = glm::sin(eulerAngle * valType(0.5));
+ // vec<3, valType> eulerAngle(pitch * valType(0.5), yaw * valType(0.5), roll * valType(0.5));
+ // vec<3, valType> c = glm::cos(eulerAngle * valType(0.5));
+ // vec<3, valType> s = glm::sin(eulerAngle * valType(0.5));
//
// this->w = c.x * c.y * c.z + s.x * s.y * s.z;
// this->x = s.x * c.y * c.z - c.x * s.y * s.z;
@@ -156,21 +150,21 @@ namespace detail
// this->z = c.x * c.y * s.z - s.x * s.y * c.z;
//}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tvec3<T, P> const & u, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P>::tquat(vec<3, T, P> const& u, vec<3, T, P> const& v)
{
- tvec3<T, P> const LocalW(cross(u, v));
- T Dot = detail::compute_dot<tvec3, T, P, detail::is_aligned<P>::value>::call(u, v);
+ vec<3, T, P> const LocalW(cross(u, v));
+ T Dot = detail::compute_dot<vec<3, T, P>, T, detail::is_aligned<P>::value>::call(u, v);
tquat<T, P> q(T(1) + Dot, LocalW.x, LocalW.y, LocalW.z);
*this = normalize(q);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tvec3<T, P> const & eulerAngle)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P>::tquat(vec<3, T, P> const& eulerAngle)
{
- tvec3<T, P> c = glm::cos(eulerAngle * T(0.5));
- tvec3<T, P> s = glm::sin(eulerAngle * T(0.5));
+ vec<3, T, P> c = glm::cos(eulerAngle * T(0.5));
+ vec<3, T, P> s = glm::sin(eulerAngle * T(0.5));
this->w = c.x * c.y * c.z + s.x * s.y * s.z;
this->x = s.x * c.y * c.z - c.x * s.y * s.z;
@@ -178,39 +172,39 @@ namespace detail
this->z = c.x * c.y * s.z - s.x * s.y * c.z;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P>::tquat(mat<3, 3, T, P> const& m)
{
*this = quat_cast(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tmat4x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P>::tquat(mat<4, 4, T, P> const& m)
{
*this = quat_cast(m);
}
# if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::operator tmat3x3<T, P>()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P>::operator mat<3, 3, T, P>()
{
return mat3_cast(*this);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::operator tmat4x4<T, P>()
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P>::operator mat<4, 4, T, P>()
{
return mat4_cast(*this);
}
# endif//GLM_HAS_EXPLICIT_CONVERSION_OPERATORS
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> conjugate(tquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P> conjugate(tquat<T, P> const& q)
{
return tquat<T, P>(q.w, -q.x, -q.y, -q.z);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> inverse(tquat<T, P> const & q)
{
return conjugate(q) / dot(q, q);
@@ -219,7 +213,7 @@ namespace detail
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator=(tquat<T, P> const & q)
{
this->w = q.w;
@@ -230,8 +224,8 @@ namespace detail
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator=(tquat<U, P> const & q)
{
this->w = static_cast<T>(q.w);
@@ -241,22 +235,22 @@ namespace detail
return *this;
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator+=(tquat<U, P> const& q)
{
return (*this = detail::compute_quat_add<T, P, detail::is_aligned<P>::value>::call(*this, tquat<T, P>(q)));
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator-=(tquat<U, P> const& q)
{
return (*this = detail::compute_quat_sub<T, P, detail::is_aligned<P>::value>::call(*this, tquat<T, P>(q)));
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator*=(tquat<U, P> const & r)
{
tquat<T, P> const p(*this);
@@ -269,15 +263,15 @@ namespace detail
return *this;
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator*=(U s)
{
return (*this = detail::compute_quat_mul_scalar<T, P, detail::is_aligned<P>::value>::call(*this, static_cast<U>(s)));
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator/=(U s)
{
return (*this = detail::compute_quat_div_scalar<T, P, detail::is_aligned<P>::value>::call(*this, static_cast<U>(s)));
@@ -285,13 +279,13 @@ namespace detail
// -- Unary bit operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator+(tquat<T, P> const & q)
{
return q;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator-(tquat<T, P> const & q)
{
return tquat<T, P>(-q.w, -q.x, -q.y, -q.z);
@@ -299,60 +293,60 @@ namespace detail
// -- Binary operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator+(tquat<T, P> const & q, tquat<T, P> const & p)
{
return tquat<T, P>(q) += p;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator*(tquat<T, P> const & q, tquat<T, P> const & p)
{
return tquat<T, P>(q) *= p;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tquat<T, P> const & q, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(tquat<T, P> const & q, vec<3, T, P> const & v)
{
- tvec3<T, P> const QuatVector(q.x, q.y, q.z);
- tvec3<T, P> const uv(glm::cross(QuatVector, v));
- tvec3<T, P> const uuv(glm::cross(QuatVector, uv));
+ vec<3, T, P> const QuatVector(q.x, q.y, q.z);
+ vec<3, T, P> const uv(glm::cross(QuatVector, v));
+ vec<3, T, P> const uuv(glm::cross(QuatVector, uv));
return v + ((uv * q.w) + uuv) * static_cast<T>(2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v, tquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(vec<3, T, P> const & v, tquat<T, P> const & q)
{
return glm::inverse(q) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tquat<T, P> const& q, tvec4<T, P> const& v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(tquat<T, P> const& q, vec<4, T, P> const& v)
{
return detail::compute_quat_mul_vec4<T, P, detail::is_aligned<P>::value>::call(q, v);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v, tquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(vec<4, T, P> const & v, tquat<T, P> const & q)
{
return glm::inverse(q) * v;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator*(tquat<T, P> const & q, T const & s)
{
return tquat<T, P>(
q.w * s, q.x * s, q.y * s, q.z * s);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator*(T const & s, tquat<T, P> const & q)
{
return q * s;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> operator/(tquat<T, P> const & q, T const & s)
{
return tquat<T, P>(
@@ -361,13 +355,13 @@ namespace detail
// -- Boolean operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool operator==(tquat<T, P> const & q1, tquat<T, P> const & q2)
{
return (q1.x == q2.x) && (q1.y == q2.y) && (q1.z == q2.z) && (q1.w == q2.w);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool operator!=(tquat<T, P> const & q1, tquat<T, P> const & q2)
{
return (q1.x != q2.x) || (q1.y != q2.y) || (q1.z != q2.z) || (q1.w != q2.w);
@@ -375,13 +369,13 @@ namespace detail
// -- Operations --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T length(tquat<T, P> const & q)
{
return glm::sqrt(dot(q, q));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> normalize(tquat<T, P> const & q)
{
T len = length(q);
@@ -391,7 +385,7 @@ namespace detail
return tquat<T, P>(q.w * oneOverLen, q.x * oneOverLen, q.y * oneOverLen, q.z * oneOverLen);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> cross(tquat<T, P> const & q1, tquat<T, P> const & q2)
{
return tquat<T, P>(
@@ -402,7 +396,7 @@ namespace detail
}
/*
// (x * sin(1 - a) * angle / sin(angle)) + (y * sin(a) * angle / sin(angle))
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> mix(tquat<T, P> const & x, tquat<T, P> const & y, T const & a)
{
if(a <= T(0)) return x;
@@ -439,7 +433,7 @@ namespace detail
k0 * x.z + k1 * y2.z);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> mix2
(
tquat<T, P> const & x,
@@ -477,7 +471,7 @@ namespace detail
}
*/
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> mix(tquat<T, P> const & x, tquat<T, P> const & y, T a)
{
T cosTheta = dot(x, y);
@@ -500,7 +494,7 @@ namespace detail
}
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> lerp(tquat<T, P> const & x, tquat<T, P> const & y, T a)
{
// Lerp is only defined in [0, 1]
@@ -510,7 +504,7 @@ namespace detail
return x * (T(1) - a) + (y * a);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> slerp(tquat<T, P> const & x, tquat<T, P> const & y, T a)
{
tquat<T, P> z = y;
@@ -543,10 +537,10 @@ namespace detail
}
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> rotate(tquat<T, P> const & q, T const & angle, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P> rotate(tquat<T, P> const & q, T const & angle, vec<3, T, P> const & v)
{
- tvec3<T, P> Tmp = v;
+ vec<3, T, P> Tmp = v;
// Axis of rotation must be normalised
T len = glm::length(Tmp);
@@ -565,34 +559,40 @@ namespace detail
//return gtc::quaternion::cross(q, tquat<T, P>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> eulerAngles(tquat<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> eulerAngles(tquat<T, P> const & x)
{
- return tvec3<T, P>(pitch(x), yaw(x), roll(x));
+ return vec<3, T, P>(pitch(x), yaw(x), roll(x));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T roll(tquat<T, P> const & q)
{
return T(atan(T(2) * (q.x * q.y + q.w * q.z), q.w * q.w + q.x * q.x - q.y * q.y - q.z * q.z));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T pitch(tquat<T, P> const & q)
{
- return T(atan(T(2) * (q.y * q.z + q.w * q.x), q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z));
+ //return T(atan(T(2) * (q.y * q.z + q.w * q.x), q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z));
+ const T y = T(2) * (q.y * q.z + q.w * q.x);
+ const T x = q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z;
+ if(y == T(0) && x == T(0)) //avoid atan2(0,0) - handle singularity - Matiis
+ return T(T(2)*atan(q.x,q.w));
+
+ return T(atan(y,x));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T yaw(tquat<T, P> const & q)
{
return asin(clamp(T(-2) * (q.x * q.z - q.w * q.y), T(-1), T(1)));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> mat3_cast(tquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> mat3_cast(tquat<T, P> const & q)
{
- tmat3x3<T, P> Result(T(1));
+ mat<3, 3, T, P> Result(T(1));
T qxx(q.x * q.x);
T qyy(q.y * q.y);
T qzz(q.z * q.z);
@@ -617,14 +617,14 @@ namespace detail
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> mat4_cast(tquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> mat4_cast(tquat<T, P> const & q)
{
- return tmat4x4<T, P>(mat3_cast(q));
+ return mat<4, 4, T, P>(mat3_cast(q));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> quat_cast(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P> quat_cast(mat<3, 3, T, P> const & m)
{
T fourXSquaredMinus1 = m[0][0] - m[1][1] - m[2][2];
T fourYSquaredMinus1 = m[1][1] - m[0][0] - m[2][2];
@@ -687,30 +687,30 @@ namespace detail
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> quat_cast(tmat4x4<T, P> const & m4)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P> quat_cast(mat<4, 4, T, P> const & m4)
{
- return quat_cast(tmat3x3<T, P>(m4));
+ return quat_cast(mat<3, 3, T, P>(m4));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T angle(tquat<T, P> const & x)
{
return acos(x.w) * T(2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> axis(tquat<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> axis(tquat<T, P> const & x)
{
T tmp1 = static_cast<T>(1) - x.w * x.w;
if(tmp1 <= static_cast<T>(0))
- return tvec3<T, P>(0, 0, 1);
+ return vec<3, T, P>(0, 0, 1);
T tmp2 = static_cast<T>(1) / sqrt(tmp1);
- return tvec3<T, P>(x.x * tmp2, x.y * tmp2, x.z * tmp2);
+ return vec<3, T, P>(x.x * tmp2, x.y * tmp2, x.z * tmp2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> angleAxis(T const & angle, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P> angleAxis(T const & angle, vec<3, T, P> const & v)
{
tquat<T, P> Result(uninitialize);
@@ -724,74 +724,74 @@ namespace detail
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> lessThan(tquat<T, P> const & x, tquat<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> lessThan(tquat<T, P> const & x, tquat<T, P> const & y)
{
- tvec4<bool, P> Result(uninitialize);
+ vec<4, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] < y[i];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> lessThanEqual(tquat<T, P> const & x, tquat<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> lessThanEqual(tquat<T, P> const & x, tquat<T, P> const & y)
{
- tvec4<bool, P> Result(uninitialize);
+ vec<4, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] <= y[i];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> greaterThan(tquat<T, P> const & x, tquat<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> greaterThan(tquat<T, P> const & x, tquat<T, P> const & y)
{
- tvec4<bool, P> Result(uninitialize);
+ vec<4, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] > y[i];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> greaterThanEqual(tquat<T, P> const & x, tquat<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> greaterThanEqual(tquat<T, P> const & x, tquat<T, P> const & y)
{
- tvec4<bool, P> Result(uninitialize);
+ vec<4, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] >= y[i];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> equal(tquat<T, P> const & x, tquat<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> equal(tquat<T, P> const & x, tquat<T, P> const & y)
{
- tvec4<bool, P> Result(uninitialize);
+ vec<4, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] == y[i];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y)
{
- tvec4<bool, P> Result(uninitialize);
+ vec<4, bool, P> Result(uninitialize);
for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] != y[i];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> isnan(tquat<T, P> const& q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> isnan(tquat<T, P> const& q)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs");
- return tvec4<bool, P>(isnan(q.x), isnan(q.y), isnan(q.z), isnan(q.w));
+ return vec<4, bool, P>(isnan(q.x), isnan(q.y), isnan(q.z), isnan(q.w));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> isinf(tquat<T, P> const& q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> isinf(tquat<T, P> const& q)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isinf' only accept floating-point inputs");
- return tvec4<bool, P>(isinf(q.x), isinf(q.y), isinf(q.z), isinf(q.w));
+ return vec<4, bool, P>(isinf(q.x), isinf(q.y), isinf(q.z), isinf(q.w));
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/quaternion_simd.inl b/3rdparty/glm/glm/gtc/quaternion_simd.inl
index cca874bb552..f0f22b5f054 100644
--- a/3rdparty/glm/glm/gtc/quaternion_simd.inl
+++ b/3rdparty/glm/glm/gtc/quaternion_simd.inl
@@ -7,7 +7,7 @@ namespace glm{
namespace detail
{
/*
- template <precision P>
+ template<precision P>
struct compute_quat_mul<float, P, true>
{
static tquat<float, P> call(tquat<float, P> const& q1, tquat<float, P> const& q2)
@@ -61,8 +61,8 @@ namespace detail
};
*/
- template <precision P>
- struct compute_dot<tquat, float, P, true>
+ template<precision P>
+ struct compute_dot<tquat<float, P>, float, true>
{
static GLM_FUNC_QUALIFIER float call(tquat<float, P> const& x, tquat<float, P> const& y)
{
@@ -70,7 +70,7 @@ namespace detail
}
};
- template <precision P>
+ template<precision P>
struct compute_quat_add<float, P, true>
{
static tquat<float, P> call(tquat<float, P> const& q, tquat<float, P> const& p)
@@ -82,7 +82,7 @@ namespace detail
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_quat_add<double, P, true>
{
static tquat<double, P> call(tquat<double, P> const & a, tquat<double, P> const & b)
@@ -94,19 +94,19 @@ namespace detail
};
# endif
- template <precision P>
+ template<precision P>
struct compute_quat_sub<float, P, true>
{
static tquat<float, P> call(tquat<float, P> const& q, tquat<float, P> const& p)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_sub_ps(q.data, p.data);
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_quat_sub<double, P, true>
{
static tquat<double, P> call(tquat<double, P> const & a, tquat<double, P> const & b)
@@ -118,19 +118,19 @@ namespace detail
};
# endif
- template <precision P>
+ template<precision P>
struct compute_quat_mul_scalar<float, P, true>
{
static tquat<float, P> call(tquat<float, P> const& q, float s)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_mul_ps(q.data, _mm_set_ps1(s));
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_quat_mul_scalar<double, P, true>
{
static tquat<double, P> call(tquat<double, P> const& q, double s)
@@ -142,19 +142,19 @@ namespace detail
};
# endif
- template <precision P>
+ template<precision P>
struct compute_quat_div_scalar<float, P, true>
{
static tquat<float, P> call(tquat<float, P> const& q, float s)
{
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_div_ps(q.data, _mm_set_ps1(s));
return Result;
}
};
# if GLM_ARCH & GLM_ARCH_AVX_BIT
- template <precision P>
+ template<precision P>
struct compute_quat_div_scalar<double, P, true>
{
static tquat<double, P> call(tquat<double, P> const& q, double s)
@@ -166,10 +166,10 @@ namespace detail
};
# endif
- template <precision P>
+ template<precision P>
struct compute_quat_mul_vec4<float, P, true>
{
- static tvec4<float, P> call(tquat<float, P> const& q, tvec4<float, P> const& v)
+ static vec<4, float, P> call(tquat<float, P> const& q, vec<4, float, P> const& v)
{
__m128 const q_wwww = _mm_shuffle_ps(q.data, q.data, _MM_SHUFFLE(3, 3, 3, 3));
__m128 const q_swp0 = _mm_shuffle_ps(q.data, q.data, _MM_SHUFFLE(3, 0, 2, 1));
@@ -186,7 +186,7 @@ namespace detail
uv = _mm_mul_ps(uv, _mm_mul_ps(q_wwww, two));
uuv = _mm_mul_ps(uuv, two);
- tvec4<float, P> Result(uninitialize);
+ vec<4, float, P> Result(uninitialize);
Result.data = _mm_add_ps(v.Data, _mm_add_ps(uv, uuv));
return Result;
}
diff --git a/3rdparty/glm/glm/gtc/random.hpp b/3rdparty/glm/glm/gtc/random.hpp
index fa3956e52c5..f8d9f7292fd 100644
--- a/3rdparty/glm/glm/gtc/random.hpp
+++ b/3rdparty/glm/glm/gtc/random.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/random.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtx_random (extended)
///
/// @defgroup gtc_random GLM_GTC_random
@@ -33,7 +32,7 @@ namespace glm
/// @param Max
/// @tparam genType Value type. Currently supported: float or double scalars.
/// @see gtc_random
- template <typename genTYpe>
+ template<typename genTYpe>
GLM_FUNC_DECL genTYpe linearRand(
genTYpe Min,
genTYpe Max);
@@ -45,17 +44,17 @@ namespace glm
/// @tparam T Value type. Currently supported: float or double.
/// @tparam vecType A vertor type: tvec1, tvec2, tvec3, tvec4 or compatible
/// @see gtc_random
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> linearRand(
- vecType<T, P> const & Min,
- vecType<T, P> const & Max);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> linearRand(
+ vecType<L, T, P> const& Min,
+ vecType<L, T, P> const& Max);
/// Generate random numbers in the interval [Min, Max], according a gaussian distribution
///
/// @param Mean
/// @param Deviation
/// @see gtc_random
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType gaussRand(
genType Mean,
genType Deviation);
@@ -64,32 +63,32 @@ namespace glm
///
/// @param Radius
/// @see gtc_random
- template <typename T>
- GLM_FUNC_DECL tvec2<T, defaultp> circularRand(
+ template<typename T>
+ GLM_FUNC_DECL vec<2, T, defaultp> circularRand(
T Radius);
/// Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius
///
/// @param Radius
/// @see gtc_random
- template <typename T>
- GLM_FUNC_DECL tvec3<T, defaultp> sphericalRand(
+ template<typename T>
+ GLM_FUNC_DECL vec<3, T, defaultp> sphericalRand(
T Radius);
/// Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius
///
/// @param Radius
/// @see gtc_random
- template <typename T>
- GLM_FUNC_DECL tvec2<T, defaultp> diskRand(
+ template<typename T>
+ GLM_FUNC_DECL vec<2, T, defaultp> diskRand(
T Radius);
/// Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius
///
/// @param Radius
/// @see gtc_random
- template <typename T>
- GLM_FUNC_DECL tvec3<T, defaultp> ballRand(
+ template<typename T>
+ GLM_FUNC_DECL vec<3, T, defaultp> ballRand(
T Radius);
/// @}
diff --git a/3rdparty/glm/glm/gtc/random.inl b/3rdparty/glm/glm/gtc/random.inl
index 7dc5e83625c..834c485c11d 100644
--- a/3rdparty/glm/glm/gtc/random.inl
+++ b/3rdparty/glm/glm/gtc/random.inl
@@ -10,51 +10,51 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <class, precision> class vecType>
+ template<length_t L, typename T, precision P, template<int, class, precision> class vecType>
struct compute_rand
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call();
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call();
};
- template <precision P>
- struct compute_rand<uint8, P, tvec1>
+ template<precision P>
+ struct compute_rand<1, uint8, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec1<uint8, P> call()
+ GLM_FUNC_QUALIFIER static vec<1, uint8, P> call()
{
- return tvec1<uint8, P>(
+ return vec<1, uint8, P>(
std::rand() % std::numeric_limits<uint8>::max());
}
};
- template <precision P>
- struct compute_rand<uint8, P, tvec2>
+ template<precision P>
+ struct compute_rand<2, uint8, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec2<uint8, P> call()
+ GLM_FUNC_QUALIFIER static vec<2, uint8, P> call()
{
- return tvec2<uint8, P>(
+ return vec<2, uint8, P>(
std::rand() % std::numeric_limits<uint8>::max(),
std::rand() % std::numeric_limits<uint8>::max());
}
};
- template <precision P>
- struct compute_rand<uint8, P, tvec3>
+ template<precision P>
+ struct compute_rand<3, uint8, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec3<uint8, P> call()
+ GLM_FUNC_QUALIFIER static vec<3, uint8, P> call()
{
- return tvec3<uint8, P>(
+ return vec<3, uint8, P>(
std::rand() % std::numeric_limits<uint8>::max(),
std::rand() % std::numeric_limits<uint8>::max(),
std::rand() % std::numeric_limits<uint8>::max());
}
};
- template <precision P>
- struct compute_rand<uint8, P, tvec4>
+ template<precision P>
+ struct compute_rand<4, uint8, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec4<uint8, P> call()
+ GLM_FUNC_QUALIFIER static vec<4, uint8, P> call()
{
- return tvec4<uint8, P>(
+ return vec<4, uint8, P>(
std::rand() % std::numeric_limits<uint8>::max(),
std::rand() % std::numeric_limits<uint8>::max(),
std::rand() % std::numeric_limits<uint8>::max(),
@@ -62,214 +62,214 @@ namespace detail
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_rand<uint16, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_rand<L, uint16, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint16, P> call()
+ GLM_FUNC_QUALIFIER static vecType<L, uint16, P> call()
{
return
- (vecType<uint16, P>(compute_rand<uint8, P, vecType>::call()) << static_cast<uint16>(8)) |
- (vecType<uint16, P>(compute_rand<uint8, P, vecType>::call()) << static_cast<uint16>(0));
+ (vecType<L, uint16, P>(compute_rand<L, uint8, P, vecType>::call()) << static_cast<uint16>(8)) |
+ (vecType<L, uint16, P>(compute_rand<L, uint8, P, vecType>::call()) << static_cast<uint16>(0));
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_rand<uint32, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_rand<L, uint32, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint32, P> call()
+ GLM_FUNC_QUALIFIER static vecType<L, uint32, P> call()
{
return
- (vecType<uint32, P>(compute_rand<uint16, P, vecType>::call()) << static_cast<uint32>(16)) |
- (vecType<uint32, P>(compute_rand<uint16, P, vecType>::call()) << static_cast<uint32>(0));
+ (vecType<L, uint32, P>(compute_rand<L, uint16, P, vecType>::call()) << static_cast<uint32>(16)) |
+ (vecType<L, uint32, P>(compute_rand<L, uint16, P, vecType>::call()) << static_cast<uint32>(0));
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_rand<uint64, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_rand<L, uint64, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint64, P> call()
+ GLM_FUNC_QUALIFIER static vecType<L, uint64, P> call()
{
return
- (vecType<uint64, P>(compute_rand<uint32, P, vecType>::call()) << static_cast<uint64>(32)) |
- (vecType<uint64, P>(compute_rand<uint32, P, vecType>::call()) << static_cast<uint64>(0));
+ (vecType<L, uint64, P>(compute_rand<L, uint32, P, vecType>::call()) << static_cast<uint64>(32)) |
+ (vecType<L, uint64, P>(compute_rand<L, uint32, P, vecType>::call()) << static_cast<uint64>(0));
}
};
- template <typename T, precision P, template <class, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
struct compute_linearRand
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & Min, vecType<T, P> const & Max);
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & Min, vecType<L, T, P> const & Max);
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<int8, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, int8, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<int8, P> call(vecType<int8, P> const & Min, vecType<int8, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, int8, P> call(vecType<L, int8, P> const & Min, vecType<L, int8, P> const & Max)
{
- return (vecType<int8, P>(compute_rand<uint8, P, vecType>::call() % vecType<uint8, P>(Max + static_cast<int8>(1) - Min))) + Min;
+ return (vecType<L, int8, P>(compute_rand<L, uint8, P, vecType>::call() % vecType<L, uint8, P>(Max + static_cast<int8>(1) - Min))) + Min;
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<uint8, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, uint8, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint8, P> call(vecType<uint8, P> const & Min, vecType<uint8, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, uint8, P> call(vecType<L, uint8, P> const & Min, vecType<L, uint8, P> const & Max)
{
- return (compute_rand<uint8, P, vecType>::call() % (Max + static_cast<uint8>(1) - Min)) + Min;
+ return (compute_rand<L, uint8, P, vecType>::call() % (Max + static_cast<uint8>(1) - Min)) + Min;
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<int16, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, int16, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<int16, P> call(vecType<int16, P> const & Min, vecType<int16, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, int16, P> call(vecType<L, int16, P> const & Min, vecType<L, int16, P> const & Max)
{
- return (vecType<int16, P>(compute_rand<uint16, P, vecType>::call() % vecType<uint16, P>(Max + static_cast<int16>(1) - Min))) + Min;
+ return (vecType<L, int16, P>(compute_rand<L, uint16, P, vecType>::call() % vecType<L, uint16, P>(Max + static_cast<int16>(1) - Min))) + Min;
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<uint16, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, uint16, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint16, P> call(vecType<uint16, P> const & Min, vecType<uint16, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, uint16, P> call(vecType<L, uint16, P> const & Min, vecType<L, uint16, P> const & Max)
{
- return (compute_rand<uint16, P, vecType>::call() % (Max + static_cast<uint16>(1) - Min)) + Min;
+ return (compute_rand<L, uint16, P, vecType>::call() % (Max + static_cast<uint16>(1) - Min)) + Min;
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<int32, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, int32, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<int32, P> call(vecType<int32, P> const & Min, vecType<int32, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, int32, P> call(vecType<L, int32, P> const & Min, vecType<L, int32, P> const & Max)
{
- return (vecType<int32, P>(compute_rand<uint32, P, vecType>::call() % vecType<uint32, P>(Max + static_cast<int32>(1) - Min))) + Min;
+ return (vecType<L, int32, P>(compute_rand<L, uint32, P, vecType>::call() % vecType<L, uint32, P>(Max + static_cast<int32>(1) - Min))) + Min;
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<uint32, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, uint32, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint32, P> call(vecType<uint32, P> const & Min, vecType<uint32, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, uint32, P> call(vecType<L, uint32, P> const & Min, vecType<L, uint32, P> const & Max)
{
- return (compute_rand<uint32, P, vecType>::call() % (Max + static_cast<uint32>(1) - Min)) + Min;
+ return (compute_rand<L, uint32, P, vecType>::call() % (Max + static_cast<uint32>(1) - Min)) + Min;
}
};
-
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<int64, P, vecType>
+
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, int64, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<int64, P> call(vecType<int64, P> const & Min, vecType<int64, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, int64, P> call(vecType<L, int64, P> const & Min, vecType<L, int64, P> const & Max)
{
- return (vecType<int64, P>(compute_rand<uint64, P, vecType>::call() % vecType<uint64, P>(Max + static_cast<int64>(1) - Min))) + Min;
+ return (vecType<L, int64, P>(compute_rand<L, uint64, P, vecType>::call() % vecType<L, uint64, P>(Max + static_cast<int64>(1) - Min))) + Min;
}
};
- template <precision P, template <class, precision> class vecType>
- struct compute_linearRand<uint64, P, vecType>
+ template<length_t L, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, uint64, P, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<uint64, P> call(vecType<uint64, P> const & Min, vecType<uint64, P> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, uint64, P> call(vecType<L, uint64, P> const & Min, vecType<L, uint64, P> const & Max)
{
- return (compute_rand<uint64, P, vecType>::call() % (Max + static_cast<uint64>(1) - Min)) + Min;
+ return (compute_rand<L, uint64, P, vecType>::call() % (Max + static_cast<uint64>(1) - Min)) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<float, lowp, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, float, lowp, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<float, lowp> call(vecType<float, lowp> const & Min, vecType<float, lowp> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, float, lowp> call(vecType<L, float, lowp> const & Min, vecType<L, float, lowp> const & Max)
{
- return vecType<float, lowp>(compute_rand<uint8, lowp, vecType>::call()) / static_cast<float>(std::numeric_limits<uint8>::max()) * (Max - Min) + Min;
+ return vecType<L, float, lowp>(compute_rand<L, uint8, lowp, vecType>::call()) / static_cast<float>(std::numeric_limits<uint8>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<float, mediump, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, float, mediump, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<float, mediump> call(vecType<float, mediump> const & Min, vecType<float, mediump> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, float, mediump> call(vecType<L, float, mediump> const & Min, vecType<L, float, mediump> const & Max)
{
- return vecType<float, mediump>(compute_rand<uint16, mediump, vecType>::call()) / static_cast<float>(std::numeric_limits<uint16>::max()) * (Max - Min) + Min;
+ return vecType<L, float, mediump>(compute_rand<L, uint16, mediump, vecType>::call()) / static_cast<float>(std::numeric_limits<uint16>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<float, highp, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, float, highp, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<float, highp> call(vecType<float, highp> const & Min, vecType<float, highp> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, float, highp> call(vecType<L, float, highp> const & Min, vecType<L, float, highp> const & Max)
{
- return vecType<float, highp>(compute_rand<uint32, highp, vecType>::call()) / static_cast<float>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min;
+ return vecType<L, float, highp>(compute_rand<L, uint32, highp, vecType>::call()) / static_cast<float>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<double, lowp, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, double, lowp, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<double, lowp> call(vecType<double, lowp> const & Min, vecType<double, lowp> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, double, lowp> call(vecType<L, double, lowp> const & Min, vecType<L, double, lowp> const & Max)
{
- return vecType<double, lowp>(compute_rand<uint16, lowp, vecType>::call()) / static_cast<double>(std::numeric_limits<uint16>::max()) * (Max - Min) + Min;
+ return vecType<L, double, lowp>(compute_rand<L, uint16, lowp, vecType>::call()) / static_cast<double>(std::numeric_limits<uint16>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<double, mediump, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, double, mediump, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<double, mediump> call(vecType<double, mediump> const & Min, vecType<double, mediump> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, double, mediump> call(vecType<L, double, mediump> const & Min, vecType<L, double, mediump> const & Max)
{
- return vecType<double, mediump>(compute_rand<uint32, mediump, vecType>::call()) / static_cast<double>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min;
+ return vecType<L, double, mediump>(compute_rand<L, uint32, mediump, vecType>::call()) / static_cast<double>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<double, highp, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, double, highp, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<double, highp> call(vecType<double, highp> const & Min, vecType<double, highp> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, double, highp> call(vecType<L, double, highp> const & Min, vecType<L, double, highp> const & Max)
{
- return vecType<double, highp>(compute_rand<uint64, highp, vecType>::call()) / static_cast<double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min;
+ return vecType<L, double, highp>(compute_rand<L, uint64, highp, vecType>::call()) / static_cast<double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<long double, lowp, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, long double, lowp, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<long double, lowp> call(vecType<long double, lowp> const & Min, vecType<long double, lowp> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, long double, lowp> call(vecType<L, long double, lowp> const & Min, vecType<L, long double, lowp> const & Max)
{
- return vecType<long double, lowp>(compute_rand<uint32, lowp, vecType>::call()) / static_cast<long double>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min;
+ return vecType<L, long double, lowp>(compute_rand<L, uint32, lowp, vecType>::call()) / static_cast<long double>(std::numeric_limits<uint32>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<long double, mediump, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, long double, mediump, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<long double, mediump> call(vecType<long double, mediump> const & Min, vecType<long double, mediump> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, long double, mediump> call(vecType<L, long double, mediump> const & Min, vecType<L, long double, mediump> const & Max)
{
- return vecType<long double, mediump>(compute_rand<uint64, mediump, vecType>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min;
+ return vecType<L, long double, mediump>(compute_rand<L, uint64, mediump, vecType>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min;
}
};
- template <template <class, precision> class vecType>
- struct compute_linearRand<long double, highp, vecType>
+ template<length_t L, template<length_t, typename, precision> class vecType>
+ struct compute_linearRand<L, long double, highp, vecType>
{
- GLM_FUNC_QUALIFIER static vecType<long double, highp> call(vecType<long double, highp> const & Min, vecType<long double, highp> const & Max)
+ GLM_FUNC_QUALIFIER static vecType<L, long double, highp> call(vecType<L, long double, highp> const & Min, vecType<L, long double, highp> const & Max)
{
- return vecType<long double, highp>(compute_rand<uint64, highp, vecType>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min;
+ return vecType<L, long double, highp>(compute_rand<L, uint64, highp, vecType>::call()) / static_cast<long double>(std::numeric_limits<uint64>::max()) * (Max - Min) + Min;
}
};
}//namespace detail
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType linearRand(genType Min, genType Max)
{
- return detail::compute_linearRand<genType, highp, tvec1>::call(
- tvec1<genType, highp>(Min),
- tvec1<genType, highp>(Max)).x;
+ return detail::compute_linearRand<1, genType, highp, vec>::call(
+ vec<1, genType, highp>(Min),
+ vec<1, genType, highp>(Max)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> linearRand(vecType<T, P> const & Min, vecType<T, P> const & Max)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> linearRand(vecType<L, T, P> const & Min, vecType<L, T, P> const & Max)
{
- return detail::compute_linearRand<T, P, vecType>::call(Min, Max);
+ return detail::compute_linearRand<L, T, P, vecType>::call(Min, Max);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType gaussRand(genType Mean, genType Deviation)
{
genType w, x1, x2;
@@ -285,23 +285,23 @@ namespace detail
return x2 * Deviation * Deviation * sqrt((genType(-2) * log(w)) / w) + Mean;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> gaussRand(vecType<T, P> const & Mean, vecType<T, P> const & Deviation)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> gaussRand(vecType<L, T, P> const & Mean, vecType<L, T, P> const & Deviation)
{
- return detail::functor2<T, P, vecType>::call(gaussRand, Mean, Deviation);
+ return detail::functor2<L, T, P>::call(gaussRand, Mean, Deviation);
}
- template <typename T>
- GLM_FUNC_QUALIFIER tvec2<T, defaultp> diskRand(T Radius)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<2, T, defaultp> diskRand(T Radius)
{
- tvec2<T, defaultp> Result(T(0));
+ vec<2, T, defaultp> Result(T(0));
T LenRadius(T(0));
do
{
Result = linearRand(
- tvec2<T, defaultp>(-Radius),
- tvec2<T, defaultp>(Radius));
+ vec<2, T, defaultp>(-Radius),
+ vec<2, T, defaultp>(Radius));
LenRadius = length(Result);
}
while(LenRadius > Radius);
@@ -309,17 +309,17 @@ namespace detail
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tvec3<T, defaultp> ballRand(T Radius)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<3, T, defaultp> ballRand(T Radius)
{
- tvec3<T, defaultp> Result(T(0));
+ vec<3, T, defaultp> Result(T(0));
T LenRadius(T(0));
do
{
Result = linearRand(
- tvec3<T, defaultp>(-Radius),
- tvec3<T, defaultp>(Radius));
+ vec<3, T, defaultp>(-Radius),
+ vec<3, T, defaultp>(Radius));
LenRadius = length(Result);
}
while(LenRadius > Radius);
@@ -327,15 +327,15 @@ namespace detail
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tvec2<T, defaultp> circularRand(T Radius)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<2, T, defaultp> circularRand(T Radius)
{
T a = linearRand(T(0), T(6.283185307179586476925286766559f));
- return tvec2<T, defaultp>(cos(a), sin(a)) * Radius;
+ return vec<2, T, defaultp>(cos(a), sin(a)) * Radius;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tvec3<T, defaultp> sphericalRand(T Radius)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<3, T, defaultp> sphericalRand(T Radius)
{
T z = linearRand(T(-1), T(1));
T a = linearRand(T(0), T(6.283185307179586476925286766559f));
@@ -345,6 +345,6 @@ namespace detail
T x = r * cos(a);
T y = r * sin(a);
- return tvec3<T, defaultp>(x, y, z) * Radius;
+ return vec<3, T, defaultp>(x, y, z) * Radius;
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/reciprocal.hpp b/3rdparty/glm/glm/gtc/reciprocal.hpp
index c14a4fece42..6b09e06b3cb 100644
--- a/3rdparty/glm/glm/gtc/reciprocal.hpp
+++ b/3rdparty/glm/glm/gtc/reciprocal.hpp
@@ -30,7 +30,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType sec(genType angle);
/// Cosecant function.
@@ -39,7 +39,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType csc(genType angle);
/// Cotangent function.
@@ -48,7 +48,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType cot(genType angle);
/// Inverse secant function.
@@ -57,7 +57,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType asec(genType x);
/// Inverse cosecant function.
@@ -66,7 +66,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType acsc(genType x);
/// Inverse cotangent function.
@@ -75,7 +75,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType acot(genType x);
/// Secant hyperbolic function.
@@ -83,7 +83,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType sech(genType angle);
/// Cosecant hyperbolic function.
@@ -91,7 +91,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType csch(genType angle);
/// Cotangent hyperbolic function.
@@ -99,7 +99,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType coth(genType angle);
/// Inverse secant hyperbolic function.
@@ -108,7 +108,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType asech(genType x);
/// Inverse cosecant hyperbolic function.
@@ -117,7 +117,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType acsch(genType x);
/// Inverse cotangent hyperbolic function.
@@ -126,7 +126,7 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType acoth(genType x);
/// @}
diff --git a/3rdparty/glm/glm/gtc/reciprocal.inl b/3rdparty/glm/glm/gtc/reciprocal.inl
index c625ac90bda..1c667ad3f07 100644
--- a/3rdparty/glm/glm/gtc/reciprocal.inl
+++ b/3rdparty/glm/glm/gtc/reciprocal.inl
@@ -7,37 +7,37 @@
namespace glm
{
// sec
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType sec(genType angle)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'sec' only accept floating-point values");
return genType(1) / glm::cos(angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> sec(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> sec(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'sec' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(sec, x);
+ return detail::functor1<L, T, T, P>::call(sec, x);
}
// csc
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType csc(genType angle)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'csc' only accept floating-point values");
return genType(1) / glm::sin(angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> csc(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> csc(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'csc' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(csc, x);
+ return detail::functor1<L, T, T, P>::call(csc, x);
}
// cot
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType cot(genType angle)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'cot' only accept floating-point values");
@@ -46,45 +46,45 @@ namespace glm
return glm::tan(pi_over_2 - angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> cot(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> cot(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'cot' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(cot, x);
+ return detail::functor1<L, T, T, P>::call(cot, x);
}
// asec
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType asec(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'asec' only accept floating-point values");
return acos(genType(1) / x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> asec(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> asec(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'asec' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(asec, x);
+ return detail::functor1<L, T, T, P>::call(asec, x);
}
// acsc
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType acsc(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'acsc' only accept floating-point values");
return asin(genType(1) / x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> acsc(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> acsc(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'acsc' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(acsc, x);
+ return detail::functor1<L, T, T, P>::call(acsc, x);
}
// acot
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType acot(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'acot' only accept floating-point values");
@@ -93,100 +93,100 @@ namespace glm
return pi_over_2 - atan(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> acot(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> acot(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'acot' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(acot, x);
+ return detail::functor1<L, T, T, P>::call(acot, x);
}
// sech
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType sech(genType angle)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'sech' only accept floating-point values");
return genType(1) / glm::cosh(angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> sech(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> sech(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'sech' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(sech, x);
+ return detail::functor1<L, T, T, P>::call(sech, x);
}
// csch
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType csch(genType angle)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'csch' only accept floating-point values");
return genType(1) / glm::sinh(angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> csch(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> csch(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'csch' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(csch, x);
+ return detail::functor1<L, T, T, P>::call(csch, x);
}
// coth
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType coth(genType angle)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'coth' only accept floating-point values");
return glm::cosh(angle) / glm::sinh(angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> coth(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> coth(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'coth' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(coth, x);
+ return detail::functor1<L, T, T, P>::call(coth, x);
}
// asech
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType asech(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'asech' only accept floating-point values");
return acosh(genType(1) / x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> asech(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> asech(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'asech' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(asech, x);
+ return detail::functor1<L, T, T, P>::call(asech, x);
}
// acsch
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType acsch(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'acsch' only accept floating-point values");
return acsch(genType(1) / x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> acsch(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> acsch(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'acsch' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(acsch, x);
+ return detail::functor1<L, T, T, P>::call(acsch, x);
}
// acoth
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType acoth(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'acoth' only accept floating-point values");
return atanh(genType(1) / x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> acoth(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> acoth(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'acoth' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(acoth, x);
+ return detail::functor1<L, T, T, P>::call(acoth, x);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/round.hpp b/3rdparty/glm/glm/gtc/round.hpp
index a583592181b..3520e436c32 100644
--- a/3rdparty/glm/glm/gtc/round.hpp
+++ b/3rdparty/glm/glm/gtc/round.hpp
@@ -33,72 +33,72 @@ namespace glm
/// Return true if the value is a power of two number.
///
/// @see gtc_round
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL bool isPowerOfTwo(genIUType Value);
/// Return true if the value is a power of two number.
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> isPowerOfTwo(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> isPowerOfTwo(vecType<L, T, P> const & value);
/// Return the power of two number which value is just higher the input value,
/// round up to a power of two.
///
/// @see gtc_round
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType ceilPowerOfTwo(genIUType Value);
/// Return the power of two number which value is just higher the input value,
/// round up to a power of two.
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> ceilPowerOfTwo(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> ceilPowerOfTwo(vecType<L, T, P> const & value);
/// Return the power of two number which value is just lower the input value,
/// round down to a power of two.
///
/// @see gtc_round
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType floorPowerOfTwo(genIUType Value);
/// Return the power of two number which value is just lower the input value,
/// round down to a power of two.
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> floorPowerOfTwo(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> floorPowerOfTwo(vecType<L, T, P> const & value);
/// Return the power of two number which value is the closet to the input value.
///
/// @see gtc_round
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType roundPowerOfTwo(genIUType Value);
/// Return the power of two number which value is the closet to the input value.
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> roundPowerOfTwo(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> roundPowerOfTwo(vecType<L, T, P> const & value);
/// Return true if the 'Value' is a multiple of 'Multiple'.
///
/// @see gtc_round
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL bool isMultiple(genIUType Value, genIUType Multiple);
/// Return true if the 'Value' is a multiple of 'Multiple'.
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> isMultiple(vecType<T, P> const & Value, T Multiple);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> isMultiple(vecType<L, T, P> const & Value, T Multiple);
/// Return true if the 'Value' is a multiple of 'Multiple'.
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> isMultiple(vecType<T, P> const & Value, vecType<T, P> const & Multiple);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> isMultiple(vecType<L, T, P> const & Value, vecType<L, T, P> const & Multiple);
/// Higher multiple number of Source.
///
@@ -107,7 +107,7 @@ namespace glm
/// @param Multiple Must be a null or positive value
///
/// @see gtc_round
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType ceilMultiple(genType Source, genType Multiple);
/// Higher multiple number of Source.
@@ -117,8 +117,8 @@ namespace glm
/// @param Multiple Must be a null or positive value
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> ceilMultiple(vecType<T, P> const & Source, vecType<T, P> const & Multiple);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> ceilMultiple(vecType<L, T, P> const & Source, vecType<L, T, P> const & Multiple);
/// Lower multiple number of Source.
///
@@ -127,7 +127,7 @@ namespace glm
/// @param Multiple Must be a null or positive value
///
/// @see gtc_round
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType floorMultiple(
genType Source,
genType Multiple);
@@ -139,10 +139,10 @@ namespace glm
/// @param Multiple Must be a null or positive value
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> floorMultiple(
- vecType<T, P> const & Source,
- vecType<T, P> const & Multiple);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> floorMultiple(
+ vecType<L, T, P> const& Source,
+ vecType<L, T, P> const& Multiple);
/// Lower multiple number of Source.
///
@@ -151,7 +151,7 @@ namespace glm
/// @param Multiple Must be a null or positive value
///
/// @see gtc_round
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType roundMultiple(
genType Source,
genType Multiple);
@@ -163,10 +163,10 @@ namespace glm
/// @param Multiple Must be a null or positive value
///
/// @see gtc_round
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> roundMultiple(
- vecType<T, P> const & Source,
- vecType<T, P> const & Multiple);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> roundMultiple(
+ vecType<L, T, P> const& Source,
+ vecType<L, T, P> const& Multiple);
/// @}
} //namespace glm
diff --git a/3rdparty/glm/glm/gtc/round.inl b/3rdparty/glm/glm/gtc/round.inl
index f583c403573..9ddf50ead51 100644
--- a/3rdparty/glm/glm/gtc/round.inl
+++ b/3rdparty/glm/glm/gtc/round.inl
@@ -6,73 +6,73 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <typename, precision> class vecType, bool compute = false>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool compute = false>
struct compute_ceilShift
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v, T)
{
return v;
}
};
- template <typename T, precision P, template <typename, precision> class vecType>
- struct compute_ceilShift<T, P, vecType, true>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_ceilShift<L, T, P, vecType, true>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Shift)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v, T Shift)
{
return v | (v >> Shift);
}
};
- template <typename T, precision P, template <typename, precision> class vecType, bool isSigned = true>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool isSigned = true>
struct compute_ceilPowerOfTwo
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(!std::numeric_limits<T>::is_iec559, "'ceilPowerOfTwo' only accept integer scalar or vector inputs");
- vecType<T, P> const Sign(sign(x));
+ vecType<L, T, P> const Sign(sign(x));
- vecType<T, P> v(abs(x));
+ vecType<L, T, P> v(abs(x));
v = v - static_cast<T>(1);
v = v | (v >> static_cast<T>(1));
v = v | (v >> static_cast<T>(2));
v = v | (v >> static_cast<T>(4));
- v = compute_ceilShift<T, P, vecType, sizeof(T) >= 2>::call(v, 8);
- v = compute_ceilShift<T, P, vecType, sizeof(T) >= 4>::call(v, 16);
- v = compute_ceilShift<T, P, vecType, sizeof(T) >= 8>::call(v, 32);
+ v = compute_ceilShift<L, T, P, vecType, sizeof(T) >= 2>::call(v, 8);
+ v = compute_ceilShift<L, T, P, vecType, sizeof(T) >= 4>::call(v, 16);
+ v = compute_ceilShift<L, T, P, vecType, sizeof(T) >= 8>::call(v, 32);
return (v + static_cast<T>(1)) * Sign;
}
};
- template <typename T, precision P, template <typename, precision> class vecType>
- struct compute_ceilPowerOfTwo<T, P, vecType, false>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_ceilPowerOfTwo<L, T, P, vecType, false>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(!std::numeric_limits<T>::is_iec559, "'ceilPowerOfTwo' only accept integer scalar or vector inputs");
- vecType<T, P> v(x);
+ vecType<L, T, P> v(x);
v = v - static_cast<T>(1);
v = v | (v >> static_cast<T>(1));
v = v | (v >> static_cast<T>(2));
v = v | (v >> static_cast<T>(4));
- v = compute_ceilShift<T, P, vecType, sizeof(T) >= 2>::call(v, 8);
- v = compute_ceilShift<T, P, vecType, sizeof(T) >= 4>::call(v, 16);
- v = compute_ceilShift<T, P, vecType, sizeof(T) >= 8>::call(v, 32);
+ v = compute_ceilShift<L, T, P, vecType, sizeof(T) >= 2>::call(v, 8);
+ v = compute_ceilShift<L, T, P, vecType, sizeof(T) >= 4>::call(v, 16);
+ v = compute_ceilShift<L, T, P, vecType, sizeof(T) >= 8>::call(v, 32);
return v + static_cast<T>(1);
}
};
- template <bool is_float, bool is_signed>
+ template<bool is_float, bool is_signed>
struct compute_ceilMultiple{};
- template <>
+ template<>
struct compute_ceilMultiple<true, true>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source > genType(0))
@@ -82,10 +82,10 @@ namespace detail
}
};
- template <>
+ template<>
struct compute_ceilMultiple<false, false>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
genType Tmp = Source - genType(1);
@@ -93,10 +93,10 @@ namespace detail
}
};
- template <>
+ template<>
struct compute_ceilMultiple<false, true>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source > genType(0))
@@ -109,13 +109,13 @@ namespace detail
}
};
- template <bool is_float, bool is_signed>
+ template<bool is_float, bool is_signed>
struct compute_floorMultiple{};
- template <>
+ template<>
struct compute_floorMultiple<true, true>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source >= genType(0))
@@ -125,10 +125,10 @@ namespace detail
}
};
- template <>
+ template<>
struct compute_floorMultiple<false, false>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source >= genType(0))
@@ -141,10 +141,10 @@ namespace detail
}
};
- template <>
+ template<>
struct compute_floorMultiple<false, true>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source >= genType(0))
@@ -157,13 +157,13 @@ namespace detail
}
};
- template <bool is_float, bool is_signed>
+ template<bool is_float, bool is_signed>
struct compute_roundMultiple{};
- template <>
+ template<>
struct compute_roundMultiple<true, true>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source >= genType(0))
@@ -176,10 +176,10 @@ namespace detail
}
};
- template <>
+ template<>
struct compute_roundMultiple<false, false>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source >= genType(0))
@@ -192,10 +192,10 @@ namespace detail
}
};
- template <>
+ template<>
struct compute_roundMultiple<false, true>
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER static genType call(genType Source, genType Multiple)
{
if(Source >= genType(0))
@@ -212,54 +212,54 @@ namespace detail
////////////////
// isPowerOfTwo
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool isPowerOfTwo(genType Value)
{
genType const Result = glm::abs(Value);
return !(Result & (Result - 1));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> isPowerOfTwo(vecType<T, P> const & Value)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> isPowerOfTwo(vecType<L, T, P> const & Value)
{
- vecType<T, P> const Result(abs(Value));
- return equal(Result & (Result - 1), vecType<T, P>(0));
+ vecType<L, T, P> const Result(abs(Value));
+ return equal(Result & (Result - 1), vecType<L, T, P>(0));
}
//////////////////
// ceilPowerOfTwo
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType ceilPowerOfTwo(genType value)
{
- return detail::compute_ceilPowerOfTwo<genType, defaultp, tvec1, std::numeric_limits<genType>::is_signed>::call(tvec1<genType, defaultp>(value)).x;
+ return detail::compute_ceilPowerOfTwo<1, genType, defaultp, vec, std::numeric_limits<genType>::is_signed>::call(vec<1, genType, defaultp>(value)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> ceilPowerOfTwo(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> ceilPowerOfTwo(vecType<L, T, P> const & v)
{
- return detail::compute_ceilPowerOfTwo<T, P, vecType, std::numeric_limits<T>::is_signed>::call(v);
+ return detail::compute_ceilPowerOfTwo<L, T, P, vecType, std::numeric_limits<T>::is_signed>::call(v);
}
///////////////////
// floorPowerOfTwo
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType floorPowerOfTwo(genType value)
{
return isPowerOfTwo(value) ? value : static_cast<genType>(1) << findMSB(value);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> floorPowerOfTwo(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> floorPowerOfTwo(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(floorPowerOfTwo, v);
+ return detail::functor1<L, T, T, P>::call(floorPowerOfTwo, v);
}
///////////////////
// roundPowerOfTwo
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType roundPowerOfTwo(genIUType value)
{
if(isPowerOfTwo(value))
@@ -270,75 +270,75 @@ namespace detail
return (next - value) < (value - prev) ? next : prev;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> roundPowerOfTwo(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> roundPowerOfTwo(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(roundPowerOfTwo, v);
+ return detail::functor1<L, T, T, P>::call(roundPowerOfTwo, v);
}
////////////////
// isMultiple
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool isMultiple(genType Value, genType Multiple)
{
- return isMultiple(tvec1<genType>(Value), tvec1<genType>(Multiple)).x;
+ return isMultiple(vec<1, genType>(Value), vec<1, genType>(Multiple)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> isMultiple(vecType<T, P> const & Value, T Multiple)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> isMultiple(vecType<L, T, P> const & Value, T Multiple)
{
- return (Value % Multiple) == vecType<T, P>(0);
+ return (Value % Multiple) == vecType<L, T, P>(0);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> isMultiple(vecType<T, P> const & Value, vecType<T, P> const & Multiple)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> isMultiple(vecType<L, T, P> const & Value, vecType<L, T, P> const & Multiple)
{
- return (Value % Multiple) == vecType<T, P>(0);
+ return (Value % Multiple) == vecType<L, T, P>(0);
}
//////////////////////
// ceilMultiple
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType ceilMultiple(genType Source, genType Multiple)
{
return detail::compute_ceilMultiple<std::numeric_limits<genType>::is_iec559, std::numeric_limits<genType>::is_signed>::call(Source, Multiple);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> ceilMultiple(vecType<T, P> const & Source, vecType<T, P> const & Multiple)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> ceilMultiple(vecType<L, T, P> const & Source, vecType<L, T, P> const & Multiple)
{
- return detail::functor2<T, P, vecType>::call(ceilMultiple, Source, Multiple);
+ return detail::functor2<L, T, P>::call(ceilMultiple, Source, Multiple);
}
//////////////////////
// floorMultiple
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType floorMultiple(genType Source, genType Multiple)
{
return detail::compute_floorMultiple<std::numeric_limits<genType>::is_iec559, std::numeric_limits<genType>::is_signed>::call(Source, Multiple);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> floorMultiple(vecType<T, P> const & Source, vecType<T, P> const & Multiple)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> floorMultiple(vecType<L, T, P> const & Source, vecType<L, T, P> const & Multiple)
{
- return detail::functor2<T, P, vecType>::call(floorMultiple, Source, Multiple);
+ return detail::functor2<L, T, P>::call(floorMultiple, Source, Multiple);
}
//////////////////////
// roundMultiple
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType roundMultiple(genType Source, genType Multiple)
{
return detail::compute_roundMultiple<std::numeric_limits<genType>::is_iec559, std::numeric_limits<genType>::is_signed>::call(Source, Multiple);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> roundMultiple(vecType<T, P> const & Source, vecType<T, P> const & Multiple)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> roundMultiple(vecType<L, T, P> const & Source, vecType<L, T, P> const & Multiple)
{
- return detail::functor2<T, P, vecType>::call(roundMultiple, Source, Multiple);
+ return detail::functor2<L, T, P>::call(roundMultiple, Source, Multiple);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtc/type_aligned.hpp b/3rdparty/glm/glm/gtc/type_aligned.hpp
index 2e4503c3a81..fb81498a653 100644
--- a/3rdparty/glm/glm/gtc/type_aligned.hpp
+++ b/3rdparty/glm/glm/gtc/type_aligned.hpp
@@ -25,214 +25,210 @@
namespace glm
{
- template <typename T, precision P> struct tvec1;
- template <typename T, precision P> struct tvec2;
- template <typename T, precision P> struct tvec3;
- template <typename T, precision P> struct tvec4;
/// @addtogroup gtc_type_aligned
/// @{
// -- *vec1 --
- typedef tvec1<float, aligned_highp> aligned_highp_vec1;
- typedef tvec1<float, aligned_mediump> aligned_mediump_vec1;
- typedef tvec1<float, aligned_lowp> aligned_lowp_vec1;
- typedef tvec1<double, aligned_highp> aligned_highp_dvec1;
- typedef tvec1<double, aligned_mediump> aligned_mediump_dvec1;
- typedef tvec1<double, aligned_lowp> aligned_lowp_dvec1;
- typedef tvec1<int, aligned_highp> aligned_highp_ivec1;
- typedef tvec1<int, aligned_mediump> aligned_mediump_ivec1;
- typedef tvec1<int, aligned_lowp> aligned_lowp_ivec1;
- typedef tvec1<uint, aligned_highp> aligned_highp_uvec1;
- typedef tvec1<uint, aligned_mediump> aligned_mediump_uvec1;
- typedef tvec1<uint, aligned_lowp> aligned_lowp_uvec1;
- typedef tvec1<bool, aligned_highp> aligned_highp_bvec1;
- typedef tvec1<bool, aligned_mediump> aligned_mediump_bvec1;
- typedef tvec1<bool, aligned_lowp> aligned_lowp_bvec1;
-
- typedef tvec1<float, packed_highp> packed_highp_vec1;
- typedef tvec1<float, packed_mediump> packed_mediump_vec1;
- typedef tvec1<float, packed_lowp> packed_lowp_vec1;
- typedef tvec1<double, packed_highp> packed_highp_dvec1;
- typedef tvec1<double, packed_mediump> packed_mediump_dvec1;
- typedef tvec1<double, packed_lowp> packed_lowp_dvec1;
- typedef tvec1<int, packed_highp> packed_highp_ivec1;
- typedef tvec1<int, packed_mediump> packed_mediump_ivec1;
- typedef tvec1<int, packed_lowp> packed_lowp_ivec1;
- typedef tvec1<uint, packed_highp> packed_highp_uvec1;
- typedef tvec1<uint, packed_mediump> packed_mediump_uvec1;
- typedef tvec1<uint, packed_lowp> packed_lowp_uvec1;
- typedef tvec1<bool, packed_highp> packed_highp_bvec1;
- typedef tvec1<bool, packed_mediump> packed_mediump_bvec1;
- typedef tvec1<bool, packed_lowp> packed_lowp_bvec1;
+ typedef vec<1, float, aligned_highp> aligned_highp_vec1;
+ typedef vec<1, float, aligned_mediump> aligned_mediump_vec1;
+ typedef vec<1, float, aligned_lowp> aligned_lowp_vec1;
+ typedef vec<1, double, aligned_highp> aligned_highp_dvec1;
+ typedef vec<1, double, aligned_mediump> aligned_mediump_dvec1;
+ typedef vec<1, double, aligned_lowp> aligned_lowp_dvec1;
+ typedef vec<1, int, aligned_highp> aligned_highp_ivec1;
+ typedef vec<1, int, aligned_mediump> aligned_mediump_ivec1;
+ typedef vec<1, int, aligned_lowp> aligned_lowp_ivec1;
+ typedef vec<1, uint, aligned_highp> aligned_highp_uvec1;
+ typedef vec<1, uint, aligned_mediump> aligned_mediump_uvec1;
+ typedef vec<1, uint, aligned_lowp> aligned_lowp_uvec1;
+ typedef vec<1, bool, aligned_highp> aligned_highp_bvec1;
+ typedef vec<1, bool, aligned_mediump> aligned_mediump_bvec1;
+ typedef vec<1, bool, aligned_lowp> aligned_lowp_bvec1;
+
+ typedef vec<1, float, packed_highp> packed_highp_vec1;
+ typedef vec<1, float, packed_mediump> packed_mediump_vec1;
+ typedef vec<1, float, packed_lowp> packed_lowp_vec1;
+ typedef vec<1, double, packed_highp> packed_highp_dvec1;
+ typedef vec<1, double, packed_mediump> packed_mediump_dvec1;
+ typedef vec<1, double, packed_lowp> packed_lowp_dvec1;
+ typedef vec<1, int, packed_highp> packed_highp_ivec1;
+ typedef vec<1, int, packed_mediump> packed_mediump_ivec1;
+ typedef vec<1, int, packed_lowp> packed_lowp_ivec1;
+ typedef vec<1, uint, packed_highp> packed_highp_uvec1;
+ typedef vec<1, uint, packed_mediump> packed_mediump_uvec1;
+ typedef vec<1, uint, packed_lowp> packed_lowp_uvec1;
+ typedef vec<1, bool, packed_highp> packed_highp_bvec1;
+ typedef vec<1, bool, packed_mediump> packed_mediump_bvec1;
+ typedef vec<1, bool, packed_lowp> packed_lowp_bvec1;
// -- *vec2 --
/// 2 components vector of high single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<float, aligned_highp> aligned_highp_vec2;
+ typedef vec<2, float, aligned_highp> aligned_highp_vec2;
/// 2 components vector of medium single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<float, aligned_mediump> aligned_mediump_vec2;
+ typedef vec<2, float, aligned_mediump> aligned_mediump_vec2;
/// 2 components vector of low single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<float, aligned_lowp> aligned_lowp_vec2;
+ typedef vec<2, float, aligned_lowp> aligned_lowp_vec2;
/// 2 components vector of high double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<double, aligned_highp> aligned_highp_dvec2;
+ typedef vec<2, double, aligned_highp> aligned_highp_dvec2;
/// 2 components vector of medium double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<double, aligned_mediump> aligned_mediump_dvec2;
+ typedef vec<2, double, aligned_mediump> aligned_mediump_dvec2;
/// 2 components vector of low double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<double, aligned_lowp> aligned_lowp_dvec2;
+ typedef vec<2, double, aligned_lowp> aligned_lowp_dvec2;
/// 2 components vector of high precision signed integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<int, aligned_highp> aligned_highp_ivec2;
+ typedef vec<2, int, aligned_highp> aligned_highp_ivec2;
/// 2 components vector of medium precision signed integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<int, aligned_mediump> aligned_mediump_ivec2;
+ typedef vec<2, int, aligned_mediump> aligned_mediump_ivec2;
/// 2 components vector of low precision signed integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<int, aligned_lowp> aligned_lowp_ivec2;
+ typedef vec<2, int, aligned_lowp> aligned_lowp_ivec2;
/// 2 components vector of high precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<uint, aligned_highp> aligned_highp_uvec2;
+ typedef vec<2, uint, aligned_highp> aligned_highp_uvec2;
/// 2 components vector of medium precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<uint, aligned_mediump> aligned_mediump_uvec2;
+ typedef vec<2, uint, aligned_mediump> aligned_mediump_uvec2;
/// 2 components vector of low precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<uint, aligned_lowp> aligned_lowp_uvec2;
+ typedef vec<2, uint, aligned_lowp> aligned_lowp_uvec2;
/// 2 components vector of high precision bool numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<bool, aligned_highp> aligned_highp_bvec2;
+ typedef vec<2, bool, aligned_highp> aligned_highp_bvec2;
/// 2 components vector of medium precision bool numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<bool, aligned_mediump> aligned_mediump_bvec2;
+ typedef vec<2, bool, aligned_mediump> aligned_mediump_bvec2;
/// 2 components vector of low precision bool numbers.
/// There is no guarantee on the actual precision.
- typedef tvec2<bool, aligned_lowp> aligned_lowp_bvec2;
+ typedef vec<2, bool, aligned_lowp> aligned_lowp_bvec2;
// -- *vec3 --
/// 3 components vector of high single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<float, aligned_highp> aligned_highp_vec3;
+ typedef vec<3, float, aligned_highp> aligned_highp_vec3;
/// 3 components vector of medium single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<float, aligned_mediump> aligned_mediump_vec3;
+ typedef vec<3, float, aligned_mediump> aligned_mediump_vec3;
/// 3 components vector of low single-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<float, aligned_lowp> aligned_lowp_vec3;
+ typedef vec<3, float, aligned_lowp> aligned_lowp_vec3;
/// 3 components vector of high double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<double, aligned_highp> aligned_highp_dvec3;
+ typedef vec<3, double, aligned_highp> aligned_highp_dvec3;
/// 3 components vector of medium double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<double, aligned_mediump> aligned_mediump_dvec3;
+ typedef vec<3, double, aligned_mediump> aligned_mediump_dvec3;
/// 3 components vector of low double-precision floating-point numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<double, aligned_lowp> aligned_lowp_dvec3;
+ typedef vec<3, double, aligned_lowp> aligned_lowp_dvec3;
/// 3 components vector of high precision signed integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<int, aligned_highp> aligned_highp_ivec3;
+ typedef vec<3, int, aligned_highp> aligned_highp_ivec3;
/// 3 components vector of medium precision signed integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<int, aligned_mediump> aligned_mediump_ivec3;
+ typedef vec<3, int, aligned_mediump> aligned_mediump_ivec3;
/// 3 components vector of low precision signed integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<int, aligned_lowp> aligned_lowp_ivec3;
+ typedef vec<3, int, aligned_lowp> aligned_lowp_ivec3;
/// 3 components vector of high precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<uint, aligned_highp> aligned_highp_uvec3;
+ typedef vec<3, uint, aligned_highp> aligned_highp_uvec3;
/// 3 components vector of medium precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<uint, aligned_mediump> aligned_mediump_uvec3;
+ typedef vec<3, uint, aligned_mediump> aligned_mediump_uvec3;
/// 3 components vector of low precision unsigned integer numbers.
/// There is no guarantee on the actual precision.
- typedef tvec3<uint, aligned_lowp> aligned_lowp_uvec3;
+ typedef vec<3, uint, aligned_lowp> aligned_lowp_uvec3;
/// 3 components vector of high precision bool numbers.
- typedef tvec3<bool, aligned_highp> aligned_highp_bvec3;
+ typedef vec<3, bool, aligned_highp> aligned_highp_bvec3;
/// 3 components vector of medium precision bool numbers.
- typedef tvec3<bool, aligned_mediump> aligned_mediump_bvec3;
+ typedef vec<3, bool, aligned_mediump> aligned_mediump_bvec3;
/// 3 components vector of low precision bool numbers.
- typedef tvec3<bool, aligned_lowp> aligned_lowp_bvec3;
+ typedef vec<3, bool, aligned_lowp> aligned_lowp_bvec3;
// -- *vec4 --
/// 4 components vector of high single-precision floating-point numbers.
- typedef tvec4<float, aligned_highp> aligned_highp_vec4;
+ typedef vec<4, float, aligned_highp> aligned_highp_vec4;
/// 4 components vector of medium single-precision floating-point numbers.
- typedef tvec4<float, aligned_mediump> aligned_mediump_vec4;
+ typedef vec<4, float, aligned_mediump> aligned_mediump_vec4;
/// 4 components vector of low single-precision floating-point numbers.
- typedef tvec4<float, aligned_lowp> aligned_lowp_vec4;
+ typedef vec<4, float, aligned_lowp> aligned_lowp_vec4;
/// 4 components vector of high double-precision floating-point numbers.
- typedef tvec4<double, aligned_highp> aligned_highp_dvec4;
+ typedef vec<4, double, aligned_highp> aligned_highp_dvec4;
/// 4 components vector of medium double-precision floating-point numbers.
- typedef tvec4<double, aligned_mediump> aligned_mediump_dvec4;
+ typedef vec<4, double, aligned_mediump> aligned_mediump_dvec4;
/// 4 components vector of low double-precision floating-point numbers.
- typedef tvec4<double, aligned_lowp> aligned_lowp_dvec4;
+ typedef vec<4, double, aligned_lowp> aligned_lowp_dvec4;
/// 4 components vector of high precision signed integer numbers.
- typedef tvec4<int, aligned_highp> aligned_highp_ivec4;
+ typedef vec<4, int, aligned_highp> aligned_highp_ivec4;
/// 4 components vector of medium precision signed integer numbers.
- typedef tvec4<int, aligned_mediump> aligned_mediump_ivec4;
+ typedef vec<4, int, aligned_mediump> aligned_mediump_ivec4;
/// 4 components vector of low precision signed integer numbers.
- typedef tvec4<int, aligned_lowp> aligned_lowp_ivec4;
+ typedef vec<4, int, aligned_lowp> aligned_lowp_ivec4;
/// 4 components vector of high precision unsigned integer numbers.
- typedef tvec4<uint, aligned_highp> aligned_highp_uvec4;
+ typedef vec<4, uint, aligned_highp> aligned_highp_uvec4;
/// 4 components vector of medium precision unsigned integer numbers.
- typedef tvec4<uint, aligned_mediump> aligned_mediump_uvec4;
+ typedef vec<4, uint, aligned_mediump> aligned_mediump_uvec4;
/// 4 components vector of low precision unsigned integer numbers.
- typedef tvec4<uint, aligned_lowp> aligned_lowp_uvec4;
+ typedef vec<4, uint, aligned_lowp> aligned_lowp_uvec4;
/// 4 components vector of high precision bool numbers.
- typedef tvec4<bool, aligned_highp> aligned_highp_bvec4;
+ typedef vec<4, bool, aligned_highp> aligned_highp_bvec4;
/// 4 components vector of medium precision bool numbers.
- typedef tvec4<bool, aligned_mediump> aligned_mediump_bvec4;
+ typedef vec<4, bool, aligned_mediump> aligned_mediump_bvec4;
/// 4 components vector of low precision bool numbers.
- typedef tvec4<bool, aligned_lowp> aligned_lowp_bvec4;
+ typedef vec<4, bool, aligned_lowp> aligned_lowp_bvec4;
// -- default --
diff --git a/3rdparty/glm/glm/gtc/type_precision.hpp b/3rdparty/glm/glm/gtc/type_precision.hpp
index a2dbb66a003..101f427ce40 100644
--- a/3rdparty/glm/glm/gtc/type_precision.hpp
+++ b/3rdparty/glm/glm/gtc/type_precision.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/type_precision.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence)
///
/// @defgroup gtc_type_precision GLM_GTC_type_precision
@@ -248,70 +247,70 @@ namespace glm
/// 8 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i8, defaultp> i8vec1;
+ typedef vec<1, i8, defaultp> i8vec1;
/// 8 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i8, defaultp> i8vec2;
+ typedef vec<2, i8, defaultp> i8vec2;
/// 8 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i8, defaultp> i8vec3;
+ typedef vec<3, i8, defaultp> i8vec3;
/// 8 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i8, defaultp> i8vec4;
+ typedef vec<4, i8, defaultp> i8vec4;
/// 16 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i16, defaultp> i16vec1;
+ typedef vec<1, i16, defaultp> i16vec1;
/// 16 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i16, defaultp> i16vec2;
+ typedef vec<2, i16, defaultp> i16vec2;
/// 16 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i16, defaultp> i16vec3;
+ typedef vec<3, i16, defaultp> i16vec3;
/// 16 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i16, defaultp> i16vec4;
+ typedef vec<4, i16, defaultp> i16vec4;
/// 32 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i32, defaultp> i32vec1;
+ typedef vec<1, i32, defaultp> i32vec1;
/// 32 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i32, defaultp> i32vec2;
+ typedef vec<2, i32, defaultp> i32vec2;
/// 32 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i32, defaultp> i32vec3;
+ typedef vec<3, i32, defaultp> i32vec3;
/// 32 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i32, defaultp> i32vec4;
+ typedef vec<4, i32, defaultp> i32vec4;
/// 64 bit signed integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<i64, defaultp> i64vec1;
+ typedef vec<1, i64, defaultp> i64vec1;
/// 64 bit signed integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<i64, defaultp> i64vec2;
+ typedef vec<2, i64, defaultp> i64vec2;
/// 64 bit signed integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<i64, defaultp> i64vec3;
+ typedef vec<3, i64, defaultp> i64vec3;
/// 64 bit signed integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<i64, defaultp> i64vec4;
+ typedef vec<4, i64, defaultp> i64vec4;
/////////////////////////////
@@ -520,70 +519,70 @@ namespace glm
/// Default precision 8 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u8, defaultp> u8vec1;
+ typedef vec<1, u8, defaultp> u8vec1;
/// Default precision 8 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u8, defaultp> u8vec2;
+ typedef vec<2, u8, defaultp> u8vec2;
/// Default precision 8 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u8, defaultp> u8vec3;
+ typedef vec<3, u8, defaultp> u8vec3;
/// Default precision 8 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u8, defaultp> u8vec4;
+ typedef vec<4, u8, defaultp> u8vec4;
/// Default precision 16 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u16, defaultp> u16vec1;
+ typedef vec<1, u16, defaultp> u16vec1;
/// Default precision 16 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u16, defaultp> u16vec2;
+ typedef vec<2, u16, defaultp> u16vec2;
/// Default precision 16 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u16, defaultp> u16vec3;
+ typedef vec<3, u16, defaultp> u16vec3;
/// Default precision 16 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u16, defaultp> u16vec4;
+ typedef vec<4, u16, defaultp> u16vec4;
/// Default precision 32 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u32, defaultp> u32vec1;
+ typedef vec<1, u32, defaultp> u32vec1;
/// Default precision 32 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u32, defaultp> u32vec2;
+ typedef vec<2, u32, defaultp> u32vec2;
/// Default precision 32 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u32, defaultp> u32vec3;
+ typedef vec<3, u32, defaultp> u32vec3;
/// Default precision 32 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u32, defaultp> u32vec4;
+ typedef vec<4, u32, defaultp> u32vec4;
/// Default precision 64 bit unsigned integer scalar type.
/// @see gtc_type_precision
- typedef tvec1<u64, defaultp> u64vec1;
+ typedef vec<1, u64, defaultp> u64vec1;
/// Default precision 64 bit unsigned integer vector of 2 components type.
/// @see gtc_type_precision
- typedef tvec2<u64, defaultp> u64vec2;
+ typedef vec<2, u64, defaultp> u64vec2;
/// Default precision 64 bit unsigned integer vector of 3 components type.
/// @see gtc_type_precision
- typedef tvec3<u64, defaultp> u64vec3;
+ typedef vec<3, u64, defaultp> u64vec3;
/// Default precision 64 bit unsigned integer vector of 4 components type.
/// @see gtc_type_precision
- typedef tvec4<u64, defaultp> u64vec4;
+ typedef vec<4, u64, defaultp> u64vec4;
//////////////////////
@@ -618,53 +617,53 @@ namespace glm
/// Single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<float, defaultp> fvec1;
+ typedef vec<1, float, defaultp> fvec1;
/// Single-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<float, defaultp> fvec2;
+ typedef vec<2, float, defaultp> fvec2;
/// Single-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<float, defaultp> fvec3;
+ typedef vec<3, float, defaultp> fvec3;
/// Single-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<float, defaultp> fvec4;
+ typedef vec<4, float, defaultp> fvec4;
/// Single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f32, defaultp> f32vec1;
+ typedef vec<1, f32, defaultp> f32vec1;
/// Single-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<f32, defaultp> f32vec2;
+ typedef vec<2, f32, defaultp> f32vec2;
/// Single-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<f32, defaultp> f32vec3;
+ typedef vec<3, f32, defaultp> f32vec3;
/// Single-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<f32, defaultp> f32vec4;
+ typedef vec<4, f32, defaultp> f32vec4;
/// Double-precision floating-point vector of 1 component.
/// @see gtc_type_precision
- typedef tvec1<f64, defaultp> f64vec1;
+ typedef vec<1, f64, defaultp> f64vec1;
/// Double-precision floating-point vector of 2 components.
/// @see gtc_type_precision
- typedef tvec2<f64, defaultp> f64vec2;
+ typedef vec<2, f64, defaultp> f64vec2;
/// Double-precision floating-point vector of 3 components.
/// @see gtc_type_precision
- typedef tvec3<f64, defaultp> f64vec3;
+ typedef vec<3, f64, defaultp> f64vec3;
/// Double-precision floating-point vector of 4 components.
/// @see gtc_type_precision
- typedef tvec4<f64, defaultp> f64vec4;
+ typedef vec<4, f64, defaultp> f64vec4;
//////////////////////
@@ -676,15 +675,15 @@ namespace glm
/// Single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, defaultp> fmat2;
+ typedef mat<2, 2, f32, defaultp> fmat2;
/// Single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, defaultp> fmat3;
+ typedef mat<3, 3, f32, defaultp> fmat3;
/// Single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, defaultp> fmat4;
+ typedef mat<4, 4, f32, defaultp> fmat4;
/// Single-precision floating-point 1x1 matrix.
@@ -693,39 +692,39 @@ namespace glm
/// Single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, defaultp> fmat2x2;
+ typedef mat<2, 2, f32, defaultp> fmat2x2;
/// Single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, defaultp> fmat2x3;
+ typedef mat<2, 3, f32, defaultp> fmat2x3;
/// Single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, defaultp> fmat2x4;
+ typedef mat<2, 4, f32, defaultp> fmat2x4;
/// Single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, defaultp> fmat3x2;
+ typedef mat<3, 2, f32, defaultp> fmat3x2;
/// Single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, defaultp> fmat3x3;
+ typedef mat<3, 3, f32, defaultp> fmat3x3;
/// Single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, defaultp> fmat3x4;
+ typedef mat<3, 4, f32, defaultp> fmat3x4;
/// Single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, defaultp> fmat4x2;
+ typedef mat<4, 2, f32, defaultp> fmat4x2;
/// Single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, defaultp> fmat4x3;
+ typedef mat<4, 3, f32, defaultp> fmat4x3;
/// Single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, defaultp> fmat4x4;
+ typedef mat<4, 4, f32, defaultp> fmat4x4;
/// Single-precision floating-point 1x1 matrix.
@@ -734,15 +733,15 @@ namespace glm
/// Single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, defaultp> f32mat2;
+ typedef mat<2, 2, f32, defaultp> f32mat2;
/// Single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, defaultp> f32mat3;
+ typedef mat<3, 3, f32, defaultp> f32mat3;
/// Single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, defaultp> f32mat4;
+ typedef mat<4, 4, f32, defaultp> f32mat4;
/// Single-precision floating-point 1x1 matrix.
@@ -751,39 +750,39 @@ namespace glm
/// Single-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f32, defaultp> f32mat2x2;
+ typedef mat<2, 2, f32, defaultp> f32mat2x2;
/// Single-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f32, defaultp> f32mat2x3;
+ typedef mat<2, 3, f32, defaultp> f32mat2x3;
/// Single-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f32, defaultp> f32mat2x4;
+ typedef mat<2, 4, f32, defaultp> f32mat2x4;
/// Single-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f32, defaultp> f32mat3x2;
+ typedef mat<3, 2, f32, defaultp> f32mat3x2;
/// Single-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f32, defaultp> f32mat3x3;
+ typedef mat<3, 3, f32, defaultp> f32mat3x3;
/// Single-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f32, defaultp> f32mat3x4;
+ typedef mat<3, 4, f32, defaultp> f32mat3x4;
/// Single-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f32, defaultp> f32mat4x2;
+ typedef mat<4, 2, f32, defaultp> f32mat4x2;
/// Single-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f32, defaultp> f32mat4x3;
+ typedef mat<4, 3, f32, defaultp> f32mat4x3;
/// Single-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f32, defaultp> f32mat4x4;
+ typedef mat<4, 4, f32, defaultp> f32mat4x4;
/// Double-precision floating-point 1x1 matrix.
@@ -792,15 +791,15 @@ namespace glm
/// Double-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f64, defaultp> f64mat2;
+ typedef mat<2, 2, f64, defaultp> f64mat2;
/// Double-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f64, defaultp> f64mat3;
+ typedef mat<3, 3, f64, defaultp> f64mat3;
/// Double-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f64, defaultp> f64mat4;
+ typedef mat<4, 4, f64, defaultp> f64mat4;
/// Double-precision floating-point 1x1 matrix.
@@ -809,39 +808,39 @@ namespace glm
/// Double-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
- typedef tmat2x2<f64, defaultp> f64mat2x2;
+ typedef mat<2, 2, f64, defaultp> f64mat2x2;
/// Double-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
- typedef tmat2x3<f64, defaultp> f64mat2x3;
+ typedef mat<2, 3, f64, defaultp> f64mat2x3;
/// Double-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
- typedef tmat2x4<f64, defaultp> f64mat2x4;
+ typedef mat<2, 4, f64, defaultp> f64mat2x4;
/// Double-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
- typedef tmat3x2<f64, defaultp> f64mat3x2;
+ typedef mat<3, 2, f64, defaultp> f64mat3x2;
/// Double-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
- typedef tmat3x3<f64, defaultp> f64mat3x3;
+ typedef mat<3, 3, f64, defaultp> f64mat3x3;
/// Double-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
- typedef tmat3x4<f64, defaultp> f64mat3x4;
+ typedef mat<3, 4, f64, defaultp> f64mat3x4;
/// Double-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
- typedef tmat4x2<f64, defaultp> f64mat4x2;
+ typedef mat<4, 2, f64, defaultp> f64mat4x2;
/// Double-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
- typedef tmat4x3<f64, defaultp> f64mat4x3;
+ typedef mat<4, 3, f64, defaultp> f64mat4x3;
/// Double-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
- typedef tmat4x4<f64, defaultp> f64mat4x4;
+ typedef mat<4, 4, f64, defaultp> f64mat4x4;
//////////////////////////
diff --git a/3rdparty/glm/glm/gtc/type_ptr.hpp b/3rdparty/glm/glm/gtc/type_ptr.hpp
index 008665e2c6a..a9b130442fb 100644
--- a/3rdparty/glm/glm/gtc/type_ptr.hpp
+++ b/3rdparty/glm/glm/gtc/type_ptr.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtc/type_ptr.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence)
///
/// @defgroup gtc_type_ptr GLM_GTC_type_ptr
@@ -61,82 +60,82 @@ namespace glm
/// Return the constant address to the data of the input parameter.
/// @see gtc_type_ptr
template<typename genType>
- GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const & vec);
+ GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const& v);
/// Build a vector from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tvec2<T, defaultp> make_vec2(T const * const ptr);
+ GLM_FUNC_DECL vec<2, T, defaultp> make_vec2(T const * const ptr);
/// Build a vector from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tvec3<T, defaultp> make_vec3(T const * const ptr);
+ GLM_FUNC_DECL vec<3, T, defaultp> make_vec3(T const * const ptr);
/// Build a vector from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tvec4<T, defaultp> make_vec4(T const * const ptr);
+ GLM_FUNC_DECL vec<4, T, defaultp> make_vec4(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat2x2<T, defaultp> make_mat2x2(T const * const ptr);
+ GLM_FUNC_DECL mat<2, 2, T, defaultp> make_mat2x2(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat2x3<T, defaultp> make_mat2x3(T const * const ptr);
+ GLM_FUNC_DECL mat<2, 3, T, defaultp> make_mat2x3(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat2x4<T, defaultp> make_mat2x4(T const * const ptr);
+ GLM_FUNC_DECL mat<2, 4, T, defaultp> make_mat2x4(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat3x2<T, defaultp> make_mat3x2(T const * const ptr);
+ GLM_FUNC_DECL mat<3, 2, T, defaultp> make_mat3x2(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat3x3<T, defaultp> make_mat3x3(T const * const ptr);
+ GLM_FUNC_DECL mat<3, 3, T, defaultp> make_mat3x3(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat3x4<T, defaultp> make_mat3x4(T const * const ptr);
+ GLM_FUNC_DECL mat<3, 4, T, defaultp> make_mat3x4(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat4x2<T, defaultp> make_mat4x2(T const * const ptr);
+ GLM_FUNC_DECL mat<4, 2, T, defaultp> make_mat4x2(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat4x3<T, defaultp> make_mat4x3(T const * const ptr);
+ GLM_FUNC_DECL mat<4, 3, T, defaultp> make_mat4x3(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> make_mat4x4(T const * const ptr);
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> make_mat4x4(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat2x2<T, defaultp> make_mat2(T const * const ptr);
+ GLM_FUNC_DECL mat<2, 2, T, defaultp> make_mat2(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat3x3<T, defaultp> make_mat3(T const * const ptr);
+ GLM_FUNC_DECL mat<3, 3, T, defaultp> make_mat3(T const * const ptr);
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
template<typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> make_mat4(T const * const ptr);
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> make_mat4(T const * const ptr);
/// Build a quaternion from a pointer.
/// @see gtc_type_ptr
diff --git a/3rdparty/glm/glm/gtc/type_ptr.inl b/3rdparty/glm/glm/gtc/type_ptr.inl
index 3aa6ae6cc70..1b2392cf7dd 100644
--- a/3rdparty/glm/glm/gtc/type_ptr.inl
+++ b/3rdparty/glm/glm/gtc/type_ptr.inl
@@ -11,271 +11,199 @@ namespace glm
/// Return the constant address to the data of the vector input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tvec2<T, P> const & vec
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(vec<2, T, P> const& v)
{
- return &(vec.x);
+ return &(v.x);
}
//! Return the address to the data of the vector input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tvec2<T, P> & vec
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(vec<2, T, P>& v)
{
- return &(vec.x);
+ return &(v.x);
}
/// Return the constant address to the data of the vector input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tvec3<T, P> const & vec
- )
+ GLM_FUNC_QUALIFIER T const * value_ptr(vec<3, T, P> const& v)
{
- return &(vec.x);
+ return &(v.x);
}
//! Return the address to the data of the vector input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tvec3<T, P> & vec
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(vec<3, T, P>& v)
{
- return &(vec.x);
+ return &(v.x);
}
/// Return the constant address to the data of the vector input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tvec4<T, P> const & vec
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(vec<4, T, P> const& v)
{
- return &(vec.x);
+ return &(v.x);
}
//! Return the address to the data of the vector input.
//! From GLM_GTC_type_ptr extension.
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tvec4<T, P> & vec
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(vec<4, T, P>& v)
{
- return &(vec.x);
+ return &(v.x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat2x2<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<2, 2, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat2x2<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<2, 2, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
-
+
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat3x3<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<3, 3, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat3x3<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<3, 3, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat4x4<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<4, 4, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
//! From GLM_GTC_type_ptr extension.
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat4x4<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<4, 4, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat2x3<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<2, 3, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat2x3<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<2, 3, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat3x2<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<3, 2, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat3x2<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<3, 2, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat2x4<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<2, 4, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat2x4<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<2, 4, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat4x2<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<4, 2, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat4x2<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<4, 2, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat3x4<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<3, 4, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tmat3x4<T, P> & mat
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(mat<3, 4, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tmat4x3<T, P> const & mat
- )
+ GLM_FUNC_QUALIFIER T const* value_ptr(mat<4, 3, T, P> const& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr(tmat4x3<T, P> & mat)
+ GLM_FUNC_QUALIFIER T * value_ptr(mat<4, 3, T, P>& m)
{
- return &(mat[0].x);
+ return &(m[0].x);
}
/// Return the constant address to the data of the input parameter.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T const * value_ptr
- (
- tquat<T, P> const & q
- )
+ GLM_FUNC_QUALIFIER T const * value_ptr(tquat<T, P> const& q)
{
return &(q[0]);
}
@@ -283,162 +211,159 @@ namespace glm
/// Return the address to the data of the quaternion input.
/// @see gtc_type_ptr
template<typename T, precision P>
- GLM_FUNC_QUALIFIER T * value_ptr
- (
- tquat<T, P> & q
- )
+ GLM_FUNC_QUALIFIER T* value_ptr(tquat<T, P>& q)
{
return &(q[0]);
}
/// Build a vector from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tvec2<T, defaultp> make_vec2(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<2, T, defaultp> make_vec2(T const *const ptr)
{
- tvec2<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tvec2<T, defaultp>));
+ vec<2, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(vec<2, T, defaultp>));
return Result;
}
/// Build a vector from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tvec3<T, defaultp> make_vec3(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<3, T, defaultp> make_vec3(T const *const ptr)
{
- tvec3<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tvec3<T, defaultp>));
+ vec<3, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(vec<3, T, defaultp>));
return Result;
}
/// Build a vector from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tvec4<T, defaultp> make_vec4(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER vec<4, T, defaultp> make_vec4(T const *const ptr)
{
- tvec4<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tvec4<T, defaultp>));
+ vec<4, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(vec<4, T, defaultp>));
return Result;
}
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat2x2<T, defaultp> make_mat2x2(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, defaultp> make_mat2x2(T const *const ptr)
{
- tmat2x2<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat2x2<T, defaultp>));
+ mat<2, 2, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<2, 2, T, defaultp>));
return Result;
}
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat2x3<T, defaultp> make_mat2x3(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, defaultp> make_mat2x3(T const *const ptr)
{
- tmat2x3<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat2x3<T, defaultp>));
+ mat<2, 3, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<2, 3, T, defaultp>));
return Result;
}
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat2x4<T, defaultp> make_mat2x4(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, defaultp> make_mat2x4(T const *const ptr)
{
- tmat2x4<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat2x4<T, defaultp>));
+ mat<2, 4, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<2, 4, T, defaultp>));
return Result;
}
/// Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat3x2<T, defaultp> make_mat3x2(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, defaultp> make_mat3x2(T const *const ptr)
{
- tmat3x2<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat3x2<T, defaultp>));
+ mat<3, 2, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<3, 2, T, defaultp>));
return Result;
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat3x3<T, defaultp> make_mat3x3(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, defaultp> make_mat3x3(T const *const ptr)
{
- tmat3x3<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat3x3<T, defaultp>));
+ mat<3, 3, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<3, 3, T, defaultp>));
return Result;
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat3x4<T, defaultp> make_mat3x4(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, defaultp> make_mat3x4(T const *const ptr)
{
- tmat3x4<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat3x4<T, defaultp>));
+ mat<3, 4, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<3, 4, T, defaultp>));
return Result;
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x2<T, defaultp> make_mat4x2(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, defaultp> make_mat4x2(T const *const ptr)
{
- tmat4x2<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat4x2<T, defaultp>));
+ mat<4, 2, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<4, 2, T, defaultp>));
return Result;
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x3<T, defaultp> make_mat4x3(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, defaultp> make_mat4x3(T const *const ptr)
{
- tmat4x3<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat4x3<T, defaultp>));
+ mat<4, 3, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<4, 3, T, defaultp>));
return Result;
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> make_mat4x4(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> make_mat4x4(T const *const ptr)
{
- tmat4x4<T, defaultp> Result;
- memcpy(value_ptr(Result), ptr, sizeof(tmat4x4<T, defaultp>));
+ mat<4, 4, T, defaultp> Result;
+ memcpy(value_ptr(Result), ptr, sizeof(mat<4, 4, T, defaultp>));
return Result;
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat2x2<T, defaultp> make_mat2(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, defaultp> make_mat2(T const *const ptr)
{
return make_mat2x2(ptr);
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat3x3<T, defaultp> make_mat3(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, defaultp> make_mat3(T const *const ptr)
{
return make_mat3x3(ptr);
}
//! Build a matrix from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> make_mat4(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> make_mat4(T const *const ptr)
{
return make_mat4x4(ptr);
}
//! Build a quaternion from a pointer.
/// @see gtc_type_ptr
- template <typename T>
- GLM_FUNC_QUALIFIER tquat<T, defaultp> make_quat(T const * const ptr)
+ template<typename T>
+ GLM_FUNC_QUALIFIER tquat<T, defaultp> make_quat(T const *const ptr)
{
tquat<T, defaultp> Result;
memcpy(value_ptr(Result), ptr, sizeof(tquat<T, defaultp>));
diff --git a/3rdparty/glm/glm/gtc/ulp.hpp b/3rdparty/glm/glm/gtc/ulp.hpp
index a82fa4e73fa..fb07502ccb1 100644
--- a/3rdparty/glm/glm/gtc/ulp.hpp
+++ b/3rdparty/glm/glm/gtc/ulp.hpp
@@ -29,33 +29,33 @@ namespace glm
/// Return the next ULP value(s) after the input value(s).
/// @see gtc_ulp
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType next_float(genType const & x);
/// Return the previous ULP value(s) before the input value(s).
/// @see gtc_ulp
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType prev_float(genType const & x);
/// Return the value(s) ULP distance after the input value(s).
/// @see gtc_ulp
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType next_float(genType const & x, uint const & Distance);
/// Return the value(s) ULP distance before the input value(s).
/// @see gtc_ulp
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType prev_float(genType const & x, uint const & Distance);
/// Return the distance in the number of ULP between 2 scalars.
/// @see gtc_ulp
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL uint float_distance(T const & x, T const & y);
/// Return the distance in the number of ULP between 2 vectors.
/// @see gtc_ulp
- template<typename T, template<typename> class vecType>
- GLM_FUNC_DECL vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
+ template<typename T, template<int, typename> class vecType>
+ GLM_FUNC_DECL vecType<2, uint> float_distance(vecType<2, T> const & x, vecType<2, T> const & y);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtc/ulp.inl b/3rdparty/glm/glm/gtc/ulp.inl
index 54c914ab60f..c5fb0cadfa5 100644
--- a/3rdparty/glm/glm/gtc/ulp.inl
+++ b/3rdparty/glm/glm/gtc/ulp.inl
@@ -171,7 +171,7 @@ namespace detail
namespace glm
{
- template <>
+ template<>
GLM_FUNC_QUALIFIER float next_float(float const & x)
{
# if GLM_HAS_CXX11_STL
@@ -185,7 +185,7 @@ namespace glm
# endif
}
- template <>
+ template<>
GLM_FUNC_QUALIFIER double next_float(double const & x)
{
# if GLM_HAS_CXX11_STL
@@ -199,10 +199,10 @@ namespace glm
# endif
}
- template<typename T, precision P, template<typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> next_float(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> next_float(vecType<L, T, P> const & x)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = next_float(x[i]);
return Result;
@@ -234,16 +234,16 @@ namespace glm
# endif
}
- template<typename T, precision P, template<typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> prev_float(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> prev_float(vecType<L, T, P> const & x)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = prev_float(x[i]);
return Result;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T next_float(T const & x, uint const & ulps)
{
T temp = x;
@@ -252,16 +252,16 @@ namespace glm
return temp;
}
- template<typename T, precision P, template<typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> next_float(vecType<T, P> const & x, vecType<uint, P> const & ulps)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> next_float(vecType<L, T, P> const & x, vecType<L, uint, P> const & ulps)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = next_float(x[i], ulps[i]);
return Result;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T prev_float(T const & x, uint const & ulps)
{
T temp = x;
@@ -270,16 +270,16 @@ namespace glm
return temp;
}
- template<typename T, precision P, template<typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> prev_float(vecType<T, P> const & x, vecType<uint, P> const & ulps)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> prev_float(vecType<L, T, P> const & x, vecType<L, uint, P> const & ulps)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = prev_float(x[i], ulps[i]);
return Result;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER uint float_distance(T const & x, T const & y)
{
uint ulp = 0;
@@ -310,10 +310,10 @@ namespace glm
return ulp;
}
- template<typename T, precision P, template<typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<uint, P> float_distance(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, uint, P> float_distance(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
- vecType<uint, P> Result(uninitialize);
+ vecType<L, uint, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = float_distance(x[i], y[i]);
return Result;
diff --git a/3rdparty/glm/glm/gtx/associated_min_max.hpp b/3rdparty/glm/glm/gtx/associated_min_max.hpp
index eb9d7210513..ec66bb7fef3 100644
--- a/3rdparty/glm/glm/gtx/associated_min_max.hpp
+++ b/3rdparty/glm/glm/gtx/associated_min_max.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_associated_min_max extension included")
#endif
@@ -31,24 +35,24 @@ namespace glm
/// Minimum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL tvec2<U, P> associatedMin(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vec<2, U, P> associatedMin(
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b);
/// Minimum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMin(
- T x, const vecType<U, P>& a,
- T y, const vecType<U, P>& b);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMin(
+ T x, const vecType<L, U, P>& a,
+ T y, const vecType<L, U, P>& b);
/// Minimum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMin(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMin(
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b);
/// Minimum comparison between 3 variables and returns 3 associated variable values
/// @see gtx_associated_min_max
@@ -60,11 +64,11 @@ namespace glm
/// Minimum comparison between 3 variables and returns 3 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMin(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMin(
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c);
/// Minimum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
@@ -77,30 +81,30 @@ namespace glm
/// Minimum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMin(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c,
- vecType<T, P> const & w, vecType<U, P> const & d);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMin(
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c,
+ vecType<L, T, P> const& w, vecType<L, U, P> const & d);
/// Minimum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMin(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b,
- T z, vecType<U, P> const & c,
- T w, vecType<U, P> const & d);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMin(
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b,
+ T z, vecType<L, U, P> const & c,
+ T w, vecType<L, U, P> const & d);
/// Minimum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMin(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b,
- vecType<T, P> const & z, U c,
- vecType<T, P> const & w, U d);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMin(
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b,
+ vecType<L, T, P> const& z, U c,
+ vecType<L, T, P> const& w, U d);
/// Maximum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
@@ -109,24 +113,24 @@ namespace glm
/// Maximum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL tvec2<U, P> associatedMax(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vec<2, U, P> associatedMax(
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b);
/// Maximum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> associatedMax(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> associatedMax(
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b);
/// Maximum comparison between 2 variables and returns 2 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMax(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMax(
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b);
/// Maximum comparison between 3 variables and returns 3 associated variable values
/// @see gtx_associated_min_max
@@ -138,27 +142,27 @@ namespace glm
/// Maximum comparison between 3 variables and returns 3 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMax(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMax(
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c);
/// Maximum comparison between 3 variables and returns 3 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> associatedMax(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b,
- T z, vecType<U, P> const & c);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> associatedMax(
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b,
+ T z, vecType<L, U, P> const & c);
/// Maximum comparison between 3 variables and returns 3 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMax(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b,
- vecType<T, P> const & z, U c);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMax(
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b,
+ vecType<L, T, P> const& z, U c);
/// Maximum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
@@ -171,30 +175,30 @@ namespace glm
/// Maximum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMax(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c,
- vecType<T, P> const & w, vecType<U, P> const & d);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMax(
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c,
+ vecType<L, T, P> const& w, vecType<L, U, P> const & d);
/// Maximum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMax(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b,
- T z, vecType<U, P> const & c,
- T w, vecType<U, P> const & d);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMax(
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b,
+ T z, vecType<L, U, P> const & c,
+ T w, vecType<L, U, P> const & d);
/// Maximum comparison between 4 variables and returns 4 associated variable values
/// @see gtx_associated_min_max
- template<typename T, typename U, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<U, P> associatedMax(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b,
- vecType<T, P> const & z, U c,
- vecType<T, P> const & w, U d);
+ template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, U, P> associatedMax(
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b,
+ vecType<L, T, P> const& z, U c,
+ vecType<L, T, P> const& w, U d);
/// @}
} //namespace glm
diff --git a/3rdparty/glm/glm/gtx/associated_min_max.inl b/3rdparty/glm/glm/gtx/associated_min_max.inl
index 6a57d480dbb..23a7fffd59c 100644
--- a/3rdparty/glm/glm/gtx/associated_min_max.inl
+++ b/3rdparty/glm/glm/gtx/associated_min_max.inl
@@ -10,40 +10,40 @@ GLM_FUNC_QUALIFIER U associatedMin(T x, U a, T y, U b)
return x < y ? a : b;
}
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER tvec2<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vec<2, U, P> associatedMin
(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] < y[i] ? a[i] : b[i];
return Result;
}
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMin
(
- T x, const vecType<U, P>& a,
- T y, const vecType<U, P>& b
+ T x, const vecType<L, U, P>& a,
+ T y, const vecType<L, U, P>& b
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x < y ? a[i] : b[i];
return Result;
}
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMin
(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] < y[i] ? a : b;
return Result;
@@ -62,15 +62,15 @@ GLM_FUNC_QUALIFIER U associatedMin
return Result;
}
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMin
(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] < y[i] ? (x[i] < z[i] ? a[i] : c[i]) : (y[i] < z[i] ? b[i] : c[i]);
return Result;
@@ -95,16 +95,16 @@ GLM_FUNC_QUALIFIER U associatedMin
}
// Min comparison between 4 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMin
(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c,
- vecType<T, P> const & w, vecType<U, P> const & d
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c,
+ vecType<L, T, P> const& w, vecType<L, U, P> const & d
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = min(x[i], y[i]);
@@ -117,19 +117,19 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
}
// Min comparison between 4 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMin
(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b,
- T z, vecType<U, P> const & c,
- T w, vecType<U, P> const & d
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b,
+ T z, vecType<L, U, P> const & c,
+ T w, vecType<L, U, P> const & d
)
{
T Test1 = min(x, y);
T Test2 = min(z, w);
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
{
U Result1 = x < y ? a[i] : b[i];
@@ -140,16 +140,16 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
}
// Min comparison between 4 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMin
(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b,
- vecType<T, P> const & z, U c,
- vecType<T, P> const & w, U d
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b,
+ vecType<L, T, P> const& z, U c,
+ vecType<L, T, P> const& w, U d
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = min(x[i], y[i]);
@@ -169,42 +169,42 @@ GLM_FUNC_QUALIFIER U associatedMax(T x, U a, T y, U b)
}
// Max comparison between 2 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER tvec2<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vec<2, U, P> associatedMax
(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? a[i] : b[i];
return Result;
}
// Max comparison between 2 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<T, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, T, P> associatedMax
(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x > y ? a[i] : b[i];
return Result;
}
// Max comparison between 2 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMax
(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b
)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? a : b;
return Result;
@@ -224,45 +224,45 @@ GLM_FUNC_QUALIFIER U associatedMax
}
// Max comparison between 3 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMax
(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? (x[i] > z[i] ? a[i] : c[i]) : (y[i] > z[i] ? b[i] : c[i]);
return Result;
}
// Max comparison between 3 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<T, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, T, P> associatedMax
(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b,
- T z, vecType<U, P> const & c
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b,
+ T z, vecType<L, U, P> const & c
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x > y ? (x > z ? a[i] : c[i]) : (y > z ? b[i] : c[i]);
return Result;
}
// Max comparison between 3 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMax
(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b,
- vecType<T, P> const & z, U c
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b,
+ vecType<L, T, P> const& z, U c
)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? (x[i] > z[i] ? a : c) : (y[i] > z[i] ? b : c);
return Result;
@@ -287,16 +287,16 @@ GLM_FUNC_QUALIFIER U associatedMax
}
// Max comparison between 4 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMax
(
- vecType<T, P> const & x, vecType<U, P> const & a,
- vecType<T, P> const & y, vecType<U, P> const & b,
- vecType<T, P> const & z, vecType<U, P> const & c,
- vecType<T, P> const & w, vecType<U, P> const & d
+ vecType<L, T, P> const& x, vecType<L, U, P> const & a,
+ vecType<L, T, P> const& y, vecType<L, U, P> const & b,
+ vecType<L, T, P> const& z, vecType<L, U, P> const & c,
+ vecType<L, T, P> const& w, vecType<L, U, P> const & d
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = max(x[i], y[i]);
@@ -309,19 +309,19 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
}
// Max comparison between 4 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMax
(
- T x, vecType<U, P> const & a,
- T y, vecType<U, P> const & b,
- T z, vecType<U, P> const & c,
- T w, vecType<U, P> const & d
+ T x, vecType<L, U, P> const & a,
+ T y, vecType<L, U, P> const & b,
+ T z, vecType<L, U, P> const & c,
+ T w, vecType<L, U, P> const & d
)
{
T Test1 = max(x, y);
T Test2 = max(z, w);
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
{
U Result1 = x > y ? a[i] : b[i];
@@ -332,16 +332,16 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
}
// Max comparison between 4 variables
-template<typename T, typename U, precision P, template <typename, precision> class vecType>
-GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
+template<length_t L, typename T, typename U, precision P, template<length_t, typename, precision> class vecType>
+GLM_FUNC_QUALIFIER vecType<L, U, P> associatedMax
(
- vecType<T, P> const & x, U a,
- vecType<T, P> const & y, U b,
- vecType<T, P> const & z, U c,
- vecType<T, P> const & w, U d
+ vecType<L, T, P> const& x, U a,
+ vecType<L, T, P> const& y, U b,
+ vecType<L, T, P> const& z, U c,
+ vecType<L, T, P> const& w, U d
)
{
- vecType<U, P> Result(uninitialize);
+ vecType<L, U, P> Result(uninitialize);
for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = max(x[i], y[i]);
diff --git a/3rdparty/glm/glm/gtx/bit.hpp b/3rdparty/glm/glm/gtx/bit.hpp
index 17378f35c15..15bfe5d63b7 100644
--- a/3rdparty/glm/glm/gtx/bit.hpp
+++ b/3rdparty/glm/glm/gtx/bit.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtx/bit.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_bit GLM_GTX_bit
/// @ingroup gtx
@@ -16,6 +15,10 @@
// Dependencies
#include "../gtc/bitfield.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead")
#endif
@@ -26,25 +29,25 @@ namespace glm
/// @{
/// @see gtx_bit
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType highestBitValue(genIUType Value);
/// @see gtx_bit
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value);
/// Find the highest bit set to 1 in a integer variable and return its value.
///
/// @see gtx_bit
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> highestBitValue(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> highestBitValue(vecType<L, T, P> const & value);
/// Return the power of two number which value is just higher the input value.
/// Deprecated, use ceilPowerOfTwo from GTC_round instead
///
/// @see gtc_round
/// @see gtx_bit
- template <typename genIUType>
+ template<typename genIUType>
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove(genIUType Value);
/// Return the power of two number which value is just higher the input value.
@@ -52,15 +55,15 @@ namespace glm
///
/// @see gtc_round
/// @see gtx_bit
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> powerOfTwoAbove(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_DEPRECATED GLM_FUNC_DECL vecType<L, T, P> powerOfTwoAbove(vecType<L, T, P> const & value);
/// Return the power of two number which value is just lower the input value.
/// Deprecated, use floorPowerOfTwo from GTC_round instead
///
/// @see gtc_round
/// @see gtx_bit
- template <typename genIUType>
+ template<typename genIUType>
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow(genIUType Value);
/// Return the power of two number which value is just lower the input value.
@@ -68,15 +71,15 @@ namespace glm
///
/// @see gtc_round
/// @see gtx_bit
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> powerOfTwoBelow(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_DEPRECATED GLM_FUNC_DECL vecType<L, T, P> powerOfTwoBelow(vecType<L, T, P> const & value);
/// Return the power of two number which value is the closet to the input value.
/// Deprecated, use roundPowerOfTwo from GTC_round instead
///
/// @see gtc_round
/// @see gtx_bit
- template <typename genIUType>
+ template<typename genIUType>
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest(genIUType Value);
/// Return the power of two number which value is the closet to the input value.
@@ -84,8 +87,8 @@ namespace glm
///
/// @see gtc_round
/// @see gtx_bit
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> powerOfTwoNearest(vecType<T, P> const & value);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_DEPRECATED GLM_FUNC_DECL vecType<L, T, P> powerOfTwoNearest(vecType<L, T, P> const & value);
/// @}
} //namespace glm
diff --git a/3rdparty/glm/glm/gtx/bit.inl b/3rdparty/glm/glm/gtx/bit.inl
index 10d5f7fa020..ff7530c4511 100644
--- a/3rdparty/glm/glm/gtx/bit.inl
+++ b/3rdparty/glm/glm/gtx/bit.inl
@@ -6,7 +6,7 @@ namespace glm
///////////////////
// highestBitValue
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType highestBitValue(genIUType Value)
{
genIUType tmp = Value;
@@ -19,61 +19,61 @@ namespace glm
return result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> highestBitValue(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> highestBitValue(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(highestBitValue, v);
+ return detail::functor1<L, T, T, P>::call(highestBitValue, v);
}
///////////////////
// lowestBitValue
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType lowestBitValue(genIUType Value)
{
return (Value & (~Value + 1));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> lowestBitValue(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> lowestBitValue(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(lowestBitValue, v);
+ return detail::functor1<L, T, T, P>::call(lowestBitValue, v);
}
///////////////////
// powerOfTwoAbove
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType powerOfTwoAbove(genType value)
{
return isPowerOfTwo(value) ? value : highestBitValue(value) << 1;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> powerOfTwoAbove(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> powerOfTwoAbove(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(powerOfTwoAbove, v);
+ return detail::functor1<L, T, T, P>::call(powerOfTwoAbove, v);
}
///////////////////
// powerOfTwoBelow
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType powerOfTwoBelow(genType value)
{
return isPowerOfTwo(value) ? value : highestBitValue(value);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> powerOfTwoBelow(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> powerOfTwoBelow(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(powerOfTwoBelow, v);
+ return detail::functor1<L, T, T, P>::call(powerOfTwoBelow, v);
}
/////////////////////
// powerOfTwoNearest
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType powerOfTwoNearest(genType value)
{
if(isPowerOfTwo(value))
@@ -84,10 +84,10 @@ namespace glm
return (next - value) < (value - prev) ? next : prev;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> powerOfTwoNearest(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> powerOfTwoNearest(vecType<L, T, P> const & v)
{
- return detail::functor1<T, T, P, vecType>::call(powerOfTwoNearest, v);
+ return detail::functor1<L, T, T, P>::call(powerOfTwoNearest, v);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/closest_point.hpp b/3rdparty/glm/glm/gtx/closest_point.hpp
index 8d435b8190c..a8433360ee8 100644
--- a/3rdparty/glm/glm/gtx/closest_point.hpp
+++ b/3rdparty/glm/glm/gtx/closest_point.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_closest_point extension included")
#endif
@@ -26,18 +30,18 @@ namespace glm
/// Find the point on a straight line which is the closet of a point.
/// @see gtx_closest_point
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> closestPointOnLine(
- tvec3<T, P> const & point,
- tvec3<T, P> const & a,
- tvec3<T, P> const & b);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> closestPointOnLine(
+ vec<3, T, P> const & point,
+ vec<3, T, P> const & a,
+ vec<3, T, P> const & b);
/// 2d lines work as well
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> closestPointOnLine(
- tvec2<T, P> const & point,
- tvec2<T, P> const & a,
- tvec2<T, P> const & b);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> closestPointOnLine(
+ vec<2, T, P> const & point,
+ vec<2, T, P> const & a,
+ vec<2, T, P> const & b);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/closest_point.inl b/3rdparty/glm/glm/gtx/closest_point.inl
index 5c6a87937a3..fdbc93736d9 100644
--- a/3rdparty/glm/glm/gtx/closest_point.inl
+++ b/3rdparty/glm/glm/gtx/closest_point.inl
@@ -3,17 +3,17 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> closestPointOnLine
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> closestPointOnLine
(
- tvec3<T, P> const & point,
- tvec3<T, P> const & a,
- tvec3<T, P> const & b
+ vec<3, T, P> const & point,
+ vec<3, T, P> const & a,
+ vec<3, T, P> const & b
)
{
T LineLength = distance(a, b);
- tvec3<T, P> Vector = point - a;
- tvec3<T, P> LineDirection = (b - a) / LineLength;
+ vec<3, T, P> Vector = point - a;
+ vec<3, T, P> LineDirection = (b - a) / LineLength;
// Project Vector to LineDirection to get the distance of point from a
T Distance = dot(Vector, LineDirection);
@@ -23,17 +23,17 @@ namespace glm
return a + LineDirection * Distance;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> closestPointOnLine
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> closestPointOnLine
(
- tvec2<T, P> const & point,
- tvec2<T, P> const & a,
- tvec2<T, P> const & b
+ vec<2, T, P> const & point,
+ vec<2, T, P> const & a,
+ vec<2, T, P> const & b
)
{
T LineLength = distance(a, b);
- tvec2<T, P> Vector = point - a;
- tvec2<T, P> LineDirection = (b - a) / LineLength;
+ vec<2, T, P> Vector = point - a;
+ vec<2, T, P> LineDirection = (b - a) / LineLength;
// Project Vector to LineDirection to get the distance of point from a
T Distance = dot(Vector, LineDirection);
diff --git a/3rdparty/glm/glm/gtx/color_encoding.hpp b/3rdparty/glm/glm/gtx/color_encoding.hpp
new file mode 100644
index 00000000000..0994e2836da
--- /dev/null
+++ b/3rdparty/glm/glm/gtx/color_encoding.hpp
@@ -0,0 +1,50 @@
+/// @ref gtx_color_encoding
+/// @file glm/gtx/color_encoding.hpp
+///
+/// @see core (dependence)
+/// @see gtx_color_encoding (dependence)
+///
+/// @defgroup gtx_color_encoding GLM_GTX_color_encoding
+/// @ingroup gtx
+///
+/// @brief Allow to perform bit operations on integer values
+///
+/// <glm/gtc/color_encoding.hpp> need to be included to use these functionalities.
+
+#pragma once
+
+// Dependencies
+#include "../detail/setup.hpp"
+#include "../detail/precision.hpp"
+#include "../vec3.hpp"
+#include <limits>
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
+# pragma message("GLM: GLM_GTC_color_encoding extension included")
+#endif
+
+namespace glm
+{
+ /// @addtogroup gtx_color_encoding
+ /// @{
+
+ /// Convert a linear sRGB color to D65 YUV.
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> convertLinearSRGBToD65XYZ(vec<3, T, P> const& ColorLinearSRGB);
+
+ /// Convert a linear sRGB color to D50 YUV.
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> convertLinearSRGBToD50XYZ(vec<3, T, P> const& ColorLinearSRGB);
+
+ /// Convert a D65 YUV color to linear sRGB.
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> convertD65XYZToLinearSRGB(vec<3, T, P> const& ColorD65XYZ);
+
+ /// Convert a D65 YUV color to D50 YUV.
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> convertD65XYZToD50XYZ(vec<3, T, P> const& ColorD65XYZ);
+
+ /// @}
+} //namespace glm
+
+#include "color_encoding.inl"
diff --git a/3rdparty/glm/glm/gtx/color_encoding.inl b/3rdparty/glm/glm/gtx/color_encoding.inl
new file mode 100644
index 00000000000..ad82dc522dd
--- /dev/null
+++ b/3rdparty/glm/glm/gtx/color_encoding.inl
@@ -0,0 +1,46 @@
+/// @ref gtx_color_encoding
+/// @file glm/gtx/color_encoding.inl
+
+namespace glm
+{
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> convertLinearSRGBToD65XYZ(vec<3, T, P> const& ColorLinearSRGB)
+ {
+ vec<3, T, P> const M(0.490f, 0.17697f, 0.2f);
+ vec<3, T, P> const N(0.31f, 0.8124f, 0.01063f);
+ vec<3, T, P> const O(0.490f, 0.01f, 0.99f);
+
+ return (M * ColorLinearSRGB + N * ColorLinearSRGB + O * ColorLinearSRGB) * static_cast<T>(5.650675255693055f);
+ }
+
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> convertLinearSRGBToD50XYZ(vec<3, T, P> const& ColorLinearSRGB)
+ {
+ vec<3, T, P> const M(0.436030342570117f, 0.222438466210245f, 0.013897440074263f);
+ vec<3, T, P> const N(0.385101860087134f, 0.716942745571917f, 0.097076381494207f);
+ vec<3, T, P> const O(0.143067806654203f, 0.060618777416563f, 0.713926257896652f);
+
+ return M * ColorLinearSRGB + N * ColorLinearSRGB + O * ColorLinearSRGB;
+ }
+
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> convertD65XYZToLinearSRGB(vec<3, T, P> const& ColorD65XYZ)
+ {
+ vec<3, T, P> const M(0.41847f, -0.091169f, 0.0009209f);
+ vec<3, T, P> const N(-0.15866f, 0.25243f, 0.015708f);
+ vec<3, T, P> const O(0.0009209f, -0.0025498f, 0.1786f);
+
+ return M * ColorD65XYZ + N * ColorD65XYZ + O * ColorD65XYZ;
+ }
+
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> convertD65XYZToD50XYZ(vec<3, T, P> const& ColorD65XYZ)
+ {
+ vec<3, T, P> const M(+1.047844353856414f, +0.029549007606644f, -0.009250984365223f);
+ vec<3, T, P> const N(+0.022898981050086f, +0.990508028941971f, +0.015072338237051f);
+ vec<3, T, P> const O(-0.050206647741605f, -0.017074711360960f, +0.751717835079977f);
+
+ return M * ColorD65XYZ + N * ColorD65XYZ + O * ColorD65XYZ;
+ }
+
+}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/color_space.hpp b/3rdparty/glm/glm/gtx/color_space.hpp
index 9ff08dced8c..04ff13e629b 100644
--- a/3rdparty/glm/glm/gtx/color_space.hpp
+++ b/3rdparty/glm/glm/gtx/color_space.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_color_space extension included")
#endif
@@ -26,41 +30,41 @@ namespace glm
/// Converts a color from HSV color space to its color in RGB color space.
/// @see gtx_color_space
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rgbColor(
- tvec3<T, P> const & hsvValue);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rgbColor(
+ vec<3, T, P> const & hsvValue);
/// Converts a color from RGB color space to its color in HSV color space.
/// @see gtx_color_space
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> hsvColor(
- tvec3<T, P> const & rgbValue);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> hsvColor(
+ vec<3, T, P> const & rgbValue);
/// Build a saturation matrix.
/// @see gtx_color_space
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> saturation(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> saturation(
T const s);
/// Modify the saturation of a color.
/// @see gtx_color_space
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> saturation(
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> saturation(
T const s,
- tvec3<T, P> const & color);
+ vec<3, T, P> const & color);
/// Modify the saturation of a color.
/// @see gtx_color_space
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> saturation(
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> saturation(
T const s,
- tvec4<T, P> const & color);
+ vec<4, T, P> const & color);
/// Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
/// @see gtx_color_space
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T luminosity(
- tvec3<T, P> const & color);
+ vec<3, T, P> const & color);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/color_space.inl b/3rdparty/glm/glm/gtx/color_space.inl
index 43f66415905..09fc9f65fec 100644
--- a/3rdparty/glm/glm/gtx/color_space.inl
+++ b/3rdparty/glm/glm/gtx/color_space.inl
@@ -3,19 +3,19 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rgbColor(const tvec3<T, P>& hsvColor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rgbColor(const vec<3, T, P>& hsvColor)
{
- tvec3<T, P> hsv = hsvColor;
- tvec3<T, P> rgbColor;
+ vec<3, T, P> hsv = hsvColor;
+ vec<3, T, P> rgbColor;
if(hsv.y == static_cast<T>(0))
// achromatic (grey)
- rgbColor = tvec3<T, P>(hsv.z);
+ rgbColor = vec<3, T, P>(hsv.z);
else
{
- T sector = floor(hsv.x / T(60));
- T frac = (hsv.x / T(60)) - sector;
+ T sector = floor(hsv.x * (T(1) / T(60)));
+ T frac = (hsv.x * (T(1) / T(60))) - sector;
// factorial part of h
T o = hsv.z * (T(1) - hsv.y);
T p = hsv.z * (T(1) - hsv.y * frac);
@@ -60,10 +60,10 @@ namespace glm
return rgbColor;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> hsvColor(const tvec3<T, P>& rgbColor)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> hsvColor(const vec<3, T, P>& rgbColor)
{
- tvec3<T, P> hsv = rgbColor;
+ vec<3, T, P> hsv = rgbColor;
float Min = min(min(rgbColor.r, rgbColor.g), rgbColor.b);
float Max = max(max(rgbColor.r, rgbColor.g), rgbColor.b);
float Delta = Max - Min;
@@ -100,44 +100,43 @@ namespace glm
return hsv;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> saturation(T const s)
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> saturation(T const s)
{
- tvec3<T, defaultp> rgbw = tvec3<T, defaultp>(T(0.2126), T(0.7152), T(0.0722));
-
- T col0 = (T(1) - s) * rgbw.r;
- T col1 = (T(1) - s) * rgbw.g;
- T col2 = (T(1) - s) * rgbw.b;
-
- tmat4x4<T, defaultp> result(T(1));
- result[0][0] = col0 + s;
- result[0][1] = col0;
- result[0][2] = col0;
- result[1][0] = col1;
- result[1][1] = col1 + s;
- result[1][2] = col1;
- result[2][0] = col2;
- result[2][1] = col2;
- result[2][2] = col2 + s;
+ vec<3, T, defaultp> rgbw = vec<3, T, defaultp>(T(0.2126), T(0.7152), T(0.0722));
+
+ vec<3, T, defaultp> const col((T(1) - s) * rgbw);
+
+ mat<4, 4, T, defaultp> result(T(1));
+ result[0][0] = col.x + s;
+ result[0][1] = col.x;
+ result[0][2] = col.x;
+ result[1][0] = col.y;
+ result[1][1] = col.y + s;
+ result[1][2] = col.y;
+ result[2][0] = col.z;
+ result[2][1] = col.z;
+ result[2][2] = col.z + s;
+
return result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> saturation(const T s, const tvec3<T, P>& color)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> saturation(const T s, const vec<3, T, P>& color)
{
- return tvec3<T, P>(saturation(s) * tvec4<T, P>(color, T(0)));
+ return vec<3, T, P>(saturation(s) * vec<4, T, P>(color, T(0)));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> saturation(const T s, const tvec4<T, P>& color)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> saturation(const T s, const vec<4, T, P>& color)
{
return saturation(s) * color;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T luminosity(const tvec3<T, P>& color)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER T luminosity(const vec<3, T, P>& color)
{
- const tvec3<T, P> tmp = tvec3<T, P>(0.33, 0.59, 0.11);
+ const vec<3, T, P> tmp = vec<3, T, P>(0.33, 0.59, 0.11);
return dot(color, tmp);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/color_space_YCoCg.hpp b/3rdparty/glm/glm/gtx/color_space_YCoCg.hpp
index 428ca6d2936..0ac1dc36c28 100644
--- a/3rdparty/glm/glm/gtx/color_space_YCoCg.hpp
+++ b/3rdparty/glm/glm/gtx/color_space_YCoCg.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
#endif
@@ -26,29 +30,29 @@ namespace glm
/// Convert a color from RGB color space to YCoCg color space.
/// @see gtx_color_space_YCoCg
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rgb2YCoCg(
- tvec3<T, P> const & rgbColor);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rgb2YCoCg(
+ vec<3, T, P> const & rgbColor);
/// Convert a color from YCoCg color space to RGB color space.
/// @see gtx_color_space_YCoCg
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> YCoCg2rgb(
- tvec3<T, P> const & YCoCgColor);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> YCoCg2rgb(
+ vec<3, T, P> const & YCoCgColor);
/// Convert a color from RGB color space to YCoCgR color space.
/// @see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
/// @see gtx_color_space_YCoCg
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rgb2YCoCgR(
- tvec3<T, P> const & rgbColor);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rgb2YCoCgR(
+ vec<3, T, P> const & rgbColor);
/// Convert a color from YCoCgR color space to RGB color space.
/// @see "YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
/// @see gtx_color_space_YCoCg
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> YCoCgR2rgb(
- tvec3<T, P> const & YCoCgColor);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> YCoCgR2rgb(
+ vec<3, T, P> const & YCoCgColor);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/color_space_YCoCg.inl b/3rdparty/glm/glm/gtx/color_space_YCoCg.inl
index 1ca2e5beb3b..62b04417726 100644
--- a/3rdparty/glm/glm/gtx/color_space_YCoCg.inl
+++ b/3rdparty/glm/glm/gtx/color_space_YCoCg.inl
@@ -3,70 +3,70 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rgb2YCoCg
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rgb2YCoCg
(
- tvec3<T, P> const & rgbColor
+ vec<3, T, P> const & rgbColor
)
{
- tvec3<T, P> result;
+ vec<3, T, P> result;
result.x/*Y */ = rgbColor.r / T(4) + rgbColor.g / T(2) + rgbColor.b / T(4);
result.y/*Co*/ = rgbColor.r / T(2) + rgbColor.g * T(0) - rgbColor.b / T(2);
result.z/*Cg*/ = - rgbColor.r / T(4) + rgbColor.g / T(2) - rgbColor.b / T(4);
return result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> YCoCg2rgb
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> YCoCg2rgb
(
- tvec3<T, P> const & YCoCgColor
+ vec<3, T, P> const & YCoCgColor
)
{
- tvec3<T, P> result;
+ vec<3, T, P> result;
result.r = YCoCgColor.x + YCoCgColor.y - YCoCgColor.z;
result.g = YCoCgColor.x + YCoCgColor.z;
result.b = YCoCgColor.x - YCoCgColor.y - YCoCgColor.z;
return result;
}
- template <typename T, precision P, bool isInteger>
+ template<typename T, precision P, bool isInteger>
class compute_YCoCgR {
public:
- static GLM_FUNC_QUALIFIER tvec3<T, P> rgb2YCoCgR
+ static GLM_FUNC_QUALIFIER vec<3, T, P> rgb2YCoCgR
(
- tvec3<T, P> const & rgbColor
+ vec<3, T, P> const & rgbColor
)
{
- tvec3<T, P> result;
- result.x/*Y */ = rgbColor.g / T(2) + (rgbColor.r + rgbColor.b) / T(4);
+ vec<3, T, P> result;
+ result.x/*Y */ = rgbColor.g * static_cast<T>(0.5) + (rgbColor.r + rgbColor.b) * static_cast<T>(0.25);
result.y/*Co*/ = rgbColor.r - rgbColor.b;
- result.z/*Cg*/ = rgbColor.g - (rgbColor.r + rgbColor.b) / T(2);
+ result.z/*Cg*/ = rgbColor.g - (rgbColor.r + rgbColor.b) * static_cast<T>(0.5);
return result;
}
- static GLM_FUNC_QUALIFIER tvec3<T, P> YCoCgR2rgb
+ static GLM_FUNC_QUALIFIER vec<3, T, P> YCoCgR2rgb
(
- tvec3<T, P> const & YCoCgRColor
+ vec<3, T, P> const & YCoCgRColor
)
{
- tvec3<T, P> result;
- T tmp = YCoCgRColor.x - (YCoCgRColor.z / T(2));
+ vec<3, T, P> result;
+ T tmp = YCoCgRColor.x - (YCoCgRColor.z * static_cast<T>(0.5));
result.g = YCoCgRColor.z + tmp;
- result.b = tmp - (YCoCgRColor.y / T(2));
+ result.b = tmp - (YCoCgRColor.y * static_cast<T>(0.5));
result.r = result.b + YCoCgRColor.y;
return result;
}
};
- template <typename T, precision P>
+ template<typename T, precision P>
class compute_YCoCgR<T, P, true> {
public:
- static GLM_FUNC_QUALIFIER tvec3<T, P> rgb2YCoCgR
+ static GLM_FUNC_QUALIFIER vec<3, T, P> rgb2YCoCgR
(
- tvec3<T, P> const & rgbColor
+ vec<3, T, P> const & rgbColor
)
{
- tvec3<T, P> result;
+ vec<3, T, P> result;
result.y/*Co*/ = rgbColor.r - rgbColor.b;
T tmp = rgbColor.b + (result.y >> 1);
result.z/*Cg*/ = rgbColor.g - tmp;
@@ -74,12 +74,12 @@ namespace glm
return result;
}
- static GLM_FUNC_QUALIFIER tvec3<T, P> YCoCgR2rgb
+ static GLM_FUNC_QUALIFIER vec<3, T, P> YCoCgR2rgb
(
- tvec3<T, P> const & YCoCgRColor
+ vec<3, T, P> const & YCoCgRColor
)
{
- tvec3<T, P> result;
+ vec<3, T, P> result;
T tmp = YCoCgRColor.x - (YCoCgRColor.z >> 1);
result.g = YCoCgRColor.z + tmp;
result.b = tmp - (YCoCgRColor.y >> 1);
@@ -88,19 +88,19 @@ namespace glm
}
};
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rgb2YCoCgR
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rgb2YCoCgR
(
- tvec3<T, P> const & rgbColor
+ vec<3, T, P> const & rgbColor
)
{
return compute_YCoCgR<T, P, std::numeric_limits<T>::is_integer>::rgb2YCoCgR(rgbColor);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> YCoCgR2rgb
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> YCoCgR2rgb
(
- tvec3<T, P> const & YCoCgRColor
+ vec<3, T, P> const & YCoCgRColor
)
{
return compute_YCoCgR<T, P, std::numeric_limits<T>::is_integer>::YCoCgR2rgb(YCoCgRColor);
diff --git a/3rdparty/glm/glm/gtx/common.hpp b/3rdparty/glm/glm/gtx/common.hpp
index 6533a54e919..f3366dd0aee 100644
--- a/3rdparty/glm/glm/gtx/common.hpp
+++ b/3rdparty/glm/glm/gtx/common.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtx/common.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_common GLM_GTX_common
/// @ingroup gtx
@@ -19,6 +18,10 @@
#include "../vec4.hpp"
#include "../gtc/vec1.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_common extension included")
#endif
@@ -36,7 +39,7 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::bool_type isdenormal(genType const & x);
/// Similar to 'mod' but with a different rounding and integer support.
@@ -44,8 +47,8 @@ namespace glm
///
/// @see <a href="http://stackoverflow.com/questions/7610631/glsl-mod-vs-hlsl-fmod">GLSL mod vs HLSL fmod</a>
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a>
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fmod(vecType<T, P> const & v);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fmod(vecType<L, T, P> const & v);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/common.inl b/3rdparty/glm/glm/gtx/common.inl
index 6c9cb651660..97b5c7d30e6 100644
--- a/3rdparty/glm/glm/gtx/common.inl
+++ b/3rdparty/glm/glm/gtx/common.inl
@@ -6,26 +6,26 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <class, precision> class vecType, bool isFloat = true>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType, bool isFloat = true>
struct compute_fmod
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & a, vecType<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & a, vecType<L, T, P> const & b)
{
- return detail::functor2<T, P, vecType>::call(std::fmod, a, b);
+ return detail::functor2<L, T, P>::call(std::fmod, a, b);
}
};
- template <typename T, precision P, template <class, precision> class vecType>
- struct compute_fmod<T, P, vecType, false>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_fmod<L, T, P, vecType, false>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & a, vecType<T, P> const & b)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & a, vecType<L, T, P> const & b)
{
return a % b;
}
};
}//namespace detail
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool isdenormal(T const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs");
@@ -37,54 +37,54 @@ namespace detail
# endif
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tvec1<T, P>::bool_type isdenormal
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename vec<1, T, P>::bool_type isdenormal
(
- tvec1<T, P> const & x
+ vec<1, T, P> const & x
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs");
- return typename tvec1<T, P>::bool_type(
+ return typename vec<1, T, P>::bool_type(
isdenormal(x.x));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type isdenormal
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename vec<2, T, P>::bool_type isdenormal
(
- tvec2<T, P> const & x
+ vec<2, T, P> const & x
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs");
- return typename tvec2<T, P>::bool_type(
+ return typename vec<2, T, P>::bool_type(
isdenormal(x.x),
isdenormal(x.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type isdenormal
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename vec<3, T, P>::bool_type isdenormal
(
- tvec3<T, P> const & x
+ vec<3, T, P> const & x
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs");
- return typename tvec3<T, P>::bool_type(
+ return typename vec<3, T, P>::bool_type(
isdenormal(x.x),
isdenormal(x.y),
isdenormal(x.z));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type isdenormal
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER typename vec<4, T, P>::bool_type isdenormal
(
- tvec4<T, P> const & x
+ vec<4, T, P> const & x
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs");
- return typename tvec4<T, P>::bool_type(
+ return typename vec<4, T, P>::bool_type(
isdenormal(x.x),
isdenormal(x.y),
isdenormal(x.z),
@@ -92,21 +92,21 @@ namespace detail
}
// fmod
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fmod(genType x, genType y)
{
- return fmod(tvec1<genType>(x), y).x;
+ return fmod(vec<1, genType>(x), y).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fmod(vecType<T, P> const & x, T y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fmod(vecType<L, T, P> const & x, T y)
{
- return detail::compute_fmod<T, P, vecType, std::numeric_limits<T>::is_iec559>::call(x, vecType<T, P>(y));
+ return detail::compute_fmod<L, T, P, vecType, std::numeric_limits<T>::is_iec559>::call(x, vecType<L, T, P>(y));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fmod(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fmod(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
- return detail::compute_fmod<T, P, vecType, std::numeric_limits<T>::is_iec559>::call(x, y);
+ return detail::compute_fmod<L, T, P, vecType, std::numeric_limits<T>::is_iec559>::call(x, y);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/compatibility.hpp b/3rdparty/glm/glm/gtx/compatibility.hpp
index 9f4819aef3c..e11f73945fa 100644
--- a/3rdparty/glm/glm/gtx/compatibility.hpp
+++ b/3rdparty/glm/glm/gtx/compatibility.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtx/compatibility.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_compatibility GLM_GTX_compatibility
/// @ingroup gtx
@@ -17,6 +16,10 @@
#include "../glm.hpp"
#include "../gtc/quaternion.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_compatibility extension included")
#endif
@@ -35,94 +38,94 @@ namespace glm
/// @addtogroup gtx_compatibility
/// @{
- template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> lerp(const tvec2<T, P>& x, const tvec2<T, P>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
+ template<typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<2, T, P> lerp(const vec<2, T, P>& x, const vec<2, T, P>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> lerp(const tvec3<T, P>& x, const tvec3<T, P>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> lerp(const tvec4<T, P>& x, const tvec4<T, P>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> lerp(const tvec2<T, P>& x, const tvec2<T, P>& y, const tvec2<T, P>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> lerp(const tvec3<T, P>& x, const tvec3<T, P>& y, const tvec3<T, P>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> lerp(const tvec4<T, P>& x, const tvec4<T, P>& y, const tvec4<T, P>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<3, T, P> lerp(const vec<3, T, P>& x, const vec<3, T, P>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<4, T, P> lerp(const vec<4, T, P>& x, const vec<4, T, P>& y, T a){return mix(x, y, a);} //!< \brief 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]. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<2, T, P> lerp(const vec<2, T, P>& x, const vec<2, T, P>& y, const vec<2, T, P>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<3, T, P> lerp(const vec<3, T, P>& x, const vec<3, T, P>& y, const vec<3, T, P>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<4, T, P> lerp(const vec<4, T, P>& x, const vec<4, T, P>& y, const vec<4, T, P>& a){return mix(x, y, a);} //!< \brief Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> saturate(const tvec2<T, P>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> saturate(const tvec3<T, P>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> saturate(const tvec4<T, P>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<2, T, P> saturate(const vec<2, T, P>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<3, T, P> saturate(const vec<3, T, P>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<4, T, P> saturate(const vec<4, T, P>& x){return clamp(x, T(0), T(1));} //!< \brief Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> atan2(const tvec2<T, P>& x, const tvec2<T, P>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> atan2(const tvec3<T, P>& x, const tvec3<T, P>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> atan2(const tvec4<T, P>& x, const tvec4<T, P>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<2, T, P> atan2(const vec<2, T, P>& x, const vec<2, T, P>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<3, T, P> atan2(const vec<3, T, P>& x, const vec<3, T, P>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_QUALIFIER vec<4, T, P> atan2(const vec<4, T, P>& x, const vec<4, T, P>& y){return atan(x, y);} //!< \brief 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. (From GLM_GTX_compatibility)
- template <typename genType> GLM_FUNC_DECL bool isfinite(genType const & x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_DECL tvec1<bool, P> isfinite(const tvec1<T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_DECL tvec2<bool, P> isfinite(const tvec2<T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_DECL tvec3<bool, P> isfinite(const tvec3<T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
- template <typename T, precision P> GLM_FUNC_DECL tvec4<bool, P> isfinite(const tvec4<T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
+ template<typename genType> GLM_FUNC_DECL bool isfinite(genType const & x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_DECL vec<1, bool, P> isfinite(const vec<1, T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_DECL vec<2, bool, P> isfinite(const vec<2, T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_DECL vec<3, bool, P> isfinite(const vec<3, T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
+ template<typename T, precision P> GLM_FUNC_DECL vec<4, bool, P> isfinite(const vec<4, T, P>& x); //!< \brief Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
typedef bool bool1; //!< \brief boolean type with 1 component. (From GLM_GTX_compatibility extension)
- typedef tvec2<bool, highp> bool2; //!< \brief boolean type with 2 components. (From GLM_GTX_compatibility extension)
- typedef tvec3<bool, highp> bool3; //!< \brief boolean type with 3 components. (From GLM_GTX_compatibility extension)
- typedef tvec4<bool, highp> bool4; //!< \brief boolean type with 4 components. (From GLM_GTX_compatibility extension)
+ typedef vec<2, bool, highp> bool2; //!< \brief boolean type with 2 components. (From GLM_GTX_compatibility extension)
+ typedef vec<3, bool, highp> bool3; //!< \brief boolean type with 3 components. (From GLM_GTX_compatibility extension)
+ typedef vec<4, bool, highp> bool4; //!< \brief boolean type with 4 components. (From GLM_GTX_compatibility extension)
typedef bool bool1x1; //!< \brief boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
- typedef tmat2x2<bool, highp> bool2x2; //!< \brief boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x3<bool, highp> bool2x3; //!< \brief boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x4<bool, highp> bool2x4; //!< \brief boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x2<bool, highp> bool3x2; //!< \brief boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x3<bool, highp> bool3x3; //!< \brief boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x4<bool, highp> bool3x4; //!< \brief boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x2<bool, highp> bool4x2; //!< \brief boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x3<bool, highp> bool4x3; //!< \brief boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x4<bool, highp> bool4x4; //!< \brief boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 2, bool, highp> bool2x2; //!< \brief boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 3, bool, highp> bool2x3; //!< \brief boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 4, bool, highp> bool2x4; //!< \brief boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 2, bool, highp> bool3x2; //!< \brief boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 3, bool, highp> bool3x3; //!< \brief boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 4, bool, highp> bool3x4; //!< \brief boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 2, bool, highp> bool4x2; //!< \brief boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 3, bool, highp> bool4x3; //!< \brief boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 4, bool, highp> bool4x4; //!< \brief boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
typedef int int1; //!< \brief integer vector with 1 component. (From GLM_GTX_compatibility extension)
- typedef tvec2<int, highp> int2; //!< \brief integer vector with 2 components. (From GLM_GTX_compatibility extension)
- typedef tvec3<int, highp> int3; //!< \brief integer vector with 3 components. (From GLM_GTX_compatibility extension)
- typedef tvec4<int, highp> int4; //!< \brief integer vector with 4 components. (From GLM_GTX_compatibility extension)
+ typedef vec<2, int, highp> int2; //!< \brief integer vector with 2 components. (From GLM_GTX_compatibility extension)
+ typedef vec<3, int, highp> int3; //!< \brief integer vector with 3 components. (From GLM_GTX_compatibility extension)
+ typedef vec<4, int, highp> int4; //!< \brief integer vector with 4 components. (From GLM_GTX_compatibility extension)
typedef int int1x1; //!< \brief integer matrix with 1 component. (From GLM_GTX_compatibility extension)
- typedef tmat2x2<int, highp> int2x2; //!< \brief integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x3<int, highp> int2x3; //!< \brief integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x4<int, highp> int2x4; //!< \brief integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x2<int, highp> int3x2; //!< \brief integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x3<int, highp> int3x3; //!< \brief integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x4<int, highp> int3x4; //!< \brief integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x2<int, highp> int4x2; //!< \brief integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x3<int, highp> int4x3; //!< \brief integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x4<int, highp> int4x4; //!< \brief integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 2, int, highp> int2x2; //!< \brief integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 3, int, highp> int2x3; //!< \brief integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 4, int, highp> int2x4; //!< \brief integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 2, int, highp> int3x2; //!< \brief integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 3, int, highp> int3x3; //!< \brief integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 4, int, highp> int3x4; //!< \brief integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 2, int, highp> int4x2; //!< \brief integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 3, int, highp> int4x3; //!< \brief integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 4, int, highp> int4x4; //!< \brief integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
typedef float float1; //!< \brief single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
- typedef tvec2<float, highp> float2; //!< \brief single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
- typedef tvec3<float, highp> float3; //!< \brief single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
- typedef tvec4<float, highp> float4; //!< \brief single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
+ typedef vec<2, float, highp> float2; //!< \brief single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
+ typedef vec<3, float, highp> float3; //!< \brief single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
+ typedef vec<4, float, highp> float4; //!< \brief single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
typedef float float1x1; //!< \brief single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
- typedef tmat2x2<float, highp> float2x2; //!< \brief single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x3<float, highp> float2x3; //!< \brief single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x4<float, highp> float2x4; //!< \brief single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x2<float, highp> float3x2; //!< \brief single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x3<float, highp> float3x3; //!< \brief single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x4<float, highp> float3x4; //!< \brief single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x2<float, highp> float4x2; //!< \brief single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x3<float, highp> float4x3; //!< \brief single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x4<float, highp> float4x4; //!< \brief single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 2, float, highp> float2x2; //!< \brief single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 3, float, highp> float2x3; //!< \brief single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 4, float, highp> float2x4; //!< \brief single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 2, float, highp> float3x2; //!< \brief single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 3, float, highp> float3x3; //!< \brief single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 4, float, highp> float3x4; //!< \brief single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 2, float, highp> float4x2; //!< \brief single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 3, float, highp> float4x3; //!< \brief single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 4, float, highp> float4x4; //!< \brief single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
typedef double double1; //!< \brief double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
- typedef tvec2<double, highp> double2; //!< \brief double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
- typedef tvec3<double, highp> double3; //!< \brief double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
- typedef tvec4<double, highp> double4; //!< \brief double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
+ typedef vec<2, double, highp> double2; //!< \brief double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
+ typedef vec<3, double, highp> double3; //!< \brief double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
+ typedef vec<4, double, highp> double4; //!< \brief double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
typedef double double1x1; //!< \brief double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
- typedef tmat2x2<double, highp> double2x2; //!< \brief double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x3<double, highp> double2x3; //!< \brief double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat2x4<double, highp> double2x4; //!< \brief double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x2<double, highp> double3x2; //!< \brief double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x3<double, highp> double3x3; //!< \brief double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat3x4<double, highp> double3x4; //!< \brief double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x2<double, highp> double4x2; //!< \brief double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x3<double, highp> double4x3; //!< \brief double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
- typedef tmat4x4<double, highp> double4x4; //!< \brief double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 2, double, highp> double2x2; //!< \brief double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 3, double, highp> double2x3; //!< \brief double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<2, 4, double, highp> double2x4; //!< \brief double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 2, double, highp> double3x2; //!< \brief double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 3, double, highp> double3x3; //!< \brief double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<3, 4, double, highp> double3x4; //!< \brief double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 2, double, highp> double4x2; //!< \brief double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 3, double, highp> double4x3; //!< \brief double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+ typedef mat<4, 4, double, highp> double4x4; //!< \brief double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/compatibility.inl b/3rdparty/glm/glm/gtx/compatibility.inl
index 368527accd6..cf1c07a1703 100644
--- a/3rdparty/glm/glm/gtx/compatibility.inl
+++ b/3rdparty/glm/glm/gtx/compatibility.inl
@@ -6,7 +6,7 @@
namespace glm
{
// isfinite
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool isfinite(
genType const & x)
{
@@ -24,38 +24,38 @@ namespace glm
# endif
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<bool, P> isfinite(
- tvec1<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<1, bool, P> isfinite(
+ vec<1, T, P> const & x)
{
- return tvec1<bool, P>(
+ return vec<1, bool, P>(
isfinite(x.x));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<bool, P> isfinite(
- tvec2<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, bool, P> isfinite(
+ vec<2, T, P> const & x)
{
- return tvec2<bool, P>(
+ return vec<2, bool, P>(
isfinite(x.x),
isfinite(x.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<bool, P> isfinite(
- tvec3<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, bool, P> isfinite(
+ vec<3, T, P> const & x)
{
- return tvec3<bool, P>(
+ return vec<3, bool, P>(
isfinite(x.x),
isfinite(x.y),
isfinite(x.z));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> isfinite(
- tvec4<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> isfinite(
+ vec<4, T, P> const & x)
{
- return tvec4<bool, P>(
+ return vec<4, bool, P>(
isfinite(x.x),
isfinite(x.y),
isfinite(x.z),
diff --git a/3rdparty/glm/glm/gtx/component_wise.hpp b/3rdparty/glm/glm/gtx/component_wise.hpp
index c316f9e27ae..3b35ad19024 100644
--- a/3rdparty/glm/glm/gtx/component_wise.hpp
+++ b/3rdparty/glm/glm/gtx/component_wise.hpp
@@ -18,6 +18,10 @@
#include "../detail/setup.hpp"
#include "../detail/precision.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_component_wise extension included")
#endif
@@ -30,33 +34,33 @@ namespace glm
/// Convert an integer vector to a normalized float vector.
/// If the parameter value type is already a floating precision type, the value is passed through.
/// @see gtx_component_wise
- template <typename floatType, typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<floatType, P> compNormalize(vecType<T, P> const & v);
+ template<typename floatType, length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, floatType, P> compNormalize(vecType<L, T, P> const & v);
/// Convert a normalized float vector to an integer vector.
/// If the parameter value type is already a floating precision type, the value is passed through.
/// @see gtx_component_wise
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> compScale(vecType<floatType, P> const & v);
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> compScale(vecType<L, floatType, P> const & v);
/// Add all vector components together.
/// @see gtx_component_wise
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::value_type compAdd(genType const & v);
/// Multiply all vector components together.
/// @see gtx_component_wise
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::value_type compMul(genType const & v);
/// Find the minimum value between single vector components.
/// @see gtx_component_wise
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::value_type compMin(genType const & v);
/// Find the maximum value between single vector components.
/// @see gtx_component_wise
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL typename genType::value_type compMax(genType const & v);
/// @}
diff --git a/3rdparty/glm/glm/gtx/component_wise.inl b/3rdparty/glm/glm/gtx/component_wise.inl
index add3969e6b6..3961f3cdbfb 100644
--- a/3rdparty/glm/glm/gtx/component_wise.inl
+++ b/3rdparty/glm/glm/gtx/component_wise.inl
@@ -6,92 +6,92 @@
namespace glm{
namespace detail
{
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType, bool isInteger, bool signedType>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType, bool isInteger, bool signedType>
struct compute_compNormalize
{};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- struct compute_compNormalize<T, floatType, P, vecType, true, true>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_compNormalize<L, T, floatType, P, vecType, true, true>
{
- GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, floatType, P> call(vecType<L, T, P> const & v)
{
floatType const Min = static_cast<floatType>(std::numeric_limits<T>::min());
floatType const Max = static_cast<floatType>(std::numeric_limits<T>::max());
- return (vecType<floatType, P>(v) - Min) / (Max - Min) * static_cast<floatType>(2) - static_cast<floatType>(1);
+ return (vecType<L, floatType, P>(v) - Min) / (Max - Min) * static_cast<floatType>(2) - static_cast<floatType>(1);
}
};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- struct compute_compNormalize<T, floatType, P, vecType, true, false>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_compNormalize<L, T, floatType, P, vecType, true, false>
{
- GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, floatType, P> call(vecType<L, T, P> const & v)
{
- return vecType<floatType, P>(v) / static_cast<floatType>(std::numeric_limits<T>::max());
+ return vecType<L, floatType, P>(v) / static_cast<floatType>(std::numeric_limits<T>::max());
}
};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- struct compute_compNormalize<T, floatType, P, vecType, false, true>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_compNormalize<L, T, floatType, P, vecType, false, true>
{
- GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, floatType, P> call(vecType<L, T, P> const & v)
{
return v;
}
};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType, bool isInteger, bool signedType>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType, bool isInteger, bool signedType>
struct compute_compScale
{};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- struct compute_compScale<T, floatType, P, vecType, true, true>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_compScale<L, T, floatType, P, vecType, true, true>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, floatType, P> const & v)
{
floatType const Max = static_cast<floatType>(std::numeric_limits<T>::max()) + static_cast<floatType>(0.5);
- vecType<floatType, P> const Scaled(v * Max);
- vecType<T, P> const Result(Scaled - static_cast<floatType>(0.5));
+ vecType<L, floatType, P> const Scaled(v * Max);
+ vecType<L, T, P> const Result(Scaled - static_cast<floatType>(0.5));
return Result;
}
};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- struct compute_compScale<T, floatType, P, vecType, true, false>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_compScale<L, T, floatType, P, vecType, true, false>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, floatType, P> const & v)
{
- return vecType<T, P>(vecType<floatType, P>(v) * static_cast<floatType>(std::numeric_limits<T>::max()));
+ return vecType<L, T, P>(vecType<L, floatType, P>(v) * static_cast<floatType>(std::numeric_limits<T>::max()));
}
};
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- struct compute_compScale<T, floatType, P, vecType, false, true>
+ template<length_t L, typename T, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ struct compute_compScale<L, T, floatType, P, vecType, false, true>
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, floatType, P> const & v)
{
return v;
}
};
}//namespace detail
- template <typename floatType, typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<floatType, P> compNormalize(vecType<T, P> const & v)
+ template<typename floatType, length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, floatType, P> compNormalize(vecType<L, T, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "'compNormalize' accepts only floating-point types for 'floatType' template parameter");
- return detail::compute_compNormalize<T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
+ return detail::compute_compNormalize<L, T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
}
- template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> compScale(vecType<floatType, P> const & v)
+ template<typename T, length_t L, typename floatType, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> compScale(vecType<L, floatType, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "'compScale' accepts only floating-point types for 'floatType' template parameter");
- return detail::compute_compScale<T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
+ return detail::compute_compScale<L, T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T compAdd(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T compAdd(vecType<L, T, P> const & v)
{
T Result(0);
for(length_t i = 0, n = v.length(); i < n; ++i)
@@ -99,8 +99,8 @@ namespace detail
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T compMul(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T compMul(vecType<L, T, P> const & v)
{
T Result(1);
for(length_t i = 0, n = v.length(); i < n; ++i)
@@ -108,8 +108,8 @@ namespace detail
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T compMin(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T compMin(vecType<L, T, P> const & v)
{
T Result(v[0]);
for(length_t i = 1, n = v.length(); i < n; ++i)
@@ -117,8 +117,8 @@ namespace detail
return Result;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T compMax(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T compMax(vecType<L, T, P> const & v)
{
T Result(v[0]);
for(length_t i = 1, n = v.length(); i < n; ++i)
diff --git a/3rdparty/glm/glm/gtx/dual_quaternion.hpp b/3rdparty/glm/glm/gtx/dual_quaternion.hpp
index a64c7df76fd..1fa23f57a97 100644
--- a/3rdparty/glm/glm/gtx/dual_quaternion.hpp
+++ b/3rdparty/glm/glm/gtx/dual_quaternion.hpp
@@ -3,7 +3,6 @@
/// @author Maksim Vorobiev (msomeone@gmail.com)
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtc_constants (dependence)
/// @see gtc_quaternion (dependence)
///
@@ -21,6 +20,10 @@
#include "../gtc/constants.hpp"
#include "../gtc/quaternion.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_dual_quaternion extension included")
#endif
@@ -30,7 +33,7 @@ namespace glm
/// @addtogroup gtx_dual_quaternion
/// @{
- template <typename T, precision P = defaultp>
+ template<typename T, precision P = defaultp>
struct tdualquat
{
// -- Implementation detail --
@@ -46,7 +49,7 @@ namespace glm
typedef length_t length_type;
/// Return the count of components of a dual quaternion
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ GLM_FUNC_DECL static length_type length(){return 2;}
GLM_FUNC_DECL part_type & operator[](length_type i);
GLM_FUNC_DECL part_type const & operator[](length_type i) const;
@@ -55,122 +58,122 @@ namespace glm
GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT_CTOR;
GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, P> const & d) GLM_DEFAULT;
- template <precision Q>
+ template<precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, Q> const & d);
// -- Explicit basic constructors --
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tdualquat(ctor);
GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real);
- GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & orientation, tvec3<T, P> const & translation);
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & orientation, vec<3, T, P> const & translation);
GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);
// -- Conversion constructors --
- template <typename U, precision Q>
+ template<typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat<U, Q> const & q);
- GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat2x4<T, P> const & holder_mat);
- GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat3x4<T, P> const & aug_mat);
+ GLM_FUNC_DECL GLM_EXPLICIT tdualquat(mat<2, 4, T, P> const & holder_mat);
+ GLM_FUNC_DECL GLM_EXPLICIT tdualquat(mat<3, 4, T, P> const & aug_mat);
// -- Unary arithmetic operators --
GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<T, P> const & m) GLM_DEFAULT;
- template <typename U>
+ template<typename U>
GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<U, P> const & m);
- template <typename U>
+ template<typename U>
GLM_FUNC_DECL tdualquat<T, P> & operator*=(U s);
- template <typename U>
+ template<typename U>
GLM_FUNC_DECL tdualquat<T, P> & operator/=(U s);
};
// -- Unary bit operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator-(tdualquat<T, P> const & q);
// -- Binary operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q, tdualquat<T, P> const & p);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, tdualquat<T, P> const & p);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tdualquat<T, P> const & q, tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(tdualquat<T, P> const & q, vec<3, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tdualquat<T, P> const & q);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> operator*(vec<3, T, P> const & v, tdualquat<T, P> const & q);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tdualquat<T, P> const & q, tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(tdualquat<T, P> const & q, vec<4, T, P> const & v);
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tdualquat<T, P> const & q);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> operator*(vec<4, T, P> const & v, tdualquat<T, P> const & q);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, T const & s);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator*(T const & s, tdualquat<T, P> const & q);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> operator/(tdualquat<T, P> const & q, T const & s);
// -- Boolean operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool operator==(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool operator!=(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);
/// Returns the normalized quaternion.
///
/// @see gtx_dual_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> normalize(tdualquat<T, P> const & q);
/// Returns the linear interpolation of two dual quaternion.
///
/// @see gtc_dual_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> lerp(tdualquat<T, P> const & x, tdualquat<T, P> const & y, T const & a);
/// Returns the q inverse.
///
/// @see gtx_dual_quaternion
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tdualquat<T, P> inverse(tdualquat<T, P> const & q);
/// Converts a quaternion to a 2 * 4 matrix.
///
/// @see gtx_dual_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> mat2x4_cast(tdualquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> mat2x4_cast(tdualquat<T, P> const & x);
/// Converts a quaternion to a 3 * 4 matrix.
///
/// @see gtx_dual_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> mat3x4_cast(tdualquat<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> mat3x4_cast(tdualquat<T, P> const & x);
/// Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion.
///
/// @see gtx_dual_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tdualquat<T, P> dualquat_cast(tmat2x4<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tdualquat<T, P> dualquat_cast(mat<2, 4, T, P> const & x);
/// Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.
///
/// @see gtx_dual_quaternion
- template <typename T, precision P>
- GLM_FUNC_DECL tdualquat<T, P> dualquat_cast(tmat3x4<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL tdualquat<T, P> dualquat_cast(mat<3, 4, T, P> const & x);
/// Dual-quaternion of low single-precision floating-point numbers.
diff --git a/3rdparty/glm/glm/gtx/dual_quaternion.inl b/3rdparty/glm/glm/gtx/dual_quaternion.inl
index c93c9691290..df330ffa2ee 100644
--- a/3rdparty/glm/glm/gtx/dual_quaternion.inl
+++ b/3rdparty/glm/glm/gtx/dual_quaternion.inl
@@ -8,20 +8,14 @@ namespace glm
{
// -- Component accesses --
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat<T, P>::length_type tdualquat<T, P>::length() const
- {
- return 2;
- }
-
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type & tdualquat<T, P>::operator[](typename tdualquat<T, P>::length_type i)
{
assert(i >= 0 && i < this->length());
return (&real)[i];
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type const & tdualquat<T, P>::operator[](typename tdualquat<T, P>::length_type i) const
{
assert(i >= 0 && i < this->length());
@@ -31,7 +25,7 @@ namespace glm
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat()
# ifndef GLM_FORCE_NO_CTOR_INIT
: real(tquat<T, P>())
@@ -41,15 +35,15 @@ namespace glm
# endif
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tdualquat<T, P> const & d)
: real(d.real)
, dual(d.dual)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <precision Q>
+ template<typename T, precision P>
+ template<precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tdualquat<T, Q> const & d)
: real(d.real)
, dual(d.dual)
@@ -57,17 +51,17 @@ namespace glm
// -- Explicit basic constructors --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tdualquat<T, P>::tdualquat(ctor)
{}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & r)
: real(r), dual(tquat<T, P>(0, 0, 0, 0))
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & q, tvec3<T, P> const& p)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & q, vec<3, T, P> const& p)
: real(q), dual(
T(-0.5) * ( p.x*q.x + p.y*q.y + p.z*q.z),
T(+0.5) * ( p.x*q.w + p.y*q.z - p.z*q.y),
@@ -75,28 +69,28 @@ namespace glm
T(+0.5) * ( p.x*q.y - p.y*q.x + p.z*q.w))
{}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & r, tquat<T, P> const & d)
: real(r), dual(d)
{}
// -- Conversion constructors --
- template <typename T, precision P>
- template <typename U, precision Q>
+ template<typename T, precision P>
+ template<typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tdualquat<U, Q> const & q)
: real(q.real)
, dual(q.dual)
{}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tmat2x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(mat<2, 4, T, P> const & m)
{
*this = dualquat_cast(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tmat3x4<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(mat<3, 4, T, P> const & m)
{
*this = dualquat_cast(m);
}
@@ -104,7 +98,7 @@ namespace glm
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> & tdualquat<T, P>::operator=(tdualquat<T, P> const & q)
{
this->real = q.real;
@@ -113,8 +107,8 @@ namespace glm
}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tdualquat<T, P> & tdualquat<T, P>::operator=(tdualquat<U, P> const & q)
{
this->real = q.real;
@@ -122,8 +116,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tdualquat<T, P> & tdualquat<T, P>::operator*=(U s)
{
this->real *= static_cast<T>(s);
@@ -131,8 +125,8 @@ namespace glm
return *this;
}
- template <typename T, precision P>
- template <typename U>
+ template<typename T, precision P>
+ template<typename U>
GLM_FUNC_QUALIFIER tdualquat<T, P> & tdualquat<T, P>::operator/=(U s)
{
this->real /= static_cast<T>(s);
@@ -142,13 +136,13 @@ namespace glm
// -- Unary bit operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator+(tdualquat<T, P> const & q)
{
return q;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator-(tdualquat<T, P> const & q)
{
return tdualquat<T, P>(-q.real, -q.dual);
@@ -156,57 +150,57 @@ namespace glm
// -- Binary operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator+(tdualquat<T, P> const & q, tdualquat<T, P> const & p)
{
return tdualquat<T, P>(q.real + p.real,q.dual + p.dual);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator*(tdualquat<T, P> const & p, tdualquat<T, P> const & o)
{
return tdualquat<T, P>(p.real * o.real,p.real * o.dual + p.dual * o.real);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tdualquat<T, P> const & q, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(tdualquat<T, P> const & q, vec<3, T, P> const & v)
{
- tvec3<T, P> const real_v3(q.real.x,q.real.y,q.real.z);
- tvec3<T, P> const dual_v3(q.dual.x,q.dual.y,q.dual.z);
+ vec<3, T, P> const real_v3(q.real.x,q.real.y,q.real.z);
+ vec<3, T, P> const dual_v3(q.dual.x,q.dual.y,q.dual.z);
return (cross(real_v3, cross(real_v3,v) + v * q.real.w + dual_v3) + dual_v3 * q.real.w - real_v3 * q.dual.w) * T(2) + v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v, tdualquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> operator*(vec<3, T, P> const & v, tdualquat<T, P> const & q)
{
return glm::inverse(q) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tdualquat<T, P> const & q, tvec4<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(tdualquat<T, P> const & q, vec<4, T, P> const & v)
{
- return tvec4<T, P>(q * tvec3<T, P>(v), v.w);
+ return vec<4, T, P>(q * vec<3, T, P>(v), v.w);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v, tdualquat<T, P> const & q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> operator*(vec<4, T, P> const & v, tdualquat<T, P> const & q)
{
return glm::inverse(q) * v;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator*(tdualquat<T, P> const & q, T const & s)
{
return tdualquat<T, P>(q.real * s, q.dual * s);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator*(T const & s, tdualquat<T, P> const & q)
{
return q * s;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> operator/(tdualquat<T, P> const & q, T const & s)
{
return tdualquat<T, P>(q.real / s, q.dual / s);
@@ -214,13 +208,13 @@ namespace glm
// -- Boolean operators --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool operator==(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2)
{
return (q1.real == q2.real) && (q1.dual == q2.dual);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool operator!=(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2)
{
return (q1.real != q2.dual) || (q1.real != q2.dual);
@@ -228,13 +222,13 @@ namespace glm
// -- Operations --
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> normalize(tdualquat<T, P> const & q)
{
return q / length(q.real);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> lerp(tdualquat<T, P> const & x, tdualquat<T, P> const & y, T const & a)
{
// Dual Quaternion Linear blend aka DLB:
@@ -246,7 +240,7 @@ namespace glm
return tdualquat<T, P>(x * (one - a) + y * k);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tdualquat<T, P> inverse(tdualquat<T, P> const & q)
{
const glm::tquat<T, P> real = conjugate(q.real);
@@ -254,14 +248,14 @@ namespace glm
return tdualquat<T, P>(real, dual + (real * (-2.0f * dot(real,dual))));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> mat2x4_cast(tdualquat<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> mat2x4_cast(tdualquat<T, P> const & x)
{
- return tmat2x4<T, P>( x[0].x, x[0].y, x[0].z, x[0].w, x[1].x, x[1].y, x[1].z, x[1].w );
+ return mat<2, 4, T, P>( x[0].x, x[0].y, x[0].z, x[0].w, x[1].x, x[1].y, x[1].z, x[1].w );
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> mat3x4_cast(tdualquat<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> mat3x4_cast(tdualquat<T, P> const & x)
{
tquat<T, P> r = x.real / length2(x.real);
@@ -275,37 +269,37 @@ namespace glm
T const wy = r.w * x.real.y;
T const wz = r.w * x.real.z;
- tvec4<T, P> const a(
+ vec<4, T, P> const a(
rr.w + rr.x - rr.y - rr.z,
xy - wz,
xz + wy,
-(x.dual.w * r.x - x.dual.x * r.w + x.dual.y * r.z - x.dual.z * r.y));
- tvec4<T, P> const b(
+ vec<4, T, P> const b(
xy + wz,
rr.w + rr.y - rr.x - rr.z,
yz - wx,
-(x.dual.w * r.y - x.dual.x * r.z - x.dual.y * r.w + x.dual.z * r.x));
- tvec4<T, P> const c(
+ vec<4, T, P> const c(
xz - wy,
yz + wx,
rr.w + rr.z - rr.x - rr.y,
-(x.dual.w * r.z + x.dual.x * r.y - x.dual.y * r.x - x.dual.z * r.w));
- return tmat3x4<T, P>(a, b, c);
+ return mat<3, 4, T, P>(a, b, c);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P> dualquat_cast(tmat2x4<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tdualquat<T, P> dualquat_cast(mat<2, 4, T, P> const & x)
{
return tdualquat<T, P>(
tquat<T, P>( x[0].w, x[0].x, x[0].y, x[0].z ),
tquat<T, P>( x[1].w, x[1].x, x[1].y, x[1].z ));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P> dualquat_cast(tmat3x4<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tdualquat<T, P> dualquat_cast(mat<3, 4, T, P> const & x)
{
tquat<T, P> real(uninitialize);
diff --git a/3rdparty/glm/glm/gtx/euler_angles.hpp b/3rdparty/glm/glm/gtx/euler_angles.hpp
index fdc4f26cc2a..6985faa69ef 100644
--- a/3rdparty/glm/glm/gtx/euler_angles.hpp
+++ b/3rdparty/glm/glm/gtx/euler_angles.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtx/euler_angles.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_euler_angles GLM_GTX_euler_angles
/// @ingroup gtx
@@ -16,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_euler_angles extension included")
#endif
@@ -27,112 +30,112 @@ namespace glm
/// Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleX(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleX(
T const & angleX);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleY(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleY(
T const & angleY);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleZ(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZ(
T const & angleZ);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleXY(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXY(
T const & angleX,
T const & angleY);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleYX(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYX(
T const & angleY,
T const & angleX);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleXZ(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZ(
T const & angleX,
T const & angleZ);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleZX(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZX(
T const & angle,
T const & angleX);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleYZ(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZ(
T const & angleY,
T const & angleZ);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleZY(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZY(
T const & angleZ,
T const & angleY);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleXYZ(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYZ(
T const & t1,
T const & t2,
T const & t3);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> eulerAngleYXZ(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, 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).
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat4x4<T, defaultp> yawPitchRoll(
+ template<typename T>
+ GLM_FUNC_DECL mat<4, 4, T, defaultp> yawPitchRoll(
T const & yaw,
T const & pitch,
T const & roll);
/// Creates a 2D 2 * 2 rotation matrix from an euler angle.
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat2x2<T, defaultp> orientate2(T const & angle);
+ template<typename T>
+ GLM_FUNC_DECL mat<2, 2, T, defaultp> orientate2(T const & angle);
/// Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL tmat3x3<T, defaultp> orientate3(T const & angle);
+ template<typename T>
+ GLM_FUNC_DECL mat<3, 3, T, defaultp> orientate3(T const & angle);
/// Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
/// @see gtx_euler_angles
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> orientate3(tvec3<T, P> const & angles);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> orientate3(vec<3, T, P> const & angles);
/// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
/// @see gtx_euler_angles
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> orientate4(tvec3<T, P> const & angles);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> orientate4(vec<3, T, P> const & angles);
/// Extracts the (X * Y * Z) Euler angles from the rotation matrix M
/// @see gtx_euler_angles
- template <typename T>
- GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4<T, defaultp> const & M,
+ template<typename T>
+ GLM_FUNC_DECL void extractEulerAngleXYZ(mat<4, 4, T, defaultp> const & M,
T & t1,
T & t2,
T & t3);
diff --git a/3rdparty/glm/glm/gtx/euler_angles.inl b/3rdparty/glm/glm/gtx/euler_angles.inl
index dbe0a48bb00..bed37416f51 100644
--- a/3rdparty/glm/glm/gtx/euler_angles.inl
+++ b/3rdparty/glm/glm/gtx/euler_angles.inl
@@ -5,8 +5,8 @@
namespace glm
{
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleX
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleX
(
T const & angleX
)
@@ -14,15 +14,15 @@ namespace glm
T cosX = glm::cos(angleX);
T sinX = glm::sin(angleX);
- return tmat4x4<T, defaultp>(
+ return mat<4, 4, T, defaultp>(
T(1), T(0), T(0), T(0),
T(0), cosX, sinX, T(0),
T(0),-sinX, cosX, T(0),
T(0), T(0), T(0), T(1));
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleY
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleY
(
T const & angleY
)
@@ -30,15 +30,15 @@ namespace glm
T cosY = glm::cos(angleY);
T sinY = glm::sin(angleY);
- return tmat4x4<T, defaultp>(
+ return mat<4, 4, T, defaultp>(
cosY, T(0), -sinY, T(0),
T(0), T(1), T(0), T(0),
sinY, T(0), cosY, T(0),
T(0), T(0), T(0), T(1));
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleZ
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleZ
(
T const & angleZ
)
@@ -46,15 +46,15 @@ namespace glm
T cosZ = glm::cos(angleZ);
T sinZ = glm::sin(angleZ);
- return tmat4x4<T, defaultp>(
+ return mat<4, 4, T, defaultp>(
cosZ, sinZ, T(0), T(0),
-sinZ, cosZ, T(0), T(0),
T(0), T(0), T(1), T(0),
T(0), T(0), T(0), T(1));
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleXY
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleXY
(
T const & angleX,
T const & angleY
@@ -65,15 +65,15 @@ namespace glm
T cosY = glm::cos(angleY);
T sinY = glm::sin(angleY);
- return tmat4x4<T, defaultp>(
+ return mat<4, 4, T, defaultp>(
cosY, -sinX * -sinY, cosX * -sinY, T(0),
T(0), cosX, sinX, T(0),
sinY, -sinX * cosY, cosX * cosY, T(0),
T(0), T(0), T(0), T(1));
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleYX
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleYX
(
T const & angleY,
T const & angleX
@@ -84,15 +84,15 @@ namespace glm
T cosY = glm::cos(angleY);
T sinY = glm::sin(angleY);
- return tmat4x4<T, defaultp>(
+ return mat<4, 4, T, defaultp>(
cosY, 0, -sinY, T(0),
sinY * sinX, cosX, cosY * sinX, T(0),
sinY * cosX, -sinX, cosY * cosX, T(0),
T(0), T(0), T(0), T(1));
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleXZ
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleXZ
(
T const & angleX,
T const & angleZ
@@ -101,8 +101,8 @@ namespace glm
return eulerAngleX(angleX) * eulerAngleZ(angleZ);
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleZX
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleZX
(
T const & angleZ,
T const & angleX
@@ -111,8 +111,8 @@ namespace glm
return eulerAngleZ(angleZ) * eulerAngleX(angleX);
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleYZ
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleYZ
(
T const & angleY,
T const & angleZ
@@ -121,8 +121,8 @@ namespace glm
return eulerAngleY(angleY) * eulerAngleZ(angleZ);
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleZY
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleZY
(
T const & angleZ,
T const & angleY
@@ -131,8 +131,8 @@ namespace glm
return eulerAngleZ(angleZ) * eulerAngleY(angleY);
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleXYZ
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleXYZ
(
T const & t1,
T const & t2,
@@ -146,7 +146,7 @@ namespace glm
T s2 = glm::sin(-t2);
T s3 = glm::sin(-t3);
- tmat4x4<T, defaultp> Result;
+ mat<4, 4, T, defaultp> Result;
Result[0][0] = c2 * c3;
Result[0][1] =-c1 * s3 + s1 * s2 * c3;
Result[0][2] = s1 * s3 + c1 * s2 * c3;
@@ -166,8 +166,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> eulerAngleYXZ
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> eulerAngleYXZ
(
T const & yaw,
T const & pitch,
@@ -181,7 +181,7 @@ namespace glm
T tmp_cb = glm::cos(roll);
T tmp_sb = glm::sin(roll);
- tmat4x4<T, defaultp> Result;
+ mat<4, 4, T, defaultp> Result;
Result[0][0] = tmp_ch * tmp_cb + tmp_sh * tmp_sp * tmp_sb;
Result[0][1] = tmp_sb * tmp_cp;
Result[0][2] = -tmp_sh * tmp_cb + tmp_ch * tmp_sp * tmp_sb;
@@ -201,8 +201,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> yawPitchRoll
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> yawPitchRoll
(
T const & yaw,
T const & pitch,
@@ -216,7 +216,7 @@ namespace glm
T tmp_cb = glm::cos(roll);
T tmp_sb = glm::sin(roll);
- tmat4x4<T, defaultp> Result;
+ mat<4, 4, T, defaultp> Result;
Result[0][0] = tmp_ch * tmp_cb + tmp_sh * tmp_sp * tmp_sb;
Result[0][1] = tmp_sb * tmp_cp;
Result[0][2] = -tmp_sh * tmp_cb + tmp_ch * tmp_sp * tmp_sb;
@@ -236,8 +236,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat2x2<T, defaultp> orientate2
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, defaultp> orientate2
(
T const & angle
)
@@ -245,7 +245,7 @@ namespace glm
T c = glm::cos(angle);
T s = glm::sin(angle);
- tmat2x2<T, defaultp> Result;
+ mat<2, 2, T, defaultp> Result;
Result[0][0] = c;
Result[0][1] = s;
Result[1][0] = -s;
@@ -253,8 +253,8 @@ namespace glm
return Result;
}
- template <typename T>
- GLM_FUNC_QUALIFIER tmat3x3<T, defaultp> orientate3
+ template<typename T>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, defaultp> orientate3
(
T const & angle
)
@@ -262,7 +262,7 @@ namespace glm
T c = glm::cos(angle);
T s = glm::sin(angle);
- tmat3x3<T, defaultp> Result;
+ mat<3, 3, T, defaultp> Result;
Result[0][0] = c;
Result[0][1] = s;
Result[0][2] = 0.0f;
@@ -275,26 +275,26 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> orientate3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> orientate3
(
- tvec3<T, P> const & angles
+ vec<3, T, P> const & angles
)
{
- return tmat3x3<T, P>(yawPitchRoll(angles.z, angles.x, angles.y));
+ return mat<3, 3, T, P>(yawPitchRoll(angles.z, angles.x, angles.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> orientate4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> orientate4
(
- tvec3<T, P> const & angles
+ vec<3, T, P> const & angles
)
{
return yawPitchRoll(angles.z, angles.x, angles.y);
}
- template <typename T>
- GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4<T, defaultp> const & M,
+ template<typename T>
+ GLM_FUNC_DECL void extractEulerAngleXYZ(mat<4, 4, T, defaultp> const & M,
T & t1,
T & t2,
T & t3)
diff --git a/3rdparty/glm/glm/gtx/extend.hpp b/3rdparty/glm/glm/gtx/extend.hpp
index 26837a839d3..aa752704c50 100644
--- a/3rdparty/glm/glm/gtx/extend.hpp
+++ b/3rdparty/glm/glm/gtx/extend.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_extend extension included")
#endif
@@ -26,7 +30,7 @@ namespace glm
/// Extends of Length the Origin position using the (Source - Origin) direction.
/// @see gtx_extend
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType extend(
genType const & Origin,
genType const & Source,
diff --git a/3rdparty/glm/glm/gtx/extend.inl b/3rdparty/glm/glm/gtx/extend.inl
index 315558350af..3939abd4d71 100644
--- a/3rdparty/glm/glm/gtx/extend.inl
+++ b/3rdparty/glm/glm/gtx/extend.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType extend
(
genType const & Origin,
@@ -14,33 +14,33 @@ namespace glm
return Origin + (Source - Origin) * Distance;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> extend
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> extend
(
- tvec2<T, P> const & Origin,
- tvec2<T, P> const & Source,
+ vec<2, T, P> const & Origin,
+ vec<2, T, P> const & Source,
T const & Distance
)
{
return Origin + (Source - Origin) * Distance;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> extend
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> extend
(
- tvec3<T, P> const & Origin,
- tvec3<T, P> const & Source,
+ vec<3, T, P> const & Origin,
+ vec<3, T, P> const & Source,
T const & Distance
)
{
return Origin + (Source - Origin) * Distance;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> extend
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> extend
(
- tvec4<T, P> const & Origin,
- tvec4<T, P> const & Source,
+ vec<4, T, P> const & Origin,
+ vec<4, T, P> const & Source,
T const & Distance
)
{
diff --git a/3rdparty/glm/glm/gtx/extended_min_max.hpp b/3rdparty/glm/glm/gtx/extended_min_max.hpp
index f4d885953c1..537af0ce390 100644
--- a/3rdparty/glm/glm/gtx/extended_min_max.hpp
+++ b/3rdparty/glm/glm/gtx/extended_min_max.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtx/extended_min_max.hpp
///
/// @see core (dependence)
-/// @see gtx_half_float (dependence)
///
/// @defgroup gtx_extented_min_max GLM_GTX_extented_min_max
/// @ingroup gtx
@@ -16,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_extented_min_max extension included")
#endif
@@ -27,7 +30,7 @@ namespace glm
/// Return the minimum component-wise values of 3 inputs
/// @see gtx_extented_min_max
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T min(
T const & x,
T const & y,
@@ -35,7 +38,7 @@ namespace glm
/// Return the minimum component-wise values of 3 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> min(
C<T> const & x,
typename C<T>::T const & y,
@@ -43,7 +46,7 @@ namespace glm
/// Return the minimum component-wise values of 3 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> min(
C<T> const & x,
C<T> const & y,
@@ -51,7 +54,7 @@ namespace glm
/// Return the minimum component-wise values of 4 inputs
/// @see gtx_extented_min_max
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T min(
T const & x,
T const & y,
@@ -60,7 +63,7 @@ namespace glm
/// Return the minimum component-wise values of 4 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> min(
C<T> const & x,
typename C<T>::T const & y,
@@ -69,7 +72,7 @@ namespace glm
/// Return the minimum component-wise values of 4 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> min(
C<T> const & x,
C<T> const & y,
@@ -78,7 +81,7 @@ namespace glm
/// Return the maximum component-wise values of 3 inputs
/// @see gtx_extented_min_max
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T max(
T const & x,
T const & y,
@@ -86,7 +89,7 @@ namespace glm
/// Return the maximum component-wise values of 3 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> max(
C<T> const & x,
typename C<T>::T const & y,
@@ -94,7 +97,7 @@ namespace glm
/// Return the maximum component-wise values of 3 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> max(
C<T> const & x,
C<T> const & y,
@@ -102,7 +105,7 @@ namespace glm
/// Return the maximum component-wise values of 4 inputs
/// @see gtx_extented_min_max
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T max(
T const & x,
T const & y,
@@ -111,7 +114,7 @@ namespace glm
/// Return the maximum component-wise values of 4 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> max(
C<T> const & x,
typename C<T>::T const & y,
@@ -120,7 +123,7 @@ namespace glm
/// Return the maximum component-wise values of 4 inputs
/// @see gtx_extented_min_max
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_DECL C<T> max(
C<T> const & x,
C<T> const & y,
diff --git a/3rdparty/glm/glm/gtx/extended_min_max.inl b/3rdparty/glm/glm/gtx/extended_min_max.inl
index 64ea4452648..be09c93d890 100644
--- a/3rdparty/glm/glm/gtx/extended_min_max.inl
+++ b/3rdparty/glm/glm/gtx/extended_min_max.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T min(
T const & x,
T const & y,
@@ -12,7 +12,7 @@ namespace glm
return glm::min(glm::min(x, y), z);
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> min
(
C<T> const & x,
@@ -23,7 +23,7 @@ namespace glm
return glm::min(glm::min(x, y), z);
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> min
(
C<T> const & x,
@@ -34,7 +34,7 @@ namespace glm
return glm::min(glm::min(x, y), z);
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T min
(
T const & x,
@@ -46,7 +46,7 @@ namespace glm
return glm::min(glm::min(x, y), glm::min(z, w));
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> min
(
C<T> const & x,
@@ -58,7 +58,7 @@ namespace glm
return glm::min(glm::min(x, y), glm::min(z, w));
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> min
(
C<T> const & x,
@@ -70,7 +70,7 @@ namespace glm
return glm::min(glm::min(x, y), glm::min(z, w));
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T max(
T const & x,
T const & y,
@@ -79,7 +79,7 @@ namespace glm
return glm::max(glm::max(x, y), z);
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> max
(
C<T> const & x,
@@ -90,7 +90,7 @@ namespace glm
return glm::max(glm::max(x, y), z);
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> max
(
C<T> const & x,
@@ -101,7 +101,7 @@ namespace glm
return glm::max(glm::max(x, y), z);
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T max
(
T const & x,
@@ -113,7 +113,7 @@ namespace glm
return glm::max(glm::max(x, y), glm::max(z, w));
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> max
(
C<T> const & x,
@@ -125,7 +125,7 @@ namespace glm
return glm::max(glm::max(x, y), glm::max(z, w));
}
- template <typename T, template <typename> class C>
+ template<typename T, template<typename> class C>
GLM_FUNC_QUALIFIER C<T> max
(
C<T> const & x,
diff --git a/3rdparty/glm/glm/gtx/fast_exponential.hpp b/3rdparty/glm/glm/gtx/fast_exponential.hpp
index ed64a27d786..80822c81302 100644
--- a/3rdparty/glm/glm/gtx/fast_exponential.hpp
+++ b/3rdparty/glm/glm/gtx/fast_exponential.hpp
@@ -16,6 +16,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_fast_exponential extension included")
#endif
@@ -27,63 +31,63 @@ namespace glm
/// Faster than the common pow function but less accurate.
/// @see gtx_fast_exponential
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fastPow(genType x, genType y);
/// Faster than the common pow function but less accurate.
/// @see gtx_fast_exponential
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastPow(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastPow(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Faster than the common pow function but less accurate.
/// @see gtx_fast_exponential
- template <typename genTypeT, typename genTypeU>
+ template<typename genTypeT, typename genTypeU>
GLM_FUNC_DECL genTypeT fastPow(genTypeT x, genTypeU y);
/// Faster than the common pow function but less accurate.
/// @see gtx_fast_exponential
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastPow(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastPow(vecType<L, T, P> const & x);
/// Faster than the common exp function but less accurate.
/// @see gtx_fast_exponential
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastExp(T x);
/// Faster than the common exp function but less accurate.
/// @see gtx_fast_exponential
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastExp(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastExp(vecType<L, T, P> const & x);
/// Faster than the common log function but less accurate.
/// @see gtx_fast_exponential
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastLog(T x);
/// Faster than the common exp2 function but less accurate.
/// @see gtx_fast_exponential
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastLog(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastLog(vecType<L, T, P> const & x);
/// Faster than the common exp2 function but less accurate.
/// @see gtx_fast_exponential
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastExp2(T x);
/// Faster than the common exp2 function but less accurate.
/// @see gtx_fast_exponential
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastExp2(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastExp2(vecType<L, T, P> const & x);
/// Faster than the common log2 function but less accurate.
/// @see gtx_fast_exponential
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastLog2(T x);
/// Faster than the common log2 function but less accurate.
/// @see gtx_fast_exponential
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastLog2(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastLog2(vecType<L, T, P> const & x);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/fast_exponential.inl b/3rdparty/glm/glm/gtx/fast_exponential.inl
index 72f9f8ff927..54fcfcc9a01 100644
--- a/3rdparty/glm/glm/gtx/fast_exponential.inl
+++ b/3rdparty/glm/glm/gtx/fast_exponential.inl
@@ -4,19 +4,19 @@
namespace glm
{
// fastPow:
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastPow(genType x, genType y)
{
return exp(y * log(x));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastPow(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastPow(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
return exp(y * log(x));
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastPow(T x, int y)
{
T f = static_cast<T>(1);
@@ -25,10 +25,10 @@ namespace glm
return f;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastPow(vecType<T, P> const & x, vecType<int, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastPow(vecType<L, T, P> const & x, vecType<L, int, P> const & y)
{
- vecType<T, P> Result(uninitialize);
+ vecType<L, T, P> Result(uninitialize);
for(length_t i = 0, n = x.length(); i < n; ++i)
Result[i] = fastPow(x[i], y[i]);
return Result;
@@ -36,7 +36,7 @@ namespace glm
// fastExp
// Note: This function provides accurate results only for value between -1 and 1, else avoid it.
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastExp(T x)
{
// This has a better looking and same performance in release mode than the following code. However, in debug mode it's slower.
@@ -81,14 +81,14 @@ namespace glm
}
*/
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastExp(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastExp(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastExp, x);
+ return detail::functor1<L, T, T, P>::call(fastExp, x);
}
// fastLog
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastLog(genType x)
{
return std::log(x);
@@ -103,35 +103,35 @@ namespace glm
}
*/
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastLog(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastLog(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastLog, x);
+ return detail::functor1<L, T, T, P>::call(fastLog, x);
}
//fastExp2, ln2 = 0.69314718055994530941723212145818f
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastExp2(genType x)
{
return fastExp(0.69314718055994530941723212145818f * x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastExp2(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastExp2(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastExp2, x);
+ return detail::functor1<L, T, T, P>::call(fastExp2, x);
}
// fastLog2, ln2 = 0.69314718055994530941723212145818f
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastLog2(genType x)
{
return fastLog(x) / 0.69314718055994530941723212145818f;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastLog2(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastLog2(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastLog2, x);
+ return detail::functor1<L, T, T, P>::call(fastLog2, x);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/fast_square_root.hpp b/3rdparty/glm/glm/gtx/fast_square_root.hpp
index 35aa7f3b417..135829b0e0e 100644
--- a/3rdparty/glm/glm/gtx/fast_square_root.hpp
+++ b/3rdparty/glm/glm/gtx/fast_square_root.hpp
@@ -19,6 +19,10 @@
#include "../exponential.hpp"
#include "../geometric.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_fast_square_root extension included")
#endif
@@ -31,55 +35,55 @@ namespace glm
/// Faster than the common sqrt function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fastSqrt(genType x);
/// Faster than the common sqrt function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastSqrt(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastSqrt(vecType<L, T, P> const & x);
/// Faster than the common inversesqrt function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fastInverseSqrt(genType x);
/// Faster than the common inversesqrt function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> fastInverseSqrt(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> fastInverseSqrt(vecType<L, T, P> const & x);
/// Faster than the common length function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fastLength(genType x);
/// Faster than the common length function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL T fastLength(vecType<T, P> const & x);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL T fastLength(vecType<L, T, P> const & x);
/// Faster than the common distance function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fastDistance(genType x, genType y);
/// Faster than the common distance function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL T fastDistance(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL T fastDistance(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Faster than the common normalize function but less accurate.
///
/// @see gtx_fast_square_root extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType fastNormalize(genType const & x);
/// @}
diff --git a/3rdparty/glm/glm/gtx/fast_square_root.inl b/3rdparty/glm/glm/gtx/fast_square_root.inl
index 73950aeccb9..846659ab0a4 100644
--- a/3rdparty/glm/glm/gtx/fast_square_root.inl
+++ b/3rdparty/glm/glm/gtx/fast_square_root.inl
@@ -4,7 +4,7 @@
namespace glm
{
// fastSqrt
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastSqrt(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'fastSqrt' only accept floating-point input");
@@ -12,32 +12,32 @@ namespace glm
return genType(1) / fastInverseSqrt(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastSqrt(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastSqrt(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastSqrt, x);
+ return detail::functor1<L, T, T, P>::call(fastSqrt, x);
}
// fastInversesqrt
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastInverseSqrt(genType x)
{
# ifdef __CUDACC__ // Wordaround for a CUDA compiler bug up to CUDA6
- tvec1<T, P> tmp(detail::compute_inversesqrt<tvec1, genType, lowp, detail::is_aligned<lowp>::value>::call(tvec1<genType, lowp>(x)));
+ vec<1, T, P> tmp(detail::compute_inversesqrt<tvec1, genType, lowp, detail::is_aligned<lowp>::value>::call(vec<1, genType, lowp>(x)));
return tmp.x;
# else
- return detail::compute_inversesqrt<tvec1, genType, highp, detail::is_aligned<highp>::value>::call(tvec1<genType, lowp>(x)).x;
+ return detail::compute_inversesqrt<1, genType, highp, detail::is_aligned<highp>::value>::call(vec<1, genType, lowp>(x)).x;
# endif
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastInverseSqrt(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastInverseSqrt(vecType<L, T, P> const & x)
{
- return detail::compute_inversesqrt<vecType, T, P, detail::is_aligned<P>::value>::call(x);
+ return detail::compute_inversesqrt<L, T, P, detail::is_aligned<P>::value>::call(x);
}
// fastLength
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastLength(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'fastLength' only accept floating-point inputs");
@@ -45,8 +45,8 @@ namespace glm
return abs(x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T fastLength(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T fastLength(vecType<L, T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'fastLength' only accept floating-point inputs");
@@ -54,27 +54,27 @@ namespace glm
}
// fastDistance
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastDistance(genType x, genType y)
{
return fastLength(y - x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T fastDistance(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T fastDistance(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
return fastLength(y - x);
}
// fastNormalize
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType fastNormalize(genType x)
{
return x > genType(0) ? genType(1) : -genType(1);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastNormalize(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastNormalize(vecType<L, T, P> const & x)
{
return x * fastInverseSqrt(dot(x, x));
}
diff --git a/3rdparty/glm/glm/gtx/fast_trigonometry.hpp b/3rdparty/glm/glm/gtx/fast_trigonometry.hpp
index ccb1d227131..d78de72593a 100644
--- a/3rdparty/glm/glm/gtx/fast_trigonometry.hpp
+++ b/3rdparty/glm/glm/gtx/fast_trigonometry.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../gtc/constants.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
#endif
@@ -26,47 +30,47 @@ namespace glm
/// Wrap an angle to [0 2pi[
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T wrapAngle(T angle);
/// Faster than the common sin function but less accurate.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastSin(T angle);
/// Faster than the common cos function but less accurate.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastCos(T angle);
/// Faster than the common tan function but less accurate.
/// Defined between -2pi and 2pi.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastTan(T angle);
/// Faster than the common asin function but less accurate.
/// Defined between -2pi and 2pi.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastAsin(T angle);
/// Faster than the common acos function but less accurate.
/// Defined between -2pi and 2pi.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastAcos(T angle);
/// Faster than the common atan function but less accurate.
/// Defined between -2pi and 2pi.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastAtan(T y, T x);
/// Faster than the common atan function but less accurate.
/// Defined between -2pi and 2pi.
/// From GLM_GTX_fast_trigonometry extension.
- template <typename T>
+ template<typename T>
GLM_FUNC_DECL T fastAtan(T angle);
/// @}
diff --git a/3rdparty/glm/glm/gtx/fast_trigonometry.inl b/3rdparty/glm/glm/gtx/fast_trigonometry.inl
index f576c1720a3..200c371b51b 100644
--- a/3rdparty/glm/glm/gtx/fast_trigonometry.inl
+++ b/3rdparty/glm/glm/gtx/fast_trigonometry.inl
@@ -4,45 +4,45 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> taylorCos(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> taylorCos(vecType<L, T, P> const & x)
{
return static_cast<T>(1)
- - (x * x) / 2.f
- + (x * x * x * x) / 24.f
- - (x * x * x * x * x * x) / 720.f
- + (x * x * x * x * x * x * x * x) / 40320.f;
+ - (x * x) * (1.f / 2.f)
+ + ((x * x) * (x * x)) * (1.f / 24.f)
+ - (((x * x) * (x * x)) * (x * x)) * (1.f / 720.f)
+ + (((x * x) * (x * x)) * ((x * x) * (x * x))) * (1.f / 40320.f);
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T cos_52s(T x)
{
T const xx(x * x);
return (T(0.9999932946) + xx * (T(-0.4999124376) + xx * (T(0.0414877472) + xx * T(-0.0012712095))));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> cos_52s(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> cos_52s(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(cos_52s, x);
+ return detail::functor1<L, T, T, P>::call(cos_52s, x);
}
}//namespace detail
// wrapAngle
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T wrapAngle(T angle)
{
return abs<T>(mod<T>(angle, two_pi<T>()));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> wrapAngle(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> wrapAngle(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(wrapAngle, x);
+ return detail::functor1<L, T, T, P>::call(wrapAngle, x);
}
// cos
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastCos(T x)
{
T const angle(wrapAngle<T>(x));
@@ -57,87 +57,87 @@ namespace detail
return detail::cos_52s(two_pi<T>() - angle);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastCos(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastCos(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastCos, x);
+ return detail::functor1<L, T, T, P>::call(fastCos, x);
}
// sin
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastSin(T x)
{
return fastCos<T>(half_pi<T>() - x);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastSin(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastSin(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastSin, x);
+ return detail::functor1<L, T, T, P>::call(fastSin, x);
}
// tan
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastTan(T x)
{
return x + (x * x * x * T(0.3333333333)) + (x * x * x * x * x * T(0.1333333333333)) + (x * x * x * x * x * x * x * T(0.0539682539));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastTan(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastTan(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastTan, x);
+ return detail::functor1<L, T, T, P>::call(fastTan, x);
}
// asin
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastAsin(T x)
{
return x + (x * x * x * T(0.166666667)) + (x * x * x * x * x * T(0.075)) + (x * x * x * x * x * x * x * T(0.0446428571)) + (x * x * x * x * x * x * x * x * x * T(0.0303819444));// + (x * x * x * x * x * x * x * x * x * x * x * T(0.022372159));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastAsin(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastAsin(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastAsin, x);
+ return detail::functor1<L, T, T, P>::call(fastAsin, x);
}
// acos
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastAcos(T x)
{
return T(1.5707963267948966192313216916398) - fastAsin(x); //(PI / 2)
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastAcos(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastAcos(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastAcos, x);
+ return detail::functor1<L, T, T, P>::call(fastAcos, x);
}
// atan
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastAtan(T y, T x)
{
T sgn = sign(y) * sign(x);
return abs(fastAtan(y / x)) * sgn;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastAtan(vecType<T, P> const & y, vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastAtan(vecType<L, T, P> const & y, vecType<L, T, P> const & x)
{
- return detail::functor2<T, P, vecType>::call(fastAtan, y, x);
+ return detail::functor2<L, T, P>::call(fastAtan, y, x);
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T fastAtan(T x)
{
return x - (x * x * x * T(0.333333333333)) + (x * x * x * x * x * T(0.2)) - (x * x * x * x * x * x * x * T(0.1428571429)) + (x * x * x * x * x * x * x * x * x * T(0.111111111111)) - (x * x * x * x * x * x * x * x * x * x * x * T(0.0909090909));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastAtan(vecType<T, P> const & x)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastAtan(vecType<L, T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(fastAtan, x);
+ return detail::functor1<L, T, T, P>::call(fastAtan, x);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/float_notmalize.inl b/3rdparty/glm/glm/gtx/float_notmalize.inl
index 4dde025685a..665e2fbdc79 100644
--- a/3rdparty/glm/glm/gtx/float_notmalize.inl
+++ b/3rdparty/glm/glm/gtx/float_notmalize.inl
@@ -5,10 +5,10 @@
namespace glm
{
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<float, P> floatNormalize(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, float, P> floatNormalize(vecType<L, T, P> const & v)
{
- return vecType<float, P>(v) / static_cast<float>(std::numeric_limits<T>::max());
+ return vecType<L, float, P>(v) / static_cast<float>(std::numeric_limits<T>::max());
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/gradient_paint.hpp b/3rdparty/glm/glm/gtx/gradient_paint.hpp
index de1f18d3933..50a930ddfd9 100644
--- a/3rdparty/glm/glm/gtx/gradient_paint.hpp
+++ b/3rdparty/glm/glm/gtx/gradient_paint.hpp
@@ -16,6 +16,10 @@
#include "../glm.hpp"
#include "../gtx/optimum_pow.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_gradient_paint extension included")
#endif
@@ -27,20 +31,20 @@ namespace glm
/// Return a color from a radial gradient.
/// @see - gtx_gradient_paint
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T radialGradient(
- tvec2<T, P> const & Center,
+ vec<2, T, P> const & Center,
T const & Radius,
- tvec2<T, P> const & Focal,
- tvec2<T, P> const & Position);
+ vec<2, T, P> const & Focal,
+ vec<2, T, P> const & Position);
/// Return a color from a linear gradient.
/// @see - gtx_gradient_paint
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T linearGradient(
- tvec2<T, P> const & Point0,
- tvec2<T, P> const & Point1,
- tvec2<T, P> const & Position);
+ vec<2, T, P> const & Point0,
+ vec<2, T, P> const & Point1,
+ vec<2, T, P> const & Position);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/gradient_paint.inl b/3rdparty/glm/glm/gtx/gradient_paint.inl
index aaa5ce1401c..ef8b7e4e30e 100644
--- a/3rdparty/glm/glm/gtx/gradient_paint.inl
+++ b/3rdparty/glm/glm/gtx/gradient_paint.inl
@@ -3,17 +3,17 @@
namespace glm
{
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T radialGradient
(
- tvec2<T, P> const & Center,
+ vec<2, T, P> const & Center,
T const & Radius,
- tvec2<T, P> const & Focal,
- tvec2<T, P> const & Position
+ vec<2, T, P> const & Focal,
+ vec<2, T, P> const & Position
)
{
- tvec2<T, P> F = Focal - Center;
- tvec2<T, P> D = Position - Focal;
+ vec<2, T, P> F = Focal - Center;
+ vec<2, T, P> D = Position - Focal;
T Radius2 = pow2(Radius);
T Fx2 = pow2(F.x);
T Fy2 = pow2(F.y);
@@ -23,15 +23,15 @@ namespace glm
return Numerator / Denominator;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T linearGradient
(
- tvec2<T, P> const & Point0,
- tvec2<T, P> const & Point1,
- tvec2<T, P> const & Position
+ vec<2, T, P> const & Point0,
+ vec<2, T, P> const & Point1,
+ vec<2, T, P> const & Position
)
{
- tvec2<T, P> Dist = Point1 - Point0;
+ vec<2, T, P> Dist = Point1 - Point0;
return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/handed_coordinate_space.hpp b/3rdparty/glm/glm/gtx/handed_coordinate_space.hpp
index 2ee5175e86c..614919409dc 100644
--- a/3rdparty/glm/glm/gtx/handed_coordinate_space.hpp
+++ b/3rdparty/glm/glm/gtx/handed_coordinate_space.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
#endif
@@ -26,19 +30,19 @@ namespace glm
//! Return if a trihedron right handed or not.
//! From GLM_GTX_handed_coordinate_space extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool rightHanded(
- tvec3<T, P> const & tangent,
- tvec3<T, P> const & binormal,
- tvec3<T, P> const & normal);
+ vec<3, T, P> const & tangent,
+ vec<3, T, P> const & binormal,
+ vec<3, T, P> const & normal);
//! Return if a trihedron left handed or not.
//! From GLM_GTX_handed_coordinate_space extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool leftHanded(
- tvec3<T, P> const & tangent,
- tvec3<T, P> const & binormal,
- tvec3<T, P> const & normal);
+ vec<3, T, P> const & tangent,
+ vec<3, T, P> const & binormal,
+ vec<3, T, P> const & normal);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/handed_coordinate_space.inl b/3rdparty/glm/glm/gtx/handed_coordinate_space.inl
index 2e55653cb82..d95fcd08c9e 100644
--- a/3rdparty/glm/glm/gtx/handed_coordinate_space.inl
+++ b/3rdparty/glm/glm/gtx/handed_coordinate_space.inl
@@ -3,23 +3,23 @@
namespace glm
{
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool rightHanded
(
- tvec3<T, P> const & tangent,
- tvec3<T, P> const & binormal,
- tvec3<T, P> const & normal
+ vec<3, T, P> const & tangent,
+ vec<3, T, P> const & binormal,
+ vec<3, T, P> const & normal
)
{
return dot(cross(normal, tangent), binormal) > T(0);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool leftHanded
(
- tvec3<T, P> const & tangent,
- tvec3<T, P> const & binormal,
- tvec3<T, P> const & normal
+ vec<3, T, P> const & tangent,
+ vec<3, T, P> const & binormal,
+ vec<3, T, P> const & normal
)
{
return dot(cross(normal, tangent), binormal) < T(0);
diff --git a/3rdparty/glm/glm/gtx/hash.hpp b/3rdparty/glm/glm/gtx/hash.hpp
index 22626188c2c..d457e99aa7d 100644
--- a/3rdparty/glm/glm/gtx/hash.hpp
+++ b/3rdparty/glm/glm/gtx/hash.hpp
@@ -12,6 +12,10 @@
#pragma once
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#include <functional>
#include "../vec2.hpp"
@@ -40,94 +44,94 @@
namespace std
{
- template <typename T, glm::precision P>
- struct hash<glm::tvec1<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::vec<1, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tvec1<T, P> const & v) const;
+ GLM_FUNC_DECL size_t operator()(glm::vec<1, T, P> const & v) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tvec2<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::vec<2, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tvec2<T, P> const & v) const;
+ GLM_FUNC_DECL size_t operator()(glm::vec<2, T, P> const & v) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tvec3<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::vec<3, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tvec3<T, P> const & v) const;
+ GLM_FUNC_DECL size_t operator()(glm::vec<3, T, P> const & v) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tvec4<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::vec<4, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tvec4<T, P> const & v) const;
+ GLM_FUNC_DECL size_t operator()(glm::vec<4, T, P> const & v) const;
};
- template <typename T, glm::precision P>
+ template<typename T, glm::precision P>
struct hash<glm::tquat<T,P>>
{
GLM_FUNC_DECL size_t operator()(glm::tquat<T, P> const & q) const;
};
- template <typename T, glm::precision P>
+ template<typename T, glm::precision P>
struct hash<glm::tdualquat<T,P> >
{
GLM_FUNC_DECL size_t operator()(glm::tdualquat<T,P> const & q) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat2x2<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<2, 2, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat2x2<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<2, 2, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat2x3<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<2, 3, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat2x3<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<2, 3, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat2x4<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<2, 4, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat2x4<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<2, 4, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat3x2<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<3, 2, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat3x2<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<3, 2, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat3x3<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<3, 3, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat3x3<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<3, 3, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat3x4<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<3, 4, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat3x4<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<3, 4, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat4x2<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<4, 2, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat4x2<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<4, 2, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat4x3<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<4, 3, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat4x3<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<4, 3, T,P> const & m) const;
};
- template <typename T, glm::precision P>
- struct hash<glm::tmat4x4<T,P> >
+ template<typename T, glm::precision P>
+ struct hash<glm::mat<4, 4, T,P> >
{
- GLM_FUNC_DECL size_t operator()(glm::tmat4x4<T,P> const & m) const;
+ GLM_FUNC_DECL size_t operator()(glm::mat<4, 4, T,P> const & m) const;
};
} // namespace std
diff --git a/3rdparty/glm/glm/gtx/hash.inl b/3rdparty/glm/glm/gtx/hash.inl
index c42f4f0a81b..1e1e72ff42b 100644
--- a/3rdparty/glm/glm/gtx/hash.inl
+++ b/3rdparty/glm/glm/gtx/hash.inl
@@ -22,15 +22,15 @@ namespace detail
namespace std
{
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tvec1<T, P>>::operator()(glm::tvec1<T, P> const & v) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::vec<1, T, P>>::operator()(glm::vec<1, T, P> const & v) const
{
hash<T> hasher;
return hasher(v.x);
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tvec2<T, P>>::operator()(glm::tvec2<T, P> const & v) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::vec<2, T, P>>::operator()(glm::vec<2, T, P> const & v) const
{
size_t seed = 0;
hash<T> hasher;
@@ -39,8 +39,8 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tvec3<T, P>>::operator()(glm::tvec3<T, P> const & v) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::vec<3, T, P>>::operator()(glm::vec<3, T, P> const & v) const
{
size_t seed = 0;
hash<T> hasher;
@@ -50,8 +50,8 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tvec4<T, P>>::operator()(glm::tvec4<T, P> const & v) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::vec<4, T, P>>::operator()(glm::vec<4, T, P> const & v) const
{
size_t seed = 0;
hash<T> hasher;
@@ -62,7 +62,7 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
+ template<typename T, glm::precision P>
GLM_FUNC_QUALIFIER size_t hash<glm::tquat<T, P>>::operator()(glm::tquat<T,P> const & q) const
{
size_t seed = 0;
@@ -74,7 +74,7 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
+ template<typename T, glm::precision P>
GLM_FUNC_QUALIFIER size_t hash<glm::tdualquat<T, P>>::operator()(glm::tdualquat<T, P> const & q) const
{
size_t seed = 0;
@@ -84,74 +84,74 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat2x2<T, P>>::operator()(glm::tmat2x2<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<2, 2, T, P>>::operator()(glm::mat<2, 2, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec2<T, P>> hasher;
+ hash<glm::vec<2, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat2x3<T, P>>::operator()(glm::tmat2x3<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<2, 3, T, P>>::operator()(glm::mat<2, 3, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec3<T, P>> hasher;
+ hash<glm::vec<3, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat2x4<T, P>>::operator()(glm::tmat2x4<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<2, 4, T, P>>::operator()(glm::mat<2, 4, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec4<T, P>> hasher;
+ hash<glm::vec<4, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat3x2<T, P>>::operator()(glm::tmat3x2<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<3, 2, T, P>>::operator()(glm::mat<3, 2, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec2<T, P>> hasher;
+ hash<glm::vec<2, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
glm::detail::hash_combine(seed, hasher(m[2]));
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat3x3<T, P>>::operator()(glm::tmat3x3<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<3, 3, T, P>>::operator()(glm::mat<3, 3, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec3<T, P>> hasher;
+ hash<glm::vec<3, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
glm::detail::hash_combine(seed, hasher(m[2]));
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat3x4<T, P>>::operator()(glm::tmat3x4<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<3, 4, T, P>>::operator()(glm::mat<3, 4, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec4<T, P>> hasher;
+ hash<glm::vec<4, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
glm::detail::hash_combine(seed, hasher(m[2]));
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat4x2<T,P>>::operator()(glm::tmat4x2<T,P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<4, 2, T,P>>::operator()(glm::mat<4, 2, T,P> const & m) const
{
size_t seed = 0;
- hash<glm::tvec2<T, P>> hasher;
+ hash<glm::vec<2, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
glm::detail::hash_combine(seed, hasher(m[2]));
@@ -159,11 +159,11 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat4x3<T,P>>::operator()(glm::tmat4x3<T,P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<4, 3, T,P>>::operator()(glm::mat<4, 3, T,P> const & m) const
{
size_t seed = 0;
- hash<glm::tvec3<T, P>> hasher;
+ hash<glm::vec<3, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
glm::detail::hash_combine(seed, hasher(m[2]));
@@ -171,11 +171,11 @@ namespace std
return seed;
}
- template <typename T, glm::precision P>
- GLM_FUNC_QUALIFIER size_t hash<glm::tmat4x4<T,P>>::operator()(glm::tmat4x4<T, P> const & m) const
+ template<typename T, glm::precision P>
+ GLM_FUNC_QUALIFIER size_t hash<glm::mat<4, 4, T,P>>::operator()(glm::mat<4, 4, T, P> const& m) const
{
size_t seed = 0;
- hash<glm::tvec4<T, P>> hasher;
+ hash<glm::vec<4, T, P>> hasher;
glm::detail::hash_combine(seed, hasher(m[0]));
glm::detail::hash_combine(seed, hasher(m[1]));
glm::detail::hash_combine(seed, hasher(m[2]));
diff --git a/3rdparty/glm/glm/gtx/integer.hpp b/3rdparty/glm/glm/gtx/integer.hpp
index 1173a58e86c..d96b3d8211b 100644
--- a/3rdparty/glm/glm/gtx/integer.hpp
+++ b/3rdparty/glm/glm/gtx/integer.hpp
@@ -16,6 +16,10 @@
#include "../glm.hpp"
#include "../gtc/integer.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_integer extension included")
#endif
@@ -43,7 +47,7 @@ namespace glm
//! Return the factorial value of a number (!12 max, integer only)
//! From GLM_GTX_integer extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType factorial(genType const & x);
//! 32bit signed integer.
diff --git a/3rdparty/glm/glm/gtx/integer.inl b/3rdparty/glm/glm/gtx/integer.inl
index 3a479e6c5bf..bddfd2caf55 100644
--- a/3rdparty/glm/glm/gtx/integer.inl
+++ b/3rdparty/glm/glm/gtx/integer.inl
@@ -69,7 +69,7 @@ namespace detail
}
// factorial (!12 max, integer only)
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType factorial(genType const & x)
{
genType Temp = x;
@@ -79,30 +79,30 @@ namespace detail
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> factorial(
- tvec2<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> factorial(
+ vec<2, T, P> const & x)
{
- return tvec2<T, P>(
+ return vec<2, T, P>(
factorial(x.x),
factorial(x.y));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> factorial(
- tvec3<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> factorial(
+ vec<3, T, P> const & x)
{
- return tvec3<T, P>(
+ return vec<3, T, P>(
factorial(x.x),
factorial(x.y),
factorial(x.z));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> factorial(
- tvec4<T, P> const & x)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> factorial(
+ vec<4, T, P> const & x)
{
- return tvec4<T, P>(
+ return vec<4, T, P>(
factorial(x.x),
factorial(x.y),
factorial(x.z),
diff --git a/3rdparty/glm/glm/gtx/intersect.hpp b/3rdparty/glm/glm/gtx/intersect.hpp
index 33b6e99bac8..a6a78633e80 100644
--- a/3rdparty/glm/glm/gtx/intersect.hpp
+++ b/3rdparty/glm/glm/gtx/intersect.hpp
@@ -21,6 +21,10 @@
#include "../gtx/closest_point.hpp"
#include "../gtx/vector_query.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_closest_point extension included")
#endif
@@ -33,23 +37,24 @@ namespace glm
//! Compute the intersection of a ray and a plane.
//! Ray direction and plane normal must be unit length.
//! From GLM_GTX_intersect extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL 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.
+ /// Based om Tomas Möller implementation http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/raytri/
//! From GLM_GTX_intersect extension.
- template <typename genType>
+ template<typename T, precision P>
GLM_FUNC_DECL bool intersectRayTriangle(
- genType const & orig, genType const & dir,
- genType const & vert0, genType const & vert1, genType const & vert2,
- genType & baryPosition);
+ vec<3, T, P> const& orig, vec<3, T, P> const& dir,
+ vec<3, T, P> const& v0, vec<3, T, P> const& v1, vec<3, T, P> const& v2,
+ vec<3, T, P>& baryPosition, T& distance);
//! Compute the intersection of a line and a triangle.
//! From GLM_GTX_intersect extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL bool intersectLineTriangle(
genType const & orig, genType const & dir,
genType const & vert0, genType const & vert1, genType const & vert2,
@@ -58,7 +63,7 @@ namespace glm
//! Compute the intersection distance of a ray and a sphere.
//! The ray direction vector is unit length.
//! From GLM_GTX_intersect extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL bool intersectRaySphere(
genType const & rayStarting, genType const & rayNormalizedDirection,
genType const & sphereCenter, typename genType::value_type const sphereRadiusSquered,
@@ -66,7 +71,7 @@ namespace glm
//! Compute the intersection of a ray and a sphere.
//! From GLM_GTX_intersect extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL bool intersectRaySphere(
genType const & rayStarting, genType const & rayNormalizedDirection,
genType const & sphereCenter, const typename genType::value_type sphereRadius,
@@ -74,7 +79,7 @@ namespace glm
//! Compute the intersection of a line and a sphere.
//! From GLM_GTX_intersect extension
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL bool intersectLineSphere(
genType const & point0, genType const & point1,
genType const & sphereCenter, typename genType::value_type sphereRadius,
diff --git a/3rdparty/glm/glm/gtx/intersect.inl b/3rdparty/glm/glm/gtx/intersect.inl
index 0bb7d7f819b..b97b073e6d5 100644
--- a/3rdparty/glm/glm/gtx/intersect.inl
+++ b/3rdparty/glm/glm/gtx/intersect.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool intersectRayPlane
(
genType const & orig, genType const & dir,
@@ -14,7 +14,7 @@ namespace glm
typename genType::value_type d = glm::dot(dir, planeNormal);
typename genType::value_type Epsilon = std::numeric_limits<typename genType::value_type>::epsilon();
- if(d < Epsilon)
+ if(d < -Epsilon)
{
intersectionDistance = glm::dot(planeOrig - orig, planeNormal) / d;
return true;
@@ -23,21 +23,75 @@ namespace glm
return false;
}
- template <typename genType>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER bool intersectRayTriangle
(
- genType const & orig, genType const & dir,
- genType const & v0, genType const & v1, genType const & v2,
- genType & baryPosition
+ vec<3, T, P> const& orig, vec<3, T, P> const& dir,
+ vec<3, T, P> const& vert0, vec<3, T, P> const& vert1, vec<3, T, P> const& vert2,
+ vec<2, T, P>& baryPosition, T& distance
)
{
- genType e1 = v1 - v0;
- genType e2 = v2 - v0;
+ // find vectors for two edges sharing vert0
+ vec<3, T, P> const edge1 = vert1 - vert0;
+ vec<3, T, P> const edge2 = vert2 - vert0;
+
+ // begin calculating determinant - also used to calculate U parameter
+ vec<3, T, P> const p = glm::cross(dir, edge2);
+
+ // if determinant is near zero, ray lies in plane of triangle
+ T const det = glm::dot(edge1, p);
+
+ vec<3, T, P> qvec;
+
+ if(det > std::numeric_limits<T>::epsilon())
+ {
+ // calculate distance from vert0 to ray origin
+ vec<3, T, P> const tvec = orig - vert0;
+
+ // calculate U parameter and test bounds
+ baryPosition.x = glm::dot(tvec, p);
+ if(baryPosition.x < static_cast<T>(0) || baryPosition.x > det)
+ return false;
+
+ // prepare to test V parameter
+ qvec = glm::cross(tvec, edge1);
+
+ // calculate V parameter and test bounds
+ baryPosition.y = glm::dot(dir, qvec);
+ if((baryPosition.y < static_cast<T>(0)) || ((baryPosition.x + baryPosition.y) > det))
+ return false;
+ }
+ else if(det < -std::numeric_limits<T>::epsilon())
+ {
+ // calculate distance from vert0 to ray origin
+ vec<3, T, P> const tvec = orig - vert0;
+
+ // calculate U parameter and test bounds
+ baryPosition.x = glm::dot(tvec, p);
+ if((baryPosition.x > static_cast<T>(0)) || (baryPosition.x < det))
+ return false;
- genType p = glm::cross(dir, e2);
+ // prepare to test V parameter
+ qvec = glm::cross(tvec, edge1);
+
+ // calculate V parameter and test bounds
+ baryPosition.y = glm::dot(dir, qvec);
+ if((baryPosition.y > static_cast<T>(0)) || (baryPosition.x + baryPosition.y < det))
+ return false;
+ }
+ else
+ return false; // ray is parallel to the plane of the triangle
- typename genType::value_type a = glm::dot(e1, p);
+ T inv_det = static_cast<T>(1) / det;
+
+ // calculate distance, ray intersects triangle
+ distance = glm::dot(edge2, qvec) * inv_det;
+ baryPosition *= inv_det;
+
+ return true;
+ }
+/*
typename genType::value_type Epsilon = std::numeric_limits<typename genType::value_type>::epsilon();
if(a < Epsilon && a > -Epsilon)
return false;
@@ -62,8 +116,9 @@ namespace glm
return baryPosition.z >= typename genType::value_type(0.0f);
}
+*/
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool intersectLineTriangle
(
genType const & orig, genType const & dir,
@@ -101,7 +156,7 @@ namespace glm
return true;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool intersectRaySphere
(
genType const & rayStarting, genType const & rayNormalizedDirection,
@@ -122,7 +177,7 @@ namespace glm
return intersectionDistance > Epsilon;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool intersectRaySphere
(
genType const & rayStarting, genType const & rayNormalizedDirection,
@@ -140,7 +195,7 @@ namespace glm
return false;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER bool intersectLineSphere
(
genType const & point0, genType const & point1,
diff --git a/3rdparty/glm/glm/gtx/io.hpp b/3rdparty/glm/glm/gtx/io.hpp
index 52b27a8feaa..c1a2d274b0a 100644
--- a/3rdparty/glm/glm/gtx/io.hpp
+++ b/3rdparty/glm/glm/gtx/io.hpp
@@ -23,6 +23,10 @@
#include "../glm.hpp"
#include "../gtx/quaternion.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_io extension included")
#endif
@@ -40,7 +44,7 @@ namespace glm
{
enum order_type { column_major, row_major};
- template <typename CTy>
+ template<typename CTy>
class format_punct : public std::locale::facet
{
typedef CTy char_type;
@@ -59,17 +63,17 @@ namespace glm
char_type newline;
order_type order;
- explicit format_punct(size_t a = 0);
- explicit format_punct(format_punct const&);
+ GLM_FUNC_DECL explicit format_punct(size_t a = 0);
+ GLM_FUNC_DECL explicit format_punct(format_punct const&);
};
- template <typename CTy, typename CTr = std::char_traits<CTy> >
+ template<typename CTy, typename CTr = std::char_traits<CTy> >
class basic_state_saver {
public:
- explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
- ~basic_state_saver();
+ GLM_FUNC_DECL explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
+ GLM_FUNC_DECL ~basic_state_saver();
private:
@@ -86,25 +90,25 @@ namespace glm
char_type fill_;
locale_type locale_;
- basic_state_saver& operator=(basic_state_saver const&);
+ GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver const&);
};
typedef basic_state_saver<char> state_saver;
typedef basic_state_saver<wchar_t> wstate_saver;
- template <typename CTy, typename CTr = std::char_traits<CTy> >
+ template<typename CTy, typename CTr = std::char_traits<CTy> >
class basic_format_saver
{
public:
- explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
- ~basic_format_saver();
+ GLM_FUNC_DECL explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
+ GLM_FUNC_DECL ~basic_format_saver();
private:
basic_state_saver<CTy> const bss_;
- basic_format_saver& operator=(basic_format_saver const&);
+ GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver const&);
};
typedef basic_format_saver<char> format_saver;
@@ -114,82 +118,82 @@ namespace glm
{
unsigned value;
- explicit precision(unsigned);
+ GLM_FUNC_DECL explicit precision(unsigned);
};
struct width
{
unsigned value;
- explicit width(unsigned);
+ GLM_FUNC_DECL explicit width(unsigned);
};
- template <typename CTy>
+ template<typename CTy>
struct delimeter
{
CTy value[3];
- explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
+ GLM_FUNC_DECL explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
};
struct order
{
order_type value;
- explicit order(order_type);
+ GLM_FUNC_DECL explicit order(order_type);
};
// functions, inlined (inline)
- template <typename FTy, typename CTy, typename CTr>
+ template<typename FTy, typename CTy, typename CTr>
FTy const& get_facet(std::basic_ios<CTy,CTr>&);
- template <typename FTy, typename CTy, typename CTr>
+ template<typename FTy, typename CTy, typename CTr>
std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);
- template <typename FTy, typename CTy, typename CTr>
+ template<typename FTy, typename CTy, typename CTr>
std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision const&);
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width const&);
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> const&);
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order const&);
}//namespace io
- template <typename CTy, typename CTr, typename T, precision P>
+ template<typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec1<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&);
-
- template <typename CTy, typename CTr, typename T, precision P>
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<1, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<2, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<3, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<4, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 2, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 3, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 4, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 2, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 3, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 4, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 2, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 3, T,P> const&);
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 4, T,P> const&);
+
+ template<typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,
- std::pair<tmat4x4<T,P> const, tmat4x4<T,P> const> const &);
+ std::pair<mat<4, 4, T,P> const, mat<4, 4, T,P> const> const &);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/io.inl b/3rdparty/glm/glm/gtx/io.inl
index 849c0ca5baf..e4f72570e29 100644
--- a/3rdparty/glm/glm/gtx/io.inl
+++ b/3rdparty/glm/glm/gtx/io.inl
@@ -10,7 +10,7 @@
namespace glm{
namespace io
{
- template <typename CTy>
+ template<typename CTy>
GLM_FUNC_QUALIFIER format_punct<CTy>::format_punct(size_t a)
: std::locale::facet(a)
, formatted(true)
@@ -24,7 +24,7 @@ namespace io
, order(column_major)
{}
- template <typename CTy>
+ template<typename CTy>
GLM_FUNC_QUALIFIER format_punct<CTy>::format_punct(format_punct const& a)
: std::locale::facet(0)
, formatted(a.formatted)
@@ -38,9 +38,9 @@ namespace io
, order(a.order)
{}
- template <typename CTy> std::locale::id format_punct<CTy>::id;
+ template<typename CTy> std::locale::id format_punct<CTy>::id;
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER basic_state_saver<CTy, CTr>::basic_state_saver(std::basic_ios<CTy, CTr>& a)
: state_(a)
, flags_(a.flags())
@@ -50,7 +50,7 @@ namespace io
, locale_(a.getloc())
{}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER basic_state_saver<CTy, CTr>::~basic_state_saver()
{
state_.imbue(locale_);
@@ -60,14 +60,14 @@ namespace io
state_.flags(flags_);
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER basic_format_saver<CTy, CTr>::basic_format_saver(std::basic_ios<CTy, CTr>& a)
: bss_(a)
{
a.imbue(std::locale(a.getloc(), new format_punct<CTy>(get_facet<format_punct<CTy> >(a))));
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER
basic_format_saver<CTy, CTr>::~basic_format_saver()
{}
@@ -80,7 +80,7 @@ namespace io
: value(a)
{}
- template <typename CTy>
+ template<typename CTy>
GLM_FUNC_QUALIFIER delimeter<CTy>::delimeter(CTy a, CTy b, CTy c)
: value()
{
@@ -93,7 +93,7 @@ namespace io
: value(a)
{}
- template <typename FTy, typename CTy, typename CTr>
+ template<typename FTy, typename CTy, typename CTr>
GLM_FUNC_QUALIFIER FTy const& get_facet(std::basic_ios<CTy, CTr>& ios)
{
if(!std::has_facet<FTy>(ios.getloc()))
@@ -102,35 +102,35 @@ namespace io
return std::use_facet<FTy>(ios.getloc());
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER std::basic_ios<CTy, CTr>& formatted(std::basic_ios<CTy, CTr>& ios)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(ios)).formatted = true;
return ios;
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER std::basic_ios<CTy, CTr>& unformatted(std::basic_ios<CTy, CTr>& ios)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(ios)).formatted = false;
return ios;
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, precision const& a)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)).precision = a.value;
return os;
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, width const& a)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)).width = a.value;
return os;
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, delimeter<CTy> const& a)
{
format_punct<CTy> & fmt(const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)));
@@ -142,7 +142,7 @@ namespace io
return os;
}
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, order const& a)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)).order = a.value;
@@ -152,9 +152,9 @@ namespace io
namespace detail
{
- template <typename CTy, typename CTr, template <typename, precision> class V, typename T, precision P>
+ template<typename CTy, typename CTr, typename V>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>&
- print_vector_on(std::basic_ostream<CTy, CTr>& os, V<T,P> const& a)
+ print_vector_on(std::basic_ostream<CTy, CTr>& os, V const& a)
{
typename std::basic_ostream<CTy, CTr>::sentry const cerberus(os);
@@ -162,7 +162,7 @@ namespace detail
{
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- length_t const& components(type<V, T, P>::components);
+ length_t const& components(type<V>::components);
if(fmt.formatted)
{
@@ -195,41 +195,40 @@ namespace detail
}
}//namespace detail
- template <typename CTy, typename CTr, typename T, precision P>
+ template<typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tquat<T,P> const& a)
{
return detail::print_vector_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec1<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, vec<1, T,P> const& a)
{
return detail::print_vector_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec2<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, vec<2, T,P> const& a)
{
return detail::print_vector_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec3<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, vec<3, T,P> const& a)
{
return detail::print_vector_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec4<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, vec<4, T,P> const& a)
{
return detail::print_vector_on(os, a);
}
namespace detail
{
- template <typename CTy, typename CTr, template <typename, precision> class M, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>&
- print_matrix_on(std::basic_ostream<CTy, CTr>& os, M<T,P> const& a)
+ template<typename CTy, typename CTr, template<length_t, length_t, typename, precision> class M, length_t C, length_t R, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& print_matrix_on(std::basic_ostream<CTy, CTr>& os, M<C, R, T, P> const& a)
{
typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
@@ -237,8 +236,8 @@ namespace detail
{
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- length_t const& cols(type<M, T, P>::cols);
- length_t const& rows(type<M, T, P>::rows);
+ length_t const& cols(type<M<C, R, T, P> >::cols);
+ length_t const& rows(type<M<C, R, T, P> >::rows);
if(fmt.formatted)
{
@@ -314,75 +313,74 @@ namespace detail
}
}//namespace detail
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat2x2<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, mat<2, 2, T, P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat2x3<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, mat<2, 3, T, P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat2x4<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, mat<2, 4, T, P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat3x2<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, mat<3, 2, T,P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat3x3<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, mat<3, 3, T,P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat3x4<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, mat<3, 4, T,P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat4x2<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, mat<4, 2, T,P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat4x3<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, mat<4, 3, T,P> const& a)
{
return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat4x4<T,P> const& a)
+ template<typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, mat<4, 4, T,P> const& a)
{
return detail::print_matrix_on(os, a);
}
namespace detail
{
- template <typename CTy, typename CTr, template <typename, precision> class M, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>&
- print_matrix_pair_on(std::basic_ostream<CTy, CTr>& os, std::pair<M<T, P> const, M<T, P> const> const& a)
+ template<typename CTy, typename CTr, template<length_t, length_t, typename, precision> class M, length_t C, length_t R, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& print_matrix_pair_on(std::basic_ostream<CTy, CTr>& os, std::pair<M<C, R, T, P> const, M<C, R, T, P> const> const& a)
{
typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
if(cerberus)
{
io::format_punct<CTy> const& fmt(io::get_facet<io::format_punct<CTy> >(os));
- M<T,P> const& ml(a.first);
- M<T,P> const& mr(a.second);
- length_t const& cols(type<M, T, P>::cols);
- length_t const& rows(type<M, T, P>::rows);
+ M<C, R, T,P> const& ml(a.first);
+ M<C, R, T,P> const& mr(a.second);
+ length_t const& cols(type<M<C, R, T, P> >::cols);
+ length_t const& rows(type<M<C, R, T, P> >::rows);
if(fmt.formatted)
{
@@ -432,11 +430,11 @@ namespace detail
}
}//namespace detail
- template <typename CTy, typename CTr, typename T, precision P>
+ template<typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(
std::basic_ostream<CTy, CTr> & os,
- std::pair<tmat4x4<T, P> const,
- tmat4x4<T, P> const> const& a)
+ std::pair<mat<4, 4, T, P> const,
+ mat<4, 4, T, P> const> const& a)
{
return detail::print_matrix_pair_on(os, a);
}
diff --git a/3rdparty/glm/glm/gtx/log_base.hpp b/3rdparty/glm/glm/gtx/log_base.hpp
index 7958fc3ec13..577c7914b50 100644
--- a/3rdparty/glm/glm/gtx/log_base.hpp
+++ b/3rdparty/glm/glm/gtx/log_base.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_log_base extension included")
#endif
@@ -26,17 +30,17 @@ namespace glm
/// Logarithm for any base.
/// From GLM_GTX_log_base.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType log(
genType const & x,
genType const & base);
/// Logarithm for any base.
/// From GLM_GTX_log_base.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<T, P> sign(
- vecType<T, P> const & x,
- vecType<T, P> const & base);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, T, P> sign(
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& base);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/log_base.inl b/3rdparty/glm/glm/gtx/log_base.inl
index 8005d1ba377..9155778ad50 100644
--- a/3rdparty/glm/glm/gtx/log_base.inl
+++ b/3rdparty/glm/glm/gtx/log_base.inl
@@ -3,15 +3,15 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base)
{
assert(x != genType(0));
return glm::log(x) / glm::log(base);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> log(vecType<T, P> const & x, vecType<T, P> const & base)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> log(vecType<L, T, P> const & x, vecType<L, T, P> const & base)
{
return glm::log(x) / glm::log(base);
}
diff --git a/3rdparty/glm/glm/gtx/matrix_cross_product.hpp b/3rdparty/glm/glm/gtx/matrix_cross_product.hpp
index d920f4ef022..0b1bb48e9ba 100644
--- a/3rdparty/glm/glm/gtx/matrix_cross_product.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_cross_product.hpp
@@ -16,6 +16,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
#endif
@@ -27,15 +31,15 @@ namespace glm
//! Build a cross product matrix.
//! From GLM_GTX_matrix_cross_product extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> matrixCross3(
- tvec3<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> matrixCross3(
+ vec<3, T, P> const & x);
//! Build a cross product matrix.
//! From GLM_GTX_matrix_cross_product extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> matrixCross4(
- tvec3<T, P> const & x);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> matrixCross4(
+ vec<3, T, P> const & x);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/matrix_cross_product.inl b/3rdparty/glm/glm/gtx/matrix_cross_product.inl
index 16f07e9616a..e1b2fe90148 100644
--- a/3rdparty/glm/glm/gtx/matrix_cross_product.inl
+++ b/3rdparty/glm/glm/gtx/matrix_cross_product.inl
@@ -3,13 +3,13 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> matrixCross3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> matrixCross3
(
- tvec3<T, P> const & x
+ vec<3, T, P> const & x
)
{
- tmat3x3<T, P> Result(T(0));
+ mat<3, 3, T, P> Result(T(0));
Result[0][1] = x.z;
Result[1][0] = -x.z;
Result[0][2] = -x.y;
@@ -19,13 +19,13 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> matrixCross4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> matrixCross4
(
- tvec3<T, P> const & x
+ vec<3, T, P> const & x
)
{
- tmat4x4<T, P> Result(T(0));
+ mat<4, 4, T, P> Result(T(0));
Result[0][1] = x.z;
Result[1][0] = -x.z;
Result[0][2] = -x.y;
diff --git a/3rdparty/glm/glm/gtx/matrix_decompose.hpp b/3rdparty/glm/glm/gtx/matrix_decompose.hpp
index e163f5a35ce..5a9225cea37 100644
--- a/3rdparty/glm/glm/gtx/matrix_decompose.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_decompose.hpp
@@ -20,6 +20,10 @@
#include "../gtc/quaternion.hpp"
#include "../gtc/matrix_transform.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_decompose extension included")
#endif
@@ -31,10 +35,10 @@ namespace glm
/// Decomposes a model matrix to translations, rotation and scale components
/// @see gtx_matrix_decompose
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL bool decompose(
- tmat4x4<T, P> const & modelMatrix,
- tvec3<T, P> & scale, tquat<T, P> & orientation, tvec3<T, P> & translation, tvec3<T, P> & skew, tvec4<T, P> & perspective);
+ mat<4, 4, T, P> const& modelMatrix,
+ vec<3, T, P> & scale, tquat<T, P> & orientation, vec<3, T, P> & translation, vec<3, T, P> & skew, vec<4, T, P> & perspective);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/matrix_decompose.inl b/3rdparty/glm/glm/gtx/matrix_decompose.inl
index 5bf576aca10..3cd58811a1e 100644
--- a/3rdparty/glm/glm/gtx/matrix_decompose.inl
+++ b/3rdparty/glm/glm/gtx/matrix_decompose.inl
@@ -6,17 +6,17 @@ namespace detail
{
/// Make a linear combination of two vectors and return the result.
// result = (a * ascl) + (b * bscl)
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> combine(
- tvec3<T, P> const & a,
- tvec3<T, P> const & b,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> combine(
+ vec<3, T, P> const & a,
+ vec<3, T, P> const & b,
T ascl, T bscl)
{
return (a * ascl) + (b * bscl);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> scale(tvec3<T, P> const& v, T desiredLength)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> scale(vec<3, T, P> const& v, T desiredLength)
{
return v * desiredLength / length(v);
}
@@ -26,10 +26,10 @@ namespace detail
// http://www.opensource.apple.com/source/WebCore/WebCore-514/platform/graphics/transforms/TransformationMatrix.cpp
// Decomposes the mode matrix to translations,rotation scale components
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER bool decompose(tmat4x4<T, P> const & ModelMatrix, tvec3<T, P> & Scale, tquat<T, P> & Orientation, tvec3<T, P> & Translation, tvec3<T, P> & Skew, tvec4<T, P> & Perspective)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER bool decompose(mat<4, 4, T, P> const & ModelMatrix, vec<3, T, P> & Scale, tquat<T, P> & Orientation, vec<3, T, P> & Translation, vec<3, T, P> & Skew, vec<4, T, P> & Perspective)
{
- tmat4x4<T, P> LocalMatrix(ModelMatrix);
+ mat<4, 4, T, P> LocalMatrix(ModelMatrix);
// Normalize the matrix.
if(LocalMatrix[3][3] == static_cast<T>(0))
@@ -41,7 +41,7 @@ namespace detail
// perspectiveMatrix is used to solve for perspective, but it also provides
// an easy way to test for singularity of the upper 3x3 component.
- tmat4x4<T, P> PerspectiveMatrix(LocalMatrix);
+ mat<4, 4, T, P> PerspectiveMatrix(LocalMatrix);
for(length_t i = 0; i < 3; i++)
PerspectiveMatrix[i][3] = static_cast<T>(0);
@@ -55,7 +55,7 @@ namespace detail
if(LocalMatrix[0][3] != static_cast<T>(0) || LocalMatrix[1][3] != static_cast<T>(0) || LocalMatrix[2][3] != static_cast<T>(0))
{
// rightHandSide is the right hand side of the equation.
- tvec4<T, P> RightHandSide;
+ vec<4, T, P> RightHandSide;
RightHandSide[0] = LocalMatrix[0][3];
RightHandSide[1] = LocalMatrix[1][3];
RightHandSide[2] = LocalMatrix[2][3];
@@ -64,8 +64,8 @@ namespace detail
// Solve the equation by inverting PerspectiveMatrix and multiplying
// rightHandSide by the inverse. (This is the easiest way, not
// necessarily the best.)
- tmat4x4<T, P> InversePerspectiveMatrix = glm::inverse(PerspectiveMatrix);// inverse(PerspectiveMatrix, inversePerspectiveMatrix);
- tmat4x4<T, P> TransposedInversePerspectiveMatrix = glm::transpose(InversePerspectiveMatrix);// transposeMatrix4(inversePerspectiveMatrix, transposedInversePerspectiveMatrix);
+ mat<4, 4, T, P> InversePerspectiveMatrix = glm::inverse(PerspectiveMatrix);// inverse(PerspectiveMatrix, inversePerspectiveMatrix);
+ mat<4, 4, T, P> TransposedInversePerspectiveMatrix = glm::transpose(InversePerspectiveMatrix);// transposeMatrix4(inversePerspectiveMatrix, transposedInversePerspectiveMatrix);
Perspective = TransposedInversePerspectiveMatrix * RightHandSide;
// v4MulPointByMatrix(rightHandSide, transposedInversePerspectiveMatrix, perspectivePoint);
@@ -77,14 +77,14 @@ namespace detail
else
{
// No perspective.
- Perspective = tvec4<T, P>(0, 0, 0, 1);
+ Perspective = vec<4, T, P>(0, 0, 0, 1);
}
// Next take care of translation (easy).
- Translation = tvec3<T, P>(LocalMatrix[3]);
- LocalMatrix[3] = tvec4<T, P>(0, 0, 0, LocalMatrix[3].w);
+ Translation = vec<3, T, P>(LocalMatrix[3]);
+ LocalMatrix[3] = vec<4, T, P>(0, 0, 0, LocalMatrix[3].w);
- tvec3<T, P> Row[3], Pdum3;
+ vec<3, T, P> Row[3], Pdum3;
// Now get scale and shear.
for(length_t i = 0; i < 3; ++i)
@@ -125,7 +125,7 @@ namespace detail
{
for(length_t i = 0; i < 3; i++)
{
- Scale.x *= static_cast<T>(-1);
+ Scale[i] *= static_cast<T>(-1);
Row[i] *= static_cast<T>(-1);
}
}
@@ -147,47 +147,34 @@ namespace detail
// ret.rotateZ = 0;
// }
- T s, t, x, y, z, w;
-
- t = Row[0][0] + Row[1][1] + Row[2][2] + static_cast<T>(1);
-
- if(t > static_cast<T>(1e-4))
+ int i, j, k = 0;
+ float root, trace = Row[0].x + Row[1].y + Row[2].z;
+ if(trace > static_cast<T>(0))
{
- s = static_cast<T>(0.5) / sqrt(t);
- w = static_cast<T>(0.25) / s;
- x = (Row[2][1] - Row[1][2]) * s;
- y = (Row[0][2] - Row[2][0]) * s;
- z = (Row[1][0] - Row[0][1]) * s;
- }
- else if(Row[0][0] > Row[1][1] && Row[0][0] > Row[2][2])
- {
- s = sqrt (static_cast<T>(1) + Row[0][0] - Row[1][1] - Row[2][2]) * static_cast<T>(2); // S=4*qx
- x = static_cast<T>(0.25) * s;
- y = (Row[0][1] + Row[1][0]) / s;
- z = (Row[0][2] + Row[2][0]) / s;
- w = (Row[2][1] - Row[1][2]) / s;
- }
- else if(Row[1][1] > Row[2][2])
- {
- s = sqrt (static_cast<T>(1) + Row[1][1] - Row[0][0] - Row[2][2]) * static_cast<T>(2); // S=4*qy
- x = (Row[0][1] + Row[1][0]) / s;
- y = static_cast<T>(0.25) * s;
- z = (Row[1][2] + Row[2][1]) / s;
- w = (Row[0][2] - Row[2][0]) / s;
- }
+ root = sqrt(trace + static_cast<T>(1.0));
+ Orientation.w = static_cast<T>(0.5) * root;
+ root = static_cast<T>(0.5) / root;
+ Orientation.x = root * (Row[1].z - Row[2].y);
+ Orientation.y = root * (Row[2].x - Row[0].z);
+ Orientation.z = root * (Row[0].y - Row[1].x);
+ } // End if > 0
else
- {
- s = sqrt(static_cast<T>(1) + Row[2][2] - Row[0][0] - Row[1][1]) * static_cast<T>(2); // S=4*qz
- x = (Row[0][2] + Row[2][0]) / s;
- y = (Row[1][2] + Row[2][1]) / s;
- z = static_cast<T>(0.25) * s;
- w = (Row[1][0] - Row[0][1]) / s;
- }
-
- Orientation.x = x;
- Orientation.y = y;
- Orientation.z = z;
- Orientation.w = w;
+ {
+ static int Next[3] = {1, 2, 0};
+ i = 0;
+ if(Row[1].y > Row[0].x) i = 1;
+ if(Row[2].z > Row[i][i]) i = 2;
+ j = Next[i];
+ k = Next[j];
+
+ root = sqrt(Row[i][i] - Row[j][j] - Row[k][k] + static_cast<T>(1.0));
+
+ Orientation[i] = static_cast<T>(0.5) * root;
+ root = static_cast<T>(0.5) / root;
+ Orientation[j] = root * (Row[i][j] + Row[j][i]);
+ Orientation[k] = root * (Row[i][k] + Row[k][i]);
+ Orientation.w = root * (Row[j][k] - Row[k][j]);
+ } // End if <= 0
return true;
}
diff --git a/3rdparty/glm/glm/gtx/matrix_interpolation.hpp b/3rdparty/glm/glm/gtx/matrix_interpolation.hpp
index 77a69eac60e..4e7f49dd39c 100644
--- a/3rdparty/glm/glm/gtx/matrix_interpolation.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_interpolation.hpp
@@ -16,6 +16,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
#endif
@@ -27,32 +31,32 @@ namespace glm
/// Get the axis and angle of the rotation from a matrix.
/// From GLM_GTX_matrix_interpolation extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL void axisAngle(
- tmat4x4<T, P> const & mat,
- tvec3<T, P> & axis,
+ mat<4, 4, T, P> const& mat,
+ vec<3, T, P> & axis,
T & angle);
/// Build a matrix from axis and angle.
/// From GLM_GTX_matrix_interpolation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> axisAngleMatrix(
- tvec3<T, P> const & axis,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> axisAngleMatrix(
+ vec<3, T, P> const & axis,
T const angle);
/// Extracts the rotation part of a matrix.
/// From GLM_GTX_matrix_interpolation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> extractMatrixRotation(
- tmat4x4<T, P> const & mat);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> extractMatrixRotation(
+ mat<4, 4, T, P> const& mat);
/// 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.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> interpolate(
- tmat4x4<T, P> const & m1,
- tmat4x4<T, P> const & m2,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> interpolate(
+ mat<4, 4, T, P> const& m1,
+ mat<4, 4, T, P> const& m2,
T const delta);
/// @}
diff --git a/3rdparty/glm/glm/gtx/matrix_interpolation.inl b/3rdparty/glm/glm/gtx/matrix_interpolation.inl
index 8645f967853..8e99ac4dcda 100644
--- a/3rdparty/glm/glm/gtx/matrix_interpolation.inl
+++ b/3rdparty/glm/glm/gtx/matrix_interpolation.inl
@@ -3,11 +3,11 @@
namespace glm
{
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER void axisAngle
(
- tmat4x4<T, P> const & mat,
- tvec3<T, P> & axis,
+ mat<4, 4, T, P> const& mat,
+ vec<3, T, P> & axis,
T & angle
)
{
@@ -25,12 +25,12 @@ namespace glm
return;
}
angle = static_cast<T>(3.1415926535897932384626433832795);
- T xx = (mat[0][0] + (T)1.0) / (T)2.0;
- T yy = (mat[1][1] + (T)1.0) / (T)2.0;
- T zz = (mat[2][2] + (T)1.0) / (T)2.0;
- T xy = (mat[1][0] + mat[0][1]) / (T)4.0;
- T xz = (mat[2][0] + mat[0][2]) / (T)4.0;
- T yz = (mat[2][1] + mat[1][2]) / (T)4.0;
+ T xx = (mat[0][0] + (T)1.0) * (T)0.5;
+ T yy = (mat[1][1] + (T)1.0) * (T)0.5;
+ T zz = (mat[2][2] + (T)1.0) * (T)0.5;
+ T xy = (mat[1][0] + mat[0][1]) * (T)0.25;
+ T xz = (mat[2][0] + mat[0][2]) * (T)0.25;
+ T yz = (mat[2][1] + mat[1][2]) * (T)0.25;
if((xx > yy) && (xx > zz))
{
if (xx < epsilon) {
@@ -72,60 +72,58 @@ namespace glm
T s = sqrt((mat[2][1] - mat[1][2]) * (mat[2][1] - mat[1][2]) + (mat[2][0] - mat[0][2]) * (mat[2][0] - mat[0][2]) + (mat[1][0] - mat[0][1]) * (mat[1][0] - mat[0][1]));
if (glm::abs(s) < T(0.001))
s = (T)1.0;
- angle = acos((mat[0][0] + mat[1][1] + mat[2][2] - (T)1.0) / (T)2.0);
+ angle = acos((mat[0][0] + mat[1][1] + mat[2][2] - (T)1.0) * (T)0.5);
axis.x = (mat[1][2] - mat[2][1]) / s;
axis.y = (mat[2][0] - mat[0][2]) / s;
axis.z = (mat[0][1] - mat[1][0]) / s;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> axisAngleMatrix
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> axisAngleMatrix
(
- tvec3<T, P> const & axis,
+ vec<3, T, P> const & axis,
T const angle
)
{
T c = cos(angle);
T s = sin(angle);
T t = static_cast<T>(1) - c;
- tvec3<T, P> n = normalize(axis);
+ vec<3, T, P> n = normalize(axis);
- return tmat4x4<T, P>(
+ return mat<4, 4, T, P>(
t * n.x * n.x + c, t * n.x * n.y + n.z * s, t * n.x * n.z - n.y * s, T(0),
t * n.x * n.y - n.z * s, t * n.y * n.y + c, t * n.y * n.z + n.x * s, T(0),
t * n.x * n.z + n.y * s, t * n.y * n.z - n.x * s, t * n.z * n.z + c, T(0),
- T(0), T(0), T(0), T(1)
- );
+ T(0), T(0), T(0), T(1));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> extractMatrixRotation
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> extractMatrixRotation
(
- tmat4x4<T, P> const & mat
+ mat<4, 4, T, P> const& m
)
{
- return tmat4x4<T, P>(
- mat[0][0], mat[0][1], mat[0][2], 0.0,
- mat[1][0], mat[1][1], mat[1][2], 0.0,
- mat[2][0], mat[2][1], mat[2][2], 0.0,
- 0.0, 0.0, 0.0, 1.0
- );
+ return mat<4, 4, T, P>(
+ m[0][0], m[0][1], m[0][2], 0.0,
+ m[1][0], m[1][1], m[1][2], 0.0,
+ m[2][0], m[2][1], m[2][2], 0.0,
+ 0.0, 0.0, 0.0, 1.0);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> interpolate
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> interpolate
(
- tmat4x4<T, P> const & m1,
- tmat4x4<T, P> const & m2,
+ mat<4, 4, T, P> const& m1,
+ mat<4, 4, T, P> const& m2,
T const delta
)
{
- tmat4x4<T, P> m1rot = extractMatrixRotation(m1);
- tmat4x4<T, P> dltRotation = m2 * transpose(m1rot);
- tvec3<T, P> dltAxis;
+ mat<4, 4, T, P> m1rot = extractMatrixRotation(m1);
+ mat<4, 4, T, P> dltRotation = m2 * transpose(m1rot);
+ vec<3, T, P> dltAxis;
T dltAngle;
axisAngle(dltRotation, dltAxis, dltAngle);
- tmat4x4<T, P> out = axisAngleMatrix(dltAxis, dltAngle * delta) * m1rot;
+ mat<4, 4, T, P> out = axisAngleMatrix(dltAxis, dltAngle * delta) * m1rot;
out[3][0] = m1[3][0] + delta * (m2[3][0] - m1[3][0]);
out[3][1] = m1[3][1] + delta * (m2[3][1] - m1[3][1]);
out[3][2] = m1[3][2] + delta * (m2[3][2] - m1[3][2]);
diff --git a/3rdparty/glm/glm/gtx/matrix_major_storage.hpp b/3rdparty/glm/glm/gtx/matrix_major_storage.hpp
index 9402abee7b3..90f579674c4 100644
--- a/3rdparty/glm/glm/gtx/matrix_major_storage.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_major_storage.hpp
@@ -16,6 +16,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
#endif
@@ -27,87 +31,87 @@ namespace glm
//! Build a row major matrix from row vectors.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> rowMajor2(
- tvec2<T, P> const & v1,
- tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> rowMajor2(
+ vec<2, T, P> const & v1,
+ vec<2, T, P> const & v2);
//! Build a row major matrix from other matrix.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> rowMajor2(
- tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> rowMajor2(
+ mat<2, 2, T, P> const& m);
//! Build a row major matrix from row vectors.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> rowMajor3(
- tvec3<T, P> const & v1,
- tvec3<T, P> const & v2,
- tvec3<T, P> const & v3);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> rowMajor3(
+ vec<3, T, P> const & v1,
+ vec<3, T, P> const & v2,
+ vec<3, T, P> const & v3);
//! Build a row major matrix from other matrix.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> rowMajor3(
- tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> rowMajor3(
+ mat<3, 3, T, P> const& m);
//! Build a row major matrix from row vectors.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> rowMajor4(
- tvec4<T, P> const & v1,
- tvec4<T, P> const & v2,
- tvec4<T, P> const & v3,
- tvec4<T, P> const & v4);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> rowMajor4(
+ vec<4, T, P> const & v1,
+ vec<4, T, P> const & v2,
+ vec<4, T, P> const & v3,
+ vec<4, T, P> const & v4);
//! Build a row major matrix from other matrix.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> rowMajor4(
- tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> rowMajor4(
+ mat<4, 4, T, P> const& m);
//! Build a column major matrix from column vectors.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> colMajor2(
- tvec2<T, P> const & v1,
- tvec2<T, P> const & v2);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> colMajor2(
+ vec<2, T, P> const & v1,
+ vec<2, T, P> const & v2);
//! Build a column major matrix from other matrix.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> colMajor2(
- tmat2x2<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> colMajor2(
+ mat<2, 2, T, P> const& m);
//! Build a column major matrix from column vectors.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> colMajor3(
- tvec3<T, P> const & v1,
- tvec3<T, P> const & v2,
- tvec3<T, P> const & v3);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> colMajor3(
+ vec<3, T, P> const & v1,
+ vec<3, T, P> const & v2,
+ vec<3, T, P> const & v3);
//! Build a column major matrix from other matrix.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> colMajor3(
- tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> colMajor3(
+ mat<3, 3, T, P> const& m);
//! Build a column major matrix from column vectors.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> colMajor4(
- tvec4<T, P> const & v1,
- tvec4<T, P> const & v2,
- tvec4<T, P> const & v3,
- tvec4<T, P> const & v4);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> colMajor4(
+ vec<4, T, P> const & v1,
+ vec<4, T, P> const & v2,
+ vec<4, T, P> const & v3,
+ vec<4, T, P> const & v4);
//! Build a column major matrix from other matrix.
//! From GLM_GTX_matrix_major_storage extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> colMajor4(
- tmat4x4<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> colMajor4(
+ mat<4, 4, T, P> const& m);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/matrix_major_storage.inl b/3rdparty/glm/glm/gtx/matrix_major_storage.inl
index 709773903df..6a21216f302 100644
--- a/3rdparty/glm/glm/gtx/matrix_major_storage.inl
+++ b/3rdparty/glm/glm/gtx/matrix_major_storage.inl
@@ -3,14 +3,14 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> rowMajor2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> rowMajor2
(
- tvec2<T, P> const & v1,
- tvec2<T, P> const & v2
+ vec<2, T, P> const & v1,
+ vec<2, T, P> const & v2
)
{
- tmat2x2<T, P> Result;
+ mat<2, 2, T, P> Result;
Result[0][0] = v1.x;
Result[1][0] = v1.y;
Result[0][1] = v2.x;
@@ -18,11 +18,11 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> rowMajor2(
- const tmat2x2<T, P>& m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> rowMajor2(
+ const mat<2, 2, T, P>& m)
{
- tmat2x2<T, P> Result;
+ mat<2, 2, T, P> Result;
Result[0][0] = m[0][0];
Result[0][1] = m[1][0];
Result[1][0] = m[0][1];
@@ -30,13 +30,13 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> rowMajor3(
- const tvec3<T, P>& v1,
- const tvec3<T, P>& v2,
- const tvec3<T, P>& v3)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> rowMajor3(
+ const vec<3, T, P>& v1,
+ const vec<3, T, P>& v2,
+ const vec<3, T, P>& v3)
{
- tmat3x3<T, P> Result;
+ mat<3, 3, T, P> Result;
Result[0][0] = v1.x;
Result[1][0] = v1.y;
Result[2][0] = v1.z;
@@ -49,11 +49,11 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> rowMajor3(
- const tmat3x3<T, P>& m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> rowMajor3(
+ const mat<3, 3, T, P>& m)
{
- tmat3x3<T, P> Result;
+ mat<3, 3, T, P> Result;
Result[0][0] = m[0][0];
Result[0][1] = m[1][0];
Result[0][2] = m[2][0];
@@ -66,14 +66,14 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rowMajor4(
- const tvec4<T, P>& v1,
- const tvec4<T, P>& v2,
- const tvec4<T, P>& v3,
- const tvec4<T, P>& v4)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> rowMajor4(
+ const vec<4, T, P>& v1,
+ const vec<4, T, P>& v2,
+ const vec<4, T, P>& v3,
+ const vec<4, T, P>& v4)
{
- tmat4x4<T, P> Result;
+ mat<4, 4, T, P> Result;
Result[0][0] = v1.x;
Result[1][0] = v1.y;
Result[2][0] = v1.z;
@@ -93,11 +93,11 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rowMajor4(
- const tmat4x4<T, P>& m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> rowMajor4(
+ const mat<4, 4, T, P>& m)
{
- tmat4x4<T, P> Result;
+ mat<4, 4, T, P> Result;
Result[0][0] = m[0][0];
Result[0][1] = m[1][0];
Result[0][2] = m[2][0];
@@ -117,51 +117,51 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> colMajor2(
- const tvec2<T, P>& v1,
- const tvec2<T, P>& v2)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> colMajor2(
+ const vec<2, T, P>& v1,
+ const vec<2, T, P>& v2)
{
- return tmat2x2<T, P>(v1, v2);
+ return mat<2, 2, T, P>(v1, v2);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> colMajor2(
- const tmat2x2<T, P>& m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> colMajor2(
+ const mat<2, 2, T, P>& m)
{
- return tmat2x2<T, P>(m);
+ return mat<2, 2, T, P>(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> colMajor3(
- const tvec3<T, P>& v1,
- const tvec3<T, P>& v2,
- const tvec3<T, P>& v3)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> colMajor3(
+ const vec<3, T, P>& v1,
+ const vec<3, T, P>& v2,
+ const vec<3, T, P>& v3)
{
- return tmat3x3<T, P>(v1, v2, v3);
+ return mat<3, 3, T, P>(v1, v2, v3);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> colMajor3(
- const tmat3x3<T, P>& m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> colMajor3(
+ const mat<3, 3, T, P>& m)
{
- return tmat3x3<T, P>(m);
+ return mat<3, 3, T, P>(m);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> colMajor4(
- const tvec4<T, P>& v1,
- const tvec4<T, P>& v2,
- const tvec4<T, P>& v3,
- const tvec4<T, P>& v4)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> colMajor4(
+ const vec<4, T, P>& v1,
+ const vec<4, T, P>& v2,
+ const vec<4, T, P>& v3,
+ const vec<4, T, P>& v4)
{
- return tmat4x4<T, P>(v1, v2, v3, v4);
+ return mat<4, 4, T, P>(v1, v2, v3, v4);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> colMajor4(
- const tmat4x4<T, P>& m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> colMajor4(
+ const mat<4, 4, T, P>& m)
{
- return tmat4x4<T, P>(m);
+ return mat<4, 4, T, P>(m);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/matrix_operation.hpp b/3rdparty/glm/glm/gtx/matrix_operation.hpp
index 3192ae54c6d..853e27cf696 100644
--- a/3rdparty/glm/glm/gtx/matrix_operation.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_operation.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_operation extension included")
#endif
@@ -26,57 +30,57 @@ namespace glm
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> diagonal2x2(
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 2, T, P> diagonal2x2(
+ vec<2, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> diagonal2x3(
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 3, T, P> diagonal2x3(
+ vec<2, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> diagonal2x4(
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<2, 4, T, P> diagonal2x4(
+ vec<2, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> diagonal3x2(
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 2, T, P> diagonal3x2(
+ vec<2, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> diagonal3x3(
- tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> diagonal3x3(
+ vec<3, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> diagonal3x4(
- tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 4, T, P> diagonal3x4(
+ vec<3, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> diagonal4x2(
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 2, T, P> diagonal4x2(
+ vec<2, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x3<T, P> diagonal4x3(
- tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 3, T, P> diagonal4x3(
+ vec<3, T, P> const & v);
//! Build a diagonal matrix.
//! From GLM_GTX_matrix_operation extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> diagonal4x4(
- tvec4<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> diagonal4x4(
+ vec<4, T, P> const & v);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/matrix_operation.inl b/3rdparty/glm/glm/gtx/matrix_operation.inl
index 1553215604a..9816d52e726 100644
--- a/3rdparty/glm/glm/gtx/matrix_operation.inl
+++ b/3rdparty/glm/glm/gtx/matrix_operation.inl
@@ -3,87 +3,87 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> diagonal2x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 2, T, P> diagonal2x2
(
- tvec2<T, P> const & v
+ vec<2, T, P> const & v
)
{
- tmat2x2<T, P> Result(static_cast<T>(1));
+ mat<2, 2, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> diagonal2x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 3, T, P> diagonal2x3
(
- tvec2<T, P> const & v
+ vec<2, T, P> const & v
)
{
- tmat2x3<T, P> Result(static_cast<T>(1));
+ mat<2, 3, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> diagonal2x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<2, 4, T, P> diagonal2x4
(
- tvec2<T, P> const & v
+ vec<2, T, P> const & v
)
{
- tmat2x4<T, P> Result(static_cast<T>(1));
+ mat<2, 4, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> diagonal3x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 2, T, P> diagonal3x2
(
- tvec2<T, P> const & v
+ vec<2, T, P> const & v
)
{
- tmat3x2<T, P> Result(static_cast<T>(1));
+ mat<3, 2, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> diagonal3x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> diagonal3x3
(
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
- tmat3x3<T, P> Result(static_cast<T>(1));
+ mat<3, 3, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
Result[2][2] = v[2];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> diagonal3x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 4, T, P> diagonal3x4
(
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
- tmat3x4<T, P> Result(static_cast<T>(1));
+ mat<3, 4, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
Result[2][2] = v[2];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> diagonal4x4
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> diagonal4x4
(
- tvec4<T, P> const & v
+ vec<4, T, P> const & v
)
{
- tmat4x4<T, P> Result(static_cast<T>(1));
+ mat<4, 4, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
Result[2][2] = v[2];
@@ -91,26 +91,26 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P> diagonal4x3
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 3, T, P> diagonal4x3
(
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
- tmat4x3<T, P> Result(static_cast<T>(1));
+ mat<4, 3, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
Result[2][2] = v[2];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> diagonal4x2
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 2, T, P> diagonal4x2
(
- tvec2<T, P> const & v
+ vec<2, T, P> const & v
)
{
- tmat4x2<T, P> Result(static_cast<T>(1));
+ mat<4, 2, T, P> Result(static_cast<T>(1));
Result[0][0] = v[0];
Result[1][1] = v[1];
return Result;
diff --git a/3rdparty/glm/glm/gtx/matrix_query.hpp b/3rdparty/glm/glm/gtx/matrix_query.hpp
index 25182741760..f686e6d949d 100644
--- a/3rdparty/glm/glm/gtx/matrix_query.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_query.hpp
@@ -18,6 +18,10 @@
#include "../gtx/vector_query.hpp"
#include <limits>
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_query extension included")
#endif
@@ -30,42 +34,42 @@ namespace glm
/// Return whether a matrix a null matrix.
/// From GLM_GTX_matrix_query extension.
template<typename T, precision P>
- GLM_FUNC_DECL bool isNull(tmat2x2<T, P> const & m, T const & epsilon);
+ GLM_FUNC_DECL bool isNull(mat<2, 2, T, P> const & m, T const & epsilon);
/// Return whether a matrix a null matrix.
/// From GLM_GTX_matrix_query extension.
template<typename T, precision P>
- GLM_FUNC_DECL bool isNull(tmat3x3<T, P> const & m, T const & epsilon);
+ GLM_FUNC_DECL bool isNull(mat<3, 3, T, P> const & m, T const & epsilon);
/// Return whether a matrix is a null matrix.
/// From GLM_GTX_matrix_query extension.
template<typename T, precision P>
- GLM_FUNC_DECL bool isNull(tmat4x4<T, P> const & m, T const & epsilon);
+ GLM_FUNC_DECL bool isNull(mat<4, 4, T, P> const & m, T const & epsilon);
/// Return whether a matrix is an identity matrix.
/// From GLM_GTX_matrix_query extension.
- template<typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_DECL bool isIdentity(matType<T, P> const & m, T const & epsilon);
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_DECL bool isIdentity(matType<C, R, T, P> const & m, T const & epsilon);
/// Return whether a matrix is a normalized matrix.
/// From GLM_GTX_matrix_query extension.
template<typename T, precision P>
- GLM_FUNC_DECL bool isNormalized(tmat2x2<T, P> const & m, T const & epsilon);
+ GLM_FUNC_DECL bool isNormalized(mat<2, 2, T, P> const & m, T const & epsilon);
/// Return whether a matrix is a normalized matrix.
/// From GLM_GTX_matrix_query extension.
template<typename T, precision P>
- GLM_FUNC_DECL bool isNormalized(tmat3x3<T, P> const & m, T const & epsilon);
+ GLM_FUNC_DECL bool isNormalized(mat<3, 3, T, P> const & m, T const & epsilon);
/// Return whether a matrix is a normalized matrix.
/// From GLM_GTX_matrix_query extension.
template<typename T, precision P>
- GLM_FUNC_DECL bool isNormalized(tmat4x4<T, P> const & m, T const & epsilon);
+ GLM_FUNC_DECL bool isNormalized(mat<4, 4, T, P> const & m, T const & epsilon);
/// Return whether a matrix is an orthonormalized matrix.
/// From GLM_GTX_matrix_query extension.
- template<typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_DECL bool isOrthogonal(matType<T, P> const & m, T const & epsilon);
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_DECL bool isOrthogonal(matType<C, R, T, P> const & m, T const & epsilon);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/matrix_query.inl b/3rdparty/glm/glm/gtx/matrix_query.inl
index 491b7741ca2..89cc8a3ff22 100644
--- a/3rdparty/glm/glm/gtx/matrix_query.inl
+++ b/3rdparty/glm/glm/gtx/matrix_query.inl
@@ -4,7 +4,7 @@
namespace glm
{
template<typename T, precision P>
- GLM_FUNC_QUALIFIER bool isNull(tmat2x2<T, P> const & m, T const & epsilon)
+ GLM_FUNC_QUALIFIER bool isNull(mat<2, 2, T, P> const & m, T const & epsilon)
{
bool result = true;
for(length_t i = 0; result && i < m.length() ; ++i)
@@ -13,7 +13,7 @@ namespace glm
}
template<typename T, precision P>
- GLM_FUNC_QUALIFIER bool isNull(tmat3x3<T, P> const & m, T const & epsilon)
+ GLM_FUNC_QUALIFIER bool isNull(mat<3, 3, T, P> const & m, T const & epsilon)
{
bool result = true;
for(length_t i = 0; result && i < m.length() ; ++i)
@@ -22,7 +22,7 @@ namespace glm
}
template<typename T, precision P>
- GLM_FUNC_QUALIFIER bool isNull(tmat4x4<T, P> const & m, T const & epsilon)
+ GLM_FUNC_QUALIFIER bool isNull(mat<4, 4, T, P> const & m, T const & epsilon)
{
bool result = true;
for(length_t i = 0; result && i < m.length() ; ++i)
@@ -30,8 +30,8 @@ namespace glm
return result;
}
- template<typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_QUALIFIER bool isIdentity(matType<T, P> const & m, T const & epsilon)
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_QUALIFIER bool isIdentity(matType<C, R, T, P> const & m, T const & epsilon)
{
bool result = true;
for(length_t i = 0; result && i < m[0].length() ; ++i)
@@ -47,14 +47,14 @@ namespace glm
}
template<typename T, precision P>
- GLM_FUNC_QUALIFIER bool isNormalized(tmat2x2<T, P> const & m, T const & epsilon)
+ GLM_FUNC_QUALIFIER bool isNormalized(mat<2, 2, T, P> const & m, T const & epsilon)
{
bool result(true);
for(length_t i = 0; result && i < m.length(); ++i)
result = isNormalized(m[i], epsilon);
for(length_t i = 0; result && i < m.length(); ++i)
{
- typename tmat2x2<T, P>::col_type v;
+ typename mat<2, 2, T, P>::col_type v;
for(length_t j = 0; j < m.length(); ++j)
v[j] = m[j][i];
result = isNormalized(v, epsilon);
@@ -63,14 +63,14 @@ namespace glm
}
template<typename T, precision P>
- GLM_FUNC_QUALIFIER bool isNormalized(tmat3x3<T, P> const & m, T const & epsilon)
+ GLM_FUNC_QUALIFIER bool isNormalized(mat<3, 3, T, P> const & m, T const & epsilon)
{
bool result(true);
for(length_t i = 0; result && i < m.length(); ++i)
result = isNormalized(m[i], epsilon);
for(length_t i = 0; result && i < m.length(); ++i)
{
- typename tmat3x3<T, P>::col_type v;
+ typename mat<3, 3, T, P>::col_type v;
for(length_t j = 0; j < m.length(); ++j)
v[j] = m[j][i];
result = isNormalized(v, epsilon);
@@ -79,14 +79,14 @@ namespace glm
}
template<typename T, precision P>
- GLM_FUNC_QUALIFIER bool isNormalized(tmat4x4<T, P> const & m, T const & epsilon)
+ GLM_FUNC_QUALIFIER bool isNormalized(mat<4, 4, T, P> const & m, T const & epsilon)
{
bool result(true);
for(length_t i = 0; result && i < m.length(); ++i)
result = isNormalized(m[i], epsilon);
for(length_t i = 0; result && i < m.length(); ++i)
{
- typename tmat4x4<T, P>::col_type v;
+ typename mat<4, 4, T, P>::col_type v;
for(length_t j = 0; j < m.length(); ++j)
v[j] = m[j][i];
result = isNormalized(v, epsilon);
@@ -94,8 +94,8 @@ namespace glm
return result;
}
- template<typename T, precision P, template <typename, precision> class matType>
- GLM_FUNC_QUALIFIER bool isOrthogonal(matType<T, P> const & m, T const & epsilon)
+ template<length_t C, length_t R, typename T, precision P, template<length_t, length_t, typename, precision> class matType>
+ GLM_FUNC_QUALIFIER bool isOrthogonal(matType<C, R, T, P> const & m, T const & epsilon)
{
bool result(true);
for(length_t i(0); result && i < m.length() - 1; ++i)
@@ -104,7 +104,7 @@ namespace glm
if(result)
{
- matType<T, P> tmp = transpose(m);
+ matType<C, R, T, P> tmp = transpose(m);
for(length_t i(0); result && i < m.length() - 1 ; ++i)
for(length_t j(i + 1); result && j < m.length(); ++j)
result = areOrthogonal(tmp[i], tmp[j], epsilon);
diff --git a/3rdparty/glm/glm/gtx/matrix_transform_2d.hpp b/3rdparty/glm/glm/gtx/matrix_transform_2d.hpp
index 91f4834e6bc..a8be9bc1ecb 100644
--- a/3rdparty/glm/glm/gtx/matrix_transform_2d.hpp
+++ b/3rdparty/glm/glm/gtx/matrix_transform_2d.hpp
@@ -17,6 +17,9 @@
#include "../mat3x3.hpp"
#include "../vec2.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")
@@ -31,45 +34,45 @@ namespace glm
///
/// @param m Input matrix multiplied by this translation matrix.
/// @param v Coordinates of a translation vector.
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> translate(
- tmat3x3<T, P> const & m,
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> translate(
+ mat<3, 3, T, P> const& m,
+ vec<2, T, P> const & v);
/// Builds a rotation 3 * 3 matrix created from an angle.
///
/// @param m Input matrix multiplied by this translation matrix.
/// @param angle Rotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> rotate(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> rotate(
+ mat<3, 3, T, P> const& m,
T angle);
/// Builds a scale 3 * 3 matrix created from a vector of 2 components.
///
/// @param m Input matrix multiplied by this translation matrix.
/// @param v Coordinates of a scale vector.
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> scale(
- tmat3x3<T, P> const & m,
- tvec2<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> scale(
+ mat<3, 3, T, P> const& m,
+ vec<2, T, P> const & v);
/// Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.
///
/// @param m Input matrix multiplied by this translation matrix.
/// @param y Shear factor.
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> shearX(
+ mat<3, 3, T, P> const& m,
T y);
/// Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.
///
/// @param m Input matrix multiplied by this translation matrix.
/// @param x Shear factor.
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> shearY(
+ mat<3, 3, T, P> const& m,
T x);
/// @}
diff --git a/3rdparty/glm/glm/gtx/matrix_transform_2d.inl b/3rdparty/glm/glm/gtx/matrix_transform_2d.inl
index bea5670ab9c..97ac720b756 100644
--- a/3rdparty/glm/glm/gtx/matrix_transform_2d.inl
+++ b/3rdparty/glm/glm/gtx/matrix_transform_2d.inl
@@ -7,61 +7,61 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> translate(
- tmat3x3<T, P> const & m,
- tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> translate(
+ mat<3, 3, T, P> const& m,
+ vec<2, T, P> const & v)
{
- tmat3x3<T, P> Result(m);
+ mat<3, 3, T, P> Result(m);
Result[2] = m[0] * v[0] + m[1] * v[1] + m[2];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> rotate(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> rotate(
+ mat<3, 3, T, P> const& m,
T angle)
{
T const a = angle;
T const c = cos(a);
T const s = sin(a);
- tmat3x3<T, P> Result(uninitialize);
+ mat<3, 3, T, P> Result(uninitialize);
Result[0] = m[0] * c + m[1] * s;
Result[1] = m[0] * -s + m[1] * c;
Result[2] = m[2];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> scale(
- tmat3x3<T, P> const & m,
- tvec2<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> scale(
+ mat<3, 3, T, P> const& m,
+ vec<2, T, P> const & v)
{
- tmat3x3<T, P> Result(uninitialize);
+ mat<3, 3, T, P> Result(uninitialize);
Result[0] = m[0] * v[0];
Result[1] = m[1] * v[1];
Result[2] = m[2];
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> shearX(
+ mat<3, 3, T, P> const& m,
T y)
{
- tmat3x3<T, P> Result(1);
+ mat<3, 3, T, P> Result(1);
Result[0][1] = y;
return m * Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> shearY(
+ mat<3, 3, T, P> const& m,
T x)
{
- tmat3x3<T, P> Result(1);
+ mat<3, 3, T, P> Result(1);
Result[1][0] = x;
return m * Result;
}
diff --git a/3rdparty/glm/glm/gtx/mixed_product.hpp b/3rdparty/glm/glm/gtx/mixed_product.hpp
index 65861f72138..4d0089395e0 100644
--- a/3rdparty/glm/glm/gtx/mixed_product.hpp
+++ b/3rdparty/glm/glm/gtx/mixed_product.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_mixed_product extension included")
#endif
@@ -25,11 +29,11 @@ namespace glm
/// @{
/// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T mixedProduct(
- tvec3<T, P> const & v1,
- tvec3<T, P> const & v2,
- tvec3<T, P> const & v3);
+ vec<3, T, P> const & v1,
+ vec<3, T, P> const & v2,
+ vec<3, T, P> const & v3);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/mixed_product.inl b/3rdparty/glm/glm/gtx/mixed_product.inl
index a6ede596f9d..9fe088dec15 100644
--- a/3rdparty/glm/glm/gtx/mixed_product.inl
+++ b/3rdparty/glm/glm/gtx/mixed_product.inl
@@ -3,12 +3,12 @@
namespace glm
{
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T mixedProduct
(
- tvec3<T, P> const & v1,
- tvec3<T, P> const & v2,
- tvec3<T, P> const & v3
+ vec<3, T, P> const & v1,
+ vec<3, T, P> const & v2,
+ vec<3, T, P> const & v3
)
{
return dot(cross(v1, v2), v3);
diff --git a/3rdparty/glm/glm/gtx/norm.hpp b/3rdparty/glm/glm/gtx/norm.hpp
index b3cb5283070..729e885a2b4 100644
--- a/3rdparty/glm/glm/gtx/norm.hpp
+++ b/3rdparty/glm/glm/gtx/norm.hpp
@@ -17,6 +17,10 @@
#include "../detail/func_geometric.hpp"
#include "../gtx/quaternion.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_norm extension included")
#endif
@@ -28,56 +32,56 @@ namespace glm
/// Returns the squared length of x.
/// From GLM_GTX_norm extension.
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T length2(
- vecType<T, P> const & x);
+ vecType<L, T, P> const& x);
/// Returns the squared distance between p0 and p1, i.e., length2(p0 - p1).
/// From GLM_GTX_norm extension.
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_DECL T distance2(
- vecType<T, P> const & p0,
- vecType<T, P> const & p1);
+ vecType<L, T, P> const& p0,
+ vecType<L, T, P> const& p1);
//! Returns the L1 norm between x and y.
//! From GLM_GTX_norm extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T l1Norm(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y);
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y);
//! Returns the L1 norm of v.
//! From GLM_GTX_norm extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T l1Norm(
- tvec3<T, P> const & v);
+ vec<3, T, P> const & v);
//! Returns the L2 norm between x and y.
//! From GLM_GTX_norm extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T l2Norm(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y);
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y);
//! Returns the L2 norm of v.
//! From GLM_GTX_norm extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T l2Norm(
- tvec3<T, P> const & x);
+ vec<3, T, P> const & x);
//! Returns the L norm between x and y.
//! From GLM_GTX_norm extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T lxNorm(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y,
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y,
unsigned int Depth);
//! Returns the L norm of v.
//! From GLM_GTX_norm extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T lxNorm(
- tvec3<T, P> const & x,
+ vec<3, T, P> const & x,
unsigned int Depth);
/// @}
diff --git a/3rdparty/glm/glm/gtx/norm.inl b/3rdparty/glm/glm/gtx/norm.inl
index 20954ec7cf4..49b6a0080e7 100644
--- a/3rdparty/glm/glm/gtx/norm.inl
+++ b/3rdparty/glm/glm/gtx/norm.inl
@@ -6,97 +6,97 @@
namespace glm{
namespace detail
{
- template <template <typename, precision> class vecType, typename T, precision P, bool Aligned>
+ template<template<length_t, typename, precision> class vecType, length_t L, typename T, precision P, bool Aligned>
struct compute_length2
{
- GLM_FUNC_QUALIFIER static T call(vecType<T, P> const & v)
+ GLM_FUNC_QUALIFIER static T call(vecType<L, T, P> const & v)
{
return dot(v, v);
}
};
}//namespace detail
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType length2(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'length2' accepts only floating-point inputs");
return x * x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T length2(vecType<T, P> const & v)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T length2(vecType<L, T, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'length2' accepts only floating-point inputs");
- return detail::compute_length2<vecType, T, P, detail::is_aligned<P>::value>::call(v);
+ return detail::compute_length2<vecType, L, T, P, detail::is_aligned<P>::value>::call(v);
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T distance2(T p0, T p1)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'distance2' accepts only floating-point inputs");
return length2(p1 - p0);
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T distance2(vecType<T, P> const & p0, vecType<T, P> const & p1)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T distance2(vecType<L, T, P> const & p0, vecType<L, T, P> const & p1)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'distance2' accepts only floating-point inputs");
return length2(p1 - p0);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T l1Norm
(
- tvec3<T, P> const & a,
- tvec3<T, P> const & b
+ vec<3, T, P> const & a,
+ vec<3, T, P> const & b
)
{
return abs(b.x - a.x) + abs(b.y - a.y) + abs(b.z - a.z);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T l1Norm
(
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
return abs(v.x) + abs(v.y) + abs(v.z);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T l2Norm
(
- tvec3<T, P> const & a,
- tvec3<T, P> const & b
+ vec<3, T, P> const & a,
+ vec<3, T, P> const & b
)
{
return length(b - a);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T l2Norm
(
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
return length(v);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T lxNorm
(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y,
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y,
unsigned int Depth
)
{
return pow(pow(y.x - x.x, T(Depth)) + pow(y.y - x.y, T(Depth)) + pow(y.z - x.z, T(Depth)), T(1) / T(Depth));
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T lxNorm
(
- tvec3<T, P> const & v,
+ vec<3, T, P> const & v,
unsigned int Depth
)
{
diff --git a/3rdparty/glm/glm/gtx/normal.hpp b/3rdparty/glm/glm/gtx/normal.hpp
index 2e0044e37cc..cd99000a8f1 100644
--- a/3rdparty/glm/glm/gtx/normal.hpp
+++ b/3rdparty/glm/glm/gtx/normal.hpp
@@ -16,6 +16,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_normal extension included")
#endif
@@ -27,11 +31,11 @@ namespace glm
//! Computes triangle normal from triangle points.
//! From GLM_GTX_normal extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> triangleNormal(
- tvec3<T, P> const & p1,
- tvec3<T, P> const & p2,
- tvec3<T, P> const & p3);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> triangleNormal(
+ vec<3, T, P> const & p1,
+ vec<3, T, P> const & p2,
+ vec<3, T, P> const & p3);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/normal.inl b/3rdparty/glm/glm/gtx/normal.inl
index e4423176bcb..cdb31dcabf1 100644
--- a/3rdparty/glm/glm/gtx/normal.inl
+++ b/3rdparty/glm/glm/gtx/normal.inl
@@ -3,12 +3,12 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> triangleNormal
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> triangleNormal
(
- tvec3<T, P> const & p1,
- tvec3<T, P> const & p2,
- tvec3<T, P> const & p3
+ vec<3, T, P> const & p1,
+ vec<3, T, P> const & p2,
+ vec<3, T, P> const & p3
)
{
return normalize(cross(p1 - p2, p1 - p3));
diff --git a/3rdparty/glm/glm/gtx/normalize_dot.hpp b/3rdparty/glm/glm/gtx/normalize_dot.hpp
index de650d30c28..a4977d90470 100644
--- a/3rdparty/glm/glm/gtx/normalize_dot.hpp
+++ b/3rdparty/glm/glm/gtx/normalize_dot.hpp
@@ -16,6 +16,10 @@
// Dependency:
#include "../gtx/fast_square_root.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_normalize_dot extension included")
#endif
@@ -29,15 +33,15 @@ namespace glm
/// It's faster that dot(normalize(x), normalize(y)).
///
/// @see gtx_normalize_dot extension.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL T normalizeDot(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL T normalizeDot(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// Normalize parameters and returns the dot product of x and y.
/// Faster that dot(fastNormalize(x), fastNormalize(y)).
///
/// @see gtx_normalize_dot extension.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL T fastNormalizeDot(vecType<T, P> const & x, vecType<T, P> const & y);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL T fastNormalizeDot(vecType<L, T, P> const & x, vecType<L, T, P> const & y);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/normalize_dot.inl b/3rdparty/glm/glm/gtx/normalize_dot.inl
index 0d01ffe2a2b..0a90aaf2dbc 100644
--- a/3rdparty/glm/glm/gtx/normalize_dot.inl
+++ b/3rdparty/glm/glm/gtx/normalize_dot.inl
@@ -3,14 +3,14 @@
namespace glm
{
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T normalizeDot(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T normalizeDot(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y));
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType<T, P> const & x, vecType<T, P> const & y)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType<L, T, P> const & x, vecType<L, T, P> const & y)
{
return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y));
}
diff --git a/3rdparty/glm/glm/gtx/number_precision.hpp b/3rdparty/glm/glm/gtx/number_precision.hpp
index 736d03510e3..225977cc87b 100644
--- a/3rdparty/glm/glm/gtx/number_precision.hpp
+++ b/3rdparty/glm/glm/gtx/number_precision.hpp
@@ -18,6 +18,10 @@
#include "../glm.hpp"
#include "../gtc/type_precision.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_number_precision extension included")
#endif
diff --git a/3rdparty/glm/glm/gtx/optimum_pow.hpp b/3rdparty/glm/glm/gtx/optimum_pow.hpp
index e9510c41d95..849e819520b 100644
--- a/3rdparty/glm/glm/gtx/optimum_pow.hpp
+++ b/3rdparty/glm/glm/gtx/optimum_pow.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_optimum_pow extension included")
#endif
@@ -28,19 +32,19 @@ namespace gtx
/// Returns x raised to the power of 2.
///
/// @see gtx_optimum_pow
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType pow2(genType const & x);
/// Returns x raised to the power of 3.
///
/// @see gtx_optimum_pow
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType pow3(genType const & x);
/// Returns x raised to the power of 4.
///
/// @see gtx_optimum_pow
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType pow4(genType const & x);
/// @}
diff --git a/3rdparty/glm/glm/gtx/optimum_pow.inl b/3rdparty/glm/glm/gtx/optimum_pow.inl
index 2216a7430ed..2e933a23f69 100644
--- a/3rdparty/glm/glm/gtx/optimum_pow.inl
+++ b/3rdparty/glm/glm/gtx/optimum_pow.inl
@@ -3,19 +3,19 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType pow2(genType const & x)
{
return x * x;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType pow3(genType const & x)
{
return x * x * x;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType pow4(genType const & x)
{
return (x * x) * (x * x);
diff --git a/3rdparty/glm/glm/gtx/orthonormalize.hpp b/3rdparty/glm/glm/gtx/orthonormalize.hpp
index 4bea449705c..562de142f35 100644
--- a/3rdparty/glm/glm/gtx/orthonormalize.hpp
+++ b/3rdparty/glm/glm/gtx/orthonormalize.hpp
@@ -18,6 +18,10 @@
#include "../mat3x3.hpp"
#include "../geometric.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_orthonormalize extension included")
#endif
@@ -30,14 +34,14 @@ namespace glm
/// Returns the orthonormalized matrix of m.
///
/// @see gtx_orthonormalize
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> orthonormalize(tmat3x3<T, P> const & m);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> orthonormalize(mat<3, 3, T, P> const & m);
/// Orthonormalizes x according y.
///
/// @see gtx_orthonormalize
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> orthonormalize(tvec3<T, P> const & x, tvec3<T, P> const & y);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> orthonormalize(vec<3, T, P> const & x, vec<3, T, P> const & y);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/orthonormalize.inl b/3rdparty/glm/glm/gtx/orthonormalize.inl
index 4796384ea47..ebdee8c628c 100644
--- a/3rdparty/glm/glm/gtx/orthonormalize.inl
+++ b/3rdparty/glm/glm/gtx/orthonormalize.inl
@@ -3,10 +3,10 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> orthonormalize(tmat3x3<T, P> const & m)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> orthonormalize(mat<3, 3, T, P> const & m)
{
- tmat3x3<T, P> r = m;
+ mat<3, 3, T, P> r = m;
r[0] = normalize(r[0]);
@@ -22,8 +22,8 @@ namespace glm
return r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> orthonormalize(tvec3<T, P> const & x, tvec3<T, P> const & y)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> orthonormalize(vec<3, T, P> const & x, vec<3, T, P> const & y)
{
return normalize(x - y * dot(y, x));
}
diff --git a/3rdparty/glm/glm/gtx/perpendicular.hpp b/3rdparty/glm/glm/gtx/perpendicular.hpp
index 8b6260a9b25..7fe3f5bb073 100644
--- a/3rdparty/glm/glm/gtx/perpendicular.hpp
+++ b/3rdparty/glm/glm/gtx/perpendicular.hpp
@@ -17,6 +17,10 @@
#include "../glm.hpp"
#include "../gtx/projection.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_perpendicular extension included")
#endif
@@ -28,7 +32,7 @@ namespace glm
//! Projects x a perpendicular axis of Normal.
//! From GLM_GTX_perpendicular extension.
- template <typename vecType>
+ template<typename vecType>
GLM_FUNC_DECL vecType perp(
vecType const & x,
vecType const & Normal);
diff --git a/3rdparty/glm/glm/gtx/perpendicular.inl b/3rdparty/glm/glm/gtx/perpendicular.inl
index 08a7a815e15..e490bdd9ee1 100644
--- a/3rdparty/glm/glm/gtx/perpendicular.inl
+++ b/3rdparty/glm/glm/gtx/perpendicular.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename vecType>
+ template<typename vecType>
GLM_FUNC_QUALIFIER vecType perp
(
vecType const & x,
diff --git a/3rdparty/glm/glm/gtx/polar_coordinates.hpp b/3rdparty/glm/glm/gtx/polar_coordinates.hpp
index c647c0faa39..a25fddc28cb 100644
--- a/3rdparty/glm/glm/gtx/polar_coordinates.hpp
+++ b/3rdparty/glm/glm/gtx/polar_coordinates.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_polar_coordinates extension included")
#endif
@@ -27,16 +31,16 @@ namespace glm
/// Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.
///
/// @see gtx_polar_coordinates
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> polar(
- tvec3<T, P> const & euclidean);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> polar(
+ vec<3, T, P> const & euclidean);
/// Convert Polar to Euclidean coordinates.
///
/// @see gtx_polar_coordinates
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> euclidean(
- tvec2<T, P> const & polar);
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> euclidean(
+ vec<2, T, P> const & polar);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/polar_coordinates.inl b/3rdparty/glm/glm/gtx/polar_coordinates.inl
index afc9d2bc1b4..c4e394f557c 100644
--- a/3rdparty/glm/glm/gtx/polar_coordinates.inl
+++ b/3rdparty/glm/glm/gtx/polar_coordinates.inl
@@ -3,32 +3,32 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> polar
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> polar
(
- tvec3<T, P> const & euclidean
+ vec<3, T, P> const & euclidean
)
{
T const Length(length(euclidean));
- tvec3<T, P> const tmp(euclidean / Length);
+ vec<3, T, P> const tmp(euclidean / Length);
T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z));
- return tvec3<T, P>(
+ return vec<3, T, P>(
asin(tmp.y), // latitude
atan(tmp.x, tmp.z), // longitude
xz_dist); // xz distance
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> euclidean
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> euclidean
(
- tvec2<T, P> const & polar
+ vec<2, T, P> const & polar
)
{
T const latitude(polar.x);
T const longitude(polar.y);
- return tvec3<T, P>(
+ return vec<3, T, P>(
cos(latitude) * sin(longitude),
sin(latitude),
cos(latitude) * cos(longitude));
diff --git a/3rdparty/glm/glm/gtx/projection.hpp b/3rdparty/glm/glm/gtx/projection.hpp
index fcddae87034..cab35bf9ad2 100644
--- a/3rdparty/glm/glm/gtx/projection.hpp
+++ b/3rdparty/glm/glm/gtx/projection.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../geometric.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_projection extension included")
#endif
@@ -27,7 +31,7 @@ namespace glm
/// Projects x on Normal.
///
/// @see gtx_projection
- template <typename vecType>
+ template<typename vecType>
GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal);
/// @}
diff --git a/3rdparty/glm/glm/gtx/projection.inl b/3rdparty/glm/glm/gtx/projection.inl
index d21fe83d571..8368669bfb6 100644
--- a/3rdparty/glm/glm/gtx/projection.inl
+++ b/3rdparty/glm/glm/gtx/projection.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename vecType>
+ template<typename vecType>
GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal)
{
return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal;
diff --git a/3rdparty/glm/glm/gtx/quaternion.hpp b/3rdparty/glm/glm/gtx/quaternion.hpp
index 674d7e75568..ad298dae2a8 100644
--- a/3rdparty/glm/glm/gtx/quaternion.hpp
+++ b/3rdparty/glm/glm/gtx/quaternion.hpp
@@ -19,6 +19,10 @@
#include "../gtc/quaternion.hpp"
#include "../gtx/norm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_quaternion extension included")
#endif
@@ -32,16 +36,16 @@ namespace glm
///
/// @see gtx_quaternion
template<typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> cross(
+ GLM_FUNC_DECL vec<3, T, P> cross(
tquat<T, P> const & q,
- tvec3<T, P> const & v);
+ vec<3, T, P> const & v);
//! Compute a cross product between a vector and a quaternion.
///
/// @see gtx_quaternion
template<typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> cross(
- tvec3<T, P> const & v,
+ GLM_FUNC_DECL vec<3, T, P> cross(
+ vec<3, T, P> const & v,
tquat<T, P> const & q);
//! Compute a point on a path according squad equation.
@@ -98,17 +102,17 @@ namespace glm
///
/// @see gtx_quaternion
template<typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rotate(
+ GLM_FUNC_DECL vec<3, T, P> rotate(
tquat<T, P> const & q,
- tvec3<T, P> const & v);
+ vec<3, T, P> const & v);
/// Rotates a 4 components vector by a quaternion.
///
/// @see gtx_quaternion
template<typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> rotate(
+ GLM_FUNC_DECL vec<4, T, P> rotate(
tquat<T, P> const & q,
- tvec4<T, P> const & v);
+ vec<4, T, P> const & v);
/// Extract the real component of a quaternion.
///
@@ -121,14 +125,14 @@ namespace glm
///
/// @see gtx_quaternion
template<typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> toMat3(
+ GLM_FUNC_DECL mat<3, 3, T, P> toMat3(
tquat<T, P> const & x){return mat3_cast(x);}
/// Converts a quaternion to a 4 * 4 matrix.
///
/// @see gtx_quaternion
template<typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> toMat4(
+ GLM_FUNC_DECL mat<4, 4, T, P> toMat4(
tquat<T, P> const & x){return mat4_cast(x);}
/// Converts a 3 * 3 matrix to a quaternion.
@@ -136,14 +140,14 @@ namespace glm
/// @see gtx_quaternion
template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> toQuat(
- tmat3x3<T, P> const & x){return quat_cast(x);}
+ mat<3, 3, T, P> const& x){return quat_cast(x);}
/// Converts a 4 * 4 matrix to a quaternion.
///
/// @see gtx_quaternion
template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> toQuat(
- tmat4x4<T, P> const & x){return quat_cast(x);}
+ mat<4, 4, T, P> const& x){return quat_cast(x);}
/// Quaternion interpolation using the rotation short path.
///
@@ -170,8 +174,8 @@ namespace glm
/// @see gtx_quaternion
template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> rotation(
- tvec3<T, P> const & orig,
- tvec3<T, P> const & dest);
+ vec<3, T, P> const & orig,
+ vec<3, T, P> const & dest);
/// Returns the squared length of x.
///
diff --git a/3rdparty/glm/glm/gtx/quaternion.inl b/3rdparty/glm/glm/gtx/quaternion.inl
index 1a31e947685..7bdcdf601fd 100644
--- a/3rdparty/glm/glm/gtx/quaternion.inl
+++ b/3rdparty/glm/glm/gtx/quaternion.inl
@@ -6,19 +6,19 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> cross(tvec3<T, P> const& v, tquat<T, P> const& q)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> cross(vec<3, T, P> const& v, tquat<T, P> const& q)
{
return inverse(q) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> cross(tquat<T, P> const& q, tvec3<T, P> const& v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> cross(tquat<T, P> const& q, vec<3, T, P> const& v)
{
return q * v;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> squad
(
tquat<T, P> const & q1,
@@ -30,7 +30,7 @@ namespace glm
return mix(mix(q1, q2, h), mix(s1, s2, h), static_cast<T>(2) * (static_cast<T>(1) - h) * h);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> intermediate
(
tquat<T, P> const & prev,
@@ -42,22 +42,22 @@ namespace glm
return exp((log(next + invQuat) + log(prev + invQuat)) / static_cast<T>(-4)) * curr;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> exp(tquat<T, P> const& q)
{
- tvec3<T, P> u(q.x, q.y, q.z);
+ vec<3, T, P> u(q.x, q.y, q.z);
T const Angle = glm::length(u);
if (Angle < epsilon<T>())
return tquat<T, P>();
- tvec3<T, P> const v(u / Angle);
+ vec<3, T, P> const v(u / Angle);
return tquat<T, P>(cos(Angle), sin(Angle) * v);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> log(tquat<T, P> const& q)
{
- tvec3<T, P> u(q.x, q.y, q.z);
+ vec<3, T, P> u(q.x, q.y, q.z);
T Vec3Len = length(u);
if (Vec3Len < epsilon<T>())
@@ -71,13 +71,13 @@ namespace glm
}
else
{
- T QuatLen = sqrt(Vec3Len * Vec3Len + q.w * q.w);
T t = atan(Vec3Len, T(q.w)) / Vec3Len;
- return tquat<T, P>(log(QuatLen), t * q.x, t * q.y, t * q.z);
+ T QuatLen2 = Vec3Len * Vec3Len + q.w * q.w;
+ return tquat<T, P>(static_cast<T>(0.5) * log(QuatLen2), t * q.x, t * q.y, t * q.z);
}
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> pow(tquat<T, P> const & x, T const & y)
{
//Raising to the power of 0 should yield 1
@@ -101,19 +101,19 @@ namespace glm
return tquat<T, P>(cos(NewAngle) * magnitude * Mag, x.x * Div * Mag, x.y * Div * Mag, x.z * Div * Mag);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotate(tquat<T, P> const& q, tvec3<T, P> const& v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rotate(tquat<T, P> const& q, vec<3, T, P> const& v)
{
return q * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> rotate(tquat<T, P> const& q, tvec4<T, P> const& v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> rotate(tquat<T, P> const& q, vec<4, T, P> const& v)
{
return q * v;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T extractRealComponent(tquat<T, P> const& q)
{
T w = static_cast<T>(1) - q.x * q.x - q.y * q.y - q.z * q.z;
@@ -123,13 +123,13 @@ namespace glm
return -sqrt(w);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T length2(tquat<T, P> const& q)
{
return q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> shortMix(tquat<T, P> const& x, tquat<T, P> const& y, T const& a)
{
if(a <= static_cast<T>(0)) return x;
@@ -166,17 +166,17 @@ namespace glm
k0 * x.z + k1 * y2.z);
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> fastMix(tquat<T, P> const& x, tquat<T, P> const& y, T const & a)
{
return glm::normalize(x * (static_cast<T>(1) - a) + (y * a));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> rotation(tvec3<T, P> const& orig, tvec3<T, P> const& dest)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER tquat<T, P> rotation(vec<3, T, P> const& orig, vec<3, T, P> const& dest)
{
T cosTheta = dot(orig, dest);
- tvec3<T, P> rotationAxis;
+ vec<3, T, P> rotationAxis;
if(cosTheta >= static_cast<T>(1) - epsilon<T>())
return quat();
@@ -188,9 +188,9 @@ namespace glm
// So guess one; any will do as long as it's perpendicular to start
// This implementation favors a rotation around the Up axis (Y),
// since it's often what you want to do.
- rotationAxis = cross(tvec3<T, P>(0, 0, 1), orig);
+ rotationAxis = cross(vec<3, T, P>(0, 0, 1), orig);
if(length2(rotationAxis) < epsilon<T>()) // bad luck, they were parallel, try again!
- rotationAxis = cross(tvec3<T, P>(1, 0, 0), orig);
+ rotationAxis = cross(vec<3, T, P>(1, 0, 0), orig);
rotationAxis = normalize(rotationAxis);
return angleAxis(pi<T>(), rotationAxis);
diff --git a/3rdparty/glm/glm/gtx/range.hpp b/3rdparty/glm/glm/gtx/range.hpp
index 00d78b41406..0877b2e455c 100644
--- a/3rdparty/glm/glm/gtx/range.hpp
+++ b/3rdparty/glm/glm/gtx/range.hpp
@@ -15,6 +15,10 @@
// Dependencies
#include "../detail/setup.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if !GLM_HAS_RANGE_FOR
# error "GLM_GTX_range requires C++11 suppport or 'range for'"
#endif
@@ -27,55 +31,55 @@ namespace glm
/// @addtogroup gtx_range
/// @{
- template <typename T, precision P>
- inline length_t components(tvec1<T, P> const & v)
+ template<typename T, precision P>
+ inline length_t components(vec<1, T, P> const & v)
{
return v.length();
}
- template <typename T, precision P>
- inline length_t components(tvec2<T, P> const & v)
+ template<typename T, precision P>
+ inline length_t components(vec<2, T, P> const & v)
{
return v.length();
}
- template <typename T, precision P>
- inline length_t components(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ inline length_t components(vec<3, T, P> const & v)
{
return v.length();
}
- template <typename T, precision P>
- inline length_t components(tvec4<T, P> const & v)
+ template<typename T, precision P>
+ inline length_t components(vec<4, T, P> const & v)
{
return v.length();
}
- template <typename genType>
+ template<typename genType>
inline length_t components(genType const & m)
{
return m.length() * m[0].length();
}
- template <typename genType>
+ template<typename genType>
inline typename genType::value_type const * begin(genType const & v)
{
return value_ptr(v);
}
- template <typename genType>
+ template<typename genType>
inline typename genType::value_type const * end(genType const & v)
{
return begin(v) + components(v);
}
- template <typename genType>
+ template<typename genType>
inline typename genType::value_type * begin(genType& v)
{
return value_ptr(v);
}
- template <typename genType>
+ template<typename genType>
inline typename genType::value_type * end(genType& v)
{
return begin(v) + components(v);
diff --git a/3rdparty/glm/glm/gtx/raw_data.hpp b/3rdparty/glm/glm/gtx/raw_data.hpp
index 2625fd11e07..410a97714f2 100644
--- a/3rdparty/glm/glm/gtx/raw_data.hpp
+++ b/3rdparty/glm/glm/gtx/raw_data.hpp
@@ -16,6 +16,10 @@
#include "../detail/setup.hpp"
#include "../detail/type_int.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_raw_data extension included")
#endif
diff --git a/3rdparty/glm/glm/gtx/rotate_normalized_axis.hpp b/3rdparty/glm/glm/gtx/rotate_normalized_axis.hpp
index f1dfa7b8ce8..229606f54a4 100644
--- a/3rdparty/glm/glm/gtx/rotate_normalized_axis.hpp
+++ b/3rdparty/glm/glm/gtx/rotate_normalized_axis.hpp
@@ -19,6 +19,10 @@
#include "../gtc/epsilon.hpp"
#include "../gtc/quaternion.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
#endif
@@ -37,13 +41,13 @@ namespace glm
///
/// @see gtx_rotate_normalized_axis
/// @see - rotate(T angle, T x, T y, T z)
- /// @see - rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z)
- /// @see - rotate(T angle, tvec3<T, P> const & v)
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> rotateNormalizedAxis(
- tmat4x4<T, P> const & m,
+ /// @see - rotate(mat<4, 4, T, P> const & m, T angle, T x, T y, T z)
+ /// @see - rotate(T angle, vec<3, T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> rotateNormalizedAxis(
+ mat<4, 4, T, P> const& m,
T const & angle,
- tvec3<T, P> const & axis);
+ vec<3, T, P> const & axis);
/// Rotates a quaternion from a vector of 3 components normalized axis and an angle.
///
@@ -52,11 +56,11 @@ namespace glm
/// @param axis Normalized axis of the rotation, must be normalized.
///
/// @see gtx_rotate_normalized_axis
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL tquat<T, P> rotateNormalizedAxis(
tquat<T, P> const & q,
T const & angle,
- tvec3<T, P> const & axis);
+ vec<3, T, P> const & axis);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/rotate_normalized_axis.inl b/3rdparty/glm/glm/gtx/rotate_normalized_axis.inl
index dc1b1a85003..6cfb21b2698 100644
--- a/3rdparty/glm/glm/gtx/rotate_normalized_axis.inl
+++ b/3rdparty/glm/glm/gtx/rotate_normalized_axis.inl
@@ -3,23 +3,23 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotateNormalizedAxis
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> rotateNormalizedAxis
(
- tmat4x4<T, P> const & m,
+ mat<4, 4, T, P> const& m,
T const & angle,
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
T const a = angle;
T const c = cos(a);
T const s = sin(a);
- tvec3<T, P> const axis(v);
+ vec<3, T, P> const axis(v);
- tvec3<T, P> const temp((static_cast<T>(1) - c) * axis);
+ vec<3, T, P> const temp((static_cast<T>(1) - c) * axis);
- tmat4x4<T, P> Rotate(uninitialize);
+ mat<4, 4, T, P> Rotate(uninitialize);
Rotate[0][0] = c + temp[0] * axis[0];
Rotate[0][1] = 0 + temp[0] * axis[1] + s * axis[2];
Rotate[0][2] = 0 + temp[0] * axis[2] - s * axis[1];
@@ -32,7 +32,7 @@ namespace glm
Rotate[2][1] = 0 + temp[2] * axis[1] - s * axis[0];
Rotate[2][2] = c + temp[2] * axis[2];
- tmat4x4<T, P> Result(uninitialize);
+ mat<4, 4, T, P> Result(uninitialize);
Result[0] = m[0] * Rotate[0][0] + m[1] * Rotate[0][1] + m[2] * Rotate[0][2];
Result[1] = m[0] * Rotate[1][0] + m[1] * Rotate[1][1] + m[2] * Rotate[1][2];
Result[2] = m[0] * Rotate[2][0] + m[1] * Rotate[2][1] + m[2] * Rotate[2][2];
@@ -40,15 +40,15 @@ namespace glm
return Result;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER tquat<T, P> rotateNormalizedAxis
(
tquat<T, P> const & q,
T const & angle,
- tvec3<T, P> const & v
+ vec<3, T, P> const & v
)
{
- tvec3<T, P> const Tmp(v);
+ vec<3, T, P> const Tmp(v);
T const AngleRad(angle);
T const Sin = sin(AngleRad * T(0.5));
diff --git a/3rdparty/glm/glm/gtx/rotate_vector.hpp b/3rdparty/glm/glm/gtx/rotate_vector.hpp
index 91d1784d9a7..a1f1ffe9788 100644
--- a/3rdparty/glm/glm/gtx/rotate_vector.hpp
+++ b/3rdparty/glm/glm/gtx/rotate_vector.hpp
@@ -17,6 +17,10 @@
#include "../glm.hpp"
#include "../gtx/transform.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_rotate_vector extension included")
#endif
@@ -33,83 +37,83 @@ namespace glm
/// @param a Interpolation factor. The interpolation is defined beyond the range [0, 1].
///
/// @see gtx_rotate_vector
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> slerp(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> slerp(
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y,
T const & a);
//! Rotate a two dimensional vector.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> rotate(
- tvec2<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<2, T, P> rotate(
+ vec<2, T, P> const & v,
T const & angle);
//! Rotate a three dimensional vector around an axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rotate(
- tvec3<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rotate(
+ vec<3, T, P> const & v,
T const & angle,
- tvec3<T, P> const & normal);
+ vec<3, T, P> const & normal);
//! Rotate a four dimensional vector around an axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> rotate(
- tvec4<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> rotate(
+ vec<4, T, P> const & v,
T const & angle,
- tvec3<T, P> const & normal);
+ vec<3, T, P> const & normal);
//! Rotate a three dimensional vector around the X axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rotateX(
- tvec3<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rotateX(
+ vec<3, T, P> const & v,
T const & angle);
//! Rotate a three dimensional vector around the Y axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rotateY(
- tvec3<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rotateY(
+ vec<3, T, P> const & v,
T const & angle);
//! Rotate a three dimensional vector around the Z axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> rotateZ(
- tvec3<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<3, T, P> rotateZ(
+ vec<3, T, P> const & v,
T const & angle);
//! Rotate a four dimentionnals vector around the X axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> rotateX(
- tvec4<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> rotateX(
+ vec<4, T, P> const & v,
T const & angle);
//! Rotate a four dimensional vector around the X axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> rotateY(
- tvec4<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> rotateY(
+ vec<4, T, P> const & v,
T const & angle);
//! Rotate a four dimensional vector around the X axis.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tvec4<T, P> rotateZ(
- tvec4<T, P> const & v,
+ template<typename T, precision P>
+ GLM_FUNC_DECL vec<4, T, P> rotateZ(
+ vec<4, T, P> const & v,
T const & angle);
//! Build a rotation matrix from a normal and a up vector.
//! From GLM_GTX_rotate_vector extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> orientation(
- tvec3<T, P> const & Normal,
- tvec3<T, P> const & Up);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> orientation(
+ vec<3, T, P> const & Normal,
+ vec<3, T, P> const & Up);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/rotate_vector.inl b/3rdparty/glm/glm/gtx/rotate_vector.inl
index 5620e96c53b..7361c37d45e 100644
--- a/3rdparty/glm/glm/gtx/rotate_vector.inl
+++ b/3rdparty/glm/glm/gtx/rotate_vector.inl
@@ -3,11 +3,11 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> slerp
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> slerp
(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y,
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y,
T const & a
)
{
@@ -25,14 +25,14 @@ namespace glm
return x * t1 + y * t2;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> rotate
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, T, P> rotate
(
- tvec2<T, P> const & v,
+ vec<2, T, P> const & v,
T const & angle
)
{
- tvec2<T, P> Result;
+ vec<2, T, P> Result;
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -41,47 +41,47 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotate
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rotate
(
- tvec3<T, P> const & v,
+ vec<3, T, P> const & v,
T const & angle,
- tvec3<T, P> const & normal
+ vec<3, T, P> const & normal
)
{
- return tmat3x3<T, P>(glm::rotate(angle, normal)) * v;
+ return mat<3, 3, T, P>(glm::rotate(angle, normal)) * v;
}
/*
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotateGTX(
- const tvec3<T, P>& x,
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rotateGTX(
+ const vec<3, T, P>& x,
T angle,
- const tvec3<T, P>& normal)
+ const vec<3, T, P>& normal)
{
const T Cos = cos(radians(angle));
const T Sin = sin(radians(angle));
return x * Cos + ((x * normal) * (T(1) - Cos)) * normal + cross(x, normal) * Sin;
}
*/
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> rotate
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> rotate
(
- tvec4<T, P> const & v,
+ vec<4, T, P> const & v,
T const & angle,
- tvec3<T, P> const & normal
+ vec<3, T, P> const & normal
)
{
return rotate(angle, normal) * v;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotateX
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rotateX
(
- tvec3<T, P> const & v,
+ vec<3, T, P> const & v,
T const & angle
)
{
- tvec3<T, P> Result(v);
+ vec<3, T, P> Result(v);
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -90,14 +90,14 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotateY
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rotateY
(
- tvec3<T, P> const & v,
+ vec<3, T, P> const & v,
T const & angle
)
{
- tvec3<T, P> Result = v;
+ vec<3, T, P> Result = v;
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -106,14 +106,14 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotateZ
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, T, P> rotateZ
(
- tvec3<T, P> const & v,
+ vec<3, T, P> const & v,
T const & angle
)
{
- tvec3<T, P> Result = v;
+ vec<3, T, P> Result = v;
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -122,14 +122,14 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> rotateX
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> rotateX
(
- tvec4<T, P> const & v,
+ vec<4, T, P> const & v,
T const & angle
)
{
- tvec4<T, P> Result = v;
+ vec<4, T, P> Result = v;
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -138,14 +138,14 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> rotateY
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> rotateY
(
- tvec4<T, P> const & v,
+ vec<4, T, P> const & v,
T const & angle
)
{
- tvec4<T, P> Result = v;
+ vec<4, T, P> Result = v;
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -154,14 +154,14 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> rotateZ
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, T, P> rotateZ
(
- tvec4<T, P> const & v,
+ vec<4, T, P> const & v,
T const & angle
)
{
- tvec4<T, P> Result = v;
+ vec<4, T, P> Result = v;
T const Cos(cos(angle));
T const Sin(sin(angle));
@@ -170,17 +170,17 @@ namespace glm
return Result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> orientation
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> orientation
(
- tvec3<T, P> const & Normal,
- tvec3<T, P> const & Up
+ vec<3, T, P> const & Normal,
+ vec<3, T, P> const & Up
)
{
if(all(equal(Normal, Up)))
- return tmat4x4<T, P>(T(1));
+ return mat<4, 4, T, P>(T(1));
- tvec3<T, P> RotationAxis = cross(Up, Normal);
+ vec<3, T, P> RotationAxis = cross(Up, Normal);
T Angle = acos(dot(Normal, Up));
return rotate(Angle, RotationAxis);
diff --git a/3rdparty/glm/glm/gtx/scalar_multiplication.hpp b/3rdparty/glm/glm/gtx/scalar_multiplication.hpp
index 695e841c3a7..568391c1240 100644
--- a/3rdparty/glm/glm/gtx/scalar_multiplication.hpp
+++ b/3rdparty/glm/glm/gtx/scalar_multiplication.hpp
@@ -14,6 +14,10 @@
#include "../detail/setup.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if !GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC)
# error "GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC"
#endif
@@ -26,26 +30,26 @@
namespace glm
{
- template <typename T, typename Vec>
+ template<typename T, typename Vec>
using return_type_scalar_multiplication = typename std::enable_if<
!std::is_same<T, float>::value // T may not be a float
&& std::is_arithmetic<T>::value, Vec // But it may be an int or double (no vec3 or mat3, ...)
>::type;
#define GLM_IMPLEMENT_SCAL_MULT(Vec) \
- template <typename T> \
+ template<typename T> \
return_type_scalar_multiplication<T, Vec> \
operator*(T const & s, Vec rh){ \
return rh *= static_cast<float>(s); \
} \
\
- template <typename T> \
+ template<typename T> \
return_type_scalar_multiplication<T, Vec> \
operator*(Vec lh, T const & s){ \
return lh *= static_cast<float>(s); \
} \
\
- template <typename T> \
+ template<typename T> \
return_type_scalar_multiplication<T, Vec> \
operator/(Vec lh, T const & s){ \
return lh *= 1.0f / s; \
diff --git a/3rdparty/glm/glm/gtx/scalar_relational.hpp b/3rdparty/glm/glm/gtx/scalar_relational.hpp
index 969571657cc..a06ca37ae71 100644
--- a/3rdparty/glm/glm/gtx/scalar_relational.hpp
+++ b/3rdparty/glm/glm/gtx/scalar_relational.hpp
@@ -15,6 +15,10 @@
// Dependency:
#include "../glm.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_extend extension included")
#endif
diff --git a/3rdparty/glm/glm/gtx/scalar_relational.inl b/3rdparty/glm/glm/gtx/scalar_relational.inl
index 709da04c9c1..ba9ec9d828c 100644
--- a/3rdparty/glm/glm/gtx/scalar_relational.inl
+++ b/3rdparty/glm/glm/gtx/scalar_relational.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool lessThan
(
T const & x,
@@ -13,7 +13,7 @@ namespace glm
return x < y;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool lessThanEqual
(
T const & x,
@@ -23,7 +23,7 @@ namespace glm
return x <= y;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool greaterThan
(
T const & x,
@@ -33,7 +33,7 @@ namespace glm
return x > y;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool greaterThanEqual
(
T const & x,
@@ -43,7 +43,7 @@ namespace glm
return x >= y;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool equal
(
T const & x,
@@ -53,7 +53,7 @@ namespace glm
return x == y;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER bool notEqual
(
T const & x,
diff --git a/3rdparty/glm/glm/gtx/spline.hpp b/3rdparty/glm/glm/gtx/spline.hpp
index 333a5bce137..28fb77381b2 100644
--- a/3rdparty/glm/glm/gtx/spline.hpp
+++ b/3rdparty/glm/glm/gtx/spline.hpp
@@ -16,6 +16,10 @@
#include "../glm.hpp"
#include "../gtx/optimum_pow.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_spline extension included")
#endif
@@ -27,7 +31,7 @@ namespace glm
/// Return a point from a catmull rom curve.
/// @see gtx_spline extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType catmullRom(
genType const & v1,
genType const & v2,
@@ -37,7 +41,7 @@ namespace glm
/// Return a point from a hermite curve.
/// @see gtx_spline extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType hermite(
genType const & v1,
genType const & t1,
@@ -47,7 +51,7 @@ namespace glm
/// Return a point from a cubic curve.
/// @see gtx_spline extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType cubic(
genType const & v1,
genType const & v2,
diff --git a/3rdparty/glm/glm/gtx/spline.inl b/3rdparty/glm/glm/gtx/spline.inl
index fcd33828898..21269a8ec9a 100644
--- a/3rdparty/glm/glm/gtx/spline.inl
+++ b/3rdparty/glm/glm/gtx/spline.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType catmullRom
(
genType const & v1,
@@ -26,7 +26,7 @@ namespace glm
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType hermite
(
genType const & v1,
@@ -48,7 +48,7 @@ namespace glm
return f1 * v1 + f2 * v2 + f3 * t1 + f4 * t2;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType cubic
(
genType const & v1,
diff --git a/3rdparty/glm/glm/gtx/std_based_type.hpp b/3rdparty/glm/glm/gtx/std_based_type.hpp
index ea1791b3c35..70530bbec1b 100644
--- a/3rdparty/glm/glm/gtx/std_based_type.hpp
+++ b/3rdparty/glm/glm/gtx/std_based_type.hpp
@@ -16,6 +16,10 @@
#include "../glm.hpp"
#include <cstdlib>
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_std_based_type extension included")
#endif
@@ -27,35 +31,35 @@ namespace glm
/// Vector type based of one std::size_t component.
/// @see GLM_GTX_std_based_type
- typedef tvec1<std::size_t, defaultp> size1;
+ typedef vec<1, std::size_t, defaultp> size1;
/// Vector type based of two std::size_t components.
/// @see GLM_GTX_std_based_type
- typedef tvec2<std::size_t, defaultp> size2;
+ typedef vec<2, std::size_t, defaultp> size2;
/// Vector type based of three std::size_t components.
/// @see GLM_GTX_std_based_type
- typedef tvec3<std::size_t, defaultp> size3;
+ typedef vec<3, std::size_t, defaultp> size3;
/// Vector type based of four std::size_t components.
/// @see GLM_GTX_std_based_type
- typedef tvec4<std::size_t, defaultp> size4;
+ typedef vec<4, std::size_t, defaultp> size4;
/// Vector type based of one std::size_t component.
/// @see GLM_GTX_std_based_type
- typedef tvec1<std::size_t, defaultp> size1_t;
+ typedef vec<1, std::size_t, defaultp> size1_t;
/// Vector type based of two std::size_t components.
/// @see GLM_GTX_std_based_type
- typedef tvec2<std::size_t, defaultp> size2_t;
+ typedef vec<2, std::size_t, defaultp> size2_t;
/// Vector type based of three std::size_t components.
/// @see GLM_GTX_std_based_type
- typedef tvec3<std::size_t, defaultp> size3_t;
+ typedef vec<3, std::size_t, defaultp> size3_t;
/// Vector type based of four std::size_t components.
/// @see GLM_GTX_std_based_type
- typedef tvec4<std::size_t, defaultp> size4_t;
+ typedef vec<4, std::size_t, defaultp> size4_t;
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/string_cast.hpp b/3rdparty/glm/glm/gtx/string_cast.hpp
index d2b9fc6a7a6..41f8cc7ad2e 100644
--- a/3rdparty/glm/glm/gtx/string_cast.hpp
+++ b/3rdparty/glm/glm/gtx/string_cast.hpp
@@ -2,7 +2,6 @@
/// @file glm/gtx/string_cast.hpp
///
/// @see core (dependence)
-/// @see gtc_half_float (dependence)
/// @see gtx_integer (dependence)
/// @see gtx_quaternion (dependence)
///
@@ -22,6 +21,11 @@
#include "../gtc/quaternion.hpp"
#include "../gtx/dual_quaternion.hpp"
#include <string>
+#include <cmath>
+
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
#if(GLM_COMPILER & GLM_COMPILER_CUDA)
# error "GLM_GTX_string_cast is not supported on CUDA compiler"
@@ -38,8 +42,8 @@ namespace glm
/// Create a string from a GLM vector or matrix typed variable.
/// @see gtx_string_cast extension.
- template <template <typename, precision> class matType, typename T, precision P>
- GLM_FUNC_DECL std::string to_string(matType<T, P> const & x);
+ template<typename genType>
+ GLM_FUNC_DECL std::string to_string(genType const& x);
/// @}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/string_cast.inl b/3rdparty/glm/glm/gtx/string_cast.inl
index 19f136b7cc8..0bf73a54f6b 100644
--- a/3rdparty/glm/glm/gtx/string_cast.inl
+++ b/3rdparty/glm/glm/gtx/string_cast.inl
@@ -30,119 +30,119 @@ namespace detail
static const char* LabelTrue = "true";
static const char* LabelFalse = "false";
- template <typename T, bool isFloat = false>
+ template<typename T, bool isFloat = false>
struct literal
{
GLM_FUNC_QUALIFIER static char const * value() {return "%d";};
};
- template <typename T>
+ template<typename T>
struct literal<T, true>
{
GLM_FUNC_QUALIFIER static char const * value() {return "%f";};
};
# if GLM_MODEL == GLM_MODEL_32 && GLM_COMPILER && GLM_COMPILER_VC
- template <>
+ template<>
struct literal<uint64_t, false>
{
GLM_FUNC_QUALIFIER static char const * value() {return "%lld";};
};
- template <>
+ template<>
struct literal<int64_t, false>
{
GLM_FUNC_QUALIFIER static char const * value() {return "%lld";};
};
# endif//GLM_MODEL == GLM_MODEL_32 && GLM_COMPILER && GLM_COMPILER_VC
- template <typename T>
+ template<typename T>
struct prefix{};
- template <>
+ template<>
struct prefix<float>
{
GLM_FUNC_QUALIFIER static char const * value() {return "";};
};
- template <>
+ template<>
struct prefix<double>
{
GLM_FUNC_QUALIFIER static char const * value() {return "d";};
};
- template <>
+ template<>
struct prefix<bool>
{
GLM_FUNC_QUALIFIER static char const * value() {return "b";};
};
- template <>
+ template<>
struct prefix<uint8_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "u8";};
};
- template <>
+ template<>
struct prefix<int8_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "i8";};
};
- template <>
+ template<>
struct prefix<uint16_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "u16";};
};
- template <>
+ template<>
struct prefix<int16_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "i16";};
};
- template <>
+ template<>
struct prefix<uint32_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "u";};
};
- template <>
+ template<>
struct prefix<int32_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "i";};
};
- template <>
+ template<>
struct prefix<uint64_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "u64";};
};
- template <>
+ template<>
struct prefix<int64_t>
{
GLM_FUNC_QUALIFIER static char const * value() {return "i64";};
};
- template <template <typename, precision> class matType, typename T, precision P>
+ template<typename matType>
struct compute_to_string
{};
- template <precision P>
- struct compute_to_string<tvec1, bool, P>
+ template<precision P>
+ struct compute_to_string<vec<1, bool, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec1<bool, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<1, bool, P> const & x)
{
return detail::format("bvec1(%s)",
x[0] ? detail::LabelTrue : detail::LabelFalse);
}
};
- template <precision P>
- struct compute_to_string<tvec2, bool, P>
+ template<precision P>
+ struct compute_to_string<vec<2, bool, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec2<bool, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<2, bool, P> const & x)
{
return detail::format("bvec2(%s, %s)",
x[0] ? detail::LabelTrue : detail::LabelFalse,
@@ -150,10 +150,10 @@ namespace detail
}
};
- template <precision P>
- struct compute_to_string<tvec3, bool, P>
+ template<precision P>
+ struct compute_to_string<vec<3, bool, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec3<bool, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<3, bool, P> const & x)
{
return detail::format("bvec3(%s, %s, %s)",
x[0] ? detail::LabelTrue : detail::LabelFalse,
@@ -162,10 +162,10 @@ namespace detail
}
};
- template <precision P>
- struct compute_to_string<tvec4, bool, P>
+ template<precision P>
+ struct compute_to_string<vec<4, bool, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec4<bool, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<4, bool, P> const & x)
{
return detail::format("bvec4(%s, %s, %s, %s)",
x[0] ? detail::LabelTrue : detail::LabelFalse,
@@ -175,10 +175,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tvec1, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<vec<1, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec1<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<1, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -190,10 +190,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tvec2, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<vec<2, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec2<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<2, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -205,10 +205,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tvec3, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<vec<3, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec3<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<3, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -220,10 +220,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tvec4, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<vec<4, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tvec4<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(vec<4, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -236,10 +236,10 @@ namespace detail
};
- template <typename T, precision P>
- struct compute_to_string<tmat2x2, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<2, 2, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat2x2<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<2, 2, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -254,10 +254,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat2x3, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<2, 3, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat2x3<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<2, 3, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -272,10 +272,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat2x4, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<2, 4, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat2x4<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<2, 4, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -290,10 +290,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat3x2, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<3, 2, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat3x2<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<3, 2, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -310,10 +310,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat3x3, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<3, 3, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat3x3<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<3, 3, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -330,10 +330,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat3x4, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<3, 4, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat3x4<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<3, 4, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -350,10 +350,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat4x2, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<4, 2, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat4x2<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<4, 2, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -372,10 +372,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat4x3, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<4, 3, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat4x3<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<4, 3, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -394,10 +394,10 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tmat4x4, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<mat<4, 4, T, P> >
{
- GLM_FUNC_QUALIFIER static std::string call(tmat4x4<T, P> const & x)
+ GLM_FUNC_QUALIFIER static std::string call(mat<4, 4, T, P> const & x)
{
char const * PrefixStr = prefix<T>::value();
char const * LiteralStr = literal<T, std::numeric_limits<T>::is_iec559>::value();
@@ -417,8 +417,8 @@ namespace detail
};
- template <typename T, precision P>
- struct compute_to_string<tquat, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<tquat<T, P> >
{
GLM_FUNC_QUALIFIER static std::string call(tquat<T, P> const & x)
{
@@ -432,8 +432,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_to_string<tdualquat, T, P>
+ template<typename T, precision P>
+ struct compute_to_string<tdualquat<T, P> >
{
GLM_FUNC_QUALIFIER static std::string call(tdualquat<T, P> const & x)
{
@@ -449,10 +449,10 @@ namespace detail
}//namespace detail
-template <template <typename, precision> class matType, typename T, precision P>
-GLM_FUNC_QUALIFIER std::string to_string(matType<T, P> const & x)
+template<class matType>
+GLM_FUNC_QUALIFIER std::string to_string(matType const& x)
{
- return detail::compute_to_string<matType, T, P>::call(x);
+ return detail::compute_to_string<matType>::call(x);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/transform.hpp b/3rdparty/glm/glm/gtx/transform.hpp
index 365748b9e34..f6023c6513e 100644
--- a/3rdparty/glm/glm/gtx/transform.hpp
+++ b/3rdparty/glm/glm/gtx/transform.hpp
@@ -19,6 +19,10 @@
#include "../glm.hpp"
#include "../gtc/matrix_transform.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_transform extension included")
#endif
@@ -31,24 +35,24 @@ namespace glm
/// Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
/// @see gtc_matrix_transform
/// @see gtx_transform
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> translate(
- tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> translate(
+ vec<3, T, P> const & v);
/// Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians.
/// @see gtc_matrix_transform
/// @see gtx_transform
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> rotate(
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> rotate(
T angle,
- tvec3<T, P> const & v);
+ vec<3, T, P> const & v);
/// Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
/// @see gtc_matrix_transform
/// @see gtx_transform
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> scale(
- tvec3<T, P> const & v);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> scale(
+ vec<3, T, P> const & v);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/transform.inl b/3rdparty/glm/glm/gtx/transform.inl
index 516d8661a3a..bd855049c4c 100644
--- a/3rdparty/glm/glm/gtx/transform.inl
+++ b/3rdparty/glm/glm/gtx/transform.inl
@@ -3,22 +3,22 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> translate(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> translate(vec<3, T, P> const & v)
{
- return translate(tmat4x4<T, P>(static_cast<T>(1)), v);
+ return translate(mat<4, 4, T, P>(static_cast<T>(1)), v);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate(T angle, tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> rotate(T angle, vec<3, T, P> const & v)
{
- return rotate(tmat4x4<T, P>(static_cast<T>(1)), angle, v);
+ return rotate(mat<4, 4, T, P>(static_cast<T>(1)), angle, v);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scale(tvec3<T, P> const & v)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> scale(vec<3, T, P> const & v)
{
- return scale(tmat4x4<T, P>(static_cast<T>(1)), v);
+ return scale(mat<4, 4, T, P>(static_cast<T>(1)), v);
}
}//namespace glm
diff --git a/3rdparty/glm/glm/gtx/transform2.hpp b/3rdparty/glm/glm/gtx/transform2.hpp
index bf5fbc9ee6e..957bd3a8179 100644
--- a/3rdparty/glm/glm/gtx/transform2.hpp
+++ b/3rdparty/glm/glm/gtx/transform2.hpp
@@ -17,6 +17,10 @@
#include "../glm.hpp"
#include "../gtx/transform.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_transform2 extension included")
#endif
@@ -28,76 +32,76 @@ namespace glm
//! Transforms a matrix with a shearing on X axis.
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> shearX2D(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> shearX2D(
+ mat<3, 3, T, P> const& m,
T y);
//! Transforms a matrix with a shearing on Y axis.
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> shearY2D(
- tmat3x3<T, P> const & m,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> shearY2D(
+ mat<3, 3, T, P> const& m,
T x);
//! Transforms a matrix with a shearing on X axis
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> shearX3D(
- const tmat4x4<T, P> & m,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> shearX3D(
+ const mat<4, 4, T, P> & m,
T y,
T z);
//! Transforms a matrix with a shearing on Y axis.
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> shearY3D(
- const tmat4x4<T, P> & m,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> shearY3D(
+ const mat<4, 4, T, P> & m,
T x,
T z);
//! Transforms a matrix with a shearing on Z axis.
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> shearZ3D(
- const tmat4x4<T, P> & m,
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> shearZ3D(
+ const mat<4, 4, T, P> & m,
T x,
T y);
- //template <typename T> GLM_FUNC_QUALIFIER tmat4x4<T, P> shear(const tmat4x4<T, P> & m, shearPlane, planePoint, angle)
+ //template<typename T> GLM_FUNC_QUALIFIER mat<4, 4, T, P> shear(const mat<4, 4, T, P> & m, shearPlane, planePoint, angle)
// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
// - dot(PointOnPlane, normal) * OnPlaneVector 1
// Reflect functions seem to don't work
- //template <typename T> tmat3x3<T, P> reflect2D(const tmat3x3<T, P> & m, const tvec3<T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
- //template <typename T> tmat4x4<T, P> reflect3D(const tmat4x4<T, P> & m, const tvec3<T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+ //template<typename T> mat<3, 3, T, P> reflect2D(const mat<3, 3, T, P> & m, const vec<3, T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+ //template<typename T> mat<4, 4, T, P> reflect3D(const mat<4, 4, T, P> & m, const vec<3, T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
//! Build planar projection matrix along normal axis.
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> proj2D(
- const tmat3x3<T, P> & m,
- const tvec3<T, P>& normal);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<3, 3, T, P> proj2D(
+ const mat<3, 3, T, P> & m,
+ const vec<3, T, P>& normal);
//! Build planar projection matrix along normal axis.
//! From GLM_GTX_transform2 extension.
- template <typename T, precision P>
- GLM_FUNC_DECL tmat4x4<T, P> proj3D(
- const tmat4x4<T, P> & m,
- const tvec3<T, P>& normal);
+ template<typename T, precision P>
+ GLM_FUNC_DECL mat<4, 4, T, P> proj3D(
+ const mat<4, 4, T, P> & m,
+ const vec<3, T, P>& normal);
//! Build a scale bias matrix.
//! From GLM_GTX_transform2 extension.
- template <typename valType, precision P>
- GLM_FUNC_DECL tmat4x4<valType, P> scaleBias(
+ template<typename valType, precision P>
+ GLM_FUNC_DECL mat<4, 4, valType, P> scaleBias(
valType scale,
valType bias);
//! Build a scale bias matrix.
//! From GLM_GTX_transform2 extension.
- template <typename valType, precision P>
- GLM_FUNC_DECL tmat4x4<valType, P> scaleBias(
- tmat4x4<valType, P> const & m,
+ template<typename valType, precision P>
+ GLM_FUNC_DECL mat<4, 4, valType, P> scaleBias(
+ mat<4, 4, valType, P> const & m,
valType scale,
valType bias);
diff --git a/3rdparty/glm/glm/gtx/transform2.inl b/3rdparty/glm/glm/gtx/transform2.inl
index b65bd3dba1a..557e93cdf01 100644
--- a/3rdparty/glm/glm/gtx/transform2.inl
+++ b/3rdparty/glm/glm/gtx/transform2.inl
@@ -3,53 +3,53 @@
namespace glm
{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX2D(tmat3x3<T, P> const& m, T s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> shearX2D(mat<3, 3, T, P> const& m, T s)
{
- tmat3x3<T, P> r(1);
- r[0][1] = s;
+ mat<3, 3, T, P> r(1);
+ r[1][0] = s;
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY2D(tmat3x3<T, P> const& m, T s)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> shearY2D(mat<3, 3, T, P> const& m, T s)
{
- tmat3x3<T, P> r(1);
- r[1][0] = s;
+ mat<3, 3, T, P> r(1);
+ r[0][1] = s;
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> shearX3D(tmat4x4<T, P> const& m, T s, T t)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> shearX3D(mat<4, 4, T, P> const& m, T s, T t)
{
- tmat4x4<T, P> r(1);
- r[1][0] = s;
- r[2][0] = t;
+ mat<4, 4, T, P> r(1);
+ r[0][1] = s;
+ r[0][2] = t;
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> shearY3D(tmat4x4<T, P> const& m, T s, T t)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> shearY3D(mat<4, 4, T, P> const& m, T s, T t)
{
- tmat4x4<T, P> r(1);
- r[0][1] = s;
- r[2][1] = t;
+ mat<4, 4, T, P> r(1);
+ r[1][0] = s;
+ r[1][2] = t;
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> shearZ3D(tmat4x4<T, P> const& m, T s, T t)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> shearZ3D(mat<4, 4, T, P> const& m, T s, T t)
{
- tmat4x4<T, P> r(1);
- r[0][2] = s;
- r[1][2] = t;
+ mat<4, 4, T, P> r(1);
+ r[2][0] = s;
+ r[2][1] = t;
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> reflect2D(tmat3x3<T, P> const& m, tvec3<T, P> const& normal)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> reflect2D(mat<3, 3, T, P> const& m, vec<3, T, P> const& normal)
{
- tmat3x3<T, P> r(static_cast<T>(1));
+ mat<3, 3, T, P> r(static_cast<T>(1));
r[0][0] = static_cast<T>(1) - static_cast<T>(2) * normal.x * normal.x;
r[0][1] = -static_cast<T>(2) * normal.x * normal.y;
r[1][0] = -static_cast<T>(2) * normal.x * normal.y;
@@ -57,10 +57,10 @@ namespace glm
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> reflect3D(tmat4x4<T, P> const& m, tvec3<T, P> const& normal)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> reflect3D(mat<4, 4, T, P> const& m, vec<3, T, P> const& normal)
{
- tmat4x4<T, P> r(static_cast<T>(1));
+ mat<4, 4, T, P> r(static_cast<T>(1));
r[0][0] = static_cast<T>(1) - static_cast<T>(2) * normal.x * normal.x;
r[0][1] = -static_cast<T>(2) * normal.x * normal.y;
r[0][2] = -static_cast<T>(2) * normal.x * normal.z;
@@ -75,12 +75,12 @@ namespace glm
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> proj2D(
- const tmat3x3<T, P>& m,
- const tvec3<T, P>& normal)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<3, 3, T, P> proj2D(
+ const mat<3, 3, T, P>& m,
+ const vec<3, T, P>& normal)
{
- tmat3x3<T, P> r(static_cast<T>(1));
+ mat<3, 3, T, P> r(static_cast<T>(1));
r[0][0] = static_cast<T>(1) - normal.x * normal.x;
r[0][1] = - normal.x * normal.y;
r[1][0] = - normal.x * normal.y;
@@ -88,12 +88,12 @@ namespace glm
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> proj3D(
- const tmat4x4<T, P>& m,
- const tvec3<T, P>& normal)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> proj3D(
+ const mat<4, 4, T, P>& m,
+ const vec<3, T, P>& normal)
{
- tmat4x4<T, P> r(static_cast<T>(1));
+ mat<4, 4, T, P> r(static_cast<T>(1));
r[0][0] = static_cast<T>(1) - normal.x * normal.x;
r[0][1] = - normal.x * normal.y;
r[0][2] = - normal.x * normal.z;
@@ -106,19 +106,19 @@ namespace glm
return m * r;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scaleBias(T scale, T bias)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> scaleBias(T scale, T bias)
{
- tmat4x4<T, P> result;
- result[3] = tvec4<T, P>(tvec3<T, P>(bias), static_cast<T>(1));
+ mat<4, 4, T, P> result;
+ result[3] = vec<4, T, P>(vec<3, T, P>(bias), static_cast<T>(1));
result[0][0] = scale;
result[1][1] = scale;
result[2][2] = scale;
return result;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scaleBias(tmat4x4<T, P> const& m, T scale, T bias)
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER mat<4, 4, T, P> scaleBias(mat<4, 4, T, P> const& m, T scale, T bias)
{
return m * scaleBias(scale, bias);
}
diff --git a/3rdparty/glm/glm/gtx/type_aligned.hpp b/3rdparty/glm/glm/gtx/type_aligned.hpp
index 8962a6f8df7..4e9effee94e 100644
--- a/3rdparty/glm/glm/gtx/type_aligned.hpp
+++ b/3rdparty/glm/glm/gtx/type_aligned.hpp
@@ -18,6 +18,10 @@
// Dependency:
#include "../gtc/type_precision.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_type_aligned extension included")
#endif
diff --git a/3rdparty/glm/glm/gtx/type_trait.hpp b/3rdparty/glm/glm/gtx/type_trait.hpp
index 0207a06d424..4f0ba9b9b46 100644
--- a/3rdparty/glm/glm/gtx/type_trait.hpp
+++ b/3rdparty/glm/glm/gtx/type_trait.hpp
@@ -12,6 +12,10 @@
#pragma once
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
// Dependency:
#include "../detail/type_vec2.hpp"
#include "../detail/type_vec3.hpp"
@@ -37,7 +41,7 @@ namespace glm
/// @addtogroup gtx_type_trait
/// @{
- template <template <typename, precision> class genType, typename T, precision P>
+ template<typename T>
struct type
{
static bool const is_vec = false;
@@ -48,56 +52,20 @@ namespace glm
static length_t const rows = 0;
};
- template <typename T, precision P>
- struct type<tvec1, T, P>
- {
- static bool const is_vec = true;
- static bool const is_mat = false;
- static bool const is_quat = false;
- enum
- {
- components = 1
- };
- };
-
- template <typename T, precision P>
- struct type<tvec2, T, P>
- {
- static bool const is_vec = true;
- static bool const is_mat = false;
- static bool const is_quat = false;
- enum
- {
- components = 2
- };
- };
-
- template <typename T, precision P>
- struct type<tvec3, T, P>
+ template<length_t L, typename T, precision P>
+ struct type<vec<L, T, P> >
{
static bool const is_vec = true;
static bool const is_mat = false;
static bool const is_quat = false;
enum
{
- components = 3
- };
- };
-
- template <typename T, precision P>
- struct type<tvec4, T, P>
- {
- static bool const is_vec = true;
- static bool const is_mat = false;
- static bool const is_quat = false;
- enum
- {
- components = 4
+ components = L
};
};
- template <typename T, precision P>
- struct type<tmat2x2, T, P>
+ template<typename T, precision P>
+ struct type<mat<2, 2, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -110,8 +78,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat2x3, T, P>
+ template<typename T, precision P>
+ struct type<mat<2, 3, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -124,8 +92,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat2x4, T, P>
+ template<typename T, precision P>
+ struct type<mat<2, 4, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -138,8 +106,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat3x2, T, P>
+ template<typename T, precision P>
+ struct type<mat<3, 2, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -152,8 +120,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat3x3, T, P>
+ template<typename T, precision P>
+ struct type<mat<3, 3, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -166,8 +134,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat3x4, T, P>
+ template<typename T, precision P>
+ struct type<mat<3, 4, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -180,8 +148,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat4x2, T, P>
+ template<typename T, precision P>
+ struct type<mat<4, 2, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -194,8 +162,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat4x3, T, P>
+ template<typename T, precision P>
+ struct type<mat<4, 3, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -208,8 +176,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tmat4x4, T, P>
+ template<typename T, precision P>
+ struct type<mat<4, 4, T, P> >
{
static bool const is_vec = false;
static bool const is_mat = true;
@@ -222,8 +190,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tquat, T, P>
+ template<typename T, precision P>
+ struct type<tquat<T, P> >
{
static bool const is_vec = false;
static bool const is_mat = false;
@@ -234,8 +202,8 @@ namespace glm
};
};
- template <typename T, precision P>
- struct type<tdualquat, T, P>
+ template<typename T, precision P>
+ struct type<tdualquat<T, P> >
{
static bool const is_vec = false;
static bool const is_mat = false;
diff --git a/3rdparty/glm/glm/gtx/vec_swizzle.hpp b/3rdparty/glm/glm/gtx/vec_swizzle.hpp
new file mode 100644
index 00000000000..c325d30cafc
--- /dev/null
+++ b/3rdparty/glm/glm/gtx/vec_swizzle.hpp
@@ -0,0 +1,2778 @@
+/// @ref gtx_vec_swizzle
+/// @file glm/gtx/vec_swizzle.hpp
+///
+/// @see core (dependence)
+///
+/// @defgroup gtx_vec_swizzle GLM_GTX_vec_swizzle
+/// @ingroup gtx
+///
+/// @brief Functions to perform swizzle operation.
+///
+/// <glm/gtx/vec_swizzle.hpp> need to be included to use these functionalities.
+
+#pragma once
+
+#include "../glm.hpp"
+
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
+namespace glm {
+ // xx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xx(const glm::vec<1, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xx(const glm::vec<2, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xx(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xx(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.x);
+ }
+
+ // xy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xy(const glm::vec<2, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xy(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xy(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.y);
+ }
+
+ // xz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xz(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xz(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.z);
+ }
+
+ // xw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> xw(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.x, v.w);
+ }
+
+ // yx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yx(const glm::vec<2, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yx(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yx(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.x);
+ }
+
+ // yy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yy(const glm::vec<2, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yy(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yy(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.y);
+ }
+
+ // yz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yz(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yz(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.z);
+ }
+
+ // yw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> yw(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.y, v.w);
+ }
+
+ // zx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zx(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zx(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.x);
+ }
+
+ // zy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zy(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zy(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.y);
+ }
+
+ // zz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zz(const glm::vec<3, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zz(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.z);
+ }
+
+ // zw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> zw(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.z, v.w);
+ }
+
+ // wx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> wx(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.w, v.x);
+ }
+
+ // wy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> wy(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.w, v.y);
+ }
+
+ // wz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> wz(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.w, v.z);
+ }
+
+ // ww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<2, T, P> ww(const glm::vec<4, T, P> &v) {
+ return glm::vec<2, T, P>(v.w, v.w);
+ }
+
+ // xxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxx(const glm::vec<1, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxx(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.x);
+ }
+
+ // xxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxy(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.y);
+ }
+
+ // xxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.z);
+ }
+
+ // xxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.x, v.w);
+ }
+
+ // xyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyx(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.x);
+ }
+
+ // xyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyy(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.y);
+ }
+
+ // xyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.z);
+ }
+
+ // xyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.y, v.w);
+ }
+
+ // xzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.x);
+ }
+
+ // xzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.y);
+ }
+
+ // xzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.z);
+ }
+
+ // xzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.z, v.w);
+ }
+
+ // xwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.w, v.x);
+ }
+
+ // xwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.w, v.y);
+ }
+
+ // xwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.w, v.z);
+ }
+
+ // xww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> xww(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.x, v.w, v.w);
+ }
+
+ // yxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxx(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.x);
+ }
+
+ // yxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxy(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.y);
+ }
+
+ // yxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.z);
+ }
+
+ // yxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.x, v.w);
+ }
+
+ // yyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyx(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.x);
+ }
+
+ // yyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyy(const glm::vec<2, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.y);
+ }
+
+ // yyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.z);
+ }
+
+ // yyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.y, v.w);
+ }
+
+ // yzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.x);
+ }
+
+ // yzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.y);
+ }
+
+ // yzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.z);
+ }
+
+ // yzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.z, v.w);
+ }
+
+ // ywx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> ywx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.w, v.x);
+ }
+
+ // ywy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> ywy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.w, v.y);
+ }
+
+ // ywz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> ywz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.w, v.z);
+ }
+
+ // yww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> yww(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.y, v.w, v.w);
+ }
+
+ // zxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.x);
+ }
+
+ // zxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.y);
+ }
+
+ // zxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.z);
+ }
+
+ // zxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.x, v.w);
+ }
+
+ // zyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.x);
+ }
+
+ // zyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.y);
+ }
+
+ // zyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.z);
+ }
+
+ // zyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.y, v.w);
+ }
+
+ // zzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.x);
+ }
+
+ // zzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.y);
+ }
+
+ // zzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.z);
+ }
+
+ // zzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.z, v.w);
+ }
+
+ // zwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.w, v.x);
+ }
+
+ // zwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.w, v.y);
+ }
+
+ // zwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.w, v.z);
+ }
+
+ // zww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> zww(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.z, v.w, v.w);
+ }
+
+ // wxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.x, v.x);
+ }
+
+ // wxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.x, v.y);
+ }
+
+ // wxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.x, v.z);
+ }
+
+ // wxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.x, v.w);
+ }
+
+ // wyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.y, v.x);
+ }
+
+ // wyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.y, v.y);
+ }
+
+ // wyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.y, v.z);
+ }
+
+ // wyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.y, v.w);
+ }
+
+ // wzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.z, v.x);
+ }
+
+ // wzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.z, v.y);
+ }
+
+ // wzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.z, v.z);
+ }
+
+ // wzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.z, v.w);
+ }
+
+ // wwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.w, v.x);
+ }
+
+ // wwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.w, v.y);
+ }
+
+ // wwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> wwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.w, v.z);
+ }
+
+ // www
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<3, T, P> www(const glm::vec<4, T, P> &v) {
+ return glm::vec<3, T, P>(v.w, v.w, v.w);
+ }
+
+ // xxxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxx(const glm::vec<1, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.x);
+ }
+
+ // xxxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.y);
+ }
+
+ // xxxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.z);
+ }
+
+ // xxxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.x, v.w);
+ }
+
+ // xxyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.x);
+ }
+
+ // xxyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.y);
+ }
+
+ // xxyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.z);
+ }
+
+ // xxyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.y, v.w);
+ }
+
+ // xxzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.x);
+ }
+
+ // xxzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.y);
+ }
+
+ // xxzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.z);
+ }
+
+ // xxzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.z, v.w);
+ }
+
+ // xxwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.w, v.x);
+ }
+
+ // xxwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.w, v.y);
+ }
+
+ // xxwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.w, v.z);
+ }
+
+ // xxww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xxww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.x, v.w, v.w);
+ }
+
+ // xyxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.x);
+ }
+
+ // xyxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.y);
+ }
+
+ // xyxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.z);
+ }
+
+ // xyxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.x, v.w);
+ }
+
+ // xyyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.x);
+ }
+
+ // xyyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.y);
+ }
+
+ // xyyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.z);
+ }
+
+ // xyyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.y, v.w);
+ }
+
+ // xyzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.x);
+ }
+
+ // xyzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.y);
+ }
+
+ // xyzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.z);
+ }
+
+ // xyzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.z, v.w);
+ }
+
+ // xywx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xywx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.w, v.x);
+ }
+
+ // xywy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xywy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.w, v.y);
+ }
+
+ // xywz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xywz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.w, v.z);
+ }
+
+ // xyww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xyww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.y, v.w, v.w);
+ }
+
+ // xzxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.x);
+ }
+
+ // xzxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.y);
+ }
+
+ // xzxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.z);
+ }
+
+ // xzxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.x, v.w);
+ }
+
+ // xzyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.x);
+ }
+
+ // xzyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.y);
+ }
+
+ // xzyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.z);
+ }
+
+ // xzyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.y, v.w);
+ }
+
+ // xzzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.x);
+ }
+
+ // xzzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.y);
+ }
+
+ // xzzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.z);
+ }
+
+ // xzzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.z, v.w);
+ }
+
+ // xzwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.w, v.x);
+ }
+
+ // xzwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.w, v.y);
+ }
+
+ // xzwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.w, v.z);
+ }
+
+ // xzww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xzww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.z, v.w, v.w);
+ }
+
+ // xwxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.x, v.x);
+ }
+
+ // xwxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.x, v.y);
+ }
+
+ // xwxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.x, v.z);
+ }
+
+ // xwxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.x, v.w);
+ }
+
+ // xwyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.y, v.x);
+ }
+
+ // xwyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.y, v.y);
+ }
+
+ // xwyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.y, v.z);
+ }
+
+ // xwyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.y, v.w);
+ }
+
+ // xwzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.z, v.x);
+ }
+
+ // xwzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.z, v.y);
+ }
+
+ // xwzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.z, v.z);
+ }
+
+ // xwzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.z, v.w);
+ }
+
+ // xwwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.w, v.x);
+ }
+
+ // xwwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.w, v.y);
+ }
+
+ // xwwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.w, v.z);
+ }
+
+ // xwww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> xwww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.x, v.w, v.w, v.w);
+ }
+
+ // yxxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.x);
+ }
+
+ // yxxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.y);
+ }
+
+ // yxxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.z);
+ }
+
+ // yxxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.x, v.w);
+ }
+
+ // yxyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.x);
+ }
+
+ // yxyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.y);
+ }
+
+ // yxyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.z);
+ }
+
+ // yxyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.y, v.w);
+ }
+
+ // yxzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.x);
+ }
+
+ // yxzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.y);
+ }
+
+ // yxzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.z);
+ }
+
+ // yxzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.z, v.w);
+ }
+
+ // yxwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.w, v.x);
+ }
+
+ // yxwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.w, v.y);
+ }
+
+ // yxwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.w, v.z);
+ }
+
+ // yxww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yxww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.x, v.w, v.w);
+ }
+
+ // yyxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.x);
+ }
+
+ // yyxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.y);
+ }
+
+ // yyxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.z);
+ }
+
+ // yyxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.x, v.w);
+ }
+
+ // yyyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyx(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.x);
+ }
+
+ // yyyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyy(const glm::vec<2, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.y);
+ }
+
+ // yyyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.z);
+ }
+
+ // yyyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.y, v.w);
+ }
+
+ // yyzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.x);
+ }
+
+ // yyzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.y);
+ }
+
+ // yyzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.z);
+ }
+
+ // yyzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.z, v.w);
+ }
+
+ // yywx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yywx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.w, v.x);
+ }
+
+ // yywy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yywy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.w, v.y);
+ }
+
+ // yywz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yywz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.w, v.z);
+ }
+
+ // yyww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yyww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.y, v.w, v.w);
+ }
+
+ // yzxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.x);
+ }
+
+ // yzxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.y);
+ }
+
+ // yzxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.z);
+ }
+
+ // yzxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.x, v.w);
+ }
+
+ // yzyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.x);
+ }
+
+ // yzyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.y);
+ }
+
+ // yzyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.z);
+ }
+
+ // yzyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.y, v.w);
+ }
+
+ // yzzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.x);
+ }
+
+ // yzzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.y);
+ }
+
+ // yzzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.z);
+ }
+
+ // yzzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.z, v.w);
+ }
+
+ // yzwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.w, v.x);
+ }
+
+ // yzwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.w, v.y);
+ }
+
+ // yzwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.w, v.z);
+ }
+
+ // yzww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> yzww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.z, v.w, v.w);
+ }
+
+ // ywxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.x, v.x);
+ }
+
+ // ywxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.x, v.y);
+ }
+
+ // ywxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.x, v.z);
+ }
+
+ // ywxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.x, v.w);
+ }
+
+ // ywyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.y, v.x);
+ }
+
+ // ywyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.y, v.y);
+ }
+
+ // ywyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.y, v.z);
+ }
+
+ // ywyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.y, v.w);
+ }
+
+ // ywzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.z, v.x);
+ }
+
+ // ywzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.z, v.y);
+ }
+
+ // ywzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.z, v.z);
+ }
+
+ // ywzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.z, v.w);
+ }
+
+ // ywwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.w, v.x);
+ }
+
+ // ywwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.w, v.y);
+ }
+
+ // ywwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.w, v.z);
+ }
+
+ // ywww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> ywww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.y, v.w, v.w, v.w);
+ }
+
+ // zxxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.x);
+ }
+
+ // zxxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.y);
+ }
+
+ // zxxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.z);
+ }
+
+ // zxxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.x, v.w);
+ }
+
+ // zxyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.x);
+ }
+
+ // zxyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.y);
+ }
+
+ // zxyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.z);
+ }
+
+ // zxyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.y, v.w);
+ }
+
+ // zxzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.x);
+ }
+
+ // zxzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.y);
+ }
+
+ // zxzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.z);
+ }
+
+ // zxzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.z, v.w);
+ }
+
+ // zxwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.w, v.x);
+ }
+
+ // zxwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.w, v.y);
+ }
+
+ // zxwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.w, v.z);
+ }
+
+ // zxww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zxww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.x, v.w, v.w);
+ }
+
+ // zyxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.x);
+ }
+
+ // zyxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.y);
+ }
+
+ // zyxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.z);
+ }
+
+ // zyxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.x, v.w);
+ }
+
+ // zyyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.x);
+ }
+
+ // zyyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.y);
+ }
+
+ // zyyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.z);
+ }
+
+ // zyyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.y, v.w);
+ }
+
+ // zyzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.x);
+ }
+
+ // zyzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.y);
+ }
+
+ // zyzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.z);
+ }
+
+ // zyzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.z, v.w);
+ }
+
+ // zywx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zywx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.w, v.x);
+ }
+
+ // zywy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zywy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.w, v.y);
+ }
+
+ // zywz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zywz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.w, v.z);
+ }
+
+ // zyww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zyww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.y, v.w, v.w);
+ }
+
+ // zzxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.x);
+ }
+
+ // zzxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.y);
+ }
+
+ // zzxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.z);
+ }
+
+ // zzxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.x, v.w);
+ }
+
+ // zzyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.x);
+ }
+
+ // zzyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.y);
+ }
+
+ // zzyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.z);
+ }
+
+ // zzyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.y, v.w);
+ }
+
+ // zzzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzx(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.x);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.x);
+ }
+
+ // zzzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzy(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.y);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.y);
+ }
+
+ // zzzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzz(const glm::vec<3, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.z);
+ }
+
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.z);
+ }
+
+ // zzzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.z, v.w);
+ }
+
+ // zzwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.w, v.x);
+ }
+
+ // zzwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.w, v.y);
+ }
+
+ // zzwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.w, v.z);
+ }
+
+ // zzww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zzww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.z, v.w, v.w);
+ }
+
+ // zwxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.x, v.x);
+ }
+
+ // zwxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.x, v.y);
+ }
+
+ // zwxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.x, v.z);
+ }
+
+ // zwxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.x, v.w);
+ }
+
+ // zwyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.y, v.x);
+ }
+
+ // zwyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.y, v.y);
+ }
+
+ // zwyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.y, v.z);
+ }
+
+ // zwyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.y, v.w);
+ }
+
+ // zwzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.z, v.x);
+ }
+
+ // zwzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.z, v.y);
+ }
+
+ // zwzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.z, v.z);
+ }
+
+ // zwzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.z, v.w);
+ }
+
+ // zwwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.w, v.x);
+ }
+
+ // zwwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.w, v.y);
+ }
+
+ // zwwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.w, v.z);
+ }
+
+ // zwww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> zwww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.z, v.w, v.w, v.w);
+ }
+
+ // wxxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.x, v.x);
+ }
+
+ // wxxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.x, v.y);
+ }
+
+ // wxxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.x, v.z);
+ }
+
+ // wxxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.x, v.w);
+ }
+
+ // wxyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.y, v.x);
+ }
+
+ // wxyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.y, v.y);
+ }
+
+ // wxyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.y, v.z);
+ }
+
+ // wxyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.y, v.w);
+ }
+
+ // wxzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.z, v.x);
+ }
+
+ // wxzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.z, v.y);
+ }
+
+ // wxzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.z, v.z);
+ }
+
+ // wxzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.z, v.w);
+ }
+
+ // wxwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.w, v.x);
+ }
+
+ // wxwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.w, v.y);
+ }
+
+ // wxwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.w, v.z);
+ }
+
+ // wxww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wxww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.x, v.w, v.w);
+ }
+
+ // wyxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.x, v.x);
+ }
+
+ // wyxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.x, v.y);
+ }
+
+ // wyxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.x, v.z);
+ }
+
+ // wyxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.x, v.w);
+ }
+
+ // wyyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.y, v.x);
+ }
+
+ // wyyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.y, v.y);
+ }
+
+ // wyyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.y, v.z);
+ }
+
+ // wyyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.y, v.w);
+ }
+
+ // wyzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.z, v.x);
+ }
+
+ // wyzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.z, v.y);
+ }
+
+ // wyzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.z, v.z);
+ }
+
+ // wyzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.z, v.w);
+ }
+
+ // wywx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wywx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.w, v.x);
+ }
+
+ // wywy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wywy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.w, v.y);
+ }
+
+ // wywz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wywz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.w, v.z);
+ }
+
+ // wyww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wyww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.y, v.w, v.w);
+ }
+
+ // wzxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.x, v.x);
+ }
+
+ // wzxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.x, v.y);
+ }
+
+ // wzxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.x, v.z);
+ }
+
+ // wzxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.x, v.w);
+ }
+
+ // wzyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.y, v.x);
+ }
+
+ // wzyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.y, v.y);
+ }
+
+ // wzyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.y, v.z);
+ }
+
+ // wzyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.y, v.w);
+ }
+
+ // wzzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.z, v.x);
+ }
+
+ // wzzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.z, v.y);
+ }
+
+ // wzzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.z, v.z);
+ }
+
+ // wzzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.z, v.w);
+ }
+
+ // wzwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.w, v.x);
+ }
+
+ // wzwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.w, v.y);
+ }
+
+ // wzwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.w, v.z);
+ }
+
+ // wzww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wzww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.z, v.w, v.w);
+ }
+
+ // wwxx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwxx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.x, v.x);
+ }
+
+ // wwxy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwxy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.x, v.y);
+ }
+
+ // wwxz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwxz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.x, v.z);
+ }
+
+ // wwxw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwxw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.x, v.w);
+ }
+
+ // wwyx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwyx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.y, v.x);
+ }
+
+ // wwyy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwyy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.y, v.y);
+ }
+
+ // wwyz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwyz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.y, v.z);
+ }
+
+ // wwyw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwyw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.y, v.w);
+ }
+
+ // wwzx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwzx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.z, v.x);
+ }
+
+ // wwzy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwzy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.z, v.y);
+ }
+
+ // wwzz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwzz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.z, v.z);
+ }
+
+ // wwzw
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwzw(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.z, v.w);
+ }
+
+ // wwwx
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwwx(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.w, v.x);
+ }
+
+ // wwwy
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwwy(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.w, v.y);
+ }
+
+ // wwwz
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwwz(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.w, v.z);
+ }
+
+ // wwww
+ template<typename T, precision P>
+ GLM_INLINE glm::vec<4, T, P> wwww(const glm::vec<4, T, P> &v) {
+ return glm::vec<4, T, P>(v.w, v.w, v.w, v.w);
+ }
+
+}
diff --git a/3rdparty/glm/glm/gtx/vector_angle.hpp b/3rdparty/glm/glm/gtx/vector_angle.hpp
index d52d3f83f0e..276da7e81ce 100644
--- a/3rdparty/glm/glm/gtx/vector_angle.hpp
+++ b/3rdparty/glm/glm/gtx/vector_angle.hpp
@@ -20,6 +20,10 @@
#include "../gtx/quaternion.hpp"
#include "../gtx/rotate_vector.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_vector_angle extension included")
#endif
@@ -32,7 +36,7 @@ namespace glm
//! Returns the absolute angle between two vectors.
//! Parameters need to be normalized.
/// @see gtx_vector_angle extension.
- template <typename vecType>
+ template<typename vecType>
GLM_FUNC_DECL typename vecType::value_type angle(
vecType const & x,
vecType const & y);
@@ -40,19 +44,19 @@ namespace glm
//! Returns the oriented angle between two 2d vectors.
//! Parameters need to be normalized.
/// @see gtx_vector_angle extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T orientedAngle(
- tvec2<T, P> const & x,
- tvec2<T, P> const & y);
+ vec<2, T, P> const & x,
+ vec<2, T, P> const & y);
//! Returns the oriented angle between two 3d vectors based from a reference axis.
//! Parameters need to be normalized.
/// @see gtx_vector_angle extension.
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_DECL T orientedAngle(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y,
- tvec3<T, P> const & ref);
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y,
+ vec<3, T, P> const & ref);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/vector_angle.inl b/3rdparty/glm/glm/gtx/vector_angle.inl
index 05c30285665..af99344ae2f 100644
--- a/3rdparty/glm/glm/gtx/vector_angle.inl
+++ b/3rdparty/glm/glm/gtx/vector_angle.inl
@@ -3,7 +3,7 @@
namespace glm
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType angle
(
genType const & x,
@@ -14,11 +14,11 @@ namespace glm
return acos(clamp(dot(x, y), genType(-1), genType(1)));
}
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_QUALIFIER T angle
(
- vecType<T, P> const & x,
- vecType<T, P> const & y
+ vecType<L, T, P> const& x,
+ vecType<L, T, P> const& y
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'angle' only accept floating-point inputs");
@@ -26,11 +26,11 @@ namespace glm
}
//! \todo epsilon is hard coded to 0.01
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T orientedAngle
(
- tvec2<T, P> const & x,
- tvec2<T, P> const & y
+ vec<2, T, P> const & x,
+ vec<2, T, P> const & y
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'orientedAngle' only accept floating-point inputs");
@@ -42,12 +42,12 @@ namespace glm
return -Angle;
}
- template <typename T, precision P>
+ template<typename T, precision P>
GLM_FUNC_QUALIFIER T orientedAngle
(
- tvec3<T, P> const & x,
- tvec3<T, P> const & y,
- tvec3<T, P> const & ref
+ vec<3, T, P> const & x,
+ vec<3, T, P> const & y,
+ vec<3, T, P> const & ref
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'orientedAngle' only accept floating-point inputs");
diff --git a/3rdparty/glm/glm/gtx/vector_query.hpp b/3rdparty/glm/glm/gtx/vector_query.hpp
index 2c0d0227c8d..80bbcea125d 100644
--- a/3rdparty/glm/glm/gtx/vector_query.hpp
+++ b/3rdparty/glm/glm/gtx/vector_query.hpp
@@ -17,6 +17,10 @@
#include <cfloat>
#include <limits>
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_vector_query extension included")
#endif
@@ -28,33 +32,33 @@ namespace glm
//! Check whether two vectors are collinears.
/// @see gtx_vector_query extensions.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool areCollinear(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool areCollinear(vecType<L, T, P> const & v0, vecType<L, T, P> const & v1, T const & epsilon);
//! Check whether two vectors are orthogonals.
/// @see gtx_vector_query extensions.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool areOrthogonal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool areOrthogonal(vecType<L, T, P> const & v0, vecType<L, T, P> const & v1, T const & epsilon);
//! Check whether a vector is normalized.
/// @see gtx_vector_query extensions.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool isNormalized(vecType<T, P> const & v, T const & epsilon);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool isNormalized(vecType<L, T, P> const & v, T const & epsilon);
//! Check whether a vector is null.
/// @see gtx_vector_query extensions.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool isNull(vecType<T, P> const & v, T const & epsilon);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool isNull(vecType<L, T, P> const & v, T const & epsilon);
//! Check whether a each component of a vector is null.
/// @see gtx_vector_query extensions.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL vecType<bool, P> isCompNull(vecType<T, P> const & v, T const & epsilon);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<L, bool, P> isCompNull(vecType<L, T, P> const & v, T const & epsilon);
//! Check whether two vectors are orthonormal.
/// @see gtx_vector_query extensions.
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_DECL bool areOrthonormal(vecType<T, P> const & v0, vecType<T, P> const & v1, T const & epsilon);
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_DECL bool areOrthonormal(vecType<L, T, P> const & v0, vecType<L, T, P> const & v1, T const & epsilon);
/// @}
}// namespace glm
diff --git a/3rdparty/glm/glm/gtx/vector_query.inl b/3rdparty/glm/glm/gtx/vector_query.inl
index 85ea5e582d5..6fa84db276b 100644
--- a/3rdparty/glm/glm/gtx/vector_query.inl
+++ b/3rdparty/glm/glm/gtx/vector_query.inl
@@ -6,68 +6,68 @@
namespace glm{
namespace detail
{
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
struct compute_areCollinear{};
- template <typename T, precision P>
- struct compute_areCollinear<T, P, tvec2>
+ template<typename T, precision P>
+ struct compute_areCollinear<2, T, P, vec>
{
- GLM_FUNC_QUALIFIER static bool call(tvec2<T, P> const & v0, tvec2<T, P> const & v1, T const & epsilon)
+ GLM_FUNC_QUALIFIER static bool call(vec<2, T, P> const & v0, vec<2, T, P> const & v1, T const & epsilon)
{
- return length(cross(tvec3<T, P>(v0, static_cast<T>(0)), tvec3<T, P>(v1, static_cast<T>(0)))) < epsilon;
+ return length(cross(vec<3, T, P>(v0, static_cast<T>(0)), vec<3, T, P>(v1, static_cast<T>(0)))) < epsilon;
}
};
- template <typename T, precision P>
- struct compute_areCollinear<T, P, tvec3>
+ template<typename T, precision P>
+ struct compute_areCollinear<3, T, P, vec>
{
- GLM_FUNC_QUALIFIER static bool call(tvec3<T, P> const & v0, tvec3<T, P> const & v1, T const & epsilon)
+ GLM_FUNC_QUALIFIER static bool call(vec<3, T, P> const & v0, vec<3, T, P> const & v1, T const & epsilon)
{
return length(cross(v0, v1)) < epsilon;
}
};
- template <typename T, precision P>
- struct compute_areCollinear<T, P, tvec4>
+ template<typename T, precision P>
+ struct compute_areCollinear<4, T, P, vec>
{
- GLM_FUNC_QUALIFIER static bool call(tvec4<T, P> const & v0, tvec4<T, P> const & v1, T const & epsilon)
+ GLM_FUNC_QUALIFIER static bool call(vec<4, T, P> const & v0, vec<4, T, P> const & v1, T const & epsilon)
{
- return length(cross(tvec3<T, P>(v0), tvec3<T, P>(v1))) < epsilon;
+ return length(cross(vec<3, T, P>(v0), vec<3, T, P>(v1))) < epsilon;
}
};
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
struct compute_isCompNull{};
- template <typename T, precision P>
- struct compute_isCompNull<T, P, tvec2>
+ template<typename T, precision P>
+ struct compute_isCompNull<2, T, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec2<bool, P> call(tvec2<T, P> const & v, T const & epsilon)
+ GLM_FUNC_QUALIFIER static vec<2, bool, P> call(vec<2, T, P> const & v, T const & epsilon)
{
- return tvec2<bool, P>(
+ return vec<2, bool, P>(
(abs(v.x) < epsilon),
(abs(v.y) < epsilon));
}
};
- template <typename T, precision P>
- struct compute_isCompNull<T, P, tvec3>
+ template<typename T, precision P>
+ struct compute_isCompNull<3, T, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec3<bool, P> call(tvec3<T, P> const & v, T const & epsilon)
+ GLM_FUNC_QUALIFIER static vec<3, bool, P> call(vec<3, T, P> const & v, T const & epsilon)
{
- return tvec3<bool, P>(
+ return vec<3, bool, P>(
(abs(v.x) < epsilon),
(abs(v.y) < epsilon),
(abs(v.z) < epsilon));
}
};
- template <typename T, precision P>
- struct compute_isCompNull<T, P, tvec4>
+ template<typename T, precision P>
+ struct compute_isCompNull<4, T, P, vec>
{
- GLM_FUNC_QUALIFIER static tvec4<bool, P> call(tvec4<T, P> const & v, T const & epsilon)
+ GLM_FUNC_QUALIFIER static vec<4, bool, P> call(vec<4, T, P> const & v, T const & epsilon)
{
- return tvec4<bool, P>(
+ return vec<4, bool, P>(
(abs(v.x) < epsilon),
(abs(v.y) < epsilon),
(abs(v.z) < epsilon),
@@ -77,24 +77,24 @@ namespace detail
}//namespace detail
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_QUALIFIER bool areCollinear
(
- vecType<T, P> const & v0,
- vecType<T, P> const & v1,
+ vecType<L, T, P> const& v0,
+ vecType<L, T, P> const& v1,
T const & epsilon
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'areCollinear' only accept floating-point inputs");
- return detail::compute_areCollinear<T, P, vecType>::call(v0, v1, epsilon);
+ return detail::compute_areCollinear<L, T, P, vecType>::call(v0, v1, epsilon);
}
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_QUALIFIER bool areOrthogonal
(
- vecType<T, P> const & v0,
- vecType<T, P> const & v1,
+ vecType<L, T, P> const& v0,
+ vecType<L, T, P> const& v1,
T const & epsilon
)
{
@@ -105,10 +105,10 @@ namespace detail
length(v0)) * max(static_cast<T>(1), length(v1)) * epsilon;
}
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_QUALIFIER bool isNormalized
(
- vecType<T, P> const & v,
+ vecType<L, T, P> const& v,
T const & epsilon
)
{
@@ -117,10 +117,10 @@ namespace detail
return abs(length(v) - static_cast<T>(1)) <= static_cast<T>(2) * epsilon;
}
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_QUALIFIER bool isNull
(
- vecType<T, P> const & v,
+ vecType<L, T, P> const& v,
T const & epsilon
)
{
@@ -129,61 +129,61 @@ namespace detail
return length(v) <= epsilon;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<bool, P> isCompNull
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, bool, P> isCompNull
(
- vecType<T, P> const & v,
+ vecType<L, T, P> const& v,
T const & epsilon
)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isCompNull' only accept floating-point inputs");
- return detail::compute_isCompNull<T, P, vecType>::call(v, epsilon);
+ return detail::compute_isCompNull<L, T, P, vecType>::call(v, epsilon);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<bool, P> isCompNull
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<2, bool, P> isCompNull
(
- tvec2<T, P> const & v,
+ vec<2, T, P> const & v,
T const & epsilon)
{
- return tvec2<bool, P>(
+ return vec<2, bool, P>(
abs(v.x) < epsilon,
abs(v.y) < epsilon);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<bool, P> isCompNull
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<3, bool, P> isCompNull
(
- tvec3<T, P> const & v,
+ vec<3, T, P> const & v,
T const & epsilon
)
{
- return tvec3<bool, P>(
+ return vec<3, bool, P>(
abs(v.x) < epsilon,
abs(v.y) < epsilon,
abs(v.z) < epsilon);
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<bool, P> isCompNull
+ template<typename T, precision P>
+ GLM_FUNC_QUALIFIER vec<4, bool, P> isCompNull
(
- tvec4<T, P> const & v,
+ vec<4, T, P> const & v,
T const & epsilon
)
{
- return tvec4<bool, P>(
+ return vec<4, bool, P>(
abs(v.x) < epsilon,
abs(v.y) < epsilon,
abs(v.z) < epsilon,
abs(v.w) < epsilon);
}
- template <typename T, precision P, template <typename, precision> class vecType>
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
GLM_FUNC_QUALIFIER bool areOrthonormal
(
- vecType<T, P> const & v0,
- vecType<T, P> const & v1,
+ vecType<L, T, P> const& v0,
+ vecType<L, T, P> const& v1,
T const & epsilon
)
{
diff --git a/3rdparty/glm/glm/gtx/wrap.hpp b/3rdparty/glm/glm/gtx/wrap.hpp
index 00600732fa5..67231c45712 100644
--- a/3rdparty/glm/glm/gtx/wrap.hpp
+++ b/3rdparty/glm/glm/gtx/wrap.hpp
@@ -16,6 +16,10 @@
#include "../glm.hpp"
#include "../gtc/vec1.hpp"
+#ifndef GLM_ENABLE_EXPERIMENTAL
+# error "GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
+#endif
+
#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_wrap extension included")
#endif
@@ -27,22 +31,22 @@ namespace glm
/// Simulate GL_CLAMP OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType clamp(genType const& Texcoord);
/// Simulate GL_REPEAT OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType repeat(genType const& Texcoord);
/// Simulate GL_MIRRORED_REPEAT OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType mirrorClamp(genType const& Texcoord);
/// Simulate GL_MIRROR_REPEAT OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
+ template<typename genType>
GLM_FUNC_DECL genType mirrorRepeat(genType const& Texcoord);
/// @}
diff --git a/3rdparty/glm/glm/gtx/wrap.inl b/3rdparty/glm/glm/gtx/wrap.inl
index 941a803e40d..db10dabc6c3 100644
--- a/3rdparty/glm/glm/gtx/wrap.inl
+++ b/3rdparty/glm/glm/gtx/wrap.inl
@@ -3,56 +3,56 @@
namespace glm
{
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> clamp(vecType<T, P> const& Texcoord)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> clamp(vecType<L, T, P> const& Texcoord)
{
- return glm::clamp(Texcoord, vecType<T, P>(0), vecType<T, P>(1));
+ return glm::clamp(Texcoord, vecType<L, T, P>(0), vecType<L, T, P>(1));
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType clamp(genType const & Texcoord)
{
- return clamp(tvec1<genType, defaultp>(Texcoord)).x;
+ return clamp(vec<1, genType, defaultp>(Texcoord)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> repeat(vecType<T, P> const& Texcoord)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> repeat(vecType<L, T, P> const& Texcoord)
{
return glm::fract(Texcoord);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType repeat(genType const & Texcoord)
{
- return repeat(tvec1<genType, defaultp>(Texcoord)).x;
+ return repeat(vec<1, genType, defaultp>(Texcoord)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> mirrorClamp(vecType<T, P> const& Texcoord)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> mirrorClamp(vecType<L, T, P> const& Texcoord)
{
return glm::fract(glm::abs(Texcoord));
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType mirrorClamp(genType const & Texcoord)
{
- return mirrorClamp(tvec1<genType, defaultp>(Texcoord)).x;
+ return mirrorClamp(vec<1, genType, defaultp>(Texcoord)).x;
}
- template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> mirrorRepeat(vecType<T, P> const& Texcoord)
+ template<length_t L, typename T, precision P, template<length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> mirrorRepeat(vecType<L, T, P> const& Texcoord)
{
- vecType<T, P> const Abs = glm::abs(Texcoord);
- vecType<T, P> const Clamp = glm::mod(glm::floor(Abs), vecType<T, P>(2));
- vecType<T, P> const Floor = glm::floor(Abs);
- vecType<T, P> const Rest = Abs - Floor;
- vecType<T, P> const Mirror = Clamp + Rest;
- return mix(Rest, vecType<T, P>(1) - Rest, glm::greaterThanEqual(Mirror, vecType<T, P>(1)));
+ vecType<L, T, P> const Abs = glm::abs(Texcoord);
+ vecType<L, T, P> const Clamp = glm::mod(glm::floor(Abs), vecType<L, T, P>(2));
+ vecType<L, T, P> const Floor = glm::floor(Abs);
+ vecType<L, T, P> const Rest = Abs - Floor;
+ vecType<L, T, P> const Mirror = Clamp + Rest;
+ return mix(Rest, vecType<L, T, P>(1) - Rest, glm::greaterThanEqual(Mirror, vecType<L, T, P>(1)));
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType mirrorRepeat(genType const& Texcoord)
{
- return mirrorRepeat(tvec1<genType, defaultp>(Texcoord)).x;
+ return mirrorRepeat(vec<1, genType, defaultp>(Texcoord)).x;
}
}//namespace glm
diff --git a/3rdparty/glm/glm/mat2x2.hpp b/3rdparty/glm/glm/mat2x2.hpp
index 420fe9d624a..72ebce15887 100644
--- a/3rdparty/glm/glm/mat2x2.hpp
+++ b/3rdparty/glm/glm/mat2x2.hpp
@@ -12,41 +12,41 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, lowp> lowp_mat2;
+ typedef mat<2, 2, float, lowp> lowp_mat2;
/// 2 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, mediump> mediump_mat2;
+ typedef mat<2, 2, float, mediump> mediump_mat2;
/// 2 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, highp> highp_mat2;
+ typedef mat<2, 2, float, highp> highp_mat2;
/// 2 columns of 2 components matrix of low precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, lowp> lowp_mat2x2;
+ typedef mat<2, 2, float, lowp> lowp_mat2x2;
/// 2 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, mediump> mediump_mat2x2;
+ typedef mat<2, 2, float, mediump> mediump_mat2x2;
/// 2 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x2<float, highp> highp_mat2x2;
+ typedef mat<2, 2, float, highp> highp_mat2x2;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat2x3.hpp b/3rdparty/glm/glm/mat2x3.hpp
index 5c1cc70b6f2..9e2ba654946 100644
--- a/3rdparty/glm/glm/mat2x3.hpp
+++ b/3rdparty/glm/glm/mat2x3.hpp
@@ -12,21 +12,21 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<float, lowp> lowp_mat2x3;
+ typedef mat<2, 3, float, lowp> lowp_mat2x3;
/// 2 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<float, mediump> mediump_mat2x3;
+ typedef mat<2, 3, float, mediump> mediump_mat2x3;
/// 2 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x3<float, highp> highp_mat2x3;
+ typedef mat<2, 3, float, highp> highp_mat2x3;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat2x4.hpp b/3rdparty/glm/glm/mat2x4.hpp
index a82f136f5de..f7905c893ce 100644
--- a/3rdparty/glm/glm/mat2x4.hpp
+++ b/3rdparty/glm/glm/mat2x4.hpp
@@ -12,20 +12,20 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<float, lowp> lowp_mat2x4;
+ typedef mat<2, 4, float, lowp> lowp_mat2x4;
/// 2 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<float, mediump> mediump_mat2x4;
+ typedef mat<2, 4, float, mediump> mediump_mat2x4;
/// 2 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat2x4<float, highp> highp_mat2x4;
+ typedef mat<2, 4, float, highp> highp_mat2x4;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat3x2.hpp b/3rdparty/glm/glm/mat3x2.hpp
index 40a56deee9c..d3fce6aa7b3 100644
--- a/3rdparty/glm/glm/mat3x2.hpp
+++ b/3rdparty/glm/glm/mat3x2.hpp
@@ -12,20 +12,20 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<float, lowp> lowp_mat3x2;
+ typedef mat<3, 2, float, lowp> lowp_mat3x2;
/// 3 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<float, mediump> mediump_mat3x2;
+ typedef mat<3, 2, float, mediump> mediump_mat3x2;
/// 3 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x2<float, highp> highp_mat3x2;
+ typedef mat<3, 2, float, highp> highp_mat3x2;
}//namespace
diff --git a/3rdparty/glm/glm/mat3x3.hpp b/3rdparty/glm/glm/mat3x3.hpp
index 66bfdfaf148..c1963090b2b 100644
--- a/3rdparty/glm/glm/mat3x3.hpp
+++ b/3rdparty/glm/glm/mat3x3.hpp
@@ -12,41 +12,41 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, lowp> lowp_mat3;
+ typedef mat<3, 3, float, lowp> lowp_mat3;
/// 3 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, mediump> mediump_mat3;
+ typedef mat<3, 3, float, mediump> mediump_mat3;
/// 3 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, highp> highp_mat3;
+ typedef mat<3, 3, float, highp> highp_mat3;
/// 3 columns of 3 components matrix of low precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, lowp> lowp_mat3x3;
+ typedef mat<3, 3, float, lowp> lowp_mat3x3;
/// 3 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, mediump> mediump_mat3x3;
+ typedef mat<3, 3, float, mediump> mediump_mat3x3;
/// 3 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x3<float, highp> highp_mat3x3;
+ typedef mat<3, 3, float, highp> highp_mat3x3;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat3x4.hpp b/3rdparty/glm/glm/mat3x4.hpp
index 5f83407ae1f..b2d585dc9eb 100644
--- a/3rdparty/glm/glm/mat3x4.hpp
+++ b/3rdparty/glm/glm/mat3x4.hpp
@@ -12,20 +12,20 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<float, lowp> lowp_mat3x4;
+ typedef mat<3, 4, float, lowp> lowp_mat3x4;
/// 3 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<float, mediump> mediump_mat3x4;
+ typedef mat<3, 4, float, mediump> mediump_mat3x4;
/// 3 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat3x4<float, highp> highp_mat3x4;
+ typedef mat<3, 4, float, highp> highp_mat3x4;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat4x2.hpp b/3rdparty/glm/glm/mat4x2.hpp
index fe67c4fd97c..654c97c144c 100644
--- a/3rdparty/glm/glm/mat4x2.hpp
+++ b/3rdparty/glm/glm/mat4x2.hpp
@@ -12,20 +12,20 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<float, lowp> lowp_mat4x2;
+ typedef mat<4, 2, float, lowp> lowp_mat4x2;
/// 4 columns of 2 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<float, mediump> mediump_mat4x2;
+ typedef mat<4, 2, float, mediump> mediump_mat4x2;
/// 4 columns of 2 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x2<float, highp> highp_mat4x2;
+ typedef mat<4, 2, float, highp> highp_mat4x2;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat4x3.hpp b/3rdparty/glm/glm/mat4x3.hpp
index 74845997c4d..6b7364a18ff 100644
--- a/3rdparty/glm/glm/mat4x3.hpp
+++ b/3rdparty/glm/glm/mat4x3.hpp
@@ -1,5 +1,5 @@
/// @ref core
-/// @file glm/mat4x4.hpp
+/// @file glm/mat4x3.hpp
#pragma once
@@ -12,20 +12,20 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<float, lowp> lowp_mat4x3;
+ typedef mat<4, 3, float, lowp> lowp_mat4x3;
/// 4 columns of 3 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<float, mediump> mediump_mat4x3;
+ typedef mat<4, 3, float, mediump> mediump_mat4x3;
/// 4 columns of 3 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x3<float, highp> highp_mat4x3;
+ typedef mat<4, 3, float, highp> highp_mat4x3;
}//namespace glm
diff --git a/3rdparty/glm/glm/mat4x4.hpp b/3rdparty/glm/glm/mat4x4.hpp
index d6c44e8e7ad..30d45dc51c1 100644
--- a/3rdparty/glm/glm/mat4x4.hpp
+++ b/3rdparty/glm/glm/mat4x4.hpp
@@ -12,41 +12,41 @@ namespace glm
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, lowp> lowp_mat4;
+ typedef mat<4, 4, float, lowp> lowp_mat4;
/// 4 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, mediump> mediump_mat4;
+ typedef mat<4, 4, float, mediump> mediump_mat4;
/// 4 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, highp> highp_mat4;
+ typedef mat<4, 4, float, highp> highp_mat4;
/// 4 columns of 4 components matrix of low precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, lowp> lowp_mat4x4;
+ typedef mat<4, 4, float, lowp> lowp_mat4x4;
/// 4 columns of 4 components matrix of medium precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, mediump> mediump_mat4x4;
+ typedef mat<4, 4, float, mediump> mediump_mat4x4;
/// 4 columns of 4 components matrix of high precision floating-point numbers.
/// There is no guarantee on the actual precision.
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a>
- typedef tmat4x4<float, highp> highp_mat4x4;
+ typedef mat<4, 4, float, highp> highp_mat4x4;
}//namespace glm
diff --git a/3rdparty/glm/glm/simd/matrix.h b/3rdparty/glm/glm/simd/matrix.h
index 549d40cc32a..df5a5be2664 100644
--- a/3rdparty/glm/glm/simd/matrix.h
+++ b/3rdparty/glm/glm/simd/matrix.h
@@ -410,7 +410,7 @@ GLM_FUNC_QUALIFIER glm_vec4 glm_mat4_determinant_lowp(glm_vec4 const m[4])
__m128 MulC = _mm_mul_ps(Swp2C, Swp3C);
__m128 SubF = _mm_sub_ps(_mm_movehl_ps(MulC, MulC), MulC);
- //tvec4<T, P> DetCof(
+ //vec<4, T, P> DetCof(
// + (m[1][1] * SubFactor00 - m[1][2] * SubFactor01 + m[1][3] * SubFactor02),
// - (m[1][0] * SubFactor00 - m[1][2] * SubFactor03 + m[1][3] * SubFactor04),
// + (m[1][0] * SubFactor01 - m[1][1] * SubFactor03 + m[1][3] * SubFactor05),
@@ -473,7 +473,7 @@ GLM_FUNC_QUALIFIER glm_vec4 glm_mat4_determinant(glm_vec4 const m[4])
__m128 MulC = _mm_mul_ps(Swp2C, Swp3C);
__m128 SubF = _mm_sub_ps(_mm_movehl_ps(MulC, MulC), MulC);
- //tvec4<T, P> DetCof(
+ //vec<4, T, P> DetCof(
// + (m[1][1] * SubFactor00 - m[1][2] * SubFactor01 + m[1][3] * SubFactor02),
// - (m[1][0] * SubFactor00 - m[1][2] * SubFactor03 + m[1][3] * SubFactor04),
// + (m[1][0] * SubFactor01 - m[1][1] * SubFactor03 + m[1][3] * SubFactor05),
@@ -962,7 +962,7 @@ GLM_FUNC_QUALIFIER void glm_mat4_rotate(__m128 const in[4], float Angle, float c
__m128 Sin0 = _mm_set_ss(s);
__m128 SinA = _mm_shuffle_ps(Sin0, Sin0, _MM_SHUFFLE(0, 0, 0, 0));
- // tvec3<T, P> temp = (valType(1) - c) * axis;
+ // vec<3, T, P> temp = (valType(1) - c) * axis;
__m128 Temp0 = _mm_sub_ps(one, CosA);
__m128 Temp1 = _mm_mul_ps(Temp0, AxisC);
@@ -1008,7 +1008,7 @@ GLM_FUNC_QUALIFIER void glm_mat4_rotate(__m128 const in[4], float Angle, float c
Result[2] = TmpC4;
Result[3] = _mm_set_ps(1, 0, 0, 0);
- //tmat4x4<valType> Result(uninitialize);
+ //mat<4, 4, valType> Result(uninitialize);
//Result[0] = m[0] * Rotate[0][0] + m[1] * Rotate[0][1] + m[2] * Rotate[0][2];
//Result[1] = m[0] * Rotate[1][0] + m[1] * Rotate[1][1] + m[2] * Rotate[1][2];
//Result[2] = m[0] * Rotate[2][0] + m[1] * Rotate[2][1] + m[2] * Rotate[2][2];
diff --git a/3rdparty/glm/glm/simd/platform.h b/3rdparty/glm/glm/simd/platform.h
index 85eb4b5af5d..bc4ccb2259d 100644
--- a/3rdparty/glm/glm/simd/platform.h
+++ b/3rdparty/glm/glm/simd/platform.h
@@ -77,63 +77,46 @@
// Intel
#define GLM_COMPILER_INTEL 0x00100000
-#define GLM_COMPILER_INTEL12 0x00100010
-#define GLM_COMPILER_INTEL12_1 0x00100020
-#define GLM_COMPILER_INTEL13 0x00100030
#define GLM_COMPILER_INTEL14 0x00100040
#define GLM_COMPILER_INTEL15 0x00100050
#define GLM_COMPILER_INTEL16 0x00100060
+#define GLM_COMPILER_INTEL17 0x00100070
// Visual C++ defines
#define GLM_COMPILER_VC 0x01000000
-#define GLM_COMPILER_VC2010 0x01000090
-#define GLM_COMPILER_VC2012 0x010000A0
-#define GLM_COMPILER_VC2013 0x010000B0
-#define GLM_COMPILER_VC2015 0x010000C0
+#define GLM_COMPILER_VC12 0x010000B0
+#define GLM_COMPILER_VC14 0x010000C0
+#define GLM_COMPILER_VC15 0x010000D0
+#define GLM_COMPILER_VC16 0x010000E0
// GCC defines
#define GLM_COMPILER_GCC 0x02000000
-#define GLM_COMPILER_GCC44 0x020000B0
-#define GLM_COMPILER_GCC45 0x020000C0
#define GLM_COMPILER_GCC46 0x020000D0
#define GLM_COMPILER_GCC47 0x020000E0
#define GLM_COMPILER_GCC48 0x020000F0
#define GLM_COMPILER_GCC49 0x02000100
-#define GLM_COMPILER_GCC50 0x02000200
-#define GLM_COMPILER_GCC51 0x02000300
-#define GLM_COMPILER_GCC52 0x02000400
-#define GLM_COMPILER_GCC53 0x02000500
-#define GLM_COMPILER_GCC54 0x02000600
-#define GLM_COMPILER_GCC60 0x02000700
-#define GLM_COMPILER_GCC61 0x02000800
-#define GLM_COMPILER_GCC62 0x02000900
-#define GLM_COMPILER_GCC70 0x02000A00
-#define GLM_COMPILER_GCC71 0x02000B00
-#define GLM_COMPILER_GCC72 0x02000C00
-#define GLM_COMPILER_GCC80 0x02000D00
+#define GLM_COMPILER_GCC5 0x02000200
+#define GLM_COMPILER_GCC6 0x02000300
+#define GLM_COMPILER_GCC7 0x02000400
+#define GLM_COMPILER_GCC8 0x02000500
// CUDA
#define GLM_COMPILER_CUDA 0x10000000
-#define GLM_COMPILER_CUDA40 0x10000040
-#define GLM_COMPILER_CUDA41 0x10000050
-#define GLM_COMPILER_CUDA42 0x10000060
-#define GLM_COMPILER_CUDA50 0x10000070
-#define GLM_COMPILER_CUDA60 0x10000080
-#define GLM_COMPILER_CUDA65 0x10000090
#define GLM_COMPILER_CUDA70 0x100000A0
#define GLM_COMPILER_CUDA75 0x100000B0
#define GLM_COMPILER_CUDA80 0x100000C0
// Clang
#define GLM_COMPILER_CLANG 0x20000000
-#define GLM_COMPILER_CLANG32 0x20000030
-#define GLM_COMPILER_CLANG33 0x20000040
-#define GLM_COMPILER_CLANG34 0x20000050
-#define GLM_COMPILER_CLANG35 0x20000060
-#define GLM_COMPILER_CLANG36 0x20000070
-#define GLM_COMPILER_CLANG37 0x20000080
-#define GLM_COMPILER_CLANG38 0x20000090
-#define GLM_COMPILER_CLANG39 0x200000A0
+#define GLM_COMPILER_CLANG34 0x20000050
+#define GLM_COMPILER_CLANG35 0x20000060
+#define GLM_COMPILER_CLANG36 0x20000070
+#define GLM_COMPILER_CLANG37 0x20000080
+#define GLM_COMPILER_CLANG38 0x20000090
+#define GLM_COMPILER_CLANG39 0x200000A0
+#define GLM_COMPILER_CLANG40 0x200000B0
+#define GLM_COMPILER_CLANG41 0x200000C0
+#define GLM_COMPILER_CLANG42 0x200000D0
// Build model
#define GLM_MODEL_32 0x00000010
@@ -144,20 +127,16 @@
# define GLM_COMPILER GLM_COMPILER_UNKNOWN
#elif defined(__INTEL_COMPILER)
-# if __INTEL_COMPILER == 1200
-# define GLM_COMPILER GLM_COMPILER_INTEL12
-# elif __INTEL_COMPILER == 1210
-# define GLM_COMPILER GLM_COMPILER_INTEL12_1
-# elif __INTEL_COMPILER == 1300
-# define GLM_COMPILER GLM_COMPILER_INTEL13
+# if (__clang_major__ < 1400)
+# error "GLM requires ICC 2013 SP1 or newer"
# elif __INTEL_COMPILER == 1400
# define GLM_COMPILER GLM_COMPILER_INTEL14
# elif __INTEL_COMPILER == 1500
# define GLM_COMPILER GLM_COMPILER_INTEL15
-# elif __INTEL_COMPILER >= 1600
+# elif __INTEL_COMPILER == 1600
# define GLM_COMPILER GLM_COMPILER_INTEL16
-# else
-# define GLM_COMPILER GLM_COMPILER_INTEL
+# elif __INTEL_COMPILER >= 1700
+# define GLM_COMPILER GLM_COMPILER_INTEL17
# endif
// CUDA
@@ -165,8 +144,8 @@
# if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)
# include <cuda.h> // make sure version is defined since nvcc does not define it itself!
# endif
-# if CUDA_VERSION < 3000
-# error "GLM requires CUDA 3.0 or higher"
+# if CUDA_VERSION < 7000
+# error "GLM requires CUDA 7.0 or higher"
# else
# define GLM_COMPILER GLM_COMPILER_CUDA
# endif
@@ -174,28 +153,18 @@
// Clang
#elif defined(__clang__)
# if GLM_PLATFORM & GLM_PLATFORM_APPLE
-# if __clang_major__ == 5 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_CLANG33
-# elif __clang_major__ == 5 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_CLANG34
+# if (__clang_major__ < 6)
+# error "GLM requires Clang 3.4 / Apple Clang 6.0 or higher"
# elif __clang_major__ == 6 && __clang_minor__ == 0
# define GLM_COMPILER GLM_COMPILER_CLANG35
# elif __clang_major__ == 6 && __clang_minor__ >= 1
# define GLM_COMPILER GLM_COMPILER_CLANG36
# elif __clang_major__ >= 7
# define GLM_COMPILER GLM_COMPILER_CLANG37
-# else
-# define GLM_COMPILER GLM_COMPILER_CLANG
# endif
# else
-# if __clang_major__ == 3 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_CLANG30
-# elif __clang_major__ == 3 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_CLANG31
-# elif __clang_major__ == 3 && __clang_minor__ == 2
-# define GLM_COMPILER GLM_COMPILER_CLANG32
-# elif __clang_major__ == 3 && __clang_minor__ == 3
-# define GLM_COMPILER GLM_COMPILER_CLANG33
+# if ((__clang_major__ == 3) && (__clang_minor__ < 4)) || (__clang_major__ < 3)
+# error "GLM requires Clang 3.4 or higher"
# elif __clang_major__ == 3 && __clang_minor__ == 4
# define GLM_COMPILER GLM_COMPILER_CLANG34
# elif __clang_major__ == 3 && __clang_minor__ == 5
@@ -208,39 +177,33 @@
# define GLM_COMPILER GLM_COMPILER_CLANG38
# elif __clang_major__ == 3 && __clang_minor__ >= 9
# define GLM_COMPILER GLM_COMPILER_CLANG39
+# elif __clang_major__ == 4 && __clang_minor__ == 0
+# define GLM_COMPILER GLM_COMPILER_CLANG40
+# elif __clang_major__ == 4 && __clang_minor__ == 1
+# define GLM_COMPILER GLM_COMPILER_CLANG41
+# elif __clang_major__ == 4 && __clang_minor__ >= 2
+# define GLM_COMPILER GLM_COMPILER_CLANG42
# elif __clang_major__ >= 4
-# define GLM_COMPILER GLM_COMPILER_CLANG39
-# else
-# define GLM_COMPILER GLM_COMPILER_CLANG
+# define GLM_COMPILER GLM_COMPILER_CLANG42
# endif
# endif
// Visual C++
#elif defined(_MSC_VER)
-# if _MSC_VER < 1600
-# error "GLM requires Visual C++ 2010 or higher"
-# elif _MSC_VER == 1600
-# define GLM_COMPILER GLM_COMPILER_VC2010
-# elif _MSC_VER == 1700
-# define GLM_COMPILER GLM_COMPILER_VC2012
+# if _MSC_VER < 1800
+# error "GLM requires Visual C++ 12 - 2013 or higher"
# elif _MSC_VER == 1800
-# define GLM_COMPILER GLM_COMPILER_VC2013
-# elif _MSC_VER >= 1900
-# define GLM_COMPILER GLM_COMPILER_VC2015
-# else//_MSC_VER
-# define GLM_COMPILER GLM_COMPILER_VC
+# define GLM_COMPILER GLM_COMPILER_VC12
+# elif _MSC_VER == 1900
+# define GLM_COMPILER GLM_COMPILER_VC14
+# elif _MSC_VER >= 1910
+# define GLM_COMPILER GLM_COMPILER_VC15
# endif//_MSC_VER
// G++
#elif defined(__GNUC__) || defined(__MINGW32__)
-# if (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC42)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
-# define GLM_COMPILER (GLM_COMPILER_GCC43)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
-# define GLM_COMPILER (GLM_COMPILER_GCC44)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
-# define GLM_COMPILER (GLM_COMPILER_GCC45)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ < 6)) || (__GNUC__ < 4)
+# error "GLM requires GCC 4.7 or higher"
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
# define GLM_COMPILER (GLM_COMPILER_GCC46)
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
@@ -249,32 +212,14 @@
# define GLM_COMPILER (GLM_COMPILER_GCC48)
# elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
# define GLM_COMPILER (GLM_COMPILER_GCC49)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0)
-# define GLM_COMPILER (GLM_COMPILER_GCC50)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 1)
-# define GLM_COMPILER (GLM_COMPILER_GCC51)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC52)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 3)
-# define GLM_COMPILER (GLM_COMPILER_GCC53)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 4)
-# define GLM_COMPILER (GLM_COMPILER_GCC54)
-# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 0)
-# define GLM_COMPILER (GLM_COMPILER_GCC60)
-# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 1)
-# define GLM_COMPILER (GLM_COMPILER_GCC61)
-# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC62)
-# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 0)
-# define GLM_COMPILER (GLM_COMPILER_GCC70)
-# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 1)
-# define GLM_COMPILER (GLM_COMPILER_GCC71)
-# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC72)
+# elif (__GNUC__ == 5)
+# define GLM_COMPILER (GLM_COMPILER_GCC5)
+# elif (__GNUC__ == 6)
+# define GLM_COMPILER (GLM_COMPILER_GCC6)
+# elif (__GNUC__ == 7)
+# define GLM_COMPILER (GLM_COMPILER_GCC7)
# elif (__GNUC__ >= 8)
-# define GLM_COMPILER (GLM_COMPILER_GCC80)
-# else
-# define GLM_COMPILER (GLM_COMPILER_GCC)
+# define GLM_COMPILER (GLM_COMPILER_GCC8)
# endif
#else
@@ -410,6 +355,9 @@
#elif GLM_ARCH & GLM_ARCH_AVX_BIT
# include <immintrin.h>
#elif GLM_ARCH & GLM_ARCH_SSE42_BIT
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# include <popcntintrin.h>
+# endif
# include <nmmintrin.h>
#elif GLM_ARCH & GLM_ARCH_SSE41_BIT
# include <smmintrin.h>
diff --git a/3rdparty/glm/manual.md b/3rdparty/glm/manual.md
new file mode 100644
index 00000000000..ca60c453630
--- /dev/null
+++ b/3rdparty/glm/manual.md
@@ -0,0 +1,1407 @@
+![Alt](/doc/manual/logo-mini.png "GLM Logo")
+
+# GLM 0.9.9 Manual
+
+![Alt](/doc/manual/g-truc.png "G-Truc Logo")
+
+---
+## Table of Contents
++ [0. Licenses](#section0)
++ [1. Getting started](#section1)
++ [1.1. Setup](#section1_1)
++ [1.2. Faster compilation](#section1_2)
++ [1.3. Example usage](#section1_3)
++ [1.4. Dependencies](#section1_4)
++ [2. Swizzling](#section2)
++ [2.1. Default C++98 implementation](#section2_1)
++ [2.2. Anonynous union member implementation](#section2_2)
++ [3. Preprocessor options](#section3)
++ [3.1. Default precision](#section3_1)
++ [3.2. Compile-time message system](#section3_2)
++ [3.3. C++ language detection](#section3_3)
++ [3.4. SIMD support](#section3_4)
++ [3.5. Force inline](#section3_5)
++ [3.6. Vector and matrix static size](#section3_6)
++ [3.7. Disabling default constructor initialization](#section3_7)
++ [3.8. Requiring explicit conversions](#section3_8)
++ [3.9. Removing genType restriction](#section3_9)
++ [4. Stable extensions](#section4)
++ [4.1. GLM_GTC_bitfield](#section4_1)
++ [4.2. GLM_GTC_color_space](#section4_2)
++ [4.3. GLM_GTC_constants](#section4_3)
++ [4.4. GLM_GTC_epsilon](#section4_4)
++ [4.5. GLM_GTC_functions](#section4_5)
++ [4.6. GLM_GTC_integer](#section4_6)
++ [4.7. GLM_GTC_matrix_access](#section4_7)
++ [4.8. GLM_GTC_matrix_integer](#section4_8)
++ [4.9. GLM_GTC_matrix_inverse](#section4_9)
++ [4.10. GLM_GTC_matrix_transform](#section4_10)
++ [4.11. GLM_GTC_noise](#section4_11)
++ [4.12. GLM_GTC_packing](#section4_12)
++ [4.13. GLM_GTC_quaternion](#section4_13)
++ [4.14. GLM_GTC_random](#section4_14)
++ [4.15. GLM_GTC_reciprocal](#section4_15)
++ [4.16. GLM_GTC_round](#section4_16)
++ [4.17. GLM_GTC_type_alignment](#section4_17)
++ [4.18. GLM_GTC_type_precision](#section4_18)
++ [4.19. GLM_GTC_type_ptr](#section4_19)
++ [4.20. GLM_GTC_ulp](#section4_20)
++ [4.21. GLM_GTC_vec1](#section4_21)
++ [5. OpenGL interoperability](#section5)
++ [5.1. GLM Replacements for deprecated OpenGL functions](#section5_1)
++ [5.2. GLM Replacements for GPU functions](#section5_2)
++ [6. Known issues](#section6)
++ [6.1. Not function](#section6_1)
++ [6.2. Precision qualifiers support](#section6_2)
++ [7. FAQ](#section7)
++ [7.1 Why GLM follows GLSL specification and conventions?](#section7_1)
++ [7.2. Does GLM run GLSL programs?](#section7_2)
++ [7.3. Does a GLSL compiler build GLM codes?](#section7_3)
++ [7.4. Should I use ‘GTX’ extensions?](#section7_4)
++ [7.5. Where can I ask my questions?](#section7_5)
++ [7.6. Where can I find the documentation of extensions?](#section7_6)
++ [7.7. Should I use 'using namespace glm;'?](#section7_7)
++ [7.8. Is GLM fast?](#section7_8)
++ [7.9. When I build with Visual C++ with /w4 warning level, I have warnings...](#section7_9)
++ [7.10. Why some GLM functions can crash because of division by zero?](#section7_10)
++ [7.11. What unit for angles us used in GLM?](#section7_11)
++ [7.12. Windows headers cause build errors...](#section7_12)
++ [8. Code samples](#section8)
++ [8.1. Compute a triangle normal](#section8_1)
++ [8.2. Matrix transform](#section8_2)
++ [8.3. Vector types](#section8_3)
++ [8.4. Lighting](#section8_4)
++ [9. References](#section9)
++ [9.1. OpenGL specifications](#section9_1)
++ [9.2. External links](#section9_2)
++ [9.3. Projects using GLM](#section9_3)
++ [9.4. Tutorials using GLM](#section9_4)
++ [9.5. Equivalent for other languages](#section9_5)
++ [9.6. Alternatives to GLM](#section9_6)
++ [9.8. Acknowledgements](#section9_8)
+
+---
+## <a name="section0"></a> Licenses
+
+### The Happy Bunny License (Modified MIT License)
+
+Copyright (c) 2005 - 2016 G-Truc Creation
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+Restrictions: By making use of the Software for military purposes, you
+choose to make a Bunny unhappy.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+![](https://github.com/g-truc/glm/blob/manual/doc/manual/frontpage1.png)
+
+### The MIT License
+
+Copyright (c) 2005 - 2016 G-Truc Creation
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject 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.
+
+![](https://github.com/g-truc/glm/blob/manual/doc/manual/frontpage2.png)
+
+---
+
+## <a name="section1"></a> 1. Getting started
+### <a name="section1_1"></a> 1.1. Setup
+
+GLM is a header-only library, and thus does not need to be compiled. We can use GLM's implementation of GLSL's mathematics functionality by including the `<glm/glm.hpp>` header. The library can also be installed with CMake, though the details of doing so will differ depending on the target build system.
+
+Features can also be included individually to shorten compilation times.
+
+```cpp
+#include <glm/vec2.hpp> // vec2, bvec2, dvec2, ivec2 and uvec2
+#include <glm/vec3.hpp> // vec3, bvec3, dvec3, ivec3 and uvec3
+#include <glm/vec4.hpp> // vec4, bvec4, dvec4, ivec4 and uvec4
+#include <glm/mat2x2.hpp> // mat2, dmat2
+#include <glm/mat2x3.hpp> // mat2x3, dmat2x3
+#include <glm/mat2x4.hpp> // mat2x4, dmat2x4
+#include <glm/mat3x2.hpp> // mat3x2, dmat3x2
+#include <glm/mat3x3.hpp> // mat3, dmat3
+#include <glm/mat3x4.hpp> // mat3x4, dmat2
+#include <glm/mat4x2.hpp> // mat4x2, dmat4x2
+#include <glm/mat4x3.hpp> // mat4x3, dmat4x3
+#include <glm/mat4x4.hpp> // mat4, dmat4
+#include <glm/common.hpp> // all the GLSL common functions
+#include <glm/exponential.hpp> // all the GLSL exponential functions
+#include <glm/geometry.hpp> // all the GLSL geometry functions
+#include <glm/integer.hpp> // all the GLSL integer functions
+#include <glm/matrix.hpp> // all the GLSL matrix functions
+#include <glm/packing.hpp> // all the GLSL packing functions
+#include <glm/trigonometric.hpp> // all the GLSL trigonometric functions
+#include <glm/vector_relational.hpp> // all the GLSL vector relational functions
+```
+### <a name="section1_2"></a> 1.2. Faster compilation
+
+GLM uses C++ templates heavily, and may significantly increase compilation times for projects that use it. Hence, source files should only include the headers they actually use.
+
+To reduce compilation time, we can include `<glm/fwd.hpp>`, which forward-declares all types should their definitions not be needed.
+
+```cpp
+// Header file (forward declarations only)
+#include <glm/fwd.hpp>
+
+// At this point, we don't care what exactly makes up a vec2; that won't matter
+// until we write this function's implementation.
+glm::vec2 functionDeclaration(const glm::vec2& input);
+```
+
+Precompiled headers will also be helpful, though are not covered by this manual.
+
+### <a name="section1_3"></a> 1.3. Example usage
+
+
+```cpp
+// Include GLM core features
+#include <glm/vec3.hpp>
+#include <glm/vec4.hpp>
+#include <glm/mat4x4.hpp>
+#include <glm/trigonometric.hpp>
+
+// Include GLM extensions
+#include <glm/gtc/matrix_transform.hpp>
+
+glm::mat4 transform(glm::vec2 const& Orientation, glm::vec3 const& Translate, glm::vec3 const& Up)
+{
+ glm::mat4 Proj = glm::perspective(glm::radians(45.f), 1.33f, 0.1f, 10.f);
+ glm::mat4 ViewTranslate = glm::translate(glm::mat4(1.f), Translate);
+ glm::mat4 ViewRotateX = glm::rotate(ViewTranslate, Orientation.y, Up);
+ glm::mat4 View = glm::rotate(ViewRotateX, Orientation.x, Up);
+ glm::mat4 Model = glm::mat4(1.0f);
+ return Proj * View * Model;
+}
+```
+
+### <a name="section1_4"></a> 1.4. Dependencies
+
+GLM does not depend on external libraries or headers such as `<GL/gl.h>`, [`<GL/glcorearb.h>`](http://www.opengl.org/registry/api/GL/glcorearb.h), `<GLES3/gl3.h>`, `<GL/glu.h>`, or `<windows.h>`. However, if we include `<boost/static_assert.hpp>`, then [`Boost.StaticAssert`](http://www.boost.org/doc/libs/release/libs/static_assert) will be used to provide compile-time errors. Otherwise, if using a C++11 compiler, the standard `static_assert` will be used instead. If neither is available, GLM will use its own implementation of `static_assert`.
+
+---
+## <a name="section2"></a> 2. Swizzling
+
+Shader languages like GLSL often feature so-called swizzle expressions, which may be used to freely select and arrange a vector's components. For example, `variable.x`, `variable.xzy` and `variable.zxyy` respectively form a scalar, a 3D vector and a 4D vector. The result of a swizzle expression in GLSL can be either an R-value or an L-value. Swizzle expressions can be written with characters from exactly one of `xyzw` (usually for positions), `rgba` (usually for colors), and `stpq` (usually for texture coordinates).
+
+```cpp
+vec4 A;
+vec2 B;
+
+B.yx = A.wy;
+B = A.xx;
+vec3 C = A.bgr;
+vec3 D = B.rsz; // Invalid, won't compile
+```
+
+GLM optionally supports some of this functionality via the methods described in the following sections. Swizzling can be enabled by defining `GLM_FORCE_SWIZZLE` before including any GLM header files, or as part of a project's build process.
+
+*Note that enabling swizzle expressions will massively increase the size of your binaries and the time it takes to compile them!*
+
+### <a name="section2_1"></a> 2.1. Default C++98 implementation
+
+When compiling GLM as C++98, R-value swizzle expressions are simulated through member functions of each vector type.
+
+```cpp
+#define GLM_FORCE_SWIZZLE // Or defined when building (e.g. -DGLM_FORCE_SWIZZLE)
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::vec4 ColorRGBA(1.0f, 0.5f, 0.0f, 1.0f);
+ glm::vec3 ColorBGR = ColorRGBA.bgr();
+
+ glm::vec3 PositionA(1.0f, 0.5f, 0.0f, 1.0f);
+ glm::vec3 PositionB = PositionXYZ.xyz() * 2.0f;
+
+ glm::vec2 TexcoordST(1.0f, 0.5f);
+ glm::vec4 TexcoordSTPQ = TexcoordST.stst();
+}
+```
+
+Swizzle operators return a **copy** of the component values, and thus *can't* be used as L-values to change a vector's values.
+
+
+```cpp
+#define GLM_FORCE_SWIZZLE
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::vec3 A(1.0f, 0.5f, 0.0f);
+
+ // No compiler error, but A is not modified.
+ // An anonymous copy is being modified (and then discarded).
+ A.bgr() = glm::vec3(2.0f, 1.5f, 1.0f); // A is not modified!
+}
+```
+
+### <a name="section2_2"></a> 2.2. Anonymous union member implementation
+
+Visual C++ supports, as a _non-standard language extension_, anonymous `struct`s as `union` members. This permits a powerful swizzling implementation that both allows L-value swizzle expressions and GLSL-like syntax. To use this feature, the language extension must be enabled by a supporting compiler and `GLM_FORCE_SWIZZLE` must be `#define`d.
+
+```cpp
+#define GLM_FORCE_SWIZZLE
+#include <glm/glm.hpp>
+
+// Only guaranteed to work with Visual C++!
+// Some compilers that support Microsoft extensions may compile this.
+void foo()
+{
+ glm::vec4 ColorRGBA(1.0f, 0.5f, 0.0f, 1.0f);
+
+ // l-value:
+ glm::vec4 ColorBGRA = ColorRGBA.bgra;
+
+ // r-value:
+ ColorRGBA.bgra = ColorRGBA;
+
+ // Both l-value and r-value
+ ColorRGBA.bgra = ColorRGBA.rgba;
+}
+```
+
+This version returns implementation-specific objects that _implicitly convert_ to their respective vector types. As a consequence of this design, these extra types **can't be directly used** by GLM functions; they must be converted through constructors or `operator()`.
+
+```cpp
+#define GLM_FORCE_SWIZZLE
+#include <glm/glm.hpp>
+
+using glm::vec4;
+
+void foo()
+{
+ vec4 Color(1.0f, 0.5f, 0.0f, 1.0f);
+
+ // Generates compiler errors. Color.rgba is not a vector type.
+ vec4 ClampedA = glm::clamp(Color.rgba, 0.f, 1.f); // ERROR
+
+ // Explicit conversion through a constructor
+ vec4 ClampedB = glm::clamp(vec4(Color.rgba), 0.f, 1.f); // OK
+
+ // Explicit conversion through operator()
+ vec4 ClampedC = glm::clamp(Color.rgba(), 0.f, 1.f); // OK
+}
+```
+
+---
+## <a name="section3"></a> 3. Preprocessor options
+
+### <a name="section3_1"></a> 3.1. Default precision
+
+C++ does not provide a way to implement GLSL default precision selection (as defined in GLSL 4.10 specification section 4.5.3) with GLSL-like syntax.
+
+```cpp
+precision mediump int;
+precision highp float;
+```
+
+To use the default precision functionality, GLM provides some defines that need to add before any include of glm.hpp:
+
+```cpp
+#define GLM_PRECISION_MEDIUMP_INT
+#define GLM_PRECISION_HIGHP_FLOAT
+#include <glm/glm.hpp>
+```
+
+Available defines for floating point types (glm::vec\*, glm::mat\*):
+
+GLM\_PRECISION\_LOWP\_FLOAT: Low precision\
+GLM\_PRECISION\_MEDIUMP\_FLOAT: Medium precision\
+GLM\_PRECISION\_HIGHP\_FLOAT: High precision (default)
+
+Available defines for floating point types (glm::dvec\*, glm::dmat\*):
+
+GLM\_PRECISION\_LOWP\_DOUBLE: Low precision\
+GLM\_PRECISION\_MEDIUMP\_DOUBLE: Medium precision\
+GLM\_PRECISION\_HIGHP\_DOUBLE: High precision (default)
+
+Available defines for signed integer types (glm::ivec\*):
+
+GLM\_PRECISION\_LOWP\_INT: Low precision
+GLM\_PRECISION\_MEDIUMP\_INT: Medium precision
+GLM\_PRECISION\_HIGHP\_INT: High precision (default)
+
+Available defines for unsigned integer types (glm::uvec\*):
+
+GLM\_PRECISION\_LOWP\_UINT: Low precision
+GLM\_PRECISION\_MEDIUMP\_UINT: Medium precision
+GLM\_PRECISION\_HIGHP\_UINT: High precision (default)
+
+### <a name="section3_2"></a> 3.2. Compile-time message system
+
+GLM includes a notification system which can display some information at build time:
+
+* Platform: Windows, Linux, Native Client, QNX, etc.
+* Compiler: Visual C++, Clang, GCC, ICC, etc.
+* Build model: 32bits or 64 bits
+* C++ version : C++98, C++11, MS extensions, etc.
+* Architecture: x86, SSE, AVX, etc.
+* Included extensions
+* etc.
+
+This system is disabled by default. To enable this system, define GLM\_FORCE\_MESSAGES before any inclusion of &lt;glm/glm.hpp&gt;. The messages are generated only by compiler supporting \#program message and
+only once per project build.
+
+```cpp
+#define GLM_FORCE_MESSAGES
+#include <glm/glm.hpp>
+```
+
+### <a name="section3_3"></a> 3.3. C++ language detection
+
+GLM will automatically take advantage of compilers’ language extensions when enabled. To increase cross platform compatibility and to avoid compiler extensions, a programmer can define GLM\_FORCE\_CXX98 before
+any inclusion of &lt;glm/glm.hpp&gt; to restrict the language feature set C++98:
+
+```cpp
+#define GLM_FORCE_CXX98
+#include <glm/glm.hpp>
+```
+
+For C++11 and C++14, equivalent defines are available:
+GLM\_FORCE\_CXX11, GLM\_FORCE\_CXX14.
+
+```cpp
+#define GLM_FORCE_CXX11
+#include <glm/glm.hpp>
+
+// If the compiler doesn’t support C++11, compiler errors will happen.
+```
+
+GLM\_FORCE\_CXX14 overrides GLM\_FORCE\_CXX11 and GLM\_FORCE\_CXX11
+overrides GLM\_FORCE\_CXX98 defines.
+
+### <a name="section3_4"></a> 3.4. SIMD support
+
+GLM provides some SIMD optimizations based on [compiler intrinsics](https://msdn.microsoft.com/en-us/library/26td21ds.aspx).
+These optimizations will be automatically thanks to compiler arguments.
+For example, if a program is compiled with Visual Studio using /arch:AVX, GLM will detect this argument and generate code using AVX instructions automatically when available.
+
+It’s possible to avoid the instruction set detection by forcing the use of a specific instruction set with one of the fallowing define:
+GLM\_FORCE\_SSE2, GLM\_FORCE\_SSE3, GLM\_FORCE\_SSSE3, GLM\_FORCE\_SSE41, GLM\_FORCE\_SSE42, GLM\_FORCE\_AVX, GLM\_FORCE\_AVX2 or GLM\_FORCE\_AVX512.
+
+The use of intrinsic functions by GLM implementation can be avoided using the define GLM\_FORCE\_PURE before any inclusion of GLM headers.
+
+```cpp
+#define GLM_FORCE_PURE
+#include <glm/glm.hpp>
+
+// GLM code will be compiled using pure C++ code without any intrinsics
+```
+
+```cpp
+#define GLM_FORCE_AVX2
+#include <glm/glm.hpp>
+
+// If the compiler doesn’t support AVX2 instrinsics, compiler errors will happen.
+```
+
+Additionally, GLM provides a low level SIMD API in glm/simd directory for users who are really interested in writing fast algorithms.
+
+### <a name="section3_5"></a> 3.5. Force inline
+
+To push further the software performance, a programmer can define GLM\_FORCE\_INLINE before any inclusion of &lt;glm/glm.hpp&gt; to force the compiler to inline GLM code.
+
+```cpp
+#define GLM_FORCE_INLINE
+#include <glm/glm.hpp>
+```
+
+### <a name="section3_6"></a> 3.6. Vector and matrix static size
+
+GLSL supports the member function .length() for all vector and matrix types.
+
+```cpp
+#include <glm/glm.hpp>
+
+void foo(vec4 const & v)
+{
+ int Length = v.length();
+ ...
+}
+```
+
+This function returns a int however this function typically interacts with STL size\_t based code. GLM provides GLM\_FORCE\_SIZE\_T\_LENGTH pre-processor option so that member functions length() return a size\_t.
+
+Additionally, GLM defines the type glm::length\_t to identify length() returned type, independently from GLM\_FORCE\_SIZE\_T\_LENGTH.
+
+```cpp
+#define GLM_FORCE_SIZE_T_LENGTH
+#include <glm/glm.hpp>
+
+void foo(vec4 const & v)
+{
+ glm::size_t Length = v.length();
+ ...
+}
+```
+
+### <a name="section3_7"></a> 3.7. Disabling default constructor initialization
+
+By default and following GLSL specifications, vector and matrix default constructors initialize the components to zero. This is a reliable behavior but initialization has a cost and it’s not always necessary.
+This behavior can be disable at compilation time by define GLM\_FORCE\_NO\_CTOR\_INIT before any inclusion of &lt;glm/glm.hpp&gt; or other GLM include.
+
+GLM default behavior:
+
+```cpp
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::vec4 v; // v is (0.0f, 0.0f, 0.0f, 0.0f)
+ ...
+}
+```
+
+GLM behavior using GLM\_FORCE\_NO\_CTOR\_INIT:
+
+```cpp
+#define GLM_FORCE_NO_CTOR_INIT
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::vec4 v; // v is fill with garbage
+ ...
+}
+```
+
+Alternatively, GLM allows to explicitly not initialize a variable:
+
+```cpp
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::vec4 v(glm::uninitialize);
+ ...
+}
+```
+
+### <a name="section3_8"></a> 3.8. Require explicit conversions
+
+GLSL supports implicit conversions of vector and matrix types. For example, an ivec4 can be implicitly converted into vec4.
+
+Often, this behaviour is not desirable but following the spirit of the library, this behavior is supported in GLM. However, GLM 0.9.6 introduced the define GLM\_FORCE\_EXPLICIT\_CTOR to require explicit
+conversion for GLM types.
+
+```cpp
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::ivec4 a;
+ ...
+
+ glm::vec4 b(a); // Explicit conversion, OK
+ glm::vec4 c = a; // Implicit conversion, OK
+ ...
+}
+```
+
+With GLM\_FORCE\_EXPLICIT\_CTOR define, implicit conversions are not allowed:
+
+```cpp
+#define GLM_FORCE_EXPLICIT_CTOR
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::ivec4 a;
+ {
+ glm::vec4 b(a); // Explicit conversion, OK
+ glm::vec4 c = a; // Implicit conversion, ERROR
+ ...
+}
+```
+
+### <a name="section3_9"></a> 3.9. Removing genType restriction
+
+By default GLM only supports basic types as genType for vector, matrix and quaternion types:
+
+```cpp
+#include <glm/glm.hpp>
+
+typedef glm::vec<4, float> my_fvec4;
+```
+
+GLM 0.9.8 introduced GLM\_FORCE\_UNRESTRICTED\_GENTYPE define to relax this restriction:
+
+```cpp
+#define GLM_FORCE_UNRESTRICTED_GENTYPE
+#include <glm/glm.hpp>
+
+#include "half.hpp" // Define “half†class with equivalent behavior than “floatâ€
+
+typedef glm::vec<4, half> my_hvec4;
+```
+
+However, defining GLM\_FORCE\_UNRESTRICTED\_GENTYPE is not compatible with GLM\_FORCE\_SWIZZLE and will generate a compilation error if both are defined at the same time.
+
+---
+## <a name="section4"></a> 4. Stable extensions
+
+GLM extends the core GLSL feature set with extensions. These extensions include: quaternion, transformation, spline, matrix inverse, color spaces, etc.
+
+To include an extension, we only need to include the dedicated header file. Once included, the features are added to the GLM namespace.
+
+```cpp
+#include <glm/glm.hpp>
+#include <glm/gtc/matrix_transform.hpp>
+
+int foo()
+{
+ glm::vec4 Position = glm::vec4(glm:: vec3(0.0f), 1.0f);
+ glm::mat4 Model = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
+
+ glm::vec4 Transformed = Model * Position;
+ ...
+
+ return 0;
+}
+```
+
+When an extension is included, all the dependent core functionalities and extensions will be included as well.
+
+### <a name="section4_1"></a> 4.1. GLM_GTC_bitfield
+
+Fast bitfield operations on scalar and vector variables.
+
+&lt;glm/gtc/bitfield.hpp&gt; need to be included to use these features.
+
+### <a name="section4_2"></a> 4.2. GLM_GTC_color_space
+
+Conversion between linear RGB and sRGB color spaces.
+
+&lt;glm/gtc/color\_space.hpp&gt; need to be included to use these features.
+
+### <a name="section4_3"></a> 4.3. GLM\_GTC\_constants
+
+Provide a list of built-in constants.
+
+&lt;glm/gtc/constants.hpp&gt; need to be included to use these features.
+
+### <a name="section4_4"></a> 4.4. GLM\_GTC\_epsilon
+
+Approximate equality comparisons for floating-point numbers, possibly with a user-defined epsilon.
+
+&lt;glm/gtc/epsilon.hpp&gt; need to be included to use these features.
+
+### <a name="section4_5"></a> 4.5. GLM\_GTC\_functions
+
+Useful functions.
+
+&lt;glm/gtc/functions.hpp&gt; need to be included to use these features.
+
+### <a name="section4_6"></a> 4.6. GLM\_GTC\_integer
+
+Integer variants of core GLM functions.
+
+&lt;glm/gtc/integer.hpp&gt; need to be included to use these features.
+
+### <a name="section4_7"></a> 4.7. GLM\_GTC\_matrix\_access
+
+Functions to conveniently access the individual rows or columns of a matrix.
+
+&lt;glm/gtc/matrix\_access.hpp&gt; need to be included to use these features.
+
+### <a name="section4_8"></a> 4.8. GLM\_GTC\_matrix\_integer
+
+Integer matrix types similar to the core floating-point matrices. Some operations (such as inverse and determinant) are not supported.
+
+&lt;glm/gtc/matrix\_integer.hpp&gt; need to be included to use these features.
+
+### <a name="section4_9"></a> 4.9. GLM\_GTC\_matrix\_inverse
+
+Additional matrix inverse functions.
+
+&lt;glm/gtc/matrix\_inverse.hpp&gt; need to be included to use these features.
+
+### <a name="section4_10"></a> 4.10. GLM\_GTC\_matrix\_transform
+
+Matrix transformation functions that follow the OpenGL fixed-function conventions.
+
+For example, the ***lookAt*** function generates a transformation matrix that projects world coordinates into eye coordinates suitable for projection matrices (e.g. ***perspective***, ***ortho***). See the OpenGL compatibility specifications for more information about the layout of these generated 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 define the particular layout of this eye space.
+
+&lt;glm/gtc/matrix\_transform.hpp&gt; need to be included to use these features.
+
+### <a name="section4_11"></a> 4.11. GLM\_GTC\_noise
+
+Define 2D, 3D and 4D procedural noise functions.
+
+&lt;glm/gtc/noise.hpp&gt; need to be included to use these features.
+
+![](/doc/manual/noise-simplex1.jpg)
+
+Figure 4.11.1: glm::simplex(glm::vec2(x / 16.f, y / 16.f));
+
+![](/doc/manual/noise-simplex2.jpg)
+
+Figure 4.11.2: glm::simplex(glm::vec3(x / 16.f, y / 16.f, 0.5f));
+
+![](/doc/manual/noise-simplex3.jpg)
+
+Figure 4.11.3: glm::simplex(glm::vec4(x / 16.f, y / 16.f, 0.5f, 0.5f));
+
+![](/doc/manual/noise-perlin1.jpg)
+
+Figure 4.11.4: glm::perlin(glm::vec2(x / 16.f, y / 16.f));
+
+![](/doc/manual/noise-perlin2.jpg)
+
+Figure 4.11.5: glm::perlin(glm::vec3(x / 16.f, y / 16.f, 0.5f));
+
+![](/doc/manual/noise-perlin3.jpg)
+
+Figure 4.11.6: glm::perlin(glm::vec4(x / 16.f, y / 16.f, 0.5f, 0.5f)));
+
+![](/doc/manual/noise-perlin4.png)
+
+Figure 4.11.7: glm::perlin(glm::vec2(x / 16.f, y / 16.f), glm::vec2(2.0f));
+
+![](/doc/manual/noise-perlin5.png)
+
+Figure 4.11.8: glm::perlin(glm::vec3(x / 16.f, y / 16.f, 0.5f), glm::vec3(2.0f));
+
+![](/doc/manual/noise-perlin6.png)
+
+Figure 4.11.9: glm::perlin(glm::vec4(x / 16.f, y / 16.f, glm::vec2(0.5f)), glm::vec4(2.0f));
+
+### <a name="section4_12"></a> 4.12. GLM\_GTC\_packing
+
+Convert scalar and vector types to and from packed formats, saving space at the cost of precision. However, packing a value into a format that it was previously unpacked from is guaranteed to be lossless.
+
+&lt;glm/gtc/packing.hpp&gt; need to be included to use these features.
+
+### <a name="section4_13"></a> 4.13. GLM\_GTC\_quaternion
+
+Quaternions and operations upon thereof.
+
+&lt;glm/gtc/quaternion.hpp&gt; need to be included to use these features.
+
+### <a name="section4_14"></a> 4.14. GLM\_GTC\_random
+
+Probability distributions in up to four dimensions.
+
+&lt;glm/gtc/random.hpp&gt; need to be included to use these features.
+
+![](/doc/manual/random-linearrand.png)
+
+Figure 4.14.1: glm::vec4(glm::linearRand(glm::vec2(-1), glm::vec2(1)), 0, 1);
+
+![](/doc/manual/random-circularrand.png)
+
+Figure 4.14.2: glm::vec4(glm::circularRand(1.0f), 0, 1);
+
+![](/doc/manual/random-sphericalrand.png)
+
+Figure 4.14.3: glm::vec4(glm::sphericalRand(1.0f), 1);
+
+![](/doc/manual/random-diskrand.png)
+
+Figure 4.14.4: glm::vec4(glm::diskRand(1.0f), 0, 1);
+
+![](/doc/manual/random-ballrand.png)
+
+Figure 4.14.5: glm::vec4(glm::ballRand(1.0f), 1);
+
+![](/doc/manual/random-gaussrand.png)
+
+Figure 4.14.6: glm::vec4(glm::gaussRand(glm::vec3(0), glm::vec3(1)), 1);
+
+### <a name="section4_15"></a> 4.15. GLM\_GTC\_reciprocal
+
+Reciprocal trigonometric functions (e.g. secant, cosecant, tangent).
+
+&lt;glm/gtc/reciprocal.hpp&gt; need to be included to use these functionalities.
+
+### <a name="section4_16"></a> 4.16. GLM\_GTC\_round
+
+Various rounding operations and common special cases thereof.
+
+&lt;glm/gtc/round.hpp&gt; need to be included to use these functionalities.
+
+### <a name="section4_17"></a> 4.17. GLM\_GTC\_type\_aligned
+
+Aligned vector types.
+
+&lt;glm/gtc/type\_aligned.hpp&gt; need to be included to use these functionalities.
+
+### <a name="section4_18"></a> 4.18. GLM\_GTC\_type\_precision
+
+Vector and matrix types with defined precisions, e.g. i8vec4, which is a 4D vector of signed 8-bit integers.
+
+This extension adds defines to set the default precision of each class of types added, in a manner identical to that described in section [Default precision](#section3_1).
+
+Available defines for signed 8-bit integer types (glm::i8vec\*):
+
+* GLM\_PRECISION\_LOWP\_INT8: Low precision
+* GLM\_PRECISION\_MEDIUMP\_INT8: Medium precision
+* GLM\_PRECISION\_HIGHP\_INT8: High precision (default)
+
+Available defines for unsigned 8-bit integer types (glm::u8vec\*):
+
+* GLM\_PRECISION\_LOWP\_UINT8: Low precision
+* GLM\_PRECISION\_MEDIUMP\_UINT8: Medium precision
+* GLM\_PRECISION\_HIGHP\_UINT8: High precision (default)
+
+Available defines for signed 16-bit integer types (glm::i16vec\*):
+
+* GLM\_PRECISION\_LOWP\_INT16: Low precision
+* GLM\_PRECISION\_MEDIUMP\_INT16: Medium precision
+* GLM\_PRECISION\_HIGHP\_INT16: High precision (default)
+
+Available defines for unsigned 16-bit integer types (glm::u16vec\*):
+
+* GLM\_PRECISION\_LOWP\_UINT16: Low precision
+* GLM\_PRECISION\_MEDIUMP\_UINT16: Medium precision
+* GLM\_PRECISION\_HIGHP\_UINT16: High precision (default)
+
+Available defines for signed 32-bit integer types (glm::i32vec\*):
+
+* GLM\_PRECISION\_LOWP\_INT32: Low precision
+* GLM\_PRECISION\_MEDIUMP\_INT32: Medium precision
+* GLM\_PRECISION\_HIGHP\_INT32: High precision (default)
+
+Available defines for unsigned 32-bit integer types (glm::u32vec\*):
+
+* GLM\_PRECISION\_LOWP\_UINT32: Low precision
+* GLM\_PRECISION\_MEDIUMP\_UINT32: Medium precision
+* GLM\_PRECISION\_HIGHP\_UINT32: High precision (default)
+
+Available defines for signed 64-bit integer types (glm::i64vec\*):
+
+* GLM\_PRECISION\_LOWP\_INT64: Low precision
+* GLM\_PRECISION\_MEDIUMP\_INT64: Medium precision
+* GLM\_PRECISION\_HIGHP\_INT64: High precision (default)
+
+Available defines for unsigned 64-bit integer types (glm::u64vec\*):
+
+* GLM\_PRECISION\_LOWP\_UINT64: Low precision
+* GLM\_PRECISION\_MEDIUMP\_UINT64: Medium precision
+* GLM\_PRECISION\_HIGHP\_UINT64: High precision (default)
+
+Available defines for 32-bit floating-point types (glm::f32vec\*, glm::f32mat\*, glm::f32quat):
+
+* GLM\_PRECISION\_LOWP\_FLOAT32: Low precision
+* GLM\_PRECISION\_MEDIUMP\_FLOAT32: Medium precision
+* GLM\_PRECISION\_HIGHP\_FLOAT32: High precision (default)
+
+Available defines for 64-bit floating-point types (glm::f64vec\*, glm::f64mat\*, glm::f64quat):
+
+* GLM\_PRECISION\_LOWP\_FLOAT64: Low precision
+* GLM\_PRECISION\_MEDIUMP\_FLOAT64: Medium precision
+* GLM\_PRECISION\_HIGHP\_FLOAT64: High precision (default)
+
+&lt;glm/gtc/type\_precision.hpp&gt; need to be included to use these functionalities.
+
+### <a name="section4_19"></a> 4.19. GLM\_GTC\_type\_ptr
+
+Facilitate interactions between pointers to basic types (e.g. float*) and GLM types (e.g. mat4).
+
+This extension defines an overloaded function, glm::value_ptr, which returns a pointer to the memory layout of any GLM vector or matrix (vec3, mat4, etc.). Matrix types store their values in column-major order. This is useful for uploading data to matrices or for copying data to buffer objects.
+
+```cpp
+// GLM_GTC_type_ptr provides a safe solution:
+#include <glm/glm.hpp>
+#include <glm/gtc/type_ptr.hpp>
+
+void foo()
+{
+ glm::vec4 v(0.0f);
+ glm::mat4 m(1.0f);
+ ...
+ glVertex3fv(glm::value_ptr(v))
+ glLoadMatrixfv(glm::value_ptr(m));
+}
+
+// Another solution, this one inspired by the STL:
+#include <glm/glm.hpp>
+
+void foo()
+{
+ glm::vec4 v(0.0f);
+ glm::mat4 m(1.0f);
+ ...
+ glVertex3fv(&v\[0\]);
+ glLoadMatrixfv(&m\[0\]\[0\]);
+}
+```
+
+*Note: It would be possible to implement [*glVertex3fv*](http://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml)(glm::vec3(0)) in C++ with the appropriate cast operator that would result as an
+implicit cast in this example. However cast operators may produce programs running with unexpected behaviours without build error or any form of notification. *
+
+&lt;glm/gtc/type\_ptr.hpp&gt; need to be included to use these features.
+
+### <a name="section4_20"></a> 4.20. GLM\_GTC\_ulp
+
+Measure a function's accuracy given a reference implementation of it. This extension works on floating-point data and provides results in [ULP](http://ljk.imag.fr/membres/Carine.Lucas/TPScilab/JMMuller/ulp-toms.pdf).
+
+&lt;glm/gtc/ulp.hpp&gt; need to be included to use these features.
+
+### <a name="section4_21"></a> 4.21. GLM\_GTC\_vec1
+
+Add \*vec1 types.
+
+&lt;glm/gtc/vec1.hpp&gt; need to be included to use these features.
+
+---
+## <a name="section5"></a> 5. OpenGL interoperability
+
+### <a name="section5_1"></a> 5.1. GLM replacements for deprecated OpenGL functions
+
+OpenGL 3.1 specification has deprecated some features that have been removed from OpenGL 3.2 core profile specification. GLM provides some replacement functions.
+
+[***glRotate{f, d}:***](https://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml)
+
+```cpp
+glm::mat4 glm::rotate(glm::mat4 const& m, float angle, glm::vec3 const& axis);
+glm::dmat4 glm::rotate(glm::dmat4 const& m, double angle, glm::dvec3 const& axis);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***glScale{f, d}: ***](http://www.opengl.org/sdk/docs/man2/xhtml/glScale.xml)
+
+```cpp
+glm::mat4 glm::scale(glm::mat4 const& m, glm::vec3 const& factors);
+glm::dmat4 glm::scale(glm::dmat4 const& m, glm::dvec3 const& factors);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***glTranslate{f, d}:***](https://www.opengl.org/sdk/docs/man2/xhtml/glTranslate.xml)
+
+```cpp
+glm::mat4 glm::translate(glm::mat4 const& m, glm::vec3 const& translation);
+glm::dmat4 glm::translate(glm::dmat4 const& m, glm::dvec3 const& translation);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***glLoadIdentity:***](https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml)
+
+```cpp
+glm::mat4(1.0) or glm::mat4();
+glm::dmat4(1.0) or glm::dmat4();
+```
+
+From GLM core library: &lt;glm/glm.hpp&gt;
+
+[***glMultMatrix{f, d}: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml)
+
+```cpp
+glm::mat4() * glm::mat4();
+glm::dmat4() * glm::dmat4();
+```
+
+From GLM core library: &lt;glm/glm.hpp&gt;
+
+[***glLoadTransposeMatrix{f, d}: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrix.xml)
+
+```cpp
+glm::transpose(glm::mat4());
+glm::transpose(glm::dmat4());
+```
+
+From GLM core library: &lt;glm/glm.hpp&gt;
+
+[***glMultTransposeMatrix{f, d}: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrix.xml)
+
+```cpp
+glm::mat4() * glm::transpose(glm::mat4());
+glm::dmat4() * glm::transpose(glm::dmat4());
+```
+
+From GLM core library: &lt;glm/glm.hpp&gt;
+
+[***glFrustum:***](http://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml)
+
+```cpp
+glm::mat4 glm::frustum(float left, float right, float bottom, float top, float zNear, float zFar);
+glm::dmat4 glm::frustum(double left, double right, double bottom, double top, double zNear, double zFar);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***glOrtho: ***](https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml)
+
+```cpp
+glm::mat4 glm::ortho(float left, float right, float bottom, float top, float zNear, float zFar);
+glm::dmat4 glm::ortho(double left, double right, double bottom, double top, double zNear, double zFar);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+### <a name="section5_2"></a> 5.2. GLM replacements for GLU functions
+
+[***gluLookAt: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluLookAt.xml)
+
+```cpp
+glm::mat4 glm::lookAt(glm::vec3 const& eye, glm::vec3 const& center, glm::vec3 const& up);
+glm::dmat4 glm::lookAt(glm::dvec3 const& eye, glm::dvec3 const& center, glm::dvec3 const& up);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***gluOrtho2D: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluOrtho2D.xml)
+
+```cpp
+glm::mat4 glm::ortho(float left, float right, float bottom, float top);
+glm::dmat4 glm::ortho(double left, double right, double bottom, double top);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***gluPerspective: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluPerspective.xml)
+
+```cpp
+glm::mat4 perspective(float fovy, float aspect, float zNear, float zFar);
+glm::dmat4 perspective(double fovy, double aspect, double zNear, double zFar);
+```
+
+Note that in GLM, fovy is expressed in radians, not degrees.
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***gluPickMatrix:***](https://www.opengl.org/sdk/docs/man2/xhtml/gluPickMatrix.xml)
+
+```cpp
+glm::mat4 pickMatrix(glm::vec2 const& center, glm::vec2 const& delta, glm::ivec4 const& viewport);
+glm::dmat4 pickMatrix(glm::dvec2 const& center, glm::dvec2 const& delta, glm::ivec4 const& viewport);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[**gluProject:**](http://www.opengl.org/sdk/docs/man2/xhtml/gluProject.xml)
+
+```cpp
+glm::vec3 project(glm::vec3 const& obj, glm::mat4 const& model, glm::mat4 const & proj, glm::ivec4 const& viewport);
+glm::dvec3 project(glm::dvec3 const& obj, glm::dmat4 const & model, glm::dmat4 const & proj, glm::ivec4 const& viewport);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+[***gluUnProject: ***](https://www.opengl.org/sdk/docs/man2/xhtml/gluUnProject.xml)
+
+```cpp
+glm::vec3 unProject(glm::vec3 const& win, glm::mat4 const& model, glm::mat4 const& proj, glm::ivec4 const& viewport);
+glm::dvec3 unProject(glm::dvec3 const& win, glm::dmat4 const& model, glm::dmat4 const& proj, glm::ivec4 const & viewport);
+```
+
+From GLM\_GTC\_matrix\_transform extension: &lt;glm/gtc/matrix\_transform.hpp&gt;
+
+---
+## <a name="section6"></a> 6. Known issues
+
+This section reports GLSL features that GLM can't accurately emulate due to language restrictions.
+
+### <a name="section6_1"></a> 6.1. not function
+
+The GLSL function 'not' is a keyword in C++. To prevent name collisions and ensure a consistent API, the name not\_ (note the underscore) is used instead.
+
+### <a name="section6_2"></a> 6.2. Precision qualifiers support
+
+GLM supports GLSL precision qualifiers through prefixes instead of qualifiers. For example, GLM exposes \verb|lowp_vec4|, \verb|mediump_vec4| and \verb|highp_vec4| as variations of \verb|vec4|.
+
+Similarly to GLSL, GLM precision qualifiers are used to trade precision of operations in term of [ULPs](http://en.wikipedia.org/wiki/Unit_in_the_last_place) for better performance. By default, all the types use high precision.
+
+```cpp
+// Using precision qualifier in GLSL:
+
+ivec3 foo(in vec4 v)
+{
+ highp vec4 a = v;
+ mediump vec4 b = a;
+ lowp ivec3 c = ivec3(b);
+ return c;
+}
+
+// Using precision qualifier in GLM:
+
+#include <glm/glm.hpp>
+
+ivec3 foo(const vec4 & v)
+{
+ highp_vec4 a = v;
+ medium_vec4 b = a;
+ lowp_ivec3 c = glm::ivec3(b);
+ return c;
+}
+```
+
+The syntax for default precision specifications in GLM differs from that in GLSL; for more information, see section Default Precision <a name="section3_1"></a>.
+
+---
+## <a name="section7"></a> 7. FAQ
+
+### <a name="section7_1"></a> 7.1 Why GLM follows GLSL specification and conventions?
+
+Following GLSL conventions is a really strict policy of GLM. It has been designed following the idea that everyone does its own math library with his own conventions. The idea is that brilliant developers (the OpenGL ARB) worked together and agreed to make GLSL. Following GLSL conventions
+is a way to find consensus. Moreover, basically when a developer knows GLSL, he knows GLM.
+
+### <a name="section7_2"></a> 7.2. Does GLM run GLSL program?
+
+No, GLM is a C++ implementation of a subset of GLSL.
+
+### <a name="section7_3"></a> 7.3. Does a GLSL compiler build GLM codes?
+
+No, this is not what GLM attends to do.
+
+### <a name="section7_4"></a> 7.4. Should I use ‘GTX’ extensions?
+
+GTX extensions are qualified to be experimental extensions. In GLM this means that these extensions might change from version to version without any restriction. In practice, it doesn’t really change except time to
+time. GTC extensions are stabled, tested and perfectly reliable in time. Many GTX extensions extend GTC extensions and provide a way to explore features and implementations and APIs and then are promoted to GTC
+extensions. This is fairly the way OpenGL features are developed; through extensions.
+
+Stating with GLM 0.9.9, to use experimental extensions, an application but define GLM_ENABLE_EXPERIMENTAL.
+
+### <a name="section7_5"></a> 7.5. Where can I ask my questions?
+
+A good place is [stackoverflow](http://stackoverflow.com/search?q=GLM) using the GLM tag.
+
+### <a name="section7_6"></a> 7.6. Where can I find the documentation of extensions?
+
+The Doxygen generated documentation includes a complete list of all extensions available. Explore this [*API documentation*](http://glm.g-truc.net/html/index.html) to get a complete
+view of all GLM capabilities!
+
+### <a name="section7_7"></a> 7.7. Should I use ‘using namespace glm;’?
+
+NO! Chances are that if using namespace glm; is called, especially in a header file, name collisions will happen as GLM is based on GLSL which uses common tokens for types and functions. Avoiding using namespace
+glm; will a higher compatibility with third party library and SDKs.
+
+### <a name="section7_8"></a> 7.8. Is GLM fast?
+
+GLM is mainly designed to be convenient and that's why it is written against the GLSL specification.
+
+Following the Pareto principle where 20% of the code consumes 80% of the execution time, GLM operates perfectly on the 80% of the code that consumes 20% of the performances. Furthermore, thanks to the lowp,
+mediump and highp qualifiers, GLM provides approximations which trade precision for performance. Finally, GLM can automatically produce SIMD optimized code for functions of its implementation.
+
+However, on performance critical code paths, we should expect that dedicated algorithms should be written to reach peak performance.
+
+### <a name="section7_9"></a> 7.9. When I build with Visual C++ with /W4 warning level, I have warnings...
+
+You should not have any warnings even in /W4 mode. However, if you expect such level for your code, then you should ask for the same level to the compiler by at least disabling the Visual C++ language extensions
+(/Za) which generates warnings when used. If these extensions are enabled, then GLM will take advantage of them and the compiler will generate warnings.
+
+### <a name="section7_10"></a> 7.10. Why some GLM functions can crash because of division by zero?
+
+GLM functions crashing is the result of a domain error. Such behavior follows the precedent set by C and C++'s standard library. For example, it’s a domain error to pass a null vector (all zeroes) to glm::normalize function, or to pass a negative number into std::sqrt.
+
+### <a name="section7_11"></a> 7.11. What unit for angles is used in GLM?
+
+GLSL is using radians but GLU is using degrees to express angles. This has caused GLM to use inconsistent units for angles. Starting with GLM 0.9.6, all GLM functions are using radians. For more information, follow
+the [link](http://www.g-truc.net/post-0693.html#menu).
+
+### <a name="section7_12"></a> 7.12. Windows headers cause build errors...
+
+Some Windows headers define min and max as macros which may cause compatibility with third party libraries such as GLM.
+It is highly recommanded to [define NOMINMAX](http://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c) before including Windows headers to workaround this issue.
+To workaround the incompatibility with these macros, GLM will systematically undef these macros if they are defined.
+
+---
+## <a name="section8"></a> 8. Code samples
+
+This series of samples only shows various GLM features without consideration of any sort.
+
+### <a name="section8_1"></a> 8.1. Compute a triangle normal
+
+```cpp
+#include <glm/glm.hpp> // vec3 normalize cross
+
+glm::vec3 computeNormal(glm::vec3 const& a, glm::vec3 const& b, glm::vec3 const& c)
+{
+ return glm::normalize(glm::cross(c - a, b - a));
+}
+
+// A much faster but less accurate alternative:
+#include <glm/glm.hpp> // vec3 cross
+#include <glm/gtx/fast_square_root.hpp> // fastNormalize
+
+glm::vec3 computeNormal(glm::vec3 const& a, glm::vec3 const& b, glm::vec3 const& c)
+{
+ return glm::fastNormalize(glm::cross(c - a, b - a));
+}
+```
+
+### <a name="section8_2"></a> 8.2. Matrix transform
+
+```cpp
+#include <glm/glm.hpp> // vec3, vec4, ivec4, mat4
+#include <glm/gtc/matrix_transform.hpp> // translate, rotate, scale, perspective
+#include <glm/gtc/type_ptr.hpp> // value_ptr
+
+void setUniformMVP(GLuint Location, glm::vec3 const& Translate, glm::vec3 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), 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(Location, 1, GL_FALSE, glm::value_ptr(MVP));
+}
+```
+
+### <a name="section8_3"></a> 8.3. Vector types
+
+```cpp
+#include <glm/glm.hpp> // vec2
+#include <glm/gtc/type_precision.hpp> // hvec2, i8vec2, 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::hvec2);
+glm::hvec2 const PositionDataF16[VertexCount] =
+{
+ glm::hvec2(-1.0f, -1.0f),
+ glm::hvec2( 1.0f, -1.0f),
+ glm::hvec2( 1.0f, 1.0f),
+ glm::hvec2(-1.0f, 1.0f)
+};
+
+// 8 bits signed integer quad geometry
+std::size_t const PositionSizeI8 = VertexCount * sizeof(glm::i8vec2);
+glm::i8vec2 const PositionDataI8[VertexCount] =
+{
+ glm::i8vec2(-1,-1),
+ glm::i8vec2( 1,-1),
+ glm::i8vec2( 1, 1),
+ glm::i8vec2(-1, 1)
+};
+
+// 32 bits signed integer quad geometry
+std::size_t const PositionSizeI32 = VertexCount * sizeof(glm::i32vec2);
+glm::i32vec2 const PositionDataI32[VertexCount] =
+{
+ glm::i32vec2(-1,-1),
+ glm::i32vec2( 1,-1),
+ glm::i32vec2( 1, 1),
+ glm::i32vec2(-1, 1)
+};
+```
+
+### <a name="section8_4"></a> 8.4. Lighting
+
+```cpp
+#include <glm/glm.hpp> // vec3 normalize reflect dot pow
+#include <glm/gtc/random.hpp> // ballRand
+
+// vecRand3, generate a random and equiprobable normalized vec3
+glm::vec3 lighting(intersection const& Intersection, material const& Material, light const& Light, glm::vec3 const& View)
+{
+ glm::vec3 Color = glm::vec3(0.0f);
+ glm::vec3 LightVertor = glm::normalize(
+ Light.position() - Intersection.globalPosition() +
+ glm::ballRand(0.0f, Light.inaccuracy());
+
+ if(!shadow(Intersection.globalPosition(), Light.position(), LightVertor))
+ {
+ float Diffuse = glm::dot(Intersection.normal(), LightVector);
+ if(Diffuse &lt;= 0.0f)
+ return Color;
+
+ if(Material.isDiffuse())
+ Color += Light.color() * Material.diffuse() * Diffuse;
+
+ if(Material.isSpecular())
+ {
+ glm::vec3 Reflect = glm::reflect(-LightVector, Intersection.normal());
+ float Dot = glm::dot(Reflect, View);
+ float Base = Dot &gt; 0.0f ? Dot : 0.0f;
+ float Specular = glm::pow(Base, Material.exponent());
+ Color += Material.specular() \* Specular;
+ }
+ }
+
+ return Color;
+}
+```
+
+---
+## <a name="section9"></a> 9. References
+
+### <a name="section9_1"></a> 9.1. OpenGL specifications
+
+* OpenGL 4.3 core specification
+* [GLSL 4.30 specification](http://www.opengl.org/registry/doc/GLSLangSpec.4.30.7.diff.pdf)
+![](media/image21.png){width="2.859722222222222in" height="1.6083333333333334in"}- [*GLU 1.3 specification*](http://www.opengl.org/documentation/specs/glu/glu1_3.pdf)
+
+### <a name="section9_2"></a> 9.2. External links
+
+* [GLM on stackoverflow](http://stackoverflow.com/search?q=GLM)
+
+### <a name="section9_3"></a> 9.3. Projects using GLM
+
+***[Leo’s Forture](http://www.leosfortune.com/) ***
+
+Leo’s Fortune is a platform adventure game where you hunt down the cunning and mysterious thief that stole your gold. Available on PS4, Xbox One, PC, Mac, iOS and Android.
+
+Beautifully hand-crafted levels bring the story of Leo to life in this epic adventure.
+
+“I just returned home to find all my gold has been stolen! For some devious purpose, the thief has dropped pieces of my gold like breadcrumbs through the woods.â€
+
+“Despite this pickle of a trap, I am left with no choice but to follow the trail.â€
+
+“Whatever lies ahead, I must recover my fortune.†-Leopold
+
+![](/doc/manual/references-leosfortune.jpeg)
+
+![](/doc/manual/references-leosfortune2.jpg)
+
+[***OpenGL 4.0 Shading Language Cookbook***](http://www.packtpub.com/opengl-4-0-shading-language-cookbook/book?tag=rk/opengl4-abr1/0811)
+
+A set of recipes that demonstrates a wide of techniques for producing high-quality, real-time 3D graphics with GLSL 4.0, such as:
+
+* Using GLSL 4.0 to implement lighting and shading techniques.
+* Using the new features of GLSL 4.0 including tessellation and geometry shaders.
+* Using textures in GLSL as part of a wide variety of techniques from basic texture mapping to deferred shading.
+
+Simple, easy-to-follow examples with GLSL source code are provided, as well as a basic description of the theory behind each technique.
+
+![](/doc/manual/references-glsl4book.jpg)
+
+[***Outerra***](http://outerra.com/)
+
+A 3D planetary engine for seamless planet rendering from space down to the surface. Can use arbitrary resolution of elevation data, refining it to centimetre resolution using fractal algorithms.
+
+![](/doc/manual/references-outerra1.jpg)
+
+![](/doc/manual/references-outerra2.jpg)
+
+![](/doc/manual/references-outerra3.jpg)
+
+![](/doc/manual/references-outerra4.jpg)
+
+[***Falcor***](https://github.com/NVIDIA/Falcor)
+
+Real-time rendering research framework by NVIDIA.
+
+[***Cinder***](https://libcinder.org/)
+
+Cinder is a free and open source library for professional-quality creative coding in C++.
+
+Cinder is a C++ library for programming with aesthetic intent - the sort of development often called creative coding. This includes domains like graphics, audio, video, and computational geometry. Cinder is cross-platform, with official support for OS X, Windows, iOS, and WinRT.
+
+Cinder is production-proven, powerful enough to be the primary tool for professionals, but still suitable for learning and experimentation. Cinder is released under the [2-Clause BSD License](http://opensource.org/licenses/BSD-2-Clause).
+
+![](/doc/manual/references-cinder.png)
+
+[***opencloth***](http://code.google.com/p/opencloth/)
+
+A collection of source codes implementing cloth simulation algorithms in OpenGL.
+
+Simple, easy-to-follow examples with GLSL source code, as well as a basic description of the theory behind each technique.
+
+![](/doc/manual/references-opencloth1.png)
+
+![](/doc/manual/references-opencloth3.png)
+
+[***LibreOffice***](https://www.libreoffice.org/)
+
+LibreOffice includes several applications that make it the most powerful Free and Open Source office suite on the market.
+
+[***Are you using GLM in a project?***](mailto:glm@g-truc.net)
+
+### <a name="section9_4"></a> 9.4. Tutorials using GLM
+
+* [Sascha Willems' Vulkan examples](https://github.com/SaschaWillems/Vulkan), Examples and demos for the new Vulkan API
+* [VKTS](https://github.com/McNopper/Vulkan) Vulkan examples using VulKan ToolS (VKTS)
+* [*The OpenGL Samples Pack*](http://www.g-truc.net/project-0026.html#menu), samples that show how to set up all the different new features
+* [*Learning Modern 3D Graphics programming*](http://www.arcsynthesis.org/gltut/), a great OpenGL tutorial using GLM by Jason L. McKesson
+* [*Morten Nobel-Jørgensen’s*](http://blog.nobel-joergensen.com/2011/04/02/glm-brilliant-math-library-for-opengl/) review and use an [*OpenGL renderer*](https://github.com/mortennobel/RenderE)
+* [*Swiftless’ OpenGL tutorial*](http://www.swiftless.com/opengltuts.html) using GLM by Donald Urquhart
+* [*Rastergrid*](http://rastergrid.com/blog/), many technical articles with companion programs using GLM by Daniel Rákos\
+* [*OpenGL Tutorial*](http://www.opengl-tutorial.org), tutorials for OpenGL 3.1 and later
+* [*OpenGL Programming on Wikibooks*](http://en.wikibooks.org/wiki/OpenGL_Programming): For beginners who are discovering OpenGL.
+* [*3D Game Engine Programming*](http://3dgep.com/): Learning the latest 3D Game Engine Programming techniques.
+* [Game Tutorials](http://www.gametutorials.com/opengl-4-matrices-and-glm/), graphics and game programming.
+* [open.gl](https://open.gl/), OpenGL tutorial
+* [c-jump](http://www.c-jump.com/bcc/common/Talk3/Math/GLM/GLM.html), GLM tutorial
+* [Learn OpenGL](http://learnopengl.com/), OpenGL tutorial
+** [Are you using GLM in a tutorial?](mailto:glm@g-truc.net)*
+
+### <a name="section9_5"></a> 9.5. Equivalent for other languages
+
+* [*GlmSharp*](https://github.com/Philip-Trettner/GlmSharp): Open-source semi-generated GLM-flavored math library for .NET/C\#.
+* [glm-js](https://github.com/humbletim/glm-js): JavaScript adaptation of the OpenGL Mathematics (GLM) C++ library interfaces
+* [Java OpenGL Mathematics (GLM)](https://github.com/java-graphics/glm)
+* [JGLM](https://github.com/jroyalty/jglm) - Java OpenGL Mathematics Library
+* [SwiftGL Math Library](https://github.com/SwiftGL/Math/blob/master/Sources/glm.swift) GLM for Swift
+* [glm-go](https://github.com/jbowtie/glm-go): Simple linear algebra library similar in spirit to GLM
+* [openll](https://github.com/Polkm/openll): Lua bindings for OpenGL, GLM, GLFW, OpenAL, SOIL and PhysicsFS
+* [glm-rs](https://github.com/dche/glm-rs): GLSL mathematics for Rust programming language
+* [glmpython](https://github.com/Queatz/glmpython): GLM math library for Python
+
+### <a name="section9_6"></a> 9.6. Alternatives to GLM
+
+* [*CML*](http://cmldev.net/): The CML (Configurable Math Library) is a free C++ math library for games and graphics.
+* [*Eigen*](http://eigen.tuxfamily.org/): A more heavy weight math library for general linear algebra in C++.
+* [*glhlib*](http://glhlib.sourceforge.net/): A much more than glu C library.
+* Are you using or developing an alternative library to GLM?
+
+### <a name="section9_7"></a> 9.7. Acknowledgements
+
+GLM is developed and maintained by [*Christophe Riccio*](http://www.g-truc.net) but many contributors have made this project what it is.
+
+Special thanks to:
+* Ashima Arts and Stefan Gustavson for their work on [*webgl-noise*](https://github.com/ashima/webgl-noise) which has been used for GLM noises implementation.
+* [*Arthur Winters*](http://athile.net/library/wiki/index.php?title=Athile_Technologies) for the C++11 and Visual C++ swizzle operators implementation and tests.
+* Joshua Smith and Christoph Schied for the discussions and the experiments around the swizzle operators implementation issues.
+* Guillaume Chevallereau for providing and maintaining the [*nightlight build system*](http://my.cdash.org/index.php?project=GLM).
+* Ghenadii Ursachi for GLM\_GTX\_matrix\_interpolation implementation.
+* Mathieu Roumillac for providing some implementation ideas.
+* [*Grant James*](http://www.zeuscmd.com/) for the implementation of all combination of none-squared matrix products.
+* Jesse Talavera-Greenberg for his work on the manual amount other things.
+* All the GLM users that have report bugs and hence help GLM to become a great library!
diff --git a/3rdparty/glm/readme.md b/3rdparty/glm/readme.md
index cef2aae98ae..63d60c0d5fd 100644
--- a/3rdparty/glm/readme.md
+++ b/3rdparty/glm/readme.md
@@ -1,29 +1,28 @@
-![glm](doc/logo.png)
+![glm](/doc/manual/logo-mini.png)
[OpenGL Mathematics](http://glm.g-truc.net/) (*GLM*) is a header only C++ mathematics library for graphics software based on the [OpenGL Shading Language (GLSL) specifications](https://www.opengl.org/registry/doc/GLSLangSpec.4.50.diff.pdf).
-*GLM* provides classes and functions designed and implemented with the same naming conventions and functionalities than *GLSL* so that anyone who knows *GLSL*, can use *GLM* as well in C++.
+*GLM* provides classes and functions designed and implemented with the same naming conventions and functionality than *GLSL* so that anyone who knows *GLSL*, can use *GLM* as well in C++.
This project isn't limited to *GLSL* features. An extension system, based on the *GLSL* extension conventions, provides extended capabilities: matrix transformations, quaternions, data packing, random numbers, noise, etc...
This library works perfectly with *[OpenGL](https://www.opengl.org)* but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library.
*GLM* is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers:
-- [Apple Clang 4.0](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html) and higher
-- [GCC](http://gcc.gnu.org/) 4.2 and higher
+- [Apple Clang 6.0](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html) and higher
+- [GCC](http://gcc.gnu.org/) 4.7 and higher
- [Intel C++ Composer](https://software.intel.com/en-us/intel-compilers) XE 2013 and higher
-- [LLVM](http://llvm.org/) 3.0 and higher
-- [Visual C++](http://www.visualstudio.com/) 2010 and higher
-- [CUDA](https://developer.nvidia.com/about-cuda) 4.0 and higher (experimental)
-- Any conform C++98 or C++11 compiler
+- [LLVM](http://llvm.org/) 3.4 and higher
+- [Visual C++](http://www.visualstudio.com/) 2013 and higher
+- [CUDA](https://developer.nvidia.com/about-cuda) 7.0 and higher (experimental)
+- Any C++11 compiler
-For more information about *GLM*, please have a look at the [manual](http://glm.g-truc.net/0.9.7/glm-0.9.7.pdf) and the [API reference documentation](http://glm.g-truc.net/0.9.7/api/index.html).
-The source code and the documentation are licensed under the [Happy Bunny License (Modified MIT) or the MIT License](./copying.txt).
+For more information about *GLM*, please have a look at the [manual](manual.md) and the [API reference documentation](http://glm.g-truc.net/0.9.8/api/index.html).
+The source code and the documentation are licensed under both the [Happy Bunny License (Modified MIT) or the MIT License](manual.md#section0).
Thanks for contributing to the project by [submitting issues](https://github.com/g-truc/glm/issues) for bug reports and feature requests. Any feedback is welcome at [glm@g-truc.net](mailto://glm@g-truc.net).
-
-```c++
+```cpp
#include <glm/vec3.hpp> // glm::vec3
#include <glm/vec4.hpp> // glm::vec4
#include <glm/mat4x4.hpp> // glm::mat4
@@ -41,24 +40,42 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
}
```
+## [Lastest release](https://github.com/g-truc/glm/releases/latest)
+
## Project Health
| Service | System | Compiler | Status |
| ------- | ------ | -------- | ------ |
-| [Drone](https://drone.io/github.com/g-truc/glm) | Linux 64 bits | GCC 4.6.3 | [![Build Status](https://drone.io/github.com/g-truc/glm/status.png)](https://drone.io/github.com/g-truc/glm/latest) |
-
-## [Lastest release](https://github.com/g-truc/glm/releases/latest)
+| [Travis CI](https://travis-ci.org/g-truc/glm)| MacOSX, Linux 64 bits | Clang 3.4, Clang 3.8, GCC 4.9 | [![Travis CI](https://travis-ci.org/g-truc/glm.svg?branch=master)](https://travis-ci.org/g-truc/glm)
+| [AppVeyor](https://ci.appveyor.com/project/Groovounet/glm)| Windows 32 and 64 | Visual Studio 2013 | [![AppVeyor](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true)](https://ci.appveyor.com/project/Groovounet/glm)
## Release notes
-#### [GLM 0.9.9.0](https://github.com/g-truc/glm/releases/latest) - 2017-XX-XX
-##### Features:
-
-##### Improvements:
-
-##### Fixes:
-
-##### Deprecation:
+### [GLM 0.9.9.0](https://github.com/g-truc/glm/releases/latest) - 2017-XX-XX
+#### Features:
+- Added RGBM encoding in GTC_packing #420
+- Added GTX_color_encoding extension
+- Added GTX_vec_swizzle, faster compile time swizzling then swizzle operator #558
+- Added [GLM_ENABLE_EXPERIMENTAL](manual.md#section7_4) to enable experimental features.
+
+#### Improvements:
+- Added lowp variant of GTC_color_space convertLinearToSRGB #419
+- Replaced the manual by a markdown version #458
+- Optimized GTC_packing implementation
+- Optimized GTC_noise functions
+- Optimized GTC_color_space HSV to RGB conversions
+- Optimised GTX_color_space_YCoCg YCoCgR conversions
+- Optimized GTX_matrix_interpolation axisAngle function
+- Added FAQ 12: Windows headers cause build errors... #557
+- Removed GCC shadow warnings #595
+
+#### Fixes:
+- Removed doxygen references to GTC_half_float which was removed in 0.9.4
+- Fixed glm::decompose #448
+- Fixed intersectRayTriangle #6
+
+#### Deprecation:
+- Requires Visual Studio 2013, GCC 4.7, Clang 3.4, Cuda 7, ICC 2013 or a C++11 compiler
- Removed GLM_GTX_simd_vec4 extension
- Removed GLM_GTX_simd_mat4 extension
- Removed GLM_GTX_simd_quat extension
@@ -67,8 +84,58 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Removed GLM_DEPTH_ZERO_TO_ONE, use GLM_FORCE_DEPTH_ZERO_TO_ONE instead
- Removed GLM_LEFT_HANDED, use GLM_FORCE_LEFT_HANDED instead
-#### [GLM 0.9.8.0](https://github.com/g-truc/glm/tree/0.9.8) - 2016-XX-XX
-##### Features:
+---
+### [GLM 0.9.8.4](https://github.com/g-truc/glm/releases/tag/0.9.8.4) - 2017-01-22
+#### Fixes:
+- Fixed GTC_packing test failing on GCC x86 due to denorms #212 #577
+- Fixed POPCNT optimization build in Clang #512
+- Fixed intersectRayPlane returns true in parallel case #578
+- Fixed GCC 6.2 compiler warnings #580
+- Fixed GTX_matrix_decompose decompose #582 #448
+- Fixed GCC 4.5 and older build #566
+- Fixed Visual C++ internal error when declaring a global vec type with siwzzle expression enabled #594
+- Fixed GLM_FORCE_CXX11 with Clang and libstlc++ which wasn't using C++11 STL features. #604
+
+---
+### [GLM 0.9.8.3](https://github.com/g-truc/glm/releases/tag/0.9.8.3) - 2016-11-12
+#### Improvements:
+- Broader support of GLM_FORCE_UNRESTRICTED_GENTYPE #378
+
+#### Fixes:
+- Fixed Android build error with C++11 compiler but C++98 STL #284 #564
+- Fixed GTX_transform2 shear* functions #403
+- Fixed interaction between GLM_FORCE_UNRESTRICTED_GENTYPE and ortho function #568
+- Fixed bitCount with AVX on 32 bit builds #567
+- Fixed CMake find_package with version specification #572 #573
+
+---
+### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01
+#### Improvements:
+- Added Visual C++ 15 detection
+- Added Clang 4.0 detection
+- Added warning messages when using GLM_FORCE_CXX** but the compiler
+ is known to not fully support the requested C++ version #555
+- Refactored GLM_COMPILER_VC values
+- Made quat, vec, mat type component length() static #565
+
+#### Fixes:
+- Fixed Visual C++ constexpr build error #555, #556
+
+---
+### [GLM 0.9.8.1](https://github.com/g-truc/glm/releases/tag/0.9.8.1) - 2016-09-25
+#### Improvements:
+- Optimized quaternion log function #554
+
+#### Fixes:
+- Fixed GCC warning filtering, replaced -pedantic by -Wpedantic
+- Fixed SIMD faceforward bug. #549
+- Fixed GCC 4.8 with C++11 compilation option #550
+- Fixed Visual Studio aligned type W4 warning #548
+- Fixed packing/unpacking function fixed for 5_6_5 and 5_5_5_1 #552
+
+---
+### [GLM 0.9.8.0](https://github.com/g-truc/glm/releases/tag/0.9.8.0) - 2016-09-11
+#### Features:
- Added right and left handed projection and clip control support #447 #415 #119
- Added compNormalize and compScale functions to GTX_component_wise
- Added packF3x9_E1x5 and unpackF3x9_E1x5 to GTC_packing for RGB9E5 #416
@@ -86,7 +153,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added lowestBitValue to GTX_bit #536
- Added GLM_FORCE_UNRESTRICTED_GENTYPE allowing non basic genType #543
-##### Improvements:
+#### Improvements:
- Improved SIMD and swizzle operators interactions with GCC and Clang #474
- Improved GTC_random linearRand documentation
- Improved GTC_reciprocal documentation
@@ -102,7 +169,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- No more warnings for use of long long
- Added more information to build messages
-##### Fixes:
+#### Fixes:
- Fixed GTX_extended_min_max filename typo #386
- Fixed intersectRayTriangle to not do any unintentional backface culling
- Fixed long long warnings when using C++98 on GCC and Clang #482
@@ -111,8 +178,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed missing vec1 overload to length2 and distance2 functions #431
- Fixed GLM test '/fp:fast' and '/Za' command-line options are incompatible
- Fixed quaterion to mat3 cast function mat3_cast from GTC_quaternion #542
+- Fixed GTX_io for Cuda #547 #546
-##### Deprecation:
+#### Deprecation:
- Removed GLM_FORCE_SIZE_FUNC define
- Deprecated GLM_GTX_simd_vec4 extension
- Deprecated GLM_GTX_simd_mat4 extension
@@ -120,25 +188,25 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Deprecated GLM_SWIZZLE, use GLM_FORCE_SWIZZLE instead
- Deprecated GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.6](https://github.com/g-truc/glm/releases/tag/0.9.7.6) - 2016-07-16
-##### Improvements:
+---
+### [GLM 0.9.7.6](https://github.com/g-truc/glm/releases/tag/0.9.7.6) - 2016-07-16
+#### Improvements:
- Added pkg-config file #509
- Updated list of compiler versions detected
- Improved C++ 11 STL detection #523
-##### Fixes:
+#### Fixes:
- Fixed STL for C++11 detection on ICC #510
- Fixed missing vec1 overload to length2 and distance2 functions #431
- Fixed long long warnings when using C++98 on GCC and Clang #482
- Fixed scalar reciprocal functions (GTC_reciprocal) #520
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24
-##### Improvements:
+---
+### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24
+#### Improvements:
- Added Visual C++ Clang toolset detection
-##### Fixes:
+#### Fixes:
- Fixed uaddCarry warning #497
- Fixed roundPowerOfTwo and floorPowerOfTwo #503
- Fixed Visual C++ SIMD instruction set automatic detection in 64 bits
@@ -147,9 +215,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed GTX_extended_min_max filename typo #386
- Fixed intersectRayTriangle to not do any unintentional backface culling
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.4](https://github.com/g-truc/glm/releases/tag/0.9.7.4) - 2016-03-19
-##### Fixes:
+---
+### [GLM 0.9.7.4](https://github.com/g-truc/glm/releases/tag/0.9.7.4) - 2016-03-19
+#### Fixes:
- Fixed asinh and atanh warning with C++98 STL #484
- Fixed polar coordinates function latitude #485
- Fixed outerProduct defintions and operator signatures for mat2x4 and vec4 #475
@@ -158,20 +226,20 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed missing GLM_PLATFORM_CYGWIN declaration #495
- Fixed various undefined reference errors #490
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.3](https://github.com/g-truc/glm/releases/tag/0.9.7.3) - 2016-02-21
-##### Improvements:
+---
+### [GLM 0.9.7.3](https://github.com/g-truc/glm/releases/tag/0.9.7.3) - 2016-02-21
+#### Improvements:
- Added AVX512 detection
-##### Fixes:
+#### Fixes:
- Fixed CMake policy warning
- Fixed GCC 6.0 detection #477
- Fixed Clang build on Windows #479
- Fixed 64 bits constants warnings on GCC #463
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
-##### Fixes:
+---
+### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
+#### Fixes:
- Fixed GTC_round floorMultiple/ceilMultiple #412
- Fixed GTC_packing unpackUnorm3x10_1x2 #414
- Fixed GTC_matrix_inverse affineInverse #192
@@ -183,14 +251,14 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed missing unary + operator #435
- Fixed Cygwin build errors when using C++11 #405
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.1](https://github.com/g-truc/glm/releases/tag/0.9.7.1) - 2015-09-07
-##### Improvements:
+---
+### [GLM 0.9.7.1](https://github.com/g-truc/glm/releases/tag/0.9.7.1) - 2015-09-07
+#### Improvements:
- Improved constexpr for constant functions coverage #198
- Added to_string for quat and dual_quat in GTX_string_cast #375
- Improved overall execution time of unit tests #396
-##### Fixes:
+#### Fixes:
- Fixed strict alignment warnings #235 #370
- Fixed link errors on compilers not supported default function #377
- Fixed compilation warnings in vec4
@@ -200,9 +268,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed builtin bitscan never being used #392
- Removed unused func_noise.* files #398
---------------------------------------------------------------------------------
-#### [GLM 0.9.7.0](https://github.com/g-truc/glm/releases/tag/0.9.7.0) - 2015-08-02
-##### Features:
+---
+### [GLM 0.9.7.0](https://github.com/g-truc/glm/releases/tag/0.9.7.0) - 2015-08-02
+#### Features:
- Added GTC_color_space: convertLinearToSRGB and convertSRGBToLinear functions
- Added 'fmod' overload to GTX_common with tests #308
- Left handed perspective and lookAt functions #314
@@ -213,7 +281,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added .gitignore #349
- Added support of defaulted functions to GLM types, to use them in unions #366
-##### Improvements:
+#### Improvements:
- Changed usage of __has_include to support Intel compiler #307
- Specialized integer implementation of YCoCg-R #310
- Don't show status message in 'FindGLM' if 'QUIET' option is set. #317
@@ -221,7 +289,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Clarified manual regarding angle unit in GLM, added FAQ 11 #326
- Updated list of compiler versions
-##### Fixes:
+#### Fixes:
- Fixed default precision for quat and dual_quat type #312
- Fixed (u)int64 MSB/LSB handling on BE archs #306
- Fixed multi-line comment warning in g++. #315
@@ -235,28 +303,27 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed decompose warnings #373
- Fixed matrix conversions #371
-##### Deprecation:
+#### Deprecation:
- Removed integer specification for 'mod' in GTC_integer #308
- Removed GTX_multiple, replaced by GTC_round
---------------------------------------------------------------------------------
-#### [GLM 0.9.6.3](https://github.com/g-truc/glm/releases/tag/0.9.6.3) - 2015-02-15
+---
+### [GLM 0.9.6.3](https://github.com/g-truc/glm/releases/tag/0.9.6.3) - 2015-02-15
- Fixed Android doesn't have C++ 11 STL #284
---------------------------------------------------------------------------------
-#### [GLM 0.9.6.2](https://github.com/g-truc/glm/releases/tag/0.9.6.2) - 2015-02-15
-##### Features:
+---
+### [GLM 0.9.6.2](https://github.com/g-truc/glm/releases/tag/0.9.6.2) - 2015-02-15
+#### Features:
- Added display of GLM version with other GLM_MESSAGES
- Added ARM instruction set detection
---------------------------------------------------------------------------------
-##### Improvements:
+#### Improvements:
- Removed assert for perspective with zFar < zNear #298
- Added Visual Studio natvis support for vec1, quat and dualqual types
- Cleaned up C++11 feature detections
- Clarify GLM licensing
-##### Fixes:
+#### Fixes:
- Fixed faceforward build #289
- Fixed conflict with Xlib #define True 1 #293
- Fixed decompose function VS2010 templating issues #294
@@ -269,16 +336,16 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed functions not inlined with Clang #302
- Fixed memory corruption (undefined behaviour) #303
---------------------------------------------------------------------------------
-#### [GLM 0.9.6.1](https://github.com/g-truc/glm/releases/tag/0.9.6.1) - 2014-12-10
-##### Features:
+---
+### [GLM 0.9.6.1](https://github.com/g-truc/glm/releases/tag/0.9.6.1) - 2014-12-10
+#### Features:
- Added GLM_LANG_CXX14_FLAG and GLM_LANG_CXX1Z_FLAG language feature flags
- Added C++14 detection
-##### Improvements:
+#### Improvements:
- Clean up GLM_MESSAGES compilation log to report only detected capabilities
-##### Fixes:
+#### Fixes:
- Fixed scalar uaddCarry build error with Cuda #276
- Fixed C++11 explicit conversion operators detection #282
- Fixed missing explicit conversion when using integer log2 with *vec1 types
@@ -291,9 +358,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed conflict between GTX_compatibility and GTC_quaternion #286
- Fixed C++ language restriction using GLM_FORCE_CXX**
---------------------------------------------------------------------------------
-#### [GLM 0.9.6.0](https://github.com/g-truc/glm/releases/tag/0.9.6.0) - 2014-11-30
-##### Features:
+---
+### [GLM 0.9.6.0](https://github.com/g-truc/glm/releases/tag/0.9.6.0) - 2014-11-30
+#### Features:
- Exposed template vector and matrix types in 'glm' namespace #239, #244
- Added GTX_scalar_multiplication for C++ 11 compiler only #242
- Added GTX_range for C++ 11 compiler only #240
@@ -313,7 +380,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added GLM_FORCE_EXPLICIT_CTOR to require explicit type conversions #269
- Added GTX_type_aligned for aligned vector, matrix and quaternion types
-##### Improvements:
+#### Improvements:
- Rely on C++11 to implement isinf and isnan
- Removed GLM_FORCE_CUDA, Cuda is implicitly detected
- Separated Apple Clang and LLVM compiler detection
@@ -333,7 +400,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Optimized sign function #272
- Added explicit cast from quat to mat3 and mat4 #275
-##### Fixes:
+#### Fixes:
- Fixed std::nextafter not supported with C++11 on Android #217
- Fixed missing value_type for dual quaternion
- Fixed return type of dual quaternion length
@@ -344,7 +411,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed uaddCarray #253
- Fixed float comparison warnings #270
-##### Deprecation:
+#### Deprecation:
+- Requires Visual Studio 2010, GCC 4.2, Apple Clang 4.0, LLVM 3.0, Cuda 4, ICC 2013 or a C++98 compiler
- Removed degrees for function parameters
- Removed GLM_FORCE_RADIANS, active by default
- Removed VC 2005 / 8 and 2008 / 9 support
@@ -353,8 +421,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Removed LLVM 2.6 to 3.1 support
- Removed CUDA 3.0 to 3.2 support
---------------------------------------------------------------------------------
-#### [GLM 0.9.5.4 - 2014-06-21](https://github.com/g-truc/glm/releases/tag/0.9.5.4)
+---
+### [GLM 0.9.5.4 - 2014-06-21](https://github.com/g-truc/glm/releases/tag/0.9.5.4)
- Fixed non-utf8 character #196
- Added FindGLM install for CMake #189
- Fixed GTX_color_space - saturation #195
@@ -374,8 +442,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed std::nextafter not supported with C++11 on Android #213
- Fixed corner cases in exp and log functions for quaternions #199
---------------------------------------------------------------------------------
-#### GLM 0.9.5.3 - 2014-04-02
+---
+### GLM 0.9.5.3 - 2014-04-02
- Added instruction set auto detection with Visual C++ using _M_IX86_FP - /arch
compiler argument
- Fixed GTX_raw_data code dependency
@@ -390,8 +458,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added full tests for eulerAngle*** functions (#173)
- Added workaround for a CUDA compiler bug (#186, #185)
---------------------------------------------------------------------------------
-#### GLM 0.9.5.2 - 2014-02-08
+---
+### GLM 0.9.5.2 - 2014-02-08
- Fixed initializer list ambiguity (#159, #160)
- Fixed warnings with the Android NDK 9c
- Fixed non power of two matrix products
@@ -403,8 +471,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Tentative fix for strict aliasing warning in GCC 4.8.1 / Android NDK 9c (#152)
- Fixed GLM_GTC_constants description brief (#162)
---------------------------------------------------------------------------------
-#### GLM 0.9.5.1 - 2014-01-11
+---
+### GLM 0.9.5.1 - 2014-01-11
- Fixed angle and orientedAngle that sometimes return NaN values (#145)
- Deprecated degrees for function parameters and display a message
- Added possible static_cast conversion of GLM types (#72)
@@ -415,8 +483,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added intersectRayPlane function (#153)
- Fixed outerProduct return type (#155)
---------------------------------------------------------------------------------
-#### GLM 0.9.5.0 - 2013-12-25
+---
+### GLM 0.9.5.0 - 2013-12-25
- Added forward declarations (glm/fwd.hpp) for faster compilations
- Added per feature headers
- Minimized GLM internal dependencies
@@ -454,8 +522,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Improved GLM messages enabled when defining GLM_MESSAGES
- Hidden matrix _inverse function implementation detail into private section
---------------------------------------------------------------------------------
-#### [GLM 0.9.4.6](https://github.com/g-truc/glm/releases/tag/0.9.4.6) - 2013-09-20
+---
+### [GLM 0.9.4.6](https://github.com/g-truc/glm/releases/tag/0.9.4.6) - 2013-09-20
- Fixed detection to select the last known compiler if newer version #106
- Fixed is_int and is_uint code duplication with GCC and C++11 #107
- Fixed test suite build while using Clang in C++11 mode
@@ -469,8 +537,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed const ref issue on assignment operator taking a scalar parameter #116
- Fixed glm::eulerAngleY implementation #117
---------------------------------------------------------------------------------
-#### GLM 0.9.4.5 - 2013-08-12
+---
+### GLM 0.9.4.5 - 2013-08-12
- Fixed CUDA support
- Fixed inclusion of intrinsics in "pure" mode #92
- Fixed language detection on GCC when the C++0x mode isn't enabled #95
@@ -479,8 +547,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added Windows CE detection #92
- Added missing value_ptr for quaternions #99
---------------------------------------------------------------------------------
-#### GLM 0.9.4.4 - 2013-05-29
+---
+### GLM 0.9.4.4 - 2013-05-29
- Fixed slerp when costheta is close to 1 #65
- Fixed mat4x2 value_type constructor #70
- Fixed glm.natvis for Visual C++ 12 #82
@@ -491,8 +559,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed GLM_GTX_multiple with negative values #79
- Fixed glm::perspective when zNear is zero #71
---------------------------------------------------------------------------------
-#### GLM 0.9.4.3 - 2013-03-20
+---
+### GLM 0.9.4.3 - 2013-03-20
- Detected qualifier for Clang
- Fixed C++11 mode for GCC, couldn't be enabled without MS extensions
- Fixed squad, intermediate and exp quaternion functions
@@ -504,8 +572,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Autodetected C++ version using __cplusplus value
- Fixed mix for bool and bvec* third parameter
---------------------------------------------------------------------------------
-#### GLM 0.9.4.2 - 2013-02-14
+---
+### GLM 0.9.4.2 - 2013-02-14
- Fixed compAdd from GTX_component_wise
- Fixed SIMD support for Intel compiler on Windows
- Fixed isnan and isinf for CUDA compiler
@@ -518,8 +586,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed documentation warnings
- Fixed CUDA warnings
---------------------------------------------------------------------------------
-#### GLM 0.9.4.1 - 2012-12-22
+---
+### GLM 0.9.4.1 - 2012-12-22
- Improved half support: -0.0 case and implicit conversions
- Fixed Intel Composer Compiler support on Linux
- Fixed interaction between quaternion and euler angles
@@ -530,8 +598,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed assert messages
- Added slerp and lerp quaternion functions and tests
---------------------------------------------------------------------------------
-#### GLM 0.9.4.0 - 2012-11-18
+---
+### GLM 0.9.4.0 - 2012-11-18
- Added Intel Composer Compiler support
- Promoted GTC_espilon extension
- Promoted GTC_ulp extension
@@ -539,9 +607,10 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added GLM_FORCE_RADIANS so that all functions takes radians for arguments
- Fixed detection of Clang and LLVM GCC on MacOS X
- Added debugger visualizers for Visual C++ 2012
+- Requires Visual Studio 2005, GCC 4.2, Clang 2.6, Cuda 3, ICC 2013 or a C++98 compiler
---------------------------------------------------------------------------------
-#### [GLM 0.9.3.4](https://github.com/g-truc/glm/releases/tag/0.9.3.4) - 2012-06-30
+---
+### [GLM 0.9.3.4](https://github.com/g-truc/glm/releases/tag/0.9.3.4) - 2012-06-30
- Added SSE4 and AVX2 detection.
- Removed VIRTREV_xstream and the incompatibility generated with GCC
- Fixed C++11 compiler option for GCC
@@ -550,8 +619,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed warnings
- Fixed SSE includes
---------------------------------------------------------------------------------
-#### GLM 0.9.3.3 - 2012-05-10
+---
+### GLM 0.9.3.3 - 2012-05-10
- Fixed isinf and isnan
- Improved compatibility with Intel compiler
- Added CMake test build options: SIMD, C++11, fast math and MS land ext
@@ -562,28 +631,28 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed various warnings
- Added VC11 support
---------------------------------------------------------------------------------
-#### GLM 0.9.3.2 - 2012-03-15
+---
+### GLM 0.9.3.2 - 2012-03-15
- Fixed doxygen documentation
- Fixed Clang version detection
- Fixed simd mat4 /= operator
---------------------------------------------------------------------------------
-#### GLM 0.9.3.1 - 2012-01-25
+---
+### GLM 0.9.3.1 - 2012-01-25
- Fixed platform detection
- Fixed warnings
- Removed detail code from Doxygen doc
---------------------------------------------------------------------------------
-#### GLM 0.9.3.0 - 2012-01-09
+---
+### GLM 0.9.3.0 - 2012-01-09
- Added CPP Check project
- Fixed conflict with Windows headers
- Fixed isinf implementation
- Fixed Boost conflict
- Fixed warnings
---------------------------------------------------------------------------------
-#### GLM 0.9.3.B - 2011-12-12
+---
+### GLM 0.9.3.B - 2011-12-12
- Added support for Chrone Native Client
- Added epsilon constant
- Removed value_size function from vector types
@@ -593,8 +662,8 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed step function accuracy
- Fixed outerProduct
---------------------------------------------------------------------------------
-#### GLM 0.9.3.A - 2011-11-11
+---
+### GLM 0.9.3.A - 2011-11-11
- Improved doxygen documentation
- Added new swizzle operators for C++11 compilers
- Added new swizzle operators declared as functions
@@ -608,47 +677,47 @@ generation distribution
- Fixed half based type contructors
- Added GLSL core noise functions
---------------------------------------------------------------------------------
-#### [GLM 0.9.2.7](https://github.com/g-truc/glm/releases/tag/0.9.2.7) - 2011-10-24
+---
+### [GLM 0.9.2.7](https://github.com/g-truc/glm/releases/tag/0.9.2.7) - 2011-10-24
- Added more swizzling constructors
- Added missing none-squared matrix products
---------------------------------------------------------------------------------
-#### [GLM 0.9.2.6](https://github.com/g-truc/glm/releases/tag/0.9.2.6) - 2011-10-01
+---
+### [GLM 0.9.2.6](https://github.com/g-truc/glm/releases/tag/0.9.2.6) - 2011-10-01
- Fixed half based type build on old GCC
- Fixed /W4 warnings on Visual C++
- Fixed some missing l-value swizzle operators
---------------------------------------------------------------------------------
-#### GLM 0.9.2.5 - 2011-09-20
+---
+### GLM 0.9.2.5 - 2011-09-20
- Fixed floatBitToXint functions
- Fixed pack and unpack functions
- Fixed round functions
---------------------------------------------------------------------------------
-#### GLM 0.9.2.4 - 2011-09-03
+---
+### GLM 0.9.2.4 - 2011-09-03
- Fixed extensions bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.2.3 - 2011-06-08
+---
+### GLM 0.9.2.3 - 2011-06-08
- Fixed build issues
---------------------------------------------------------------------------------
-#### GLM 0.9.2.2 - 2011-06-02
+---
+### GLM 0.9.2.2 - 2011-06-02
- Expend matrix constructors flexibility
- Improved quaternion implementation
- Fixed many warnings across platforms and compilers
---------------------------------------------------------------------------------
-#### GLM 0.9.2.1 - 2011-05-24
+---
+### GLM 0.9.2.1 - 2011-05-24
- Automatically detect CUDA support
- Improved compiler detection
- Fixed errors and warnings in VC with C++ extensions disabled
- Fixed and tested GLM_GTX_vector_angle
- Fixed and tested GLM_GTX_rotate_vector
---------------------------------------------------------------------------------
-#### GLM 0.9.2.0 - 2011-05-09
+---
+### GLM 0.9.2.0 - 2011-05-09
- Added CUDA support
- Added CTest test suite
- Added GLM_GTX_ulp extension
@@ -656,35 +725,35 @@ generation distribution
- Added GLM_GTX_matrix_interpolation extension
- Updated quaternion slerp interpolation
---------------------------------------------------------------------------------
-#### [GLM 0.9.1.3](https://github.com/g-truc/glm/releases/tag/0.9.1.3) - 2011-05-07
+---
+### [GLM 0.9.1.3](https://github.com/g-truc/glm/releases/tag/0.9.1.3) - 2011-05-07
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.1.2 - 2011-04-15
+---
+### GLM 0.9.1.2 - 2011-04-15
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.1.1 - 2011-03-17
+---
+### GLM 0.9.1.1 - 2011-03-17
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.1.0 - 2011-03-03
+---
+### GLM 0.9.1.0 - 2011-03-03
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.1.B - 2011-02-13
+---
+### GLM 0.9.1.B - 2011-02-13
- Updated API documentation
- Improved SIMD implementation
- Fixed Linux build
---------------------------------------------------------------------------------
-#### [GLM 0.9.0.8](https://github.com/g-truc/glm/releases/tag/0.9.0.8) - 2011-02-13
+---
+### [GLM 0.9.0.8](https://github.com/g-truc/glm/releases/tag/0.9.0.8) - 2011-02-13
- Added quaternion product operator.
- Clarify that GLM is a header only library.
---------------------------------------------------------------------------------
-#### GLM 0.9.1.A - 2011-01-31
+---
+### GLM 0.9.1.A - 2011-01-31
- Added SIMD support
- Added new swizzle functions
- Improved static assert error message with C++0x static_assert
@@ -692,258 +761,258 @@ generation distribution
- Reduced branching
- Fixed trunc implementation
---------------------------------------------------------------------------------
-#### [GLM 0.9.0.7](https://github.com/g-truc/glm/releases/tag/0.9.0.7) - 2011-01-30
+---
+### [GLM 0.9.0.7](https://github.com/g-truc/glm/releases/tag/0.9.0.7) - 2011-01-30
- Added GLSL 4.10 packing functions
- Added == and != operators for every types.
---------------------------------------------------------------------------------
-#### GLM 0.9.0.6 - 2010-12-21
+---
+### GLM 0.9.0.6 - 2010-12-21
- Many matrices bugs fixed
---------------------------------------------------------------------------------
-#### GLM 0.9.0.5 - 2010-11-01
+---
+### GLM 0.9.0.5 - 2010-11-01
- Improved Clang support
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.0.4 - 2010-10-04
+---
+### GLM 0.9.0.4 - 2010-10-04
- Added autoexp for GLM
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.0.3 - 2010-08-26
+---
+### GLM 0.9.0.3 - 2010-08-26
- Fixed non-squared matrix operators
---------------------------------------------------------------------------------
-#### GLM 0.9.0.2 - 2010-07-08
+---
+### GLM 0.9.0.2 - 2010-07-08
- Added GLM_GTX_int_10_10_10_2
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.0.1 - 2010-06-21
+---
+### GLM 0.9.0.1 - 2010-06-21
- Fixed extensions errors
---------------------------------------------------------------------------------
-#### GLM 0.9.0.0 - 2010-05-25
+---
+### GLM 0.9.0.0 - 2010-05-25
- Objective-C support
- Fixed warnings
- Updated documentation
---------------------------------------------------------------------------------
-#### GLM 0.9.B.2 - 2010-04-30
+---
+### GLM 0.9.B.2 - 2010-04-30
- Git transition
- Removed experimental code from releases
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.9.B.1 - 2010-04-03
+---
+### GLM 0.9.B.1 - 2010-04-03
- Based on GLSL 4.00 specification
- Added the new core functions
- Added some implicit conversion support
---------------------------------------------------------------------------------
-#### GLM 0.9.A.2 - 2010-02-20
+---
+### GLM 0.9.A.2 - 2010-02-20
- Improved some possible errors messages
- Improved declarations and definitions match
---------------------------------------------------------------------------------
-#### GLM 0.9.A.1 - 2010-02-09
+---
+### GLM 0.9.A.1 - 2010-02-09
- Removed deprecated features
- Internal redesign
---------------------------------------------------------------------------------
-#### GLM 0.8.4.4 final - 2010-01-25
+---
+### GLM 0.8.4.4 final - 2010-01-25
- Fixed warnings
---------------------------------------------------------------------------------
-#### GLM 0.8.4.3 final - 2009-11-16
+---
+### GLM 0.8.4.3 final - 2009-11-16
- Fixed Half float arithmetic
- Fixed setup defines
---------------------------------------------------------------------------------
-#### GLM 0.8.4.2 final - 2009-10-19
+---
+### GLM 0.8.4.2 final - 2009-10-19
- Fixed Half float adds
---------------------------------------------------------------------------------
-#### GLM 0.8.4.1 final - 2009-10-05
+---
+### GLM 0.8.4.1 final - 2009-10-05
- Updated documentation
- Fixed MacOS X build
---------------------------------------------------------------------------------
-#### GLM 0.8.4.0 final - 2009-09-16
+---
+### GLM 0.8.4.0 final - 2009-09-16
- Added GCC 4.4 and VC2010 support
- Added matrix optimizations
---------------------------------------------------------------------------------
-#### GLM 0.8.3.5 final - 2009-08-11
+---
+### GLM 0.8.3.5 final - 2009-08-11
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.8.3.4 final - 2009-08-10
+---
+### GLM 0.8.3.4 final - 2009-08-10
- Updated GLM according GLSL 1.5 spec
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.8.3.3 final - 2009-06-25
+---
+### GLM 0.8.3.3 final - 2009-06-25
- Fixed bugs
---------------------------------------------------------------------------------
-#### GLM 0.8.3.2 final - 2009-06-04
+---
+### GLM 0.8.3.2 final - 2009-06-04
- Added GLM_GTC_quaternion
- Added GLM_GTC_type_precision
---------------------------------------------------------------------------------
-#### GLM 0.8.3.1 final - 2009-05-21
+---
+### GLM 0.8.3.1 final - 2009-05-21
- Fixed old extension system.
---------------------------------------------------------------------------------
-#### GLM 0.8.3.0 final - 2009-05-06
+---
+### GLM 0.8.3.0 final - 2009-05-06
- Added stable extensions.
- Added new extension system.
---------------------------------------------------------------------------------
-#### GLM 0.8.2.3 final - 2009-04-01
+---
+### GLM 0.8.2.3 final - 2009-04-01
- Fixed bugs.
---------------------------------------------------------------------------------
-#### GLM 0.8.2.2 final - 2009-02-24
+---
+### GLM 0.8.2.2 final - 2009-02-24
- Fixed bugs.
---------------------------------------------------------------------------------
-#### GLM 0.8.2.1 final - 2009-02-13
+---
+### GLM 0.8.2.1 final - 2009-02-13
- Fixed bugs.
---------------------------------------------------------------------------------
-#### GLM 0.8.2 final - 2009-01-21
+---
+### GLM 0.8.2 final - 2009-01-21
- Fixed bugs.
---------------------------------------------------------------------------------
-#### GLM 0.8.1 final - 2008-10-30
+---
+### GLM 0.8.1 final - 2008-10-30
- Fixed bugs.
---------------------------------------------------------------------------------
-#### GLM 0.8.0 final - 2008-10-23
+---
+### GLM 0.8.0 final - 2008-10-23
- New method to use extension.
---------------------------------------------------------------------------------
-#### GLM 0.8.0 beta3 - 2008-10-10
+---
+### GLM 0.8.0 beta3 - 2008-10-10
- Added CMake support for GLM tests.
---------------------------------------------------------------------------------
-#### GLM 0.8.0 beta2 - 2008-10-04
+---
+### GLM 0.8.0 beta2 - 2008-10-04
- Improved half scalars and vectors support.
---------------------------------------------------------------------------------
-#### GLM 0.8.0 beta1 - 2008-09-26
+---
+### GLM 0.8.0 beta1 - 2008-09-26
- Improved GLSL conformance
- Added GLSL 1.30 support
- Improved API documentation
---------------------------------------------------------------------------------
-#### GLM 0.7.6 final - 2008-08-08
+---
+### GLM 0.7.6 final - 2008-08-08
- Improved C++ standard comformance
- Added Static assert for types checking
---------------------------------------------------------------------------------
-#### GLM 0.7.5 final - 2008-07-05
+---
+### GLM 0.7.5 final - 2008-07-05
- Added build message system with Visual Studio
- Pedantic build with GCC
---------------------------------------------------------------------------------
-#### GLM 0.7.4 final - 2008-06-01
+---
+### GLM 0.7.4 final - 2008-06-01
- Added external dependencies system.
---------------------------------------------------------------------------------
-#### GLM 0.7.3 final - 2008-05-24
+---
+### GLM 0.7.3 final - 2008-05-24
- Fixed bugs
- Added new extension group
---------------------------------------------------------------------------------
-#### GLM 0.7.2 final - 2008-04-27
+---
+### GLM 0.7.2 final - 2008-04-27
- Updated documentation
- Added preprocessor options
---------------------------------------------------------------------------------
-#### GLM 0.7.1 final - 2008-03-24
+---
+### GLM 0.7.1 final - 2008-03-24
- Disabled half on GCC
- Fixed extensions
---------------------------------------------------------------------------------
-#### GLM 0.7.0 final - 2008-03-22
+---
+### GLM 0.7.0 final - 2008-03-22
- Changed to MIT license
- Added new documentation
---------------------------------------------------------------------------------
-#### GLM 0.6.4 - 2007-12-10
+---
+### GLM 0.6.4 - 2007-12-10
- Fixed swizzle operators
---------------------------------------------------------------------------------
-#### GLM 0.6.3 - 2007-11-05
+---
+### GLM 0.6.3 - 2007-11-05
- Fixed type data accesses
- Fixed 3DSMax sdk conflict
---------------------------------------------------------------------------------
-#### GLM 0.6.2 - 2007-10-08
+---
+### GLM 0.6.2 - 2007-10-08
- Fixed extension
---------------------------------------------------------------------------------
-#### GLM 0.6.1 - 2007-10-07
+---
+### GLM 0.6.1 - 2007-10-07
- Fixed a namespace error
- Added extensions
---------------------------------------------------------------------------------
-#### GLM 0.6.0 : 2007-09-16
+---
+### GLM 0.6.0 : 2007-09-16
- Added new extension namespace mecanium
- Added Automatic compiler detection
---------------------------------------------------------------------------------
-#### GLM 0.5.1 - 2007-02-19
+---
+### GLM 0.5.1 - 2007-02-19
- Fixed swizzle operators
---------------------------------------------------------------------------------
-#### GLM 0.5.0 - 2007-01-06
+---
+### GLM 0.5.0 - 2007-01-06
- Upgrated to GLSL 1.2
- Added swizzle operators
- Added setup settings
---------------------------------------------------------------------------------
-#### GLM 0.4.1 - 2006-05-22
+---
+### GLM 0.4.1 - 2006-05-22
- Added OpenGL examples
---------------------------------------------------------------------------------
-#### GLM 0.4.0 - 2006-05-17
+---
+### GLM 0.4.0 - 2006-05-17
- Added missing operators to vec* and mat*
- Added first GLSL 1.2 features
- Fixed windows.h before glm.h when windows.h required
---------------------------------------------------------------------------------
-#### GLM 0.3.2 - 2006-04-21
+---
+### GLM 0.3.2 - 2006-04-21
- Fixed texcoord components access.
- Fixed mat4 and imat4 division operators.
---------------------------------------------------------------------------------
-#### GLM 0.3.1 - 2006-03-28
+---
+### GLM 0.3.1 - 2006-03-28
- Added GCC 4.0 support under MacOS X.
- Added GCC 4.0 and 4.1 support under Linux.
- Added code optimisations.
---------------------------------------------------------------------------------
-#### GLM 0.3 - 2006-02-19
+---
+### GLM 0.3 - 2006-02-19
- Improved GLSL type conversion and construction compliance.
- Added experimental extensions.
- Added Doxygen Documentation.
- Added code optimisations.
- Fixed bugs.
---------------------------------------------------------------------------------
-#### GLM 0.2 - 2005-05-05
+---
+### GLM 0.2 - 2005-05-05
- Improve adaptative from GLSL.
- Add experimental extensions based on OpenGL extension process.
- Fixe bugs.
---------------------------------------------------------------------------------
-#### GLM 0.1 - 2005-02-21
+---
+### GLM 0.1 - 2005-02-21
- Add vec2, vec3, vec4 GLSL types
- Add ivec2, ivec3, ivec4 GLSL types
- Add bvec2, bvec3, bvec4 GLSL types
diff --git a/3rdparty/glm/test/bug/CMakeLists.txt b/3rdparty/glm/test/bug/CMakeLists.txt
index e69de29bb2d..26e8569429f 100644
--- a/3rdparty/glm/test/bug/CMakeLists.txt
+++ b/3rdparty/glm/test/bug/CMakeLists.txt
@@ -0,0 +1 @@
+glmCreateTestGTC(bug_ms_vec_static)
diff --git a/3rdparty/glm/test/bug/bug_ms_vec_static.cpp b/3rdparty/glm/test/bug/bug_ms_vec_static.cpp
new file mode 100644
index 00000000000..8bc2fadc225
--- /dev/null
+++ b/3rdparty/glm/test/bug/bug_ms_vec_static.cpp
@@ -0,0 +1,31 @@
+#include <glm/glm.hpp>
+
+#if GLM_HAS_ALIGNED_TYPE
+struct vec2;
+
+struct _swizzle
+{
+ char _buffer[1];
+};
+
+struct vec2
+{
+ GLM_CONSTEXPR_CTOR vec2() :
+ x(0), y(0)
+ {}
+
+ union
+ {
+ struct { float x, y; };
+ struct { _swizzle xx; };
+ };
+};
+#endif
+
+// Visual C++ has a bug generating the error: fatal error C1001: An internal error has occurred in the compiler.
+// vec2 Bar;
+
+int main()
+{
+ return 0;
+}
diff --git a/3rdparty/glm/test/core/CMakeLists.txt b/3rdparty/glm/test/core/CMakeLists.txt
index f83823d6305..7c1627bfbca 100644
--- a/3rdparty/glm/test/core/CMakeLists.txt
+++ b/3rdparty/glm/test/core/CMakeLists.txt
@@ -1,3 +1,6 @@
+glmCreateTestGTC(core_force_pure)
+glmCreateTestGTC(core_force_unrestricted_gentype)
+glmCreateTestGTC(core_type_aligned)
glmCreateTestGTC(core_type_cast)
glmCreateTestGTC(core_type_ctor)
glmCreateTestGTC(core_type_float)
diff --git a/3rdparty/glm/test/core/core_force_pure.cpp b/3rdparty/glm/test/core/core_force_pure.cpp
new file mode 100644
index 00000000000..7df770e4918
--- /dev/null
+++ b/3rdparty/glm/test/core/core_force_pure.cpp
@@ -0,0 +1,423 @@
+#ifndef GLM_FORCE_PURE
+# define GLM_FORCE_PURE
+#endif//GLM_FORCE_PURE
+#define GLM_FORCE_ALIGNED
+#define GLM_FORCE_SWIZZLE
+#include <glm/vector_relational.hpp>
+#include <glm/vec2.hpp>
+#include <glm/vec3.hpp>
+#include <glm/vec4.hpp>
+#include <cstdio>
+#include <ctime>
+#include <vector>
+
+int test_vec4_ctor()
+{
+ int Error = 0;
+
+ {
+ glm::ivec4 A(1, 2, 3, 4);
+ glm::ivec4 B(A);
+ Error += glm::all(glm::equal(A, B)) ? 0 : 1;
+ }
+
+# if GLM_HAS_TRIVIAL_QUERIES
+ // Error += std::is_trivially_default_constructible<glm::vec4>::value ? 0 : 1;
+ // Error += std::is_trivially_copy_assignable<glm::vec4>::value ? 0 : 1;
+ Error += std::is_trivially_copyable<glm::vec4>::value ? 0 : 1;
+ Error += std::is_trivially_copyable<glm::dvec4>::value ? 0 : 1;
+ Error += std::is_trivially_copyable<glm::ivec4>::value ? 0 : 1;
+ Error += std::is_trivially_copyable<glm::uvec4>::value ? 0 : 1;
+
+ Error += std::is_copy_constructible<glm::vec4>::value ? 0 : 1;
+# endif
+
+#if GLM_HAS_INITIALIZER_LISTS
+ {
+ glm::vec4 a{ 0, 1, 2, 3 };
+ std::vector<glm::vec4> v = {
+ {0, 1, 2, 3},
+ {4, 5, 6, 7},
+ {8, 9, 0, 1}};
+ }
+
+ {
+ glm::dvec4 a{ 0, 1, 2, 3 };
+ std::vector<glm::dvec4> v = {
+ {0, 1, 2, 3},
+ {4, 5, 6, 7},
+ {8, 9, 0, 1}};
+ }
+#endif
+
+#if GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
+ {
+ glm::vec4 A = glm::vec4(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B = A.xyzw;
+ glm::vec4 C(A.xyzw);
+ glm::vec4 D(A.xyzw());
+ glm::vec4 E(A.x, A.yzw);
+ glm::vec4 F(A.x, A.yzw());
+ glm::vec4 G(A.xyz, A.w);
+ glm::vec4 H(A.xyz(), A.w);
+ glm::vec4 I(A.xy, A.zw);
+ glm::vec4 J(A.xy(), A.zw());
+ glm::vec4 K(A.x, A.y, A.zw);
+ glm::vec4 L(A.x, A.yz, A.w);
+ glm::vec4 M(A.xy, A.z, A.w);
+
+ Error += glm::all(glm::equal(A, B)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, C)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, D)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, E)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, F)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, G)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, H)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, I)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, J)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, K)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, L)) ? 0 : 1;
+ Error += glm::all(glm::equal(A, M)) ? 0 : 1;
+ }
+#endif// GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
+
+ {
+ glm::vec4 A(1);
+ glm::vec4 B(1, 1, 1, 1);
+
+ Error += A == B ? 0 : 1;
+ }
+
+ {
+ std::vector<glm::vec4> Tests;
+ Tests.push_back(glm::vec4(glm::vec2(1, 2), 3, 4));
+ Tests.push_back(glm::vec4(1, glm::vec2(2, 3), 4));
+ Tests.push_back(glm::vec4(1, 2, glm::vec2(3, 4)));
+ Tests.push_back(glm::vec4(glm::vec3(1, 2, 3), 4));
+ Tests.push_back(glm::vec4(1, glm::vec3(2, 3, 4)));
+ Tests.push_back(glm::vec4(glm::vec2(1, 2), glm::vec2(3, 4)));
+ Tests.push_back(glm::vec4(1, 2, 3, 4));
+ Tests.push_back(glm::vec4(glm::vec4(1, 2, 3, 4)));
+
+ for(std::size_t i = 0; i < Tests.size(); ++i)
+ Error += Tests[i] == glm::vec4(1, 2, 3, 4) ? 0 : 1;
+ }
+
+ return Error;
+}
+
+int test_bvec4_ctor()
+{
+ int Error = 0;
+
+ glm::bvec4 const A(true);
+ glm::bvec4 const B(true);
+ glm::bvec4 const C(false);
+ glm::bvec4 const D = A && B;
+ glm::bvec4 const E = A && C;
+ glm::bvec4 const F = A || C;
+ bool const G = A == C;
+ bool const H = A != C;
+
+ Error += D == glm::bvec4(true) ? 0 : 1;
+ Error += E == glm::bvec4(false) ? 0 : 1;
+ Error += F == glm::bvec4(true) ? 0 : 1;
+
+ return Error;
+}
+
+int test_vec4_operators()
+{
+ int Error = 0;
+
+ {
+ glm::vec4 A(1.0f);
+ glm::vec4 B(1.0f);
+ bool R = A != B;
+ bool S = A == B;
+
+ Error += (S && !R) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f);
+
+ glm::vec4 C = A + B;
+ Error += C == glm::vec4(5, 7, 9, 11) ? 0 : 1;
+
+ glm::vec4 D = B - A;
+ Error += D == glm::vec4(3, 3, 3, 3) ? 0 : 1;
+
+ glm::vec4 E = A * B;
+ Error += E == glm::vec4(4, 10, 18, 28) ? 0 : 1;
+
+ glm::vec4 F = B / A;
+ Error += F == glm::vec4(4, 2.5, 2, 7.0f / 4.0f) ? 0 : 1;
+
+ glm::vec4 G = A + 1.0f;
+ Error += G == glm::vec4(2, 3, 4, 5) ? 0 : 1;
+
+ glm::vec4 H = B - 1.0f;
+ Error += H == glm::vec4(3, 4, 5, 6) ? 0 : 1;
+
+ glm::vec4 I = A * 2.0f;
+ Error += I == glm::vec4(2, 4, 6, 8) ? 0 : 1;
+
+ glm::vec4 J = B / 2.0f;
+ Error += J == glm::vec4(2, 2.5, 3, 3.5) ? 0 : 1;
+
+ glm::vec4 K = 1.0f + A;
+ Error += K == glm::vec4(2, 3, 4, 5) ? 0 : 1;
+
+ glm::vec4 L = 1.0f - B;
+ Error += L == glm::vec4(-3, -4, -5, -6) ? 0 : 1;
+
+ glm::vec4 M = 2.0f * A;
+ Error += M == glm::vec4(2, 4, 6, 8) ? 0 : 1;
+
+ glm::vec4 N = 2.0f / B;
+ Error += N == glm::vec4(0.5, 2.0 / 5.0, 2.0 / 6.0, 2.0 / 7.0) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f);
+
+ A += B;
+ Error += A == glm::vec4(5, 7, 9, 11) ? 0 : 1;
+
+ A += 1.0f;
+ Error += A == glm::vec4(6, 8, 10, 12) ? 0 : 1;
+ }
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f);
+
+ B -= A;
+ Error += B == glm::vec4(3, 3, 3, 3) ? 0 : 1;
+
+ B -= 1.0f;
+ Error += B == glm::vec4(2, 2, 2, 2) ? 0 : 1;
+ }
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f);
+
+ A *= B;
+ Error += A == glm::vec4(4, 10, 18, 28) ? 0 : 1;
+
+ A *= 2.0f;
+ Error += A == glm::vec4(8, 20, 36, 56) ? 0 : 1;
+ }
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f);
+
+ B /= A;
+ Error += B == glm::vec4(4, 2.5, 2, 7.0f / 4.0f) ? 0 : 1;
+
+ B /= 2.0f;
+ Error += B == glm::vec4(2, 1.25, 1, 7.0f / 4.0f / 2.0f) ? 0 : 1;
+ }
+ {
+ glm::vec4 B(2.0f);
+
+ B /= B.y;
+ Error += B == glm::vec4(1.0f) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B = -A;
+ Error += B == glm::vec4(-1.0f, -2.0f, -3.0f, -4.0f) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B = --A;
+ Error += B == glm::vec4(0.0f, 1.0f, 2.0f, 3.0f) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B = A--;
+ Error += B == glm::vec4(1.0f, 2.0f, 3.0f, 4.0f) ? 0 : 1;
+ Error += A == glm::vec4(0.0f, 1.0f, 2.0f, 3.0f) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B = ++A;
+ Error += B == glm::vec4(2.0f, 3.0f, 4.0f, 5.0f) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f);
+ glm::vec4 B = A++;
+ Error += B == glm::vec4(1.0f, 2.0f, 3.0f, 4.0f) ? 0 : 1;
+ Error += A == glm::vec4(2.0f, 3.0f, 4.0f, 5.0f) ? 0 : 1;
+ }
+
+ return Error;
+}
+
+int test_vec4_equal()
+{
+ int Error = 0;
+
+ {
+ glm::vec4 const A(1, 2, 3, 4);
+ glm::vec4 const B(1, 2, 3, 4);
+ Error += A == B ? 0 : 1;
+ Error += A != B ? 1 : 0;
+ }
+
+ {
+ glm::ivec4 const A(1, 2, 3, 4);
+ glm::ivec4 const B(1, 2, 3, 4);
+ Error += A == B ? 0 : 1;
+ Error += A != B ? 1 : 0;
+ }
+
+ return Error;
+}
+
+int test_vec4_size()
+{
+ int Error = 0;
+
+ Error += sizeof(glm::vec4) == sizeof(glm::lowp_vec4) ? 0 : 1;
+ Error += sizeof(glm::vec4) == sizeof(glm::mediump_vec4) ? 0 : 1;
+ Error += sizeof(glm::vec4) == sizeof(glm::highp_vec4) ? 0 : 1;
+ Error += 16 == sizeof(glm::mediump_vec4) ? 0 : 1;
+ Error += sizeof(glm::dvec4) == sizeof(glm::lowp_dvec4) ? 0 : 1;
+ Error += sizeof(glm::dvec4) == sizeof(glm::mediump_dvec4) ? 0 : 1;
+ Error += sizeof(glm::dvec4) == sizeof(glm::highp_dvec4) ? 0 : 1;
+ Error += 32 == sizeof(glm::highp_dvec4) ? 0 : 1;
+ Error += glm::vec4().length() == 4 ? 0 : 1;
+ Error += glm::dvec4().length() == 4 ? 0 : 1;
+
+ return Error;
+}
+
+int test_vec4_swizzle_partial()
+{
+ int Error = 0;
+
+ glm::vec4 A(1, 2, 3, 4);
+
+# if GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_SWIZZLE_RELAX)
+ {
+ glm::vec4 B(A.xy, A.zw);
+ Error += A == B ? 0 : 1;
+ }
+ {
+ glm::vec4 B(A.xy, 3.0f, 4.0f);
+ Error += A == B ? 0 : 1;
+ }
+ {
+ glm::vec4 B(1.0f, A.yz, 4.0f);
+ Error += A == B ? 0 : 1;
+ }
+ {
+ glm::vec4 B(1.0f, 2.0f, A.zw);
+ Error += A == B ? 0 : 1;
+ }
+
+ {
+ glm::vec4 B(A.xyz, 4.0f);
+ Error += A == B ? 0 : 1;
+ }
+ {
+ glm::vec4 B(1.0f, A.yzw);
+ Error += A == B ? 0 : 1;
+ }
+# endif
+
+ return Error;
+}
+
+int test_operator_increment()
+{
+ int Error(0);
+
+ glm::ivec4 v0(1);
+ glm::ivec4 v1(v0);
+ glm::ivec4 v2(v0);
+ glm::ivec4 v3 = ++v1;
+ glm::ivec4 v4 = v2++;
+
+ Error += glm::all(glm::equal(v0, v4)) ? 0 : 1;
+ Error += glm::all(glm::equal(v1, v2)) ? 0 : 1;
+ Error += glm::all(glm::equal(v1, v3)) ? 0 : 1;
+
+ int i0(1);
+ int i1(i0);
+ int i2(i0);
+ int i3 = ++i1;
+ int i4 = i2++;
+
+ Error += i0 == i4 ? 0 : 1;
+ Error += i1 == i2 ? 0 : 1;
+ Error += i1 == i3 ? 0 : 1;
+
+ return Error;
+}
+
+namespace heap
+{
+ class A
+ {
+ float f;
+ };
+
+ class B : public A
+ {
+ float g;
+ glm::vec4 v;
+ };
+
+ int test()
+ {
+ int Error(0);
+
+ A* p = new B;
+ delete p;
+
+ return Error;
+ }
+}//namespace heap
+
+int test_vec4_simd()
+{
+ int Error = 0;
+
+ glm::vec4 const a(std::clock(), std::clock(), std::clock(), std::clock());
+ glm::vec4 const b(std::clock(), std::clock(), std::clock(), std::clock());
+
+ glm::vec4 const c(b * a);
+ glm::vec4 const d(a + c);
+
+ Error += glm::all(glm::greaterThanEqual(d, glm::vec4(0))) ? 0 : 1;
+
+ return Error;
+}
+
+int main()
+{
+ int Error(0);
+
+ Error += test_vec4_ctor();
+ Error += test_bvec4_ctor();
+ Error += test_vec4_size();
+ Error += test_vec4_operators();
+ Error += test_vec4_equal();
+ Error += test_vec4_swizzle_partial();
+ Error += test_vec4_simd();
+ Error += test_operator_increment();
+ Error += heap::test();
+
+ return Error;
+}
+
diff --git a/3rdparty/glm/test/core/core_force_unrestricted_gentype.cpp b/3rdparty/glm/test/core/core_force_unrestricted_gentype.cpp
new file mode 100644
index 00000000000..46a8b1eddc9
--- /dev/null
+++ b/3rdparty/glm/test/core/core_force_unrestricted_gentype.cpp
@@ -0,0 +1,11 @@
+#define GLM_FORCE_UNRESTRICTED_GENTYPE
+
+#include <glm/glm.hpp>
+
+int main()
+{
+ int Error = 0;
+
+ return Error;
+}
+
diff --git a/3rdparty/glm/test/core/core_func_common.cpp b/3rdparty/glm/test/core/core_func_common.cpp
index 6ff3c3937c8..c33f0d89b21 100644
--- a/3rdparty/glm/test/core/core_func_common.cpp
+++ b/3rdparty/glm/test/core/core_func_common.cpp
@@ -344,7 +344,7 @@ namespace clamp_
namespace mix_
{
- template <typename T, typename B>
+ template<typename T, typename B>
struct entry
{
T x;
@@ -514,7 +514,7 @@ namespace mix_
namespace step_
{
- template <typename EDGE, typename VEC>
+ template<typename EDGE, typename VEC>
struct entry
{
EDGE edge;
@@ -817,7 +817,7 @@ namespace isinf_
namespace sign
{
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType sign_if(genFIType x)
{
GLM_STATIC_ASSERT(
@@ -834,7 +834,7 @@ namespace sign
return result;
}
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType sign_alu1(genFIType x)
{
GLM_STATIC_ASSERT(
@@ -844,7 +844,7 @@ namespace sign
return (x >> 31) | ((unsigned)-x >> 31);
}
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType sign_alu2(genFIType x)
{
GLM_STATIC_ASSERT(
@@ -854,7 +854,7 @@ namespace sign
return -((unsigned)x >> 31) | (-(unsigned)x >> 31);
}
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType sign_sub(genFIType x)
{
GLM_STATIC_ASSERT(
@@ -864,7 +864,7 @@ namespace sign
return ((unsigned)-x >> 31) - ((unsigned)x >> 31);
}
- template <typename genFIType>
+ template<typename genFIType>
GLM_FUNC_QUALIFIER genFIType sign_cmp(genFIType x)
{
GLM_STATIC_ASSERT(
@@ -874,7 +874,7 @@ namespace sign
return (x > 0) - (x < 0);
}
- template <typename genType>
+ template<typename genType>
struct type
{
genType Value;
diff --git a/3rdparty/glm/test/core/core_func_exponential.cpp b/3rdparty/glm/test/core/core_func_exponential.cpp
index 665d8df6f57..f9e171b3ac5 100644
--- a/3rdparty/glm/test/core/core_func_exponential.cpp
+++ b/3rdparty/glm/test/core/core_func_exponential.cpp
@@ -98,7 +98,7 @@ int test_inversesqrt()
glm::uint ulp(0);
float diff(0.0f);
- for(float f = 0.001f; f < 10.f; f *= 1.001f)
+ for(float f = 0.001f; f < 10.f; f *= 1.01f)
{
glm::lowp_fvec1 u(f);
glm::lowp_fvec1 lowp_v = glm::inversesqrt(u);
@@ -106,6 +106,7 @@ int test_inversesqrt()
ulp = glm::max(glm::float_distance(lowp_v.x, defaultp_v), ulp);
diff = glm::abs(lowp_v.x - defaultp_v);
+ Error += diff > 0.1f ? 1 : 0;
}
return Error;
@@ -115,6 +116,8 @@ int main()
{
int Error(0);
+#if !(GLM_COMPILER & GLM_COMPILER_GCC)
+
Error += test_pow();
Error += test_exp();
Error += test_log();
@@ -123,6 +126,8 @@ int main()
Error += test_sqrt();
Error += test_inversesqrt();
+#endif//GLM_COMPILER & GLM_COMPILER_GCC
+
return Error;
}
diff --git a/3rdparty/glm/test/core/core_func_integer.cpp b/3rdparty/glm/test/core/core_func_integer.cpp
index c44153d8159..9b86981a046 100644
--- a/3rdparty/glm/test/core/core_func_integer.cpp
+++ b/3rdparty/glm/test/core/core_func_integer.cpp
@@ -15,7 +15,7 @@ enum result
namespace bitfieldInsert
{
- template <typename genType, typename sizeType>
+ template<typename genType, typename sizeType>
struct type
{
genType Base;
@@ -59,7 +59,7 @@ namespace bitfieldInsert
namespace bitfieldExtract
{
- template <typename genType, typename sizeType>
+ template<typename genType, typename sizeType>
struct type
{
genType Value;
@@ -151,26 +151,26 @@ namespace bitfieldReverse
return Result;
}
*/
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldReverseLoop(vecType<T, P> const & v)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldReverseLoop(vecType<L, T, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitfieldReverse' only accept integer values");
- vecType<T, P> Result(0);
+ vecType<L, T, P> Result(0);
T const BitSize = static_cast<T>(sizeof(T) * 8);
for(T i = 0; i < BitSize; ++i)
{
- vecType<T, P> const BitSet(v & (static_cast<T>(1) << i));
- vecType<T, P> const BitFirst(BitSet >> i);
+ vecType<L, T, P> const BitSet(v & (static_cast<T>(1) << i));
+ vecType<L, T, P> const BitFirst(BitSet >> i);
Result |= BitFirst << (BitSize - 1 - i);
}
return Result;
}
- template <typename T>
+ template<typename T>
GLM_FUNC_QUALIFIER T bitfieldReverseLoop(T v)
{
- return bitfieldReverseLoop(glm::tvec1<T>(v)).x;
+ return bitfieldReverseLoop(glm::vec<1, T>(v)).x;
}
GLM_FUNC_QUALIFIER glm::uint32_t bitfieldReverseUint32(glm::uint32_t x)
@@ -194,30 +194,30 @@ namespace bitfieldReverse
return x;
}
- template <bool EXEC = false>
+ template<bool EXEC = false>
struct compute_bitfieldReverseStep
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T, T)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v, T, T)
{
return v;
}
};
- template <>
+ template<>
struct compute_bitfieldReverseStep<true>
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Mask, T Shift)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v, T Mask, T Shift)
{
return (v & Mask) << Shift | (v & (~Mask)) >> Shift;
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldReverseOps(vecType<T, P> const & v)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> bitfieldReverseOps(vecType<L, T, P> const & v)
{
- vecType<T, P> x(v);
+ vecType<L, T, P> x(v);
x = compute_bitfieldReverseStep<sizeof(T) * 8 >= 2>::call(x, T(0x5555555555555555ull), static_cast<T>( 1));
x = compute_bitfieldReverseStep<sizeof(T) * 8 >= 4>::call(x, T(0x3333333333333333ull), static_cast<T>( 2));
x = compute_bitfieldReverseStep<sizeof(T) * 8 >= 8>::call(x, T(0x0F0F0F0F0F0F0F0Full), static_cast<T>( 4));
@@ -227,13 +227,13 @@ namespace bitfieldReverse
return x;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType bitfieldReverseOps(genType x)
{
- return bitfieldReverseOps(glm::tvec1<genType, glm::defaultp>(x)).x;
+ return bitfieldReverseOps(glm::vec<1, genType, glm::defaultp>(x)).x;
}
- template <typename genType>
+ template<typename genType>
struct type
{
genType Value;
@@ -256,14 +256,6 @@ namespace bitfieldReverse
typedef type<glm::uint64> typeU64;
-#if(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && (GLM_COMPILER < GLM_COMPILER_GCC44))
- typeU64 const Data64[] =
- {
- {0xf000000000000000LLU, 0x000000000000000fLLU, SUCCESS},
- {0xffffffffffffffffLLU, 0xffffffffffffffffLLU, SUCCESS},
- {0x0000000000000000LLU, 0x0000000000000000LLU, SUCCESS}
- };
-#else
typeU64 const Data64[] =
{
{0x00000000000000ff, 0xff00000000000000, SUCCESS},
@@ -272,7 +264,6 @@ namespace bitfieldReverse
{0xffffffffffffffff, 0xffffffffffffffff, SUCCESS},
{0x0000000000000000, 0x0000000000000000, SUCCESS}
};
-#endif
int test32_bitfieldReverse()
{
@@ -538,7 +529,7 @@ namespace bitfieldReverse
namespace findMSB
{
- template <typename genType, typename retType>
+ template<typename genType, typename retType>
struct type
{
genType Value;
@@ -546,7 +537,7 @@ namespace findMSB
};
# if GLM_HAS_BITSCAN_WINDOWS
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findMSB_intrinsic(genIUType Value)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findMSB' only accept integer values");
@@ -561,7 +552,7 @@ namespace findMSB
# endif//GLM_HAS_BITSCAN_WINDOWS
# if GLM_ARCH & GLM_ARCH_AVX && GLM_COMPILER & GLM_COMPILER_VC
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findMSB_avx(genIUType Value)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findMSB' only accept integer values");
@@ -573,7 +564,7 @@ namespace findMSB
}
# endif//GLM_ARCH & GLM_ARCH_AVX && GLM_PLATFORM & GLM_PLATFORM_WINDOWS
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findMSB_095(genIUType Value)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findMSB' only accept integer values");
@@ -597,7 +588,7 @@ namespace findMSB
}
}
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findMSB_nlz1(genIUType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findMSB' only accept integer values");
@@ -927,7 +918,7 @@ namespace findMSB
namespace findLSB
{
- template <typename genType, typename retType>
+ template<typename genType, typename retType>
struct type
{
genType Value;
@@ -950,7 +941,7 @@ namespace findLSB
};
# if GLM_HAS_BITSCAN_WINDOWS
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findLSB_intrinsic(genIUType Value)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findLSB' only accept integer values");
@@ -964,7 +955,7 @@ namespace findLSB
}
# endif
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findLSB_095(genIUType Value)
{
GLM_STATIC_ASSERT(std::numeric_limits<genIUType>::is_integer, "'findLSB' only accept integer values");
@@ -976,7 +967,7 @@ namespace findLSB
return Bit;
}
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findLSB_ntz2(genIUType x)
{
if(x == 0)
@@ -985,7 +976,7 @@ namespace findLSB
return glm::bitCount(~x & (x - static_cast<genIUType>(1)));
}
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER int findLSB_branchfree(genIUType x)
{
bool IsNull(x == 0);
@@ -1361,7 +1352,7 @@ namespace imulExtended
namespace bitCount
{
- template <typename genType>
+ template<typename genType>
struct type
{
genType Value;
@@ -1377,7 +1368,7 @@ namespace bitCount
{0x00000000, 0}
};
- template <typename T>
+ template<typename T>
inline int bitCount_if(T v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitCount' only accept integer values");
@@ -1391,7 +1382,7 @@ namespace bitCount
return Count;
}
- template <typename T>
+ template<typename T>
inline int bitCount_vec(T v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitCount' only accept integer values");
@@ -1404,43 +1395,43 @@ namespace bitCount
return Count;
}
- template <bool EXEC = false>
+ template<bool EXEC = false>
struct compute_bitfieldBitCountStep
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T, T)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v, T, T)
{
return v;
}
};
- template <>
+ template<>
struct compute_bitfieldBitCountStep<true>
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Mask, T Shift)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER static vecType<L, T, P> call(vecType<L, T, P> const & v, T Mask, T Shift)
{
return (v & Mask) + ((v >> Shift) & Mask);
}
};
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<int, P> bitCount_bitfield(vecType<T, P> const & v)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, glm::precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, int, P> bitCount_bitfield(vecType<L, T, P> const & v)
{
- vecType<typename glm::detail::make_unsigned<T>::type, P> x(*reinterpret_cast<vecType<typename glm::detail::make_unsigned<T>::type, P> const *>(&v));
+ vecType<L, typename glm::detail::make_unsigned<T>::type, P> x(*reinterpret_cast<vecType<L, typename glm::detail::make_unsigned<T>::type, P> const *>(&v));
x = compute_bitfieldBitCountStep<sizeof(T) * 8 >= 2>::call(x, typename glm::detail::make_unsigned<T>::type(0x5555555555555555ull), typename glm::detail::make_unsigned<T>::type( 1));
x = compute_bitfieldBitCountStep<sizeof(T) * 8 >= 4>::call(x, typename glm::detail::make_unsigned<T>::type(0x3333333333333333ull), typename glm::detail::make_unsigned<T>::type( 2));
x = compute_bitfieldBitCountStep<sizeof(T) * 8 >= 8>::call(x, typename glm::detail::make_unsigned<T>::type(0x0F0F0F0F0F0F0F0Full), typename glm::detail::make_unsigned<T>::type( 4));
x = compute_bitfieldBitCountStep<sizeof(T) * 8 >= 16>::call(x, typename glm::detail::make_unsigned<T>::type(0x00FF00FF00FF00FFull), typename glm::detail::make_unsigned<T>::type( 8));
x = compute_bitfieldBitCountStep<sizeof(T) * 8 >= 32>::call(x, typename glm::detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename glm::detail::make_unsigned<T>::type(16));
x = compute_bitfieldBitCountStep<sizeof(T) * 8 >= 64>::call(x, typename glm::detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename glm::detail::make_unsigned<T>::type(32));
- return vecType<int, P>(x);
+ return vecType<L, int, P>(x);
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER int bitCount_bitfield(genType x)
{
- return bitCount_bitfield(glm::tvec1<genType, glm::defaultp>(x)).x;
+ return bitCount_bitfield(glm::vec<1, genType, glm::defaultp>(x)).x;
}
int perf(std::size_t Size)
diff --git a/3rdparty/glm/test/core/core_func_integer_bit_count.cpp b/3rdparty/glm/test/core/core_func_integer_bit_count.cpp
index f8cba2c0709..0cd7431b3f0 100644
--- a/3rdparty/glm/test/core/core_func_integer_bit_count.cpp
+++ b/3rdparty/glm/test/core/core_func_integer_bit_count.cpp
@@ -285,7 +285,7 @@ int main()
printf("pop9: %ld clocks\n", TimestampEnd - TimestampBeg);
if (errors == 0)
- printf("Passed all %d cases.\n", sizeof(test)/8);
+ printf("Passed all %d cases.\n", static_cast<int>(sizeof(test)/8));
# endif//NDEBUG
}
diff --git a/3rdparty/glm/test/core/core_func_integer_find_lsb.cpp b/3rdparty/glm/test/core/core_func_integer_find_lsb.cpp
index 69eb27c16aa..ddabdf2a7e8 100644
--- a/3rdparty/glm/test/core/core_func_integer_find_lsb.cpp
+++ b/3rdparty/glm/test/core/core_func_integer_find_lsb.cpp
@@ -257,8 +257,6 @@ void error(int x, int y) {
printf("Error for x = %08x, got %d\n", x, y);
}
-/* ------------------------------ main ------------------------------ */
-
int main()
{
# ifdef NDEBUG
@@ -286,7 +284,7 @@ int main()
if (ntz1(test[i]) != test[i+1]) error(test[i], ntz1(test[i]));}
TimestampEnd = std::clock();
- printf("ntz1: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz1: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -294,7 +292,7 @@ int main()
if (ntz2(test[i]) != test[i+1]) error(test[i], ntz2(test[i]));}
TimestampEnd = std::clock();
- printf("ntz2: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz2: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -302,7 +300,7 @@ int main()
if (ntz3(test[i]) != test[i+1]) error(test[i], ntz3(test[i]));}
TimestampEnd = std::clock();
- printf("ntz3: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz3: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -310,7 +308,7 @@ int main()
if (ntz4(test[i]) != test[i+1]) error(test[i], ntz4(test[i]));}
TimestampEnd = std::clock();
- printf("ntz4: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz4: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -318,7 +316,7 @@ int main()
if (ntz4a(test[i]) != test[i+1]) error(test[i], ntz4a(test[i]));}
TimestampEnd = std::clock();
- printf("ntz4a: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz4a: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -327,7 +325,7 @@ int main()
if (ntz5(test[i]) != m) error(test[i], ntz5(test[i]));}
TimestampEnd = std::clock();
- printf("ntz5: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz5: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -335,7 +333,7 @@ int main()
if (ntz6(test[i]) != test[i+1]) error(test[i], ntz6(test[i]));}
TimestampEnd = std::clock();
- printf("ntz6: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz6: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -343,7 +341,7 @@ int main()
if (ntz6a(test[i]) != test[i+1]) error(test[i], ntz6a(test[i]));}
TimestampEnd = std::clock();
- printf("ntz6a: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz6a: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -351,7 +349,7 @@ int main()
if (ntz7(test[i]) != test[i+1]) error(test[i], ntz7(test[i]));}
TimestampEnd = std::clock();
- printf("ntz7: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz7: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -359,7 +357,7 @@ int main()
if (ntz7_christophe(test[i]) != test[i+1]) error(test[i], ntz7(test[i]));}
TimestampEnd = std::clock();
- printf("ntz7_christophe: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz7_christophe: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -367,7 +365,7 @@ int main()
if (ntz8(test[i]) != test[i+1]) error(test[i], ntz8(test[i]));}
TimestampEnd = std::clock();
- printf("ntz8: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz8: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -375,7 +373,7 @@ int main()
if (ntz8a(test[i]) != test[i+1]) error(test[i], ntz8a(test[i]));}
TimestampEnd = std::clock();
- printf("ntz8a: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz8a: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -383,7 +381,7 @@ int main()
if (ntz9(test[i]) != test[i+1]) error(test[i], ntz9(test[i]));}
TimestampEnd = std::clock();
- printf("ntz9: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz9: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -391,10 +389,10 @@ int main()
if (ntz10(test[i]) != test[i+1]) error(test[i], ntz10(test[i]));}
TimestampEnd = std::clock();
- printf("ntz10: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("ntz10: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
if (errors == 0)
- printf("Passed all %d cases.\n", sizeof(test)/8);
+ printf("Passed all %d cases.\n", static_cast<int>(sizeof(test)/8));
# endif//NDEBUG
}
diff --git a/3rdparty/glm/test/core/core_func_integer_find_msb.cpp b/3rdparty/glm/test/core/core_func_integer_find_msb.cpp
index 00268c868ea..e1d685a1715 100644
--- a/3rdparty/glm/test/core/core_func_integer_find_msb.cpp
+++ b/3rdparty/glm/test/core/core_func_integer_find_msb.cpp
@@ -325,7 +325,7 @@ int main()
if (nlz1(test[i]) != test[i+1]) error(test[i], nlz1(test[i]));}
TimestampEnd = std::clock();
- printf("nlz1: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz1: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -333,7 +333,7 @@ int main()
if (nlz1a(test[i]) != test[i+1]) error(test[i], nlz1a(test[i]));}
TimestampEnd = std::clock();
- printf("nlz1a: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz1a: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -341,7 +341,7 @@ int main()
if (nlz2(test[i]) != test[i+1]) error(test[i], nlz2(test[i]));}
TimestampEnd = std::clock();
- printf("nlz2: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz2: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -349,7 +349,7 @@ int main()
if (nlz2a(test[i]) != test[i+1]) error(test[i], nlz2a(test[i]));}
TimestampEnd = std::clock();
- printf("nlz2a: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz2a: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -357,7 +357,7 @@ int main()
if (nlz3(test[i]) != test[i+1]) error(test[i], nlz3(test[i]));}
TimestampEnd = std::clock();
- printf("nlz3: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz3: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -365,7 +365,7 @@ int main()
if (nlz4(test[i]) != test[i+1]) error(test[i], nlz4(test[i]));}
TimestampEnd = std::clock();
- printf("nlz4: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz4: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -373,7 +373,7 @@ int main()
if (nlz5(test[i]) != test[i+1]) error(test[i], nlz5(test[i]));}
TimestampEnd = std::clock();
- printf("nlz5: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz5: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -381,7 +381,7 @@ int main()
if (nlz6(test[i]) != test[i+1]) error(test[i], nlz6(test[i]));}
TimestampEnd = std::clock();
- printf("nlz6: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz6: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -389,7 +389,7 @@ int main()
if (nlz7(test[i]) != test[i+1]) error(test[i], nlz7(test[i]));}
TimestampEnd = std::clock();
- printf("nlz7: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz7: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -397,7 +397,7 @@ int main()
if (nlz8(test[i]) != test[i+1]) error(test[i], nlz8(test[i]));}
TimestampEnd = std::clock();
- printf("nlz8: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz8: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -405,7 +405,7 @@ int main()
if (nlz9(test[i]) != test[i+1]) error(test[i], nlz9(test[i]));}
TimestampEnd = std::clock();
- printf("nlz9: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz9: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -413,7 +413,7 @@ int main()
if (nlz10(test[i]) != test[i+1]) error(test[i], nlz10(test[i]));}
TimestampEnd = std::clock();
- printf("nlz10: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz10: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -421,7 +421,7 @@ int main()
if (nlz10a(test[i]) != test[i+1]) error(test[i], nlz10a(test[i]));}
TimestampEnd = std::clock();
- printf("nlz10a: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz10a: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
TimestampBeg = std::clock();
for (std::size_t k = 0; k < Count; ++k)
@@ -429,10 +429,10 @@ int main()
if (nlz10b(test[i]) != test[i+1]) error(test[i], nlz10b(test[i]));}
TimestampEnd = std::clock();
- printf("nlz10b: %d clocks\n", TimestampEnd - TimestampBeg);
+ printf("nlz10b: %d clocks\n", static_cast<int>(TimestampEnd - TimestampBeg));
if (errors == 0)
- printf("Passed all %d cases.\n", sizeof(test)/8);
+ printf("Passed all %d cases.\n", static_cast<int>(sizeof(test)/8));
# endif//NDEBUG
}
diff --git a/3rdparty/glm/test/core/core_func_matrix.cpp b/3rdparty/glm/test/core/core_func_matrix.cpp
index 8037deb6bef..e0c1e8a69c4 100644
--- a/3rdparty/glm/test/core/core_func_matrix.cpp
+++ b/3rdparty/glm/test/core/core_func_matrix.cpp
@@ -208,7 +208,7 @@ int test_inverse_simd()
return Error;
}
-template <typename VEC3, typename MAT4>
+template<typename VEC3, typename MAT4>
int test_inverse_perf(std::size_t Count, std::size_t Instance, char const * Message)
{
std::vector<MAT4> TestInputs;
diff --git a/3rdparty/glm/test/core/core_func_noise.cpp b/3rdparty/glm/test/core/core_func_noise.cpp
index 41db681f052..2bbf3fb3d2f 100644
--- a/3rdparty/glm/test/core/core_func_noise.cpp
+++ b/3rdparty/glm/test/core/core_func_noise.cpp
@@ -1,7 +1,22 @@
+struct vec4
+{
+ static int length();
+};
+
+int vec4::length()
+{
+ return 4;
+}
+
int main()
{
int Failed = 0;
-
+
+ vec4 V;
+
+ int LengthA = V.length();
+ int LengthB = vec4::length();
+
return Failed;
}
diff --git a/3rdparty/glm/test/core/core_func_swizzle.cpp b/3rdparty/glm/test/core/core_func_swizzle.cpp
index dfd6c8afe8e..cd2367a2027 100644
--- a/3rdparty/glm/test/core/core_func_swizzle.cpp
+++ b/3rdparty/glm/test/core/core_func_swizzle.cpp
@@ -2,6 +2,8 @@
#define GLM_FORCE_SWIZZLE
#include <glm/glm.hpp>
+#if !GLM_HAS_ONLY_XYZW
+
int test_ivec2_swizzle()
{
int Error = 0;
@@ -60,16 +62,19 @@ int test_vec4_swizzle()
return Error;
}
+#endif//!GLM_HAS_ONLY_XYZW
int main()
{
int Error = 0;
- Error += test_ivec2_swizzle();
- Error += test_ivec3_swizzle();
- Error += test_ivec4_swizzle();
+# if !GLM_HAS_ONLY_XYZW
+ Error += test_ivec2_swizzle();
+ Error += test_ivec3_swizzle();
+ Error += test_ivec4_swizzle();
- Error += test_vec4_swizzle();
+ Error += test_vec4_swizzle();
+# endif//!GLM_HAS_ONLY_XYZW
return Error;
}
diff --git a/3rdparty/glm/test/core/core_setup_message.cpp b/3rdparty/glm/test/core/core_setup_message.cpp
index 7eaf7028732..d8e03fd8efa 100644
--- a/3rdparty/glm/test/core/core_setup_message.cpp
+++ b/3rdparty/glm/test/core/core_setup_message.cpp
@@ -10,17 +10,17 @@ int test_compiler()
{
switch(GLM_COMPILER)
{
- case GLM_COMPILER_VC2010:
- std::printf("GLM_COMPILER_VC2010\n");
+ case GLM_COMPILER_VC12:
+ std::printf("Visual C++ 12 - 2013\n");
break;
- case GLM_COMPILER_VC2012:
- std::printf("GLM_COMPILER_VC2012\n");
+ case GLM_COMPILER_VC14:
+ std::printf("Visual C++ 14 - 2015\n");
break;
- case GLM_COMPILER_VC2013:
- std::printf("GLM_COMPILER_VC2013\n");
+ case GLM_COMPILER_VC15:
+ std::printf("Visual C++ 15 - 2017\n");
break;
- case GLM_COMPILER_VC2015:
- std::printf("GLM_COMPILER_VC2015\n");
+ case GLM_COMPILER_VC16:
+ std::printf("Visual C++ 16 - 20XX\n");
break;
default:
std::printf("Visual C++ version not detected\n");
@@ -32,59 +32,29 @@ int test_compiler()
{
switch(GLM_COMPILER)
{
- case GLM_COMPILER_GCC44:
- std::printf("GLM_COMPILER_GCC44\n");
- break;
- case GLM_COMPILER_GCC45:
- std::printf("GLM_COMPILER_GCC45\n");
- break;
case GLM_COMPILER_GCC46:
- std::printf("GLM_COMPILER_GCC46\n");
+ std::printf("GCC 4.6\n");
break;
case GLM_COMPILER_GCC47:
- std::printf("GLM_COMPILER_GCC47\n");
+ std::printf("GCC 4.7\n");
break;
case GLM_COMPILER_GCC48:
- std::printf("GLM_COMPILER_GCC48\n");
+ std::printf("GCC 4.8\n");
break;
case GLM_COMPILER_GCC49:
- std::printf("GLM_COMPILER_GCC49\n");
- break;
- case GLM_COMPILER_GCC50:
- std::printf("GLM_COMPILER_GCC50\n");
- break;
- case GLM_COMPILER_GCC51:
- std::printf("GLM_COMPILER_GCC51\n");
- break;
- case GLM_COMPILER_GCC52:
- std::printf("GLM_COMPILER_GCC52\n");
- break;
- case GLM_COMPILER_GCC53:
- std::printf("GLM_COMPILER_GCC53\n");
- break;
- case GLM_COMPILER_GCC54:
- std::printf("GLM_COMPILER_GCC54\n");
- break;
- case GLM_COMPILER_GCC60:
- std::printf("GLM_COMPILER_GCC60\n");
- break;
- case GLM_COMPILER_GCC61:
- std::printf("GLM_COMPILER_GCC61\n");
- break;
- case GLM_COMPILER_GCC62:
- std::printf("GLM_COMPILER_GCC62\n");
+ std::printf("GCC 4.9\n");
break;
- case GLM_COMPILER_GCC70:
- std::printf("GLM_COMPILER_GCC70\n");
+ case GLM_COMPILER_GCC5:
+ std::printf("GCC 5\n");
break;
- case GLM_COMPILER_GCC71:
- std::printf("GLM_COMPILER_GCC71\n");
+ case GLM_COMPILER_GCC6:
+ std::printf("GCC 6\n");
break;
- case GLM_COMPILER_GCC72:
- std::printf("GLM_COMPILER_GCC72\n");
+ case GLM_COMPILER_GCC7:
+ std::printf("GCC 7\n");
break;
- case GLM_COMPILER_GCC80:
- std::printf("GLM_COMPILER_GCC80\n");
+ case GLM_COMPILER_GCC8:
+ std::printf("GCC 8\n");
break;
default:
std::printf("GCC version not detected\n");
@@ -94,35 +64,38 @@ int test_compiler()
}
else if(GLM_COMPILER & GLM_COMPILER_CUDA)
{
- std::printf("GLM_COMPILER_CUDA\n");
+ std::printf("CUDA\n");
}
else if(GLM_COMPILER & GLM_COMPILER_CLANG)
{
switch(GLM_COMPILER)
{
- case GLM_COMPILER_CLANG32:
- std::printf("GLM_COMPILER_CLANG32\n");
- break;
- case GLM_COMPILER_CLANG33:
- std::printf("GLM_COMPILER_CLANG33\n");
- break;
case GLM_COMPILER_CLANG34:
- std::printf("GLM_COMPILER_CLANG34\n");
+ std::printf("Clang 3.4\n");
break;
case GLM_COMPILER_CLANG35:
- std::printf("GLM_COMPILER_CLANG35\n");
+ std::printf("Clang 3.5\n");
break;
case GLM_COMPILER_CLANG36:
- std::printf("GLM_COMPILER_CLANG36\n");
+ std::printf("Clang 3.6\n");
break;
case GLM_COMPILER_CLANG37:
- std::printf("GLM_COMPILER_CLANG37\n");
+ std::printf("Clang 3.7\n");
break;
case GLM_COMPILER_CLANG38:
- std::printf("GLM_COMPILER_CLANG38\n");
+ std::printf("Clang 3.8\n");
break;
case GLM_COMPILER_CLANG39:
- std::printf("GLM_COMPILER_CLANG39\n");
+ std::printf("Clang 3.9\n");
+ break;
+ case GLM_COMPILER_CLANG40:
+ std::printf("Clang 4.0\n");
+ break;
+ case GLM_COMPILER_CLANG41:
+ std::printf("Clang 4.1\n");
+ break;
+ case GLM_COMPILER_CLANG42:
+ std::printf("Clang 4.2\n");
break;
default:
std::printf("LLVM version not detected\n");
@@ -133,23 +106,17 @@ int test_compiler()
{
switch(GLM_COMPILER)
{
- case GLM_COMPILER_INTEL12:
- std::printf("GLM_COMPILER_INTEL12\n");
- break;
- case GLM_COMPILER_INTEL12_1:
- std::printf("GLM_COMPILER_INTEL12_1\n");
- break;
- case GLM_COMPILER_INTEL13:
- std::printf("GLM_COMPILER_INTEL13\n");
- break;
case GLM_COMPILER_INTEL14:
- std::printf("GLM_COMPILER_INTEL14\n");
+ std::printf("ICC 14 - 2013 SP1\n");
break;
case GLM_COMPILER_INTEL15:
- std::printf("GLM_COMPILER_INTEL15\n");
+ std::printf("ICC 15 - 2015\n");
break;
case GLM_COMPILER_INTEL16:
- std::printf("GLM_COMPILER_INTEL16\n");
+ std::printf("ICC 16 - 2017\n");
+ break;
+ case GLM_COMPILER_INTEL17:
+ std::printf("ICC 17 - 20XX\n");
break;
default:
std::printf("Intel compiler version not detected\n");
@@ -214,7 +181,7 @@ int test_instruction_set()
int test_cpp_version()
{
- std::printf("__cplusplus: %lld\n", __cplusplus);
+ std::printf("__cplusplus: %d\n", static_cast<int>(__cplusplus));
return 0;
}
@@ -229,19 +196,19 @@ int test_operators()
return (S && !R) ? 0 : 1;
}
-template <typename T>
+template<typename T>
struct vec
{
};
-template <template <typename> class C, typename T>
+template<template<typename> class C, typename T>
struct Class
{
};
-template <typename T>
+template<typename T>
struct Class<vec, T>
{
diff --git a/3rdparty/glm/test/core/core_type_aligned.cpp b/3rdparty/glm/test/core/core_type_aligned.cpp
new file mode 100644
index 00000000000..37cf4f95219
--- /dev/null
+++ b/3rdparty/glm/test/core/core_type_aligned.cpp
@@ -0,0 +1,128 @@
+#include <glm/glm.hpp>
+
+int test_aligned()
+{
+ int Error = 0;
+
+ size_t size1_aligned = sizeof(glm::detail::storage<int, 1, true>::type);
+ Error += size1_aligned == 1 ? 0 : 1;
+ size_t size2_aligned = sizeof(glm::detail::storage<int, 2, true>::type);
+ Error += size2_aligned == 2 ? 0 : 1;
+ size_t size4_aligned = sizeof(glm::detail::storage<int, 4, true>::type);
+ Error += size4_aligned == 4 ? 0 : 1;
+ size_t size8_aligned = sizeof(glm::detail::storage<int, 8, true>::type);
+ Error += size8_aligned == 8 ? 0 : 1;
+ size_t size16_aligned = sizeof(glm::detail::storage<int, 16, true>::type);
+ Error += size16_aligned == 16 ? 0 : 1;
+ size_t size32_aligned = sizeof(glm::detail::storage<int, 32, true>::type);
+ Error += size32_aligned == 32 ? 0 : 1;
+ size_t size64_aligned = sizeof(glm::detail::storage<int, 64, true>::type);
+ Error += size64_aligned == 64 ? 0 : 1;
+
+# if GLM_HAS_ALIGNOF
+
+ size_t align1_aligned = alignof(glm::detail::storage<int, 1, true>::type);
+ Error += align1_aligned == 1 ? 0 : 1;
+ size_t align2_aligned = alignof(glm::detail::storage<int, 2, true>::type);
+ Error += align2_aligned == 2 ? 0 : 1;
+ size_t align4_aligned = alignof(glm::detail::storage<int, 4, true>::type);
+ Error += align4_aligned == 4 ? 0 : 1;
+ size_t align8_aligned = alignof(glm::detail::storage<int, 8, true>::type);
+ Error += align8_aligned == 8 ? 0 : 1;
+ size_t align16_aligned = alignof(glm::detail::storage<int, 16, true>::type);
+ Error += align16_aligned == 16 ? 0 : 1;
+ size_t align32_aligned = alignof(glm::detail::storage<int, 32, true>::type);
+ Error += align32_aligned == 32 ? 0 : 1;
+ size_t align64_aligned = alignof(glm::detail::storage<int, 64, true>::type);
+ Error += align64_aligned == 64 ? 0 : 1;
+
+# elif GLM_COMPILER & GLM_COMPILER_GCC
+
+ size_t align1_aligned = __alignof__(glm::detail::storage<int, 1, true>::type);
+ Error += align1_aligned == 1 ? 0 : 1;
+ size_t align2_aligned = __alignof__(glm::detail::storage<int, 2, true>::type);
+ Error += align2_aligned == 2 ? 0 : 1;
+ size_t align4_aligned = __alignof__(glm::detail::storage<int, 4, true>::type);
+ Error += align4_aligned == 4 ? 0 : 1;
+ size_t align8_aligned = __alignof__(glm::detail::storage<int, 8, true>::type);
+ Error += align8_aligned == 8 ? 0 : 1;
+ size_t align16_aligned = __alignof__(glm::detail::storage<int, 16, true>::type);
+ Error += align16_aligned == 16 ? 0 : 1;
+ size_t align32_aligned = __alignof__(glm::detail::storage<int, 32, true>::type);
+ Error += align32_aligned == 32 ? 0 : 1;
+ size_t align64_aligned = __alignof__(glm::detail::storage<int, 64, true>::type);
+ Error += align64_aligned == 64 ? 0 : 1;
+
+# endif //GLM_HAS_ALIGNOF
+
+ return Error;
+}
+
+int test_unaligned()
+{
+ int Error = 0;
+
+ size_t size1_unaligned = sizeof(glm::detail::storage<int, 1, false>::type);
+ Error += size1_unaligned == 1 ? 0 : 1;
+ size_t size2_unaligned = sizeof(glm::detail::storage<int, 2, false>::type);
+ Error += size2_unaligned == 2 ? 0 : 1;
+ size_t size4_unaligned = sizeof(glm::detail::storage<int, 4, false>::type);
+ Error += size4_unaligned == 4 ? 0 : 1;
+ size_t size8_unaligned = sizeof(glm::detail::storage<int, 8, false>::type);
+ Error += size8_unaligned == 8 ? 0 : 1;
+ size_t size16_unaligned = sizeof(glm::detail::storage<int, 16, false>::type);
+ Error += size16_unaligned == 16 ? 0 : 1;
+ size_t size32_unaligned = sizeof(glm::detail::storage<int, 32, false>::type);
+ Error += size32_unaligned == 32 ? 0 : 1;
+ size_t size64_unaligned = sizeof(glm::detail::storage<int, 64, false>::type);
+ Error += size64_unaligned == 64 ? 0 : 1;
+
+# if GLM_HAS_ALIGNOF
+
+ size_t align1_unaligned = alignof(glm::detail::storage<int, 1, false>::type);
+ Error += align1_unaligned == 1 ? 0 : 1;
+ size_t align2_unaligned = alignof(glm::detail::storage<int, 2, false>::type);
+ Error += align2_unaligned == 1 ? 0 : 1;
+ size_t align4_unaligned = alignof(glm::detail::storage<int, 4, false>::type);
+ Error += align4_unaligned == 1 ? 0 : 1;
+ size_t align8_unaligned = alignof(glm::detail::storage<int, 8, false>::type);
+ Error += align8_unaligned == 1 ? 0 : 1;
+ size_t align16_unaligned = alignof(glm::detail::storage<int, 16, false>::type);
+ Error += align16_unaligned == 1 ? 0 : 1;
+ size_t align32_unaligned = alignof(glm::detail::storage<int, 32, false>::type);
+ Error += align32_unaligned == 1 ? 0 : 1;
+ size_t align64_unaligned = alignof(glm::detail::storage<int, 64, false>::type);
+ Error += align64_unaligned == 1 ? 0 : 1;
+
+# elif GLM_COMPILER & GLM_COMPILER_GCC
+
+ size_t align1_unaligned = __alignof__(glm::detail::storage<int, 1, false>::type);
+ Error += align1_unaligned == 1 ? 0 : 1;
+ size_t align2_unaligned = __alignof__(glm::detail::storage<int, 2, false>::type);
+ Error += align2_unaligned == 1 ? 0 : 1;
+ size_t align4_unaligned = __alignof__(glm::detail::storage<int, 4, false>::type);
+ Error += align4_unaligned == 1 ? 0 : 1;
+ size_t align8_unaligned = __alignof__(glm::detail::storage<int, 8, false>::type);
+ Error += align8_unaligned == 1 ? 0 : 1;
+ size_t align16_unaligned = __alignof__(glm::detail::storage<int, 16, false>::type);
+ Error += align16_unaligned == 1 ? 0 : 1;
+ size_t align32_unaligned = __alignof__(glm::detail::storage<int, 32, false>::type);
+ Error += align32_unaligned == 1 ? 0 : 1;
+ size_t align64_unaligned = __alignof__(glm::detail::storage<int, 64, false>::type);
+ Error += align64_unaligned == 1 ? 0 : 1;
+
+# endif //GLM_HAS_ALIGNOF
+
+ return Error;
+}
+
+
+int main()
+{
+ int Error = 0;
+
+ Error += test_aligned();
+ Error += test_unaligned();
+
+ return Error;
+}
diff --git a/3rdparty/glm/test/core/core_type_mat2x2.cpp b/3rdparty/glm/test/core/core_type_mat2x2.cpp
index 78c0e8d20ad..60ae1b1c7ca 100644
--- a/3rdparty/glm/test/core/core_type_mat2x2.cpp
+++ b/3rdparty/glm/test/core/core_type_mat2x2.cpp
@@ -99,7 +99,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -132,6 +132,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 16 == sizeof(glm::mat2x2) ? 0 : 1;
+ Error += 32 == sizeof(glm::dmat2x2) ? 0 : 1;
+ Error += glm::mat2x2().length() == 2 ? 0 : 1;
+ Error += glm::dmat2x2().length() == 2 ? 0 : 1;
+ Error += glm::mat2x2::length() == 2 ? 0 : 1;
+ Error += glm::dmat2x2::length() == 2 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error(0);
@@ -140,6 +154,7 @@ int main()
Error += test_ctr();
Error += test_operators();
Error += test_inverse();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat2x3.cpp b/3rdparty/glm/test/core/core_type_mat2x3.cpp
index 36e4a59458b..a20d0e52f4f 100644
--- a/3rdparty/glm/test/core/core_type_mat2x3.cpp
+++ b/3rdparty/glm/test/core/core_type_mat2x3.cpp
@@ -73,7 +73,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -106,6 +106,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 24 == sizeof(glm::mat2x3) ? 0 : 1;
+ Error += 48 == sizeof(glm::dmat2x3) ? 0 : 1;
+ Error += glm::mat2x3().length() == 2 ? 0 : 1;
+ Error += glm::dmat2x3().length() == 2 ? 0 : 1;
+ Error += glm::mat2x3::length() == 2 ? 0 : 1;
+ Error += glm::dmat2x3::length() == 2 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -113,6 +127,7 @@ int main()
Error += cast::test();
Error += test_ctr();
Error += test_operators();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat2x4.cpp b/3rdparty/glm/test/core/core_type_mat2x4.cpp
index d2435f8d732..17afebf91c9 100644
--- a/3rdparty/glm/test/core/core_type_mat2x4.cpp
+++ b/3rdparty/glm/test/core/core_type_mat2x4.cpp
@@ -73,7 +73,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -106,6 +106,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 32 == sizeof(glm::mat2x4) ? 0 : 1;
+ Error += 64 == sizeof(glm::dmat2x4) ? 0 : 1;
+ Error += glm::mat2x4().length() == 2 ? 0 : 1;
+ Error += glm::dmat2x4().length() == 2 ? 0 : 1;
+ Error += glm::mat2x4::length() == 2 ? 0 : 1;
+ Error += glm::dmat2x4::length() == 2 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -113,6 +127,7 @@ int main()
Error += cast::test();
Error += test_ctr();
Error += test_operators();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat3x2.cpp b/3rdparty/glm/test/core/core_type_mat3x2.cpp
index fdfa2083b79..d3b9e95b7d0 100644
--- a/3rdparty/glm/test/core/core_type_mat3x2.cpp
+++ b/3rdparty/glm/test/core/core_type_mat3x2.cpp
@@ -77,7 +77,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -110,6 +110,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 24 == sizeof(glm::mat3x2) ? 0 : 1;
+ Error += 48 == sizeof(glm::dmat3x2) ? 0 : 1;
+ Error += glm::mat3x2().length() == 3 ? 0 : 1;
+ Error += glm::dmat3x2().length() == 3 ? 0 : 1;
+ Error += glm::mat3x2::length() == 3 ? 0 : 1;
+ Error += glm::dmat3x2::length() == 3 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -117,6 +131,7 @@ int main()
Error += cast::test();
Error += test_ctr();
Error += test_operators();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat3x3.cpp b/3rdparty/glm/test/core/core_type_mat3x3.cpp
index c8886a559ba..013d8b9a849 100644
--- a/3rdparty/glm/test/core/core_type_mat3x3.cpp
+++ b/3rdparty/glm/test/core/core_type_mat3x3.cpp
@@ -136,7 +136,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -169,6 +169,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 36 == sizeof(glm::mat3x3) ? 0 : 1;
+ Error += 72 == sizeof(glm::dmat3x3) ? 0 : 1;
+ Error += glm::mat3x3().length() == 3 ? 0 : 1;
+ Error += glm::dmat3x3().length() == 3 ? 0 : 1;
+ Error += glm::mat3x3::length() == 3 ? 0 : 1;
+ Error += glm::dmat3x3::length() == 3 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -178,6 +192,7 @@ int main()
Error += test_mat3x3();
Error += test_operators();
Error += test_inverse();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat3x4.cpp b/3rdparty/glm/test/core/core_type_mat3x4.cpp
index 131f6862ca5..e3b78d31bfe 100644
--- a/3rdparty/glm/test/core/core_type_mat3x4.cpp
+++ b/3rdparty/glm/test/core/core_type_mat3x4.cpp
@@ -77,7 +77,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -110,6 +110,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 48 == sizeof(glm::mat3x4) ? 0 : 1;
+ Error += 96 == sizeof(glm::dmat3x4) ? 0 : 1;
+ Error += glm::mat3x4().length() == 3 ? 0 : 1;
+ Error += glm::dmat3x4().length() == 3 ? 0 : 1;
+ Error += glm::mat3x4::length() == 3 ? 0 : 1;
+ Error += glm::dmat3x4::length() == 3 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -117,6 +131,7 @@ int main()
Error += cast::test();
Error += test_ctr();
Error += test_operators();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat4x2.cpp b/3rdparty/glm/test/core/core_type_mat4x2.cpp
index eecdf1c71c2..1a956073fa4 100644
--- a/3rdparty/glm/test/core/core_type_mat4x2.cpp
+++ b/3rdparty/glm/test/core/core_type_mat4x2.cpp
@@ -81,7 +81,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -114,6 +114,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 32 == sizeof(glm::mat4x2) ? 0 : 1;
+ Error += 64 == sizeof(glm::dmat4x2) ? 0 : 1;
+ Error += glm::mat4x2().length() == 4 ? 0 : 1;
+ Error += glm::dmat4x2().length() == 4 ? 0 : 1;
+ Error += glm::mat4x2::length() == 4 ? 0 : 1;
+ Error += glm::dmat4x2::length() == 4 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -121,6 +135,7 @@ int main()
Error += cast::test();
Error += test_ctr();
Error += test_operators();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat4x3.cpp b/3rdparty/glm/test/core/core_type_mat4x3.cpp
index 309a86b42ab..e2e50db0a88 100644
--- a/3rdparty/glm/test/core/core_type_mat4x3.cpp
+++ b/3rdparty/glm/test/core/core_type_mat4x3.cpp
@@ -81,7 +81,7 @@ int test_ctr()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -114,6 +114,20 @@ namespace cast
}
}//namespace cast
+int test_size()
+{
+ int Error = 0;
+
+ Error += 48 == sizeof(glm::mat4x3) ? 0 : 1;
+ Error += 96 == sizeof(glm::dmat4x3) ? 0 : 1;
+ Error += glm::mat4x3().length() == 4 ? 0 : 1;
+ Error += glm::dmat4x3().length() == 4 ? 0 : 1;
+ Error += glm::mat4x3::length() == 4 ? 0 : 1;
+ Error += glm::dmat4x3::length() == 4 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -121,6 +135,7 @@ int main()
Error += cast::test();
Error += test_ctr();
Error += test_operators();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_mat4x4.cpp b/3rdparty/glm/test/core/core_type_mat4x4.cpp
index 94cc3ace00d..036d0dffb6e 100644
--- a/3rdparty/glm/test/core/core_type_mat4x4.cpp
+++ b/3rdparty/glm/test/core/core_type_mat4x4.cpp
@@ -13,7 +13,7 @@
#include <vector>
-template <typename genType>
+template<typename genType>
void print(genType const & Mat0)
{
printf("mat4(\n");
@@ -253,7 +253,7 @@ int perf_mul()
namespace cast
{
- template <typename genType>
+ template<typename genType>
int entry()
{
int Error = 0;
@@ -294,6 +294,20 @@ struct repro
glm::mat4* matrix;
};
+int test_size()
+{
+ int Error = 0;
+
+ Error += 64 == sizeof(glm::mat4) ? 0 : 1;
+ Error += 128 == sizeof(glm::dmat4) ? 0 : 1;
+ Error += glm::mat4().length() == 4 ? 0 : 1;
+ Error += glm::dmat4().length() == 4 ? 0 : 1;
+ Error += glm::mat4::length() == 4 ? 0 : 1;
+ Error += glm::dmat4::length() == 4 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error = 0;
@@ -306,6 +320,7 @@ int main()
Error += test_inverse_mat4x4();
Error += test_operators();
Error += test_inverse();
+ Error += test_size();
Error += perf_mul();
diff --git a/3rdparty/glm/test/core/core_type_vec1.cpp b/3rdparty/glm/test/core/core_type_vec1.cpp
index 9177e38029d..ff1555fe840 100644
--- a/3rdparty/glm/test/core/core_type_vec1.cpp
+++ b/3rdparty/glm/test/core/core_type_vec1.cpp
@@ -3,6 +3,9 @@
#include <glm/gtc/vec1.hpp>
#include <vector>
+static glm::vec1 v1;
+static glm::vec1 v2(1);
+
int test_vec1_operators()
{
int Error(0);
@@ -93,14 +96,16 @@ int test_vec1_ctor()
int test_vec1_size()
{
int Error = 0;
-
+
Error += sizeof(glm::vec1) == sizeof(glm::mediump_vec1) ? 0 : 1;
Error += 4 == sizeof(glm::mediump_vec1) ? 0 : 1;
Error += sizeof(glm::dvec1) == sizeof(glm::highp_dvec1) ? 0 : 1;
Error += 8 == sizeof(glm::highp_dvec1) ? 0 : 1;
Error += glm::vec1().length() == 1 ? 0 : 1;
Error += glm::dvec1().length() == 1 ? 0 : 1;
-
+ Error += glm::vec1::length() == 1 ? 0 : 1;
+ Error += glm::dvec1::length() == 1 ? 0 : 1;
+
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_vec2.cpp b/3rdparty/glm/test/core/core_type_vec2.cpp
index af7997af709..89ab00cbdb9 100644
--- a/3rdparty/glm/test/core/core_type_vec2.cpp
+++ b/3rdparty/glm/test/core/core_type_vec2.cpp
@@ -6,6 +6,10 @@
# include <type_traits>
#endif
+static glm::vec2 v1;
+static glm::vec2 v2(1);
+static glm::vec2 v3(1, 1);
+
int test_vec2_operators()
{
int Error = 0;
@@ -265,6 +269,8 @@ int test_vec2_size()
Error += 16 == sizeof(glm::highp_dvec2) ? 0 : 1;
Error += glm::vec2().length() == 2 ? 0 : 1;
Error += glm::dvec2().length() == 2 ? 0 : 1;
+ Error += glm::vec2::length() == 2 ? 0 : 1;
+ Error += glm::dvec2::length() == 2 ? 0 : 1;
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_vec3.cpp b/3rdparty/glm/test/core/core_type_vec3.cpp
index e6b894c7abc..072767f993d 100644
--- a/3rdparty/glm/test/core/core_type_vec3.cpp
+++ b/3rdparty/glm/test/core/core_type_vec3.cpp
@@ -7,6 +7,10 @@
#include <cstdio>
#include <vector>
+static glm::vec3 v1;
+static glm::vec3 v2(1);
+static glm::vec3 v3(1, 1, 1);
+
int test_vec3_ctor()
{
int Error = 0;
@@ -239,6 +243,9 @@ int test_vec3_size()
Error += 24 == sizeof(glm::highp_dvec3) ? 0 : 1;
Error += glm::vec3().length() == 3 ? 0 : 1;
Error += glm::dvec3().length() == 3 ? 0 : 1;
+ Error += glm::vec3::length() == 3 ? 0 : 1;
+ Error += glm::dvec3::length() == 3 ? 0 : 1;
+
return Error;
}
@@ -331,6 +338,7 @@ int test_vec3_swizzle3_3()
return Error;
}
+#if !GLM_HAS_ONLY_XYZW
int test_vec3_swizzle_operators()
{
int Error = 0;
@@ -437,6 +445,7 @@ int test_vec3_swizzle_partial()
return Error;
}
+#endif//!GLM_HAS_ONLY_XYZW
int test_operator_increment()
{
@@ -477,10 +486,13 @@ int main()
Error += test_vec3_size();
Error += test_vec3_swizzle3_2();
Error += test_vec3_swizzle3_3();
- Error += test_vec3_swizzle_partial();
- Error += test_vec3_swizzle_operators();
- Error += test_vec3_swizzle_functions();
Error += test_operator_increment();
+# if !GLM_HAS_ONLY_XYZW
+ Error += test_vec3_swizzle_partial();
+ Error += test_vec3_swizzle_operators();
+ Error += test_vec3_swizzle_functions();
+# endif//!GLM_HAS_ONLY_XYZW
+
return Error;
}
diff --git a/3rdparty/glm/test/core/core_type_vec4.cpp b/3rdparty/glm/test/core/core_type_vec4.cpp
index 86e302c7e34..72af25d8cbb 100644
--- a/3rdparty/glm/test/core/core_type_vec4.cpp
+++ b/3rdparty/glm/test/core/core_type_vec4.cpp
@@ -8,6 +8,10 @@
#include <ctime>
#include <vector>
+static glm::vec4 v1;
+static glm::vec4 v2(1);
+static glm::vec4 v3(1, 1, 1, 1);
+
template <int Value>
struct mask
{
@@ -315,6 +319,8 @@ int test_vec4_size()
Error += 32 == sizeof(glm::highp_dvec4) ? 0 : 1;
Error += glm::vec4().length() == 4 ? 0 : 1;
Error += glm::dvec4().length() == 4 ? 0 : 1;
+ Error += glm::vec4::length() == 4 ? 0 : 1;
+ Error += glm::dvec4::length() == 4 ? 0 : 1;
return Error;
}
diff --git a/3rdparty/glm/test/external/gli/CMakeLists.txt b/3rdparty/glm/test/external/gli/CMakeLists.txt
index 6b91c28801a..46d803d126a 100644
--- a/3rdparty/glm/test/external/gli/CMakeLists.txt
+++ b/3rdparty/glm/test/external/gli/CMakeLists.txt
@@ -1,8 +1,11 @@
-set(NAME gli)
+set(NAME gli_dummy)
file(GLOB ROOT_SOURCE *.cpp)
file(GLOB ROOT_INLINE *.inl)
file(GLOB ROOT_HEADER *.hpp)
+file(GLOB ROOT_TEXT ../*.txt)
+file(GLOB ROOT_MD ../*.md)
+file(GLOB ROOT_KMG ../doc/spec/*.html)
file(GLOB_RECURSE CORE_SOURCE ./core/*.cpp)
file(GLOB_RECURSE CORE_INLINE ./core/*.inl)
@@ -12,6 +15,8 @@ file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp)
file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl)
file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp)
+source_group("KMG Spec" FILES ${ROOT_KMG})
+source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD})
source_group("Core Files" FILES ${CORE_SOURCE})
source_group("Core Files" FILES ${CORE_INLINE})
source_group("Core Files" FILES ${CORE_HEADER})
@@ -21,7 +26,7 @@ source_group("GTX Files" FILES ${GTX_HEADER})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
-add_executable(${NAME}
- ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
+add_executable(${NAME} ${ROOT_TEXT} ${ROOT_MD} ${ROOT_KMG}
+ ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
- ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} )
+ ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER})
diff --git a/3rdparty/glm/test/external/gli/clear.hpp b/3rdparty/glm/test/external/gli/clear.hpp
new file mode 100644
index 00000000000..db5a98f8648
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/clear.hpp
@@ -0,0 +1,46 @@
+/// @brief Include to copy textures or a subset of either textures. These operations are performed without memory allocations.
+/// @file gli/clear.hpp
+
+#pragma once
+
+namespace gli
+{
+ /// Clear a complete texture
+ template <typename texture_type>
+ void clear(texture_type& Texture);
+
+ /// Clear a complete texture
+ template <typename texture_type, typename gen_type>
+ void clear(texture_type& Texture, gen_type const& BlockData);
+
+ /// Clear a specific image of a texture
+ template <typename texture_type, typename gen_type>
+ void clear(texture_type& Texture, size_t Layer, size_t Face, size_t Level, gen_type const& BlockData);
+
+ // Clear an entire level of a texture
+ template <typename texture_type, typename gen_type>
+ void clear_level(texture_type& Texture, size_t BaseLevel, gen_type const& BlockData);
+
+ // Clear multiple levels of a texture
+ template <typename texture_type, typename gen_type>
+ void clear_level(texture_type& Texture, size_t BaseLevel, size_t LevelCount, gen_type const& BlockData);
+
+ // Clear an entire face of a texture
+ template <typename texture_type, typename gen_type>
+ void clear_face(texture_type& Texture, size_t BaseFace, gen_type const& BlockData);
+
+ // Clear multiple faces of a texture
+ template <typename texture_type, typename gen_type>
+ void clear_face(texture_type& Texture, size_t BaseFace, size_t FaceCount, gen_type const& BlockData);
+
+ // Clear an entire layer of a texture
+ template <typename texture_type, typename gen_type>
+ void clear_layer(texture_type& Texture, size_t BaseLayer, gen_type const& BlockData);
+
+ // Clear multiple layers of a texture
+ template <typename texture_type, typename gen_type>
+ void clear_layer(texture_type& Texture, size_t BaseLayer, size_t LayerCount, gen_type const& BlockData);
+}//namespace gli
+
+#include "./core/clear.inl"
+
diff --git a/3rdparty/glm/test/external/gli/comparison.hpp b/3rdparty/glm/test/external/gli/comparison.hpp
new file mode 100644
index 00000000000..687cca4e316
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/comparison.hpp
@@ -0,0 +1,30 @@
+/// @brief Include to use operators to compare whether two textures or images are equal
+/// @file gli/comparison.hpp
+
+#pragma once
+
+#include "image.hpp"
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ /// Compare two images. Two images are equal when the date is the same.
+ bool operator==(image const& ImageA, image const& ImageB);
+
+ /// Compare two images. Two images are equal when the date is the same.
+ bool operator!=(image const& ImageA, image const& ImageB);
+
+ /// Compare two textures. Two textures are the same when the data, the format and the targets are the same.
+ bool operator==(texture const& A, texture const& B);
+
+ /// Compare two textures. Two textures are the same when the data, the format and the targets are the same.
+ bool operator!=(texture const& A, texture const& B);
+}//namespace gli
+
+#include "./core/comparison.inl"
diff --git a/3rdparty/glm/test/external/gli/convert.hpp b/3rdparty/glm/test/external/gli/convert.hpp
new file mode 100644
index 00000000000..21d90d9aba4
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/convert.hpp
@@ -0,0 +1,24 @@
+/// @brief Include to copy textures, images or a subset of either textures or an images. These operations will cause memory allocations.
+/// @file gli/convert.hpp
+
+#pragma once
+
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ /// Convert texture data to a new format
+ ///
+ /// @param Texture Source texture, the format must be uncompressed.
+ /// @param Format Destination Texture format, it must be uncompressed.
+ template <typename texture_type>
+ texture_type convert(texture_type const& Texture, format Format);
+}//namespace gli
+
+#include "./core/convert.inl"
diff --git a/3rdparty/glm/test/external/gli/copy.hpp b/3rdparty/glm/test/external/gli/copy.hpp
new file mode 100644
index 00000000000..ec32f87a8a4
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/copy.hpp
@@ -0,0 +1,62 @@
+/// @brief Include to copy textures or a subset of either textures. These operations are performed without memory allocations.
+/// @file gli/copy.hpp
+
+#pragma once
+
+#include "type.hpp"
+
+namespace gli
+{
+ /// Copy a specific image of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy(
+ texture_src_type const& TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc,
+ texture_dst_type& TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst);
+
+ /// Copy a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy(
+ texture_src_type const& TextureSrc,
+ texture_dst_type& TextureDst);
+
+ // Copy an entire level of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_level(
+ texture_src_type const& TextureSrc, size_t BaseLevelSrc,
+ texture_dst_type& TextureDst, size_t BaseLevelDst);
+
+ // Copy multiple levels of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_level(
+ texture_src_type const& TextureSrc, size_t BaseLevelSrc,
+ texture_dst_type& TextureDst, size_t BaseLevelDst,
+ size_t LevelCount);
+
+ // Copy an entire face of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_face(
+ texture_src_type const& TextureSrc, size_t BaseFaceSrc,
+ texture_dst_type& TextureDst, size_t BaseFaceDst);
+
+ // Copy multiple faces of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_face(
+ texture_src_type const& TextureSrc, size_t BaseFaceSrc,
+ texture_dst_type& TextureDst, size_t BaseFaceDst,
+ size_t FaceCount);
+
+ // Copy an entire layer of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_layer(
+ texture_src_type const& TextureSrc, size_t BaseLayerSrc,
+ texture_dst_type& TextureDst, size_t BaseLayerDst);
+
+ // Copy multiple layers of a texture
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_layer(
+ texture_src_type const& TextureSrc, size_t BaseLayerSrc,
+ texture_dst_type& TextureDst, size_t BaseLayerDst,
+ size_t LayerCount);
+}//namespace gli
+
+#include "./core/copy.inl"
diff --git a/3rdparty/glm/test/external/gli/core/clear.hpp b/3rdparty/glm/test/external/gli/core/clear.hpp
new file mode 100644
index 00000000000..8516c3715ac
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/clear.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "convert_func.hpp"
+
+namespace gli{
+namespace detail
+{
+ template <typename textureType, typename T, precision P>
+ struct clear
+ {
+ static void call(textureType & Texture, typename convert<textureType, T, P>::writeFunc Write, vec<4, T, P> const& Color)
+ {
+ GLI_ASSERT(Write);
+
+ texture const ConvertTexel(Texture.target(), Texture.format(), texture::extent_type(1), 1, 1, 1);
+ textureType Texel(ConvertTexel);
+ Write(Texel, typename textureType::extent_type(0), 0, 0, 0, Color);
+
+ size_t const BlockSize(block_size(Texture.format()));
+ for(size_t BlockIndex = 0, BlockCount = Texture.size() / BlockSize; BlockIndex < BlockCount; ++BlockIndex)
+ memcpy(static_cast<std::uint8_t*>(Texture.data()) + BlockSize * BlockIndex, Texel.data(), BlockSize);
+ }
+ };
+}//namespace detail
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/clear.inl b/3rdparty/glm/test/external/gli/core/clear.inl
new file mode 100644
index 00000000000..d7c682d8ce3
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/clear.inl
@@ -0,0 +1,71 @@
+namespace gli
+{
+ template <typename texture_type>
+ inline void clear(texture_type& Texture)
+ {
+ Texture.clear();
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear(texture_type& Texture, gen_type const& BlockData)
+ {
+ Texture.clear(BlockData);
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear(texture_type& Texture, size_t Layer, size_t Face, size_t Level, gen_type const& BlockData)
+ {
+ Texture.clear(Layer, Face, Level, BlockData);
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear_level(texture_type& Texture, size_t BaseLevel, size_t LevelCount, gen_type const& BlockData)
+ {
+ for(size_t LayerIndex = 0, LayerCount = Texture.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_t FaceIndex = 0, FaceCount = Texture.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_t LevelIndex = 0; LevelIndex < LevelCount; ++LevelIndex)
+ {
+ Texture.template clear<gen_type>(LayerIndex, FaceIndex, BaseLevel + LevelIndex, BlockData);
+ }
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear_level(texture_type& Texture, size_t BaseLevel, gen_type const& BlockData)
+ {
+ clear_level(Texture, BaseLevel, 1, BlockData);
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear_face(texture_type& Texture, size_t BaseFace, size_t FaceCount, gen_type const& BlockData)
+ {
+ for(size_t LayerIndex = 0, LayerCount = Texture.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_t FaceIndex = 0; FaceIndex < FaceCount; ++FaceIndex)
+ for(size_t LevelIndex = 0, LevelCount = Texture.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ Texture.template clear<gen_type>(LayerIndex, BaseFace + FaceIndex, LevelIndex, BlockData);
+ }
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear_face(texture_type& Texture, size_t BaseFace, gen_type const& BlockData)
+ {
+ clear_face(Texture, BaseFace, 1, BlockData);
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear_layer(texture_type& Texture, size_t BaseLayer, size_t LayerCount, gen_type const& BlockData)
+ {
+ for(size_t LayerIndex = 0; LayerIndex < LayerCount; ++LayerIndex)
+ for(size_t FaceIndex = 0, FaceCount = Texture.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_t LevelIndex = 0, LevelCount = Texture.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ Texture.template clear<gen_type>(LayerIndex + BaseLayer, FaceIndex, LevelIndex, BlockData);
+ }
+ }
+
+ template <typename texture_type, typename gen_type>
+ inline void clear_layer(texture_type& Texture, size_t BaseLayer, gen_type const& BlockData)
+ {
+ clear_layer(Texture, BaseLayer, 1, BlockData);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/comparison.inl b/3rdparty/glm/test/external/gli/core/comparison.inl
new file mode 100644
index 00000000000..df920b480c0
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/comparison.inl
@@ -0,0 +1,100 @@
+#include <cstring>
+
+namespace gli{
+namespace detail
+{
+ inline bool equalData(texture const & TextureA, texture const & TextureB)
+ {
+ GLI_ASSERT(TextureA.size() == TextureB.size());
+
+ if(TextureA.data() == TextureB.data())
+ return true;
+
+ for(texture::size_type LayerIndex = 0, LayerCount = TextureA.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(texture::size_type FaceIndex = 0, FaceCount = TextureA.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(texture::size_type LevelIndex = 0, LevelCount = TextureA.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ void const* PointerA = TextureA.data(LayerIndex, FaceIndex, LevelIndex);
+ void const* PointerB = TextureB.data(LayerIndex, FaceIndex, LevelIndex);
+ if(std::memcmp(PointerA, PointerB, TextureA.size(LevelIndex)) != 0)
+ return false;
+ }
+
+ return true;
+ }
+}//namespace detail
+
+ inline bool operator==(image const & ImageA, image const & ImageB)
+ {
+ if(!glm::all(glm::equal(ImageA.extent(), ImageB.extent())))
+ return false;
+ if(ImageA.size() != ImageB.size())
+ return false;
+
+ return std::memcmp(ImageA.data(), ImageB.data(), ImageA.size()) == 0;
+ }
+
+ inline bool operator!=(image const & ImageA, image const & ImageB)
+ {
+ if(!glm::all(glm::equal(ImageA.extent(), ImageB.extent())))
+ return true;
+ if(ImageA.size() != ImageB.size())
+ return true;
+
+ return std::memcmp(ImageA.data(), ImageB.data(), ImageA.size()) != 0;
+ }
+
+ inline bool equal(texture const & TextureA, texture const & TextureB)
+ {
+ if(TextureA.empty() && TextureB.empty())
+ return true;
+ if(TextureA.empty() != TextureB.empty())
+ return false;
+ if(TextureA.target() != TextureB.target())
+ return false;
+ if(TextureA.layers() != TextureB.layers())
+ return false;
+ if(TextureA.faces() != TextureB.faces())
+ return false;
+ if(TextureA.levels() != TextureB.levels())
+ return false;
+ if(TextureA.format() != TextureB.format())
+ return false;
+ if(TextureA.size() != TextureB.size())
+ return false;
+
+ return detail::equalData(TextureA, TextureB);
+ }
+
+ inline bool notEqual(texture const & TextureA, texture const & TextureB)
+ {
+ if(TextureA.empty() && TextureB.empty())
+ return false;
+ if(TextureA.empty() != TextureB.empty())
+ return true;
+ if(TextureA.target() != TextureB.target())
+ return true;
+ if(TextureA.layers() != TextureB.layers())
+ return true;
+ if(TextureA.faces() != TextureB.faces())
+ return true;
+ if(TextureA.levels() != TextureB.levels())
+ return true;
+ if(TextureA.format() != TextureB.format())
+ return true;
+ if(TextureA.size() != TextureB.size())
+ return true;
+
+ return !detail::equalData(TextureA, TextureB);
+ }
+
+ inline bool operator==(texture const & A, texture const & B)
+ {
+ return gli::equal(A, B);
+ }
+
+ inline bool operator!=(texture const & A, texture const & B)
+ {
+ return gli::notEqual(A, B);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/convert.inl b/3rdparty/glm/test/external/gli/core/convert.inl
new file mode 100644
index 00000000000..b9e5d2e8779
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/convert.inl
@@ -0,0 +1,45 @@
+#include "../core/convert_func.hpp"
+
+namespace gli
+{
+ template <typename texture_type>
+ inline texture_type convert(texture_type const& Texture, format Format)
+ {
+ typedef float T;
+ typedef typename texture::extent_type extent_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename extent_type::value_type component_type;
+ typedef typename detail::convert<texture_type, T, defaultp>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, defaultp>::writeFunc write_type;
+
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()) && !is_compressed(Format));
+
+ fetch_type Fetch = detail::convert<texture_type, T, defaultp>::call(Texture.format()).Fetch;
+ write_type Write = detail::convert<texture_type, T, defaultp>::call(Format).Write;
+
+ texture Storage(Texture.target(), Format, Texture.texture::extent(), Texture.layers(), Texture.faces(), Texture.levels(), Texture.swizzles());
+ texture_type Copy(Storage);
+
+ for(size_type Layer = 0; Layer < Texture.layers(); ++Layer)
+ for(size_type Face = 0; Face < Texture.faces(); ++Face)
+ for(size_type Level = 0; Level < Texture.levels(); ++Level)
+ {
+ extent_type const& Dimensions = Texture.texture::extent(Level);
+
+ for(component_type k = 0; k < Dimensions.z; ++k)
+ for(component_type j = 0; j < Dimensions.y; ++j)
+ for(component_type i = 0; i < Dimensions.x; ++i)
+ {
+ typename texture_type::extent_type const Texelcoord(extent_type(i, j, k));
+ Write(
+ Copy, Texelcoord, Layer, Face, Level,
+ Fetch(Texture, Texelcoord, Layer, Face, Level));
+ }
+ }
+
+ return texture_type(Copy);
+ }
+
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/convert_func.hpp b/3rdparty/glm/test/external/gli/core/convert_func.hpp
new file mode 100644
index 00000000000..b16bea0f8b3
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/convert_func.hpp
@@ -0,0 +1,767 @@
+#pragma once
+
+#include "../type.hpp"
+#include "../texture1d.hpp"
+#include "../texture1d_array.hpp"
+#include "../texture2d.hpp"
+#include "../texture2d_array.hpp"
+#include "../texture3d.hpp"
+#include "../texture_cube.hpp"
+#include "../texture_cube_array.hpp"
+#include <glm/gtc/packing.hpp>
+#include <glm/gtc/color_space.hpp>
+#include <limits>
+
+namespace gli{
+namespace detail
+{
+ enum convertMode
+ {
+ CONVERT_MODE_DEFAULT,
+ CONVERT_MODE_CAST,
+ CONVERT_MODE_NORM,
+ CONVERT_MODE_SRGB,
+ CONVERT_MODE_HALF,
+ CONVERT_MODE_RGB9E5,
+ CONVERT_MODE_RG11B10F,
+ CONVERT_MODE_RGB10A2UNORM,
+ CONVERT_MODE_RGB10A2SNORM,
+ CONVERT_MODE_RGB10A2USCALE,
+ CONVERT_MODE_RGB10A2SSCALE,
+ CONVERT_MODE_RGB10A2UINT,
+ CONVERT_MODE_RGB10A2SINT,
+ CONVERT_MODE_44UNORM,
+ CONVERT_MODE_44SCALED,
+ CONVERT_MODE_4444UNORM,
+ CONVERT_MODE_4444SCALED,
+ CONVERT_MODE_565UNORM,
+ CONVERT_MODE_565SCALED,
+ CONVERT_MODE_5551UNORM,
+ CONVERT_MODE_5551SCALED,
+ CONVERT_MODE_332UNORM
+ };
+
+ template <typename textureType, typename genType>
+ struct accessFunc
+ {};
+
+ template <typename genType>
+ struct accessFunc<texture1d, genType>
+ {
+ static genType load(texture1d const & Texture, texture1d::extent_type const & TexelCoord, texture1d::size_type Layer, texture1d::size_type Face, texture1d::size_type Level)
+ {
+ GLI_ASSERT(Layer == 0 && Face == 0);
+ return Texture.load<genType>(TexelCoord, Level);
+ }
+
+ static void store(texture1d & Texture, texture1d::extent_type const & TexelCoord, texture1d::size_type Layer, texture1d::size_type Face, texture1d::size_type Level, genType const & Texel)
+ {
+ GLI_ASSERT(Layer == 0 && Face == 0);
+ Texture.store<genType>(TexelCoord, Level, Texel);
+ }
+ };
+
+ template <typename genType>
+ struct accessFunc<texture1d_array, genType>
+ {
+ static genType load(texture1d_array const& Texture, texture1d_array::extent_type const& TexelCoord, texture1d_array::size_type Layer, texture1d_array::size_type Face, texture1d_array::size_type Level)
+ {
+ GLI_ASSERT(Face == 0);
+ return Texture.load<genType>(TexelCoord, Layer, Level);
+ }
+
+ static void store(texture1d_array& Texture, texture1d_array::extent_type const& TexelCoord, texture1d_array::size_type Layer, texture1d_array::size_type Face, texture1d_array::size_type Level, genType const& Texel)
+ {
+ GLI_ASSERT(Face == 0);
+ Texture.store<genType>(TexelCoord, Layer, Level, Texel);
+ }
+ };
+
+ template <typename genType>
+ struct accessFunc<texture2d, genType>
+ {
+ static genType load(texture2d const & Texture, texture2d::extent_type const & TexelCoord, texture2d::size_type Layer, texture2d::size_type Face, texture2d::size_type Level)
+ {
+ GLI_ASSERT(Layer == 0 && Face == 0);
+ return Texture.load<genType>(TexelCoord, Level);
+ }
+
+ static void store(texture2d & Texture, texture2d::extent_type const & TexelCoord, texture2d::size_type Layer, texture2d::size_type Face, texture2d::size_type Level, genType const & Texel)
+ {
+ GLI_ASSERT(Layer == 0 && Face == 0);
+ Texture.store<genType>(TexelCoord, Level, Texel);
+ }
+ };
+
+ template <typename genType>
+ struct accessFunc<texture2d_array, genType>
+ {
+ static genType load(texture2d_array const & Texture, texture2d_array::extent_type const & TexelCoord, texture2d_array::size_type Layer, texture2d_array::size_type Face, texture2d_array::size_type Level)
+ {
+ GLI_ASSERT(Face == 0);
+ return Texture.load<genType>(TexelCoord, Layer, Level);
+ }
+
+ static void store(texture2d_array & Texture, texture2d_array::extent_type const & TexelCoord, texture2d_array::size_type Layer, texture2d_array::size_type Face, texture2d_array::size_type Level, genType const & Texel)
+ {
+ GLI_ASSERT(Face == 0);
+ Texture.store<genType>(TexelCoord, Layer, Level, Texel);
+ }
+ };
+
+ template <typename genType>
+ struct accessFunc<texture3d, genType>
+ {
+ static genType load(texture3d const & Texture, texture3d::extent_type const & TexelCoord, texture3d::size_type Layer, texture3d::size_type Face, texture3d::size_type Level)
+ {
+ GLI_ASSERT(Layer == 0 && Face == 0);
+ return Texture.load<genType>(TexelCoord, Level);
+ }
+
+ static void store(texture3d & Texture, texture3d::extent_type const & TexelCoord, texture3d::size_type Layer, texture3d::size_type Face, texture3d::size_type Level, genType const & Texel)
+ {
+ GLI_ASSERT(Layer == 0 && Face == 0);
+ Texture.store<genType>(TexelCoord, Level, Texel);
+ }
+ };
+
+ template <typename genType>
+ struct accessFunc<texture_cube, genType>
+ {
+ static genType load(texture_cube const& Texture, texture_cube::extent_type const& TexelCoord, texture_cube::size_type Layer, texture_cube::size_type Face, texture_cube::size_type Level)
+ {
+ GLI_ASSERT(Layer == 0);
+ return Texture.load<genType>(TexelCoord, Face, Level);
+ }
+
+ static void store(texture_cube& Texture, texture_cube::extent_type const& TexelCoord, texture_cube::size_type Layer, texture_cube::size_type Face, texture_cube::size_type Level, genType const& Texel)
+ {
+ GLI_ASSERT(Layer == 0);
+ Texture.store<genType>(TexelCoord, Face, Level, Texel);
+ }
+ };
+
+ template <typename genType>
+ struct accessFunc<texture_cube_array, genType>
+ {
+ static genType load(texture_cube_array const & Texture, texture_cube_array::extent_type const & TexelCoord, texture_cube_array::size_type Layer, texture_cube_array::size_type Face, texture_cube_array::size_type Level)
+ {
+ return Texture.load<genType>(TexelCoord, Layer, Face, Level);
+ }
+
+ static void store(texture_cube_array & Texture, texture_cube_array::extent_type const & TexelCoord, texture_cube_array::size_type Layer, texture_cube_array::size_type Face, texture_cube_array::size_type Level, genType const & Texel)
+ {
+ Texture.store<genType>(TexelCoord, Layer, Face, Level, Texel);
+ }
+ };
+
+ // convertFunc class
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P, convertMode mode = CONVERT_MODE_CAST, bool isSamplerFloat = false>
+ struct convertFunc
+ {
+ typedef accessFunc<textureType, vec<L, T, P> > access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ return make_vec4<retType, P>(vec<L, retType, P>(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ access::store(Texture, TexelCoord, Layer, Face, Level, vec<L, T, P>(Texel));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P, bool isSamplerFloat>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_DEFAULT, isSamplerFloat>
+ {
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ return vec<4, retType, P>(0, 0, 0, 1);
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {}
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_NORM, true>
+ {
+ typedef accessFunc<textureType, vec<L, T, P> > access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_NORM requires a float sampler");
+ return make_vec4<retType, P>(compNormalize<retType>(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_NORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, compScale<T>(vec<L, retType, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_SRGB, true>
+ {
+ typedef accessFunc<textureType, vec<L, T, P> > access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_SRGB requires a float sampler");
+ return make_vec4<retType, P>(convertSRGBToLinear(compNormalize<retType>(access::load(Texture, TexelCoord, Layer, Face, Level))));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_SRGB requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, gli::compScale<T>(convertLinearToSRGB(vec<L, retType, P>(Texel))));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB9E5, true>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB9E5 requires a float sampler");
+ return vec<4, retType, P>(unpackF3x9_E1x5(access::load(Texture, TexelCoord, Layer, Face, Level)), static_cast<retType>(1));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB9E5 requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packF3x9_E1x5(vec<3, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RG11B10F, true>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RG11B10F requires a float sampler");
+ return vec<4, retType, P>(unpackF2x11_1x10(access::load(Texture, TexelCoord, Layer, Face, Level)), static_cast<retType>(1));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RG11B10F requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packF2x11_1x10(vec<3, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_HALF, true>
+ {
+ typedef accessFunc<textureType, vec<L, uint16, P> > access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_HALF requires a float sampler");
+ return make_vec4<retType, P>(vec<L, retType, P>(unpackHalf(access::load(Texture, TexelCoord, Layer, Face, Level))));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_HALF requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packHalf(vec<L, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_44UNORM, true>
+ {
+ typedef accessFunc<textureType, uint8> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_44UNORM requires a float sampler");
+ return vec<4, retType, P>(vec<2, retType, P>(unpackUnorm2x4(access::load(Texture, TexelCoord, Layer, Face, Level))), static_cast<retType>(0), static_cast<retType>(1));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_44UNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm2x4(vec<2, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_4444UNORM, true>
+ {
+ typedef accessFunc<textureType, uint16> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_4444UNORM requires a float sampler");
+ return vec<4, retType, P>(unpackUnorm4x4(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_4444UNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm4x4(vec<4, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_565UNORM, true>
+ {
+ typedef accessFunc<textureType, uint16> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_565UNORM requires a float sampler");
+ return vec<4, retType, P>(unpackUnorm1x5_1x6_1x5(access::load(Texture, TexelCoord, Layer, Face, Level)), static_cast<retType>(1));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_565UNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm1x5_1x6_1x5(vec<3, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_5551UNORM, true>
+ {
+ typedef accessFunc<textureType, uint16> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_5551UNORM requires a float sampler");
+ return vec<4, retType, P>(unpackUnorm3x5_1x1(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_5551UNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm3x5_1x1(vec<4, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_332UNORM, true>
+ {
+ typedef accessFunc<textureType, uint8> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_332UNORM requires a float sampler");
+ return vec<4, retType, P>(unpackUnorm2x3_1x2(access::load(Texture, TexelCoord, Layer, Face, Level)), static_cast<retType>(1));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_332UNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm2x3_1x2(vec<3, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB10A2UNORM, true>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2UNORM requires a float sampler");
+ return vec<4, retType, P>(unpackUnorm3x10_1x2(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2UNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm3x10_1x2(vec<4, float, P>(Texel)));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB10A2SNORM, true>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2SNORM requires a float sampler");
+ return vec<4, retType, P>(unpackSnorm3x10_1x2(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2SNORM requires a float sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packSnorm3x10_1x2(Texel));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB10A2USCALE, true>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2USCALE requires a float sampler");
+ glm::detail::u10u10u10u2 Unpack;
+ Unpack.pack = access::load(Texture, TexelCoord, Layer, Face, Level);
+ return vec<4, retType, P>(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w);
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2USCALE requires a float sampler");
+ glm::detail::u10u10u10u2 Unpack;
+ Unpack.data.x = static_cast<uint>(Texel.x);
+ Unpack.data.y = static_cast<uint>(Texel.y);
+ Unpack.data.z = static_cast<uint>(Texel.z);
+ Unpack.data.w = static_cast<uint>(Texel.w);
+ access::store(Texture, TexelCoord, Layer, Face, Level, Unpack.pack);
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB10A2SSCALE, true>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2SSCALE requires a float sampler");
+ glm::detail::i10i10i10i2 Unpack;
+ Unpack.pack = access::load(Texture, TexelCoord, Layer, Face, Level);
+ return vec<4, retType, P>(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w);
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_iec559, "CONVERT_MODE_RGB10A2SSCALE requires a float sampler");
+ glm::detail::i10i10i10i2 Unpack;
+ Unpack.data.x = static_cast<int>(Texel.x);
+ Unpack.data.y = static_cast<int>(Texel.y);
+ Unpack.data.z = static_cast<int>(Texel.z);
+ Unpack.data.w = static_cast<int>(Texel.w);
+ access::store(Texture, TexelCoord, Layer, Face, Level, Unpack.pack);
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB10A2UINT, false>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_integer, "CONVERT_MODE_RGB10A2UINT requires an integer sampler");
+ return vec<4, retType, P>(unpackU3x10_1x2(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_integer, "CONVERT_MODE_RGB10A2UINT requires an integer sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packU3x10_1x2(Texel));
+ }
+ };
+
+ template <typename textureType, typename retType, length_t L, typename T, precision P>
+ struct convertFunc<textureType, retType, L, T, P, CONVERT_MODE_RGB10A2SINT, false>
+ {
+ typedef accessFunc<textureType, uint32> access;
+
+ static vec<4, retType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ static_assert(std::numeric_limits<retType>::is_integer, "CONVERT_MODE_RGB10A2SINT requires an integer sampler");
+ return vec<4, retType, P>(unpackI3x10_1x2(access::load(Texture, TexelCoord, Layer, Face, Level)));
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, retType, P> const & Texel)
+ {
+ static_assert(std::numeric_limits<retType>::is_integer, "CONVERT_MODE_RGB10A2SINT requires an integer sampler");
+ access::store(Texture, TexelCoord, Layer, Face, Level, packI3x10_1x2(Texel));
+ }
+ };
+
+ template <typename textureType, typename samplerValType, precision P>
+ struct convert
+ {
+ typedef vec<4, samplerValType, P>(*fetchFunc)(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level);
+ typedef void(*writeFunc)(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, samplerValType, P> const & Texel);
+
+ template <length_t L, typename T, convertMode mode>
+ struct conv
+ {
+ static vec<4, samplerValType, P> fetch(textureType const & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level)
+ {
+ return convertFunc<textureType, samplerValType, L, T, P, mode, std::numeric_limits<samplerValType>::is_iec559>::fetch(Texture, TexelCoord, Layer, Face, Level);
+ }
+
+ static void write(textureType & Texture, typename textureType::extent_type const & TexelCoord, typename textureType::size_type Layer, typename textureType::size_type Face, typename textureType::size_type Level, vec<4, samplerValType, P> const & Texel)
+ {
+ convertFunc<textureType, samplerValType, L, T, P, mode, std::numeric_limits<samplerValType>::is_iec559>::write(Texture, TexelCoord, Layer, Face, Level, Texel);
+ }
+ };
+
+ struct func
+ {
+ fetchFunc Fetch;
+ writeFunc Write;
+ };
+
+ static func call(format Format)
+ {
+ static func Table[] =
+ {
+ {conv<2, u8, CONVERT_MODE_44UNORM>::fetch, conv<2, u8, CONVERT_MODE_44UNORM>::write}, // FORMAT_RG4_UNORM
+ {conv<4, u8, CONVERT_MODE_4444UNORM>::fetch, conv<4, u8, CONVERT_MODE_4444UNORM>::write}, // FORMAT_RGBA4_UNORM
+ {conv<4, u8, CONVERT_MODE_4444UNORM>::fetch, conv<4, u8, CONVERT_MODE_4444UNORM>::write}, // FORMAT_BGRA4_UNORM
+ {conv<3, u8, CONVERT_MODE_565UNORM>::fetch, conv<3, u8, CONVERT_MODE_565UNORM>::write}, // FORMAT_R5G6B5_UNORM
+ {conv<3, u8, CONVERT_MODE_565UNORM>::fetch, conv<3, u8, CONVERT_MODE_565UNORM>::write}, // FORMAT_B5G6R5_UNORM
+ {conv<4, u8, CONVERT_MODE_5551UNORM>::fetch, conv<4, u8, CONVERT_MODE_5551UNORM>::write}, // FORMAT_RGB5A1_UNORM
+ {conv<4, u8, CONVERT_MODE_5551UNORM>::fetch, conv<4, u8, CONVERT_MODE_5551UNORM>::write}, // FORMAT_BGR5A1_UNORM
+ {conv<4, u8, CONVERT_MODE_5551UNORM>::fetch, conv<4, u8, CONVERT_MODE_5551UNORM>::write}, // FORMAT_A1RGB5_UNORM
+
+ {conv<1, u8, CONVERT_MODE_NORM>::fetch, conv<1, u8, CONVERT_MODE_NORM>::write}, // FORMAT_R8_UNORM
+ {conv<1, i8, CONVERT_MODE_NORM>::fetch, conv<1, i8, CONVERT_MODE_NORM>::write}, // FORMAT_R8_SNORM
+ {conv<1, u8, CONVERT_MODE_CAST>::fetch, conv<1, u8, CONVERT_MODE_CAST>::write}, // FORMAT_R8_USCALED
+ {conv<1, i8, CONVERT_MODE_CAST>::fetch, conv<1, i8, CONVERT_MODE_CAST>::write}, // FORMAT_R8_SSCALED
+ {conv<1, u8, CONVERT_MODE_CAST>::fetch, conv<1, u8, CONVERT_MODE_CAST>::write}, // FORMAT_R8_UINT
+ {conv<1, i8, CONVERT_MODE_CAST>::fetch, conv<1, i8, CONVERT_MODE_CAST>::write}, // FORMAT_R8_SINT
+ {conv<1, u8, CONVERT_MODE_SRGB>::fetch, conv<1, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_R8_SRGB
+
+ {conv<2, u8, CONVERT_MODE_NORM>::fetch, conv<2, u8, CONVERT_MODE_NORM>::write}, // FORMAT_RG8_UNORM
+ {conv<2, i8, CONVERT_MODE_NORM>::fetch, conv<2, i8, CONVERT_MODE_NORM>::write}, // FORMAT_RG8_SNORM
+ {conv<2, u8, CONVERT_MODE_CAST>::fetch, conv<2, u8, CONVERT_MODE_CAST>::write}, // FORMAT_RG8_USCALED
+ {conv<2, i8, CONVERT_MODE_CAST>::fetch, conv<2, i8, CONVERT_MODE_CAST>::write}, // FORMAT_RG8_SSCALED
+ {conv<2, u8, CONVERT_MODE_CAST>::fetch, conv<2, u8, CONVERT_MODE_CAST>::write}, // FORMAT_RG8_UINT
+ {conv<2, i8, CONVERT_MODE_CAST>::fetch, conv<2, i8, CONVERT_MODE_CAST>::write}, // FORMAT_RG8_SINT
+ {conv<2, u8, CONVERT_MODE_SRGB>::fetch, conv<2, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_RG8_SRGB
+
+ {conv<3, u8, CONVERT_MODE_NORM>::fetch, conv<3, u8, CONVERT_MODE_NORM>::write}, // FORMAT_RGB8_UNORM
+ {conv<3, i8, CONVERT_MODE_NORM>::fetch, conv<3, i8, CONVERT_MODE_NORM>::write}, // FORMAT_RGB8_SNORM
+ {conv<3, u8, CONVERT_MODE_CAST>::fetch, conv<3, u8, CONVERT_MODE_CAST>::write}, // FORMAT_RGB8_USCALED
+ {conv<3, i8, CONVERT_MODE_CAST>::fetch, conv<3, i8, CONVERT_MODE_CAST>::write}, // FORMAT_RGB8_SSCALED
+ {conv<3, u8, CONVERT_MODE_CAST>::fetch, conv<3, u8, CONVERT_MODE_CAST>::write}, // FORMAT_RGB8_UINT
+ {conv<3, i8, CONVERT_MODE_CAST>::fetch, conv<3, i8, CONVERT_MODE_CAST>::write}, // FORMAT_RGB8_SINT
+ {conv<3, u8, CONVERT_MODE_SRGB>::fetch, conv<3, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_RGB8_SRGB
+
+ {conv<3, u8, CONVERT_MODE_NORM>::fetch, conv<3, u8, CONVERT_MODE_NORM>::write}, // FORMAT_BGR8_UNORM
+ {conv<3, i8, CONVERT_MODE_NORM>::fetch, conv<3, i8, CONVERT_MODE_NORM>::write}, // FORMAT_BGR8_SNORM
+ {conv<3, u8, CONVERT_MODE_CAST>::fetch, conv<3, u8, CONVERT_MODE_CAST>::write}, // FORMAT_BGR8_USCALED
+ {conv<3, i8, CONVERT_MODE_CAST>::fetch, conv<3, i8, CONVERT_MODE_CAST>::write}, // FORMAT_BGR8_SSCALED
+ {conv<3, u32, CONVERT_MODE_CAST>::fetch, conv<3, u32, CONVERT_MODE_CAST>::write}, // FORMAT_BGR8_UINT
+ {conv<3, i32, CONVERT_MODE_CAST>::fetch, conv<3, i32, CONVERT_MODE_CAST>::write}, // FORMAT_BGR8_SINT
+ {conv<3, u8, CONVERT_MODE_SRGB>::fetch, conv<3, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_BGR8_SRGB
+
+ {conv<4, u8, CONVERT_MODE_NORM>::fetch, conv<4, u8, CONVERT_MODE_NORM>::write}, // FORMAT_RGBA8_UNORM
+ {conv<4, i8, CONVERT_MODE_NORM>::fetch, conv<4, i8, CONVERT_MODE_NORM>::write}, // FORMAT_RGBA8_SNORM
+ {conv<4, u8, CONVERT_MODE_CAST>::fetch, conv<4, u8, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA8_USCALED
+ {conv<4, i8, CONVERT_MODE_CAST>::fetch, conv<4, i8, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA8_SSCALED
+ {conv<4, u8, CONVERT_MODE_CAST>::fetch, conv<4, u8, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA8_UINT
+ {conv<4, i8, CONVERT_MODE_CAST>::fetch, conv<4, i8, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA8_SINT
+ {conv<4, u8, CONVERT_MODE_SRGB>::fetch, conv<4, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_RGBA8_SRGB
+
+ {conv<4, u8, CONVERT_MODE_NORM>::fetch, conv<4, u8, CONVERT_MODE_NORM>::write}, // FORMAT_BGRA8_UNORM
+ {conv<4, i8, CONVERT_MODE_NORM>::fetch, conv<4, i8, CONVERT_MODE_NORM>::write}, // FORMAT_BGRA8_SNORM
+ {conv<4, u8, CONVERT_MODE_CAST>::fetch, conv<4, u8, CONVERT_MODE_CAST>::write}, // FORMAT_BGRA8_USCALED
+ {conv<4, i8, CONVERT_MODE_CAST>::fetch, conv<4, i8, CONVERT_MODE_CAST>::write}, // FORMAT_BGRA8_SSCALED
+ {conv<4, u8, CONVERT_MODE_CAST>::fetch, conv<4, u8, CONVERT_MODE_CAST>::write}, // FORMAT_BGRA8_UINT
+ {conv<4, i8, CONVERT_MODE_CAST>::fetch, conv<4, i8, CONVERT_MODE_CAST>::write}, // FORMAT_BGRA8_SINT
+ {conv<4, u8, CONVERT_MODE_SRGB>::fetch, conv<4, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_BGRA8_SRGB
+
+ {conv<4, u8, CONVERT_MODE_NORM>::fetch, conv<4, u8, CONVERT_MODE_NORM>::write}, // FORMAT_ABGR8_UNORM
+ {conv<4, i8, CONVERT_MODE_NORM>::fetch, conv<4, i8, CONVERT_MODE_NORM>::write}, // FORMAT_ABGR8_SNORM
+ {conv<4, u8, CONVERT_MODE_CAST>::fetch, conv<4, u8, CONVERT_MODE_CAST>::write}, // FORMAT_ABGR8_USCALED
+ {conv<4, i8, CONVERT_MODE_CAST>::fetch, conv<4, i8, CONVERT_MODE_CAST>::write}, // FORMAT_ABGR8_SSCALED
+ {conv<4, u8, CONVERT_MODE_CAST>::fetch, conv<4, u8, CONVERT_MODE_CAST>::write}, // FORMAT_ABGR8_UINT
+ {conv<4, i8, CONVERT_MODE_CAST>::fetch, conv<4, i8, CONVERT_MODE_CAST>::write}, // FORMAT_ABGR8_SINT
+ {conv<4, u8, CONVERT_MODE_SRGB>::fetch, conv<4, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_ABGR8_SRGB
+
+ {conv<4, u8, CONVERT_MODE_RGB10A2UNORM>::fetch, conv<4, u8, CONVERT_MODE_RGB10A2UNORM>::write}, // FORMAT_RGB10A2_UNORM
+ {conv<4, i8, CONVERT_MODE_RGB10A2SNORM>::fetch, conv<4, i8, CONVERT_MODE_RGB10A2SNORM>::write}, // FORMAT_RGB10A2_SNORM
+ {conv<4, u8, CONVERT_MODE_RGB10A2USCALE>::fetch, conv<4, u8, CONVERT_MODE_RGB10A2USCALE>::write}, // FORMAT_RGB10A2_USCALED
+ {conv<4, i8, CONVERT_MODE_RGB10A2SSCALE>::fetch, conv<4, i8, CONVERT_MODE_RGB10A2SSCALE>::write}, // FORMAT_RGB10A2_SSCALED
+ {conv<4, u8, CONVERT_MODE_RGB10A2UINT>::fetch, conv<4, u8, CONVERT_MODE_RGB10A2UINT>::write}, // FORMAT_RGB10A2_UINT
+ {conv<4, i8, CONVERT_MODE_RGB10A2SINT>::fetch, conv<4, i8, CONVERT_MODE_RGB10A2SINT>::write}, // FORMAT_RGB10A2_SINT
+
+ {conv<4, u8, CONVERT_MODE_RGB10A2UNORM>::fetch, conv<4, u8, CONVERT_MODE_RGB10A2UNORM>::write}, // FORMAT_BGR10A2_UNORM
+ {conv<4, i8, CONVERT_MODE_RGB10A2SNORM>::fetch, conv<4, i8, CONVERT_MODE_RGB10A2SNORM>::write}, // FORMAT_BGR10A2_SNORM
+ {conv<4, u8, CONVERT_MODE_RGB10A2USCALE>::fetch, conv<4, u8, CONVERT_MODE_RGB10A2USCALE>::write}, // FORMAT_BGR10A2_USCALED
+ {conv<4, i8, CONVERT_MODE_RGB10A2SSCALE>::fetch, conv<4, i8, CONVERT_MODE_RGB10A2SSCALE>::write}, // FORMAT_BGR10A2_SSCALED
+ {conv<4, u8, CONVERT_MODE_RGB10A2UINT>::fetch, conv<4, u8, CONVERT_MODE_RGB10A2UINT>::write}, // FORMAT_BGR10A2_UINT
+ {conv<4, i8, CONVERT_MODE_RGB10A2SINT>::fetch, conv<4, i8, CONVERT_MODE_RGB10A2SINT>::write}, // FORMAT_BGR10A2_SINT
+
+ {conv<1, u16, CONVERT_MODE_NORM>::fetch, conv<1, u16, CONVERT_MODE_NORM>::write}, // FORMAT_R16_UNORM_PACK16
+ {conv<1, i16, CONVERT_MODE_NORM>::fetch, conv<1, i16, CONVERT_MODE_NORM>::write}, // FORMAT_R16_SNORM_PACK16
+ {conv<1, u16, CONVERT_MODE_CAST>::fetch, conv<1, u16, CONVERT_MODE_CAST>::write}, // FORMAT_R16_USCALED_PACK16
+ {conv<1, i16, CONVERT_MODE_CAST>::fetch, conv<1, i16, CONVERT_MODE_CAST>::write}, // FORMAT_R16_SSCALED_PACK16
+ {conv<1, u16, CONVERT_MODE_CAST>::fetch, conv<1, u16, CONVERT_MODE_CAST>::write}, // FORMAT_R16_UINT_PACK16
+ {conv<1, i16, CONVERT_MODE_CAST>::fetch, conv<1, i16, CONVERT_MODE_CAST>::write}, // FORMAT_R16_SINT_PACK16
+ {conv<1, u16, CONVERT_MODE_HALF>::fetch, conv<1, u16, CONVERT_MODE_HALF>::write}, // FORMAT_R16_SFLOAT_PACK16
+
+ {conv<2, u16, CONVERT_MODE_NORM>::fetch, conv<2, u16, CONVERT_MODE_NORM>::write}, // FORMAT_RG16_UNORM_PACK16
+ {conv<2, i16, CONVERT_MODE_NORM>::fetch, conv<2, i16, CONVERT_MODE_NORM>::write}, // FORMAT_RG16_SNORM_PACK16
+ {conv<2, u16, CONVERT_MODE_CAST>::fetch, conv<2, u16, CONVERT_MODE_CAST>::write}, // FORMAT_RG16_USCALED_PACK16
+ {conv<2, i16, CONVERT_MODE_CAST>::fetch, conv<2, i16, CONVERT_MODE_CAST>::write}, // FORMAT_RG16_SSCALED_PACK16
+ {conv<2, u16, CONVERT_MODE_CAST>::fetch, conv<2, u16, CONVERT_MODE_CAST>::write}, // FORMAT_RG16_UINT_PACK16
+ {conv<2, i16, CONVERT_MODE_CAST>::fetch, conv<2, i16, CONVERT_MODE_CAST>::write}, // FORMAT_RG16_SINT_PACK16
+ {conv<2, u16, CONVERT_MODE_HALF>::fetch, conv<2, u16, CONVERT_MODE_HALF>::write}, // FORMAT_RG16_SFLOAT_PACK16
+
+ {conv<3, u16, CONVERT_MODE_NORM>::fetch, conv<3, u16, CONVERT_MODE_NORM>::write}, // FORMAT_RGB16_UNORM_PACK16
+ {conv<3, i16, CONVERT_MODE_NORM>::fetch, conv<3, i16, CONVERT_MODE_NORM>::write}, // FORMAT_RGB16_SNORM_PACK16
+ {conv<3, u16, CONVERT_MODE_CAST>::fetch, conv<3, u16, CONVERT_MODE_CAST>::write}, // FORMAT_RGB16_USCALED_PACK16
+ {conv<3, i16, CONVERT_MODE_CAST>::fetch, conv<3, i16, CONVERT_MODE_CAST>::write}, // FORMAT_RGB16_SSCALED_PACK16
+ {conv<3, u16, CONVERT_MODE_CAST>::fetch, conv<3, u16, CONVERT_MODE_CAST>::write}, // FORMAT_RGB16_UINT_PACK16
+ {conv<3, i16, CONVERT_MODE_CAST>::fetch, conv<3, i16, CONVERT_MODE_CAST>::write}, // FORMAT_RGB16_SINT_PACK16
+ {conv<3, u16, CONVERT_MODE_HALF>::fetch, conv<3, u16, CONVERT_MODE_HALF>::write}, // FORMAT_RGB16_SFLOAT_PACK16
+
+ {conv<4, u16, CONVERT_MODE_NORM>::fetch, conv<4, u16, CONVERT_MODE_NORM>::write}, // FORMAT_RGBA16_UNORM_PACK16
+ {conv<4, i16, CONVERT_MODE_NORM>::fetch, conv<4, i16, CONVERT_MODE_NORM>::write}, // FORMAT_RGBA16_SNORM_PACK16
+ {conv<4, u16, CONVERT_MODE_CAST>::fetch, conv<4, u16, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA16_USCALED_PACK16
+ {conv<4, i16, CONVERT_MODE_CAST>::fetch, conv<4, i16, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA16_SSCALED_PACK16
+ {conv<4, u16, CONVERT_MODE_CAST>::fetch, conv<4, u16, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA16_UINT_PACK16
+ {conv<4, i16, CONVERT_MODE_CAST>::fetch, conv<4, i16, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA16_SINT_PACK16
+ {conv<4, u16, CONVERT_MODE_HALF>::fetch, conv<4, u16, CONVERT_MODE_HALF>::write}, // FORMAT_RGBA16_SFLOAT_PACK16
+
+ {conv<1, u32, CONVERT_MODE_CAST>::fetch, conv<1, u32, CONVERT_MODE_CAST>::write}, // FORMAT_R32_UINT_PACK32
+ {conv<1, i32, CONVERT_MODE_CAST>::fetch, conv<1, i32, CONVERT_MODE_CAST>::write}, // FORMAT_R32_SINT_PACK32
+ {conv<1, f32, CONVERT_MODE_CAST>::fetch, conv<1, f32, CONVERT_MODE_CAST>::write}, // FORMAT_R32_SFLOAT_PACK32
+
+ {conv<2, u32, CONVERT_MODE_CAST>::fetch, conv<2, u32, CONVERT_MODE_CAST>::write}, // FORMAT_RG32_UINT_PACK32
+ {conv<2, i32, CONVERT_MODE_CAST>::fetch, conv<2, i32, CONVERT_MODE_CAST>::write}, // FORMAT_RG32_SINT_PACK32
+ {conv<2, f32, CONVERT_MODE_CAST>::fetch, conv<2, f32, CONVERT_MODE_CAST>::write}, // FORMAT_RG32_SFLOAT_PACK32
+
+ {conv<3, u32, CONVERT_MODE_CAST>::fetch, conv<3, u32, CONVERT_MODE_CAST>::write}, // FORMAT_RGB32_UINT_PACK32
+ {conv<3, i32, CONVERT_MODE_CAST>::fetch, conv<3, i32, CONVERT_MODE_CAST>::write}, // FORMAT_RGB32_SINT_PACK32
+ {conv<3, f32, CONVERT_MODE_CAST>::fetch, conv<3, f32, CONVERT_MODE_CAST>::write}, // FORMAT_RGB32_SFLOAT_PACK32
+
+ {conv<4, u32, CONVERT_MODE_CAST>::fetch, conv<4, u32, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA32_UINT_PACK32
+ {conv<4, i32, CONVERT_MODE_CAST>::fetch, conv<4, i32, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA32_SINT_PACK32
+ {conv<4, f32, CONVERT_MODE_CAST>::fetch, conv<4, f32, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA32_SFLOAT_PACK32
+
+ {conv<1, u64, CONVERT_MODE_CAST>::fetch, conv<1, u64, CONVERT_MODE_CAST>::write}, // FORMAT_R64_UINT_PACK64
+ {conv<1, i64, CONVERT_MODE_CAST>::fetch, conv<1, i64, CONVERT_MODE_CAST>::write}, // FORMAT_R64_SINT_PACK64
+ {conv<1, f64, CONVERT_MODE_CAST>::fetch, conv<1, f64, CONVERT_MODE_CAST>::write}, // FORMAT_R64_SFLOAT_PACK64
+
+ {conv<2, u64, CONVERT_MODE_CAST>::fetch, conv<2, u64, CONVERT_MODE_CAST>::write}, // FORMAT_RG64_UINT_PACK64
+ {conv<2, i64, CONVERT_MODE_CAST>::fetch, conv<2, i64, CONVERT_MODE_CAST>::write}, // FORMAT_RG64_SINT_PACK64
+ {conv<2, f64, CONVERT_MODE_CAST>::fetch, conv<2, f64, CONVERT_MODE_CAST>::write}, // FORMAT_RG64_SFLOAT_PACK64
+
+ {conv<3, u64, CONVERT_MODE_CAST>::fetch, conv<3, u64, CONVERT_MODE_CAST>::write}, // FORMAT_RGB64_UINT_PACK64
+ {conv<3, i64, CONVERT_MODE_CAST>::fetch, conv<3, i64, CONVERT_MODE_CAST>::write}, // FORMAT_RGB64_SINT_PACK64
+ {conv<3, f64, CONVERT_MODE_CAST>::fetch, conv<3, f64, CONVERT_MODE_CAST>::write}, // FORMAT_RGB64_SFLOAT_PACK64
+
+ {conv<4, u64, CONVERT_MODE_CAST>::fetch, conv<4, u64, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA64_UINT_PACK64
+ {conv<4, i64, CONVERT_MODE_CAST>::fetch, conv<4, i64, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA64_SINT_PACK64
+ {conv<4, f64, CONVERT_MODE_CAST>::fetch, conv<4, f64, CONVERT_MODE_CAST>::write}, // FORMAT_RGBA64_SFLOAT_PACK64
+
+ {conv<1, u32, CONVERT_MODE_RG11B10F>::fetch, conv<1, u32, CONVERT_MODE_RG11B10F>::write}, // FORMAT_RG11B10_UFLOAT
+ {conv<1, u32, CONVERT_MODE_RGB9E5>::fetch, conv<1, u32, CONVERT_MODE_RGB9E5>::write}, // FORMAT_RGB9E5_UFLOAT
+
+ {conv<1, u16, CONVERT_MODE_DEFAULT>::fetch, conv<1, u16, CONVERT_MODE_DEFAULT>::write}, // FORMAT_D16_UNORM_PACK16
+ {conv<1, u32, CONVERT_MODE_DEFAULT>::fetch, conv<1, u32, CONVERT_MODE_DEFAULT>::write}, // FORMAT_D24_UNORM
+ {conv<1, f32, CONVERT_MODE_DEFAULT>::fetch, conv<1, f32, CONVERT_MODE_DEFAULT>::write}, // FORMAT_D32_SFLOAT_PACK32
+ {conv<1, u8, CONVERT_MODE_DEFAULT>::fetch, conv<1, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_S8_UINT_PACK8
+ {conv<2, u16, CONVERT_MODE_DEFAULT>::fetch, conv<2, u16, CONVERT_MODE_DEFAULT>::write}, // FORMAT_D16_UNORM_S8_UINT_PACK32
+ {conv<2, u32, CONVERT_MODE_DEFAULT>::fetch, conv<2, u32, CONVERT_MODE_DEFAULT>::write}, // FORMAT_D24_UNORM_S8_UINT_PACK32
+ {conv<2, u32, CONVERT_MODE_DEFAULT>::fetch, conv<2, u32, CONVERT_MODE_DEFAULT>::write}, // FORMAT_D32_SFLOAT_S8_UINT_PACK64
+
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_DXT1_UNORM_BLOCK8
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_DXT1_SRGB_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_DXT1_UNORM_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_DXT1_SRGB_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_DXT3_UNORM_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_DXT3_SRGB_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_DXT5_UNORM_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_DXT5_SRGB_BLOCK16
+ {conv<1, u8, CONVERT_MODE_DEFAULT>::fetch, conv<1, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_R_ATI1N_UNORM_BLOCK8
+ {conv<1, u8, CONVERT_MODE_DEFAULT>::fetch, conv<1, i8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_R_ATI1N_SNORM_BLOCK8
+ {conv<2, u8, CONVERT_MODE_DEFAULT>::fetch, conv<2, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RG_ATI2N_UNORM_BLOCK16
+ {conv<2, u8, CONVERT_MODE_DEFAULT>::fetch, conv<2, i8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RG_ATI2N_SNORM_BLOCK16
+ {conv<3, f32, CONVERT_MODE_DEFAULT>::fetch, conv<3, f32, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_BP_UFLOAT_BLOCK16
+ {conv<3, f32, CONVERT_MODE_DEFAULT>::fetch, conv<3, f32, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_BP_SFLOAT_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_BP_UNORM_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_BP_SRGB_BLOCK16
+
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_ETC2_UNORM_BLOCK8
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_ETC2_SRGB_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_ETC2_A1_UNORM_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_ETC2_A1_SRGB_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_ETC2_UNORM_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_ETC2_SRGB_BLOCK16
+ {conv<1, u8, CONVERT_MODE_DEFAULT>::fetch, conv<1, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_R_EAC_UNORM_BLOCK8
+ {conv<1, u8, CONVERT_MODE_DEFAULT>::fetch, conv<1, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_R_EAC_SNORM_BLOCK8
+ {conv<2, u8, CONVERT_MODE_DEFAULT>::fetch, conv<2, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RG_EAC_UNORM_BLOCK16
+ {conv<2, u8, CONVERT_MODE_DEFAULT>::fetch, conv<2, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RG_EAC_SNORM_BLOCK16
+
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_4x4_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_4x4_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_5x4_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_5x4_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_5x5_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_5x5_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_6x5_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_6x5_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_6x6_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_6x6_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_8x5_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_8x5_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_8x6_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_8x6_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_8x8_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_8x8_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x5_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x5_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x6_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x6_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x8_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x8_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x10_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_10x10_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_12x10_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_12x10_SRGB
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_12x12_UNORM
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_ASTC_12x12_SRGB
+
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC2_4X4_UNORM_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC2_4X4_SRGB_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC2_8X4_UNORM_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_PVRTC2_8X4_SRGB_BLOCK8
+
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_ETC_UNORM_BLOCK8
+ {conv<3, u8, CONVERT_MODE_DEFAULT>::fetch, conv<3, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGB_ATC_UNORM_BLOCK8
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_ATCA_UNORM_BLOCK16
+ {conv<4, u8, CONVERT_MODE_DEFAULT>::fetch, conv<4, u8, CONVERT_MODE_DEFAULT>::write}, // FORMAT_RGBA_ATCI_UNORM_BLOCK16
+
+ {conv<1, u8, CONVERT_MODE_NORM>::fetch, conv<1, u8, CONVERT_MODE_NORM>::write}, // FORMAT_L8_UNORM_PACK8
+ {conv<1, u8, CONVERT_MODE_NORM>::fetch, conv<1, u8, CONVERT_MODE_NORM>::write}, // FORMAT_A8_UNORM_PACK8
+ {conv<2, u8, CONVERT_MODE_NORM>::fetch, conv<2, u8, CONVERT_MODE_NORM>::write}, // FORMAT_LA8_UNORM_PACK8
+ {conv<1, u16, CONVERT_MODE_NORM>::fetch, conv<1, u16, CONVERT_MODE_NORM>::write}, // FORMAT_L16_UNORM_PACK16
+ {conv<1, u16, CONVERT_MODE_NORM>::fetch, conv<1, u16, CONVERT_MODE_NORM>::write}, // FORMAT_A16_UNORM_PACK16
+ {conv<2, u16, CONVERT_MODE_NORM>::fetch, conv<2, u16, CONVERT_MODE_NORM>::write}, // FORMAT_LA16_UNORM_PACK16
+
+ {conv<4, u8, CONVERT_MODE_NORM>::fetch, conv<4, u8, CONVERT_MODE_NORM>::write}, // FORMAT_BGRX8_UNORM
+ {conv<4, u8, CONVERT_MODE_SRGB>::fetch, conv<4, u8, CONVERT_MODE_SRGB>::write}, // FORMAT_BGRX8_SRGB
+
+ {conv<3, u8, CONVERT_MODE_332UNORM>::fetch, conv<3, u8, CONVERT_MODE_332UNORM>::write} // FORMAT_RG3B2_UNORM
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == FORMAT_COUNT, "Texel functions need to be updated");
+
+ return Table[Format - FORMAT_FIRST];
+ }
+ };
+}//namespace detail
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/coord.hpp b/3rdparty/glm/test/external/gli/core/coord.hpp
new file mode 100644
index 00000000000..e78081b3167
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/coord.hpp
@@ -0,0 +1,87 @@
+#pragma once
+
+#include "../type.hpp"
+
+namespace gli{
+namespace detail
+{
+ template <length_t L, typename T, precision P>
+ inline vec<L, bool, P> in_interval(vec<L, T, P> const& Value, vec<L, T, P> const& Min, vec<L, T, P> const& Max)
+ {
+ return greaterThanEqual(Value, Min) && lessThanEqual(Value, Max);
+ }
+
+ template <typename extent_type, typename normalized_type>
+ struct coord_nearest
+ {
+ extent_type Texel;
+ typename extent_type::bool_type UseTexel;
+ };
+
+ template <typename extent_type, typename normalized_type>
+ inline coord_nearest<extent_type, normalized_type> make_coord_nearest(extent_type const& TexelExtent, normalized_type const& SampleCoord)
+ {
+ normalized_type const TexelLast(normalized_type(TexelExtent) - normalized_type(1));
+
+ coord_nearest<extent_type, normalized_type> Coord;
+ Coord.Texel = extent_type(round(SampleCoord * TexelLast));
+ Coord.UseTexel = in_interval(Coord.Texel, extent_type(0), TexelExtent - 1);
+ return Coord;
+ }
+
+ template <typename extent_type, typename normalized_type>
+ struct coord_linear
+ {
+ extent_type TexelFloor;
+ extent_type TexelCeil;
+ normalized_type Blend;
+ };
+
+ template <typename extent_type, typename normalized_type>
+ struct coord_linear_border : public coord_linear<extent_type, normalized_type>
+ {
+ typename extent_type::bool_type UseTexelFloor;
+ typename extent_type::bool_type UseTexelCeil;
+ };
+
+ template <typename extent_type, typename normalized_type>
+ GLI_FORCE_INLINE coord_linear<extent_type, normalized_type> make_coord_linear(extent_type const& TexelExtent, normalized_type const& SampleCoord)
+ {
+ coord_linear<extent_type, normalized_type> Coord;
+
+ normalized_type const TexelExtentF(TexelExtent);
+ normalized_type const TexelLast = TexelExtentF - normalized_type(1);
+ normalized_type const ScaledCoord(SampleCoord * TexelLast);
+ normalized_type const ScaledCoordFloor = normalized_type(extent_type(ScaledCoord));
+ normalized_type const ScaledCoordCeil = normalized_type(extent_type(ScaledCoord + normalized_type(0.5)));
+ //normalized_type const ScaledCoordFloor(floor(ScaledCoord));
+ //normalized_type const ScaledCoordCeil(ceil(ScaledCoord));
+
+ Coord.Blend = ScaledCoord - ScaledCoordFloor;
+ Coord.TexelFloor = extent_type(ScaledCoordFloor);
+ Coord.TexelCeil = extent_type(ScaledCoordCeil);
+
+ return Coord;
+ }
+
+ template <typename extent_type, typename normalized_type>
+ GLI_FORCE_INLINE coord_linear_border<extent_type, normalized_type> make_coord_linear_border(extent_type const& TexelExtent, normalized_type const& SampleCoord)
+ {
+ coord_linear_border<extent_type, normalized_type> Coord;
+
+ normalized_type const TexelExtentF(TexelExtent);
+ normalized_type const TexelLast = TexelExtentF - normalized_type(1);
+ normalized_type const ScaledCoord(SampleCoord * TexelLast);
+ normalized_type const ScaledCoordFloor(floor(ScaledCoord));
+ normalized_type const ScaledCoordCeil(ceil(ScaledCoord));
+
+ Coord.Blend = ScaledCoord - ScaledCoordFloor;
+ Coord.TexelFloor = extent_type(ScaledCoordFloor);
+ Coord.TexelCeil = extent_type(ScaledCoordCeil);
+ Coord.UseTexelFloor = in_interval(Coord.TexelFloor, extent_type(0), TexelExtent - 1);
+ Coord.UseTexelCeil = in_interval(Coord.TexelCeil, extent_type(0), TexelExtent - 1);
+
+ return Coord;
+ }
+}//namespace detail
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/copy.inl b/3rdparty/glm/test/external/gli/core/copy.inl
new file mode 100644
index 00000000000..9aea05d99e1
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/copy.inl
@@ -0,0 +1,112 @@
+#include "../type.hpp"
+#include <cstring>
+
+namespace gli
+{
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy
+ (
+ texture_src_type const& TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc,
+ texture_dst_type& TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst
+ )
+ {
+ TextureDst.copy(TextureSrc, LayerSrc, FaceSrc, LevelSrc, LayerDst, FaceDst, LevelDst);
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy
+ (
+ texture_src_type const& TextureSrc,
+ texture_dst_type& TextureDst
+ )
+ {
+ copy_layer(TextureSrc, 0, TextureDst, 0, TextureDst.layers());
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_level
+ (
+ texture_src_type const& TextureSrc, size_t BaseLevelSrc,
+ texture_dst_type& TextureDst, size_t BaseLevelDst,
+ size_t LevelCount
+ )
+ {
+ for(size_t LayerIndex = 0, LayerCount = TextureSrc.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_t FaceIndex = 0, FaceCount = TextureSrc.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_t LevelIndex = 0; LevelIndex < LevelCount; ++LevelIndex)
+ {
+ TextureDst.copy(
+ TextureSrc,
+ LayerIndex, FaceIndex, BaseLevelSrc + LevelIndex,
+ LayerIndex, FaceIndex, BaseLevelDst + LevelIndex);
+ }
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_level
+ (
+ texture_src_type const& TextureSrc, size_t BaseLevelSrc,
+ texture_dst_type& TextureDst, size_t BaseLevelDst
+ )
+ {
+ copy_level(TextureSrc, BaseLevelSrc, TextureDst, BaseLevelDst, 1);
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_face
+ (
+ texture_src_type const& TextureSrc, size_t BaseFaceSrc,
+ texture_dst_type& TextureDst, size_t BaseFaceDst,
+ size_t FaceCount
+ )
+ {
+ for(size_t LayerIndex = 0, LayerCount = TextureSrc.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_t FaceIndex = 0; FaceIndex < FaceCount; ++FaceIndex)
+ for(size_t LevelIndex = 0, LevelCount = TextureSrc.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ TextureDst.copy(
+ TextureSrc,
+ LayerIndex, BaseFaceSrc + FaceIndex, LevelIndex,
+ LayerIndex, BaseFaceDst + FaceIndex, LevelIndex);
+ }
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_face
+ (
+ texture_src_type const& TextureSrc, size_t BaseFaceSrc,
+ texture_dst_type& TextureDst, size_t BaseFaceDst
+ )
+ {
+ copy_face(TextureSrc, BaseFaceSrc, TextureDst, BaseFaceDst, 1);
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_layer
+ (
+ texture_src_type const& TextureSrc, size_t BaseLayerSrc,
+ texture_dst_type& TextureDst, size_t BaseLayerDst,
+ size_t LayerCount
+ )
+ {
+ for(size_t LayerIndex = 0; LayerIndex < LayerCount; ++LayerIndex)
+ for(size_t FaceIndex = 0, FaceCount = TextureSrc.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_t LevelIndex = 0, LevelCount = TextureSrc.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ TextureDst.copy(
+ TextureSrc,
+ BaseLayerSrc + LayerIndex, FaceIndex, LevelIndex,
+ BaseLayerDst + LayerIndex, FaceIndex, LevelIndex);
+ }
+ }
+
+ template <typename texture_src_type, typename texture_dst_type>
+ void copy_layer
+ (
+ texture_src_type const& TextureSrc, size_t BaseLayerSrc,
+ texture_dst_type& TextureDst, size_t BaseLayerDst
+ )
+ {
+ copy_layer(TextureSrc, BaseLayerSrc, TextureDst, BaseLayerDst, 1);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/duplicate.inl b/3rdparty/glm/test/external/gli/core/duplicate.inl
new file mode 100644
index 00000000000..7b9efda5e49
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/duplicate.inl
@@ -0,0 +1,267 @@
+namespace gli{
+namespace detail
+{
+ inline void duplicate_images
+ (
+ texture const & Src, texture & Dst,
+ texture::size_type BaseLayer, texture::size_type MaxLayer,
+ texture::size_type BaseFace, texture::size_type MaxFace,
+ texture::size_type BaseLevel, texture::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLayer >= 0 && BaseLayer <= MaxLayer && MaxLayer < Src.layers());
+ GLI_ASSERT(BaseFace >= 0 && BaseFace <= MaxFace && MaxFace < Src.faces());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel <= MaxLevel && MaxLevel < Src.levels());
+
+ texture::size_type LevelsSize = 0;
+ for(texture::size_type LevelIndex = 0; LevelIndex < MaxLevel - BaseLevel + 1; ++LevelIndex)
+ {
+ GLI_ASSERT(Dst.size(LevelIndex) == Src.size(LevelIndex));
+ LevelsSize += Dst.size(LevelIndex);
+ }
+
+ for(texture::size_type LayerIndex = 0, LayerCount = MaxLayer - BaseLayer + 1; LayerIndex < LayerCount; ++LayerIndex)
+ for(texture::size_type FaceIndex = 0, FaceCount = MaxFace - BaseFace + 1; FaceIndex < FaceCount; ++FaceIndex)
+ {
+ memcpy(Dst.data(LayerIndex, FaceIndex, BaseLevel), Src.data(BaseLayer + LayerIndex, BaseFace + FaceIndex, BaseLevel), LevelsSize);
+ }
+ }
+}//namespace detail
+
+ inline image duplicate(image const & Image)
+ {
+ image Result(Image.format(), Image.extent());
+
+ memcpy(Result.data(), Image.data(), Image.size());
+
+ return Result;
+ }
+
+ template <>
+ inline texture duplicate(texture const & Texture)
+ {
+ texture Duplicate(
+ Texture.target(),
+ Texture.format(),
+ Texture.extent(),
+ Texture.layers(),
+ Texture.faces(),
+ Texture.levels());
+
+ detail::duplicate_images(
+ Texture, Duplicate,
+ 0, Texture.layers() - 1,
+ 0, Texture.faces() - 1,
+ 0, Texture.levels() - 1);
+
+ return Duplicate;
+ }
+
+ template <typename texType>
+ inline texture duplicate(texType const & Texture)
+ {
+ texture Duplicate(
+ Texture.target(),
+ Texture.format(),
+ Texture.texture::extent(),
+ Texture.layers(),
+ Texture.faces(),
+ Texture.levels());
+
+ detail::duplicate_images(
+ Texture, Duplicate,
+ 0, Texture.layers() - 1,
+ 0, Texture.faces() - 1,
+ 0, Texture.levels() - 1);
+
+ return Duplicate;
+ }
+
+ template <typename texType>
+ inline texture duplicate(texType const & Texture, typename texType::format_type Format)
+ {
+ GLI_ASSERT(block_size(Texture.format()) == block_size(Format));
+
+ texture Duplicate(
+ Texture.target(),
+ Format,
+ Texture.extent(),
+ Texture.layers(),
+ Texture.faces(),
+ Texture.levels());
+
+ detail::duplicate_images(
+ Texture, Duplicate,
+ 0, Texture.layers() - 1,
+ 0, Texture.faces() - 1,
+ 0, Texture.levels() - 1);
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture1d const & Texture,
+ texture1d::size_type BaseLevel, texture1d::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLevel < Texture.levels());
+ GLI_ASSERT(MaxLevel < Texture.levels());
+
+ texture1d Duplicate(
+ Texture.format(),
+ Texture.extent(BaseLevel),
+ MaxLevel - BaseLevel + 1);
+
+ memcpy(Duplicate.data(), Texture.data(0, 0, BaseLevel), Duplicate.size());
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture1d_array const & Texture,
+ texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxMayer,
+ texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLevel < Texture.levels());
+ GLI_ASSERT(MaxLevel < Texture.levels());
+ GLI_ASSERT(BaseLayer <= MaxMayer);
+ GLI_ASSERT(BaseLayer < Texture.layers());
+ GLI_ASSERT(MaxMayer < Texture.layers());
+
+ texture1d_array Duplicate(
+ Texture.format(),
+ Texture[BaseLayer].extent(BaseLevel),
+ MaxMayer - BaseLayer + 1,
+ MaxLevel - BaseLevel + 1);
+
+ for(texture1d_array::size_type Layer = 0; Layer < Duplicate.layers(); ++Layer)
+ memcpy(Duplicate.data(Layer, 0, 0), Texture.data(Layer + BaseLayer, 0, BaseLevel), Duplicate[Layer].size());
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture2d const & Texture,
+ texture2d::size_type BaseLevel, texture2d::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLevel < Texture.levels());
+ GLI_ASSERT(MaxLevel < Texture.levels());
+
+ texture2d Duplicate(
+ Texture.format(),
+ Texture.extent(BaseLevel),
+ MaxLevel - BaseLevel + 1);
+
+ memcpy(Duplicate.data(), Texture.data(0, 0, BaseLevel), Duplicate.size());
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture2d_array const & Texture,
+ texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxMayer,
+ texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLevel < Texture.levels());
+ GLI_ASSERT(MaxLevel < Texture.levels());
+ GLI_ASSERT(BaseLayer <= MaxMayer);
+ GLI_ASSERT(BaseLayer < Texture.layers());
+ GLI_ASSERT(MaxMayer < Texture.layers());
+
+ texture2d_array Duplicate(
+ Texture.format(),
+ Texture.extent(BaseLevel),
+ MaxMayer - BaseLayer + 1,
+ MaxLevel - BaseLevel + 1);
+
+ for(texture2d_array::size_type Layer = 0; Layer < Duplicate.layers(); ++Layer)
+ memcpy(Duplicate.data(Layer, 0, 0), Texture.data(Layer + BaseLayer, 0, BaseLevel), Duplicate[Layer].size());
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture3d const & Texture,
+ texture3d::size_type BaseLevel, texture3d::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLevel < Texture.levels());
+ GLI_ASSERT(MaxLevel < Texture.levels());
+
+ texture3d Duplicate(
+ Texture.format(),
+ Texture.extent(BaseLevel),
+ MaxLevel - BaseLevel + 1);
+
+ memcpy(Duplicate.data(), Texture.data(0, 0, BaseLevel), Duplicate.size());
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture_cube const & Texture,
+ texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,
+ texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && BaseLevel <= MaxLevel && MaxLevel < Texture.levels());
+ GLI_ASSERT(BaseFace <= MaxFace);
+ GLI_ASSERT(BaseFace < Texture.faces());
+ GLI_ASSERT(MaxFace < Texture.faces());
+
+ texture_cube Duplicate(
+ Texture.format(),
+ Texture[BaseFace].extent(BaseLevel),
+ MaxLevel - BaseLevel + 1);
+
+ for(texture_cube::size_type Face = 0; Face < Duplicate.faces(); ++Face)
+ memcpy(Duplicate[Face].data(), Texture[Face + BaseFace][BaseLevel].data(), Duplicate[Face].size());
+
+ return Duplicate;
+ }
+
+ inline texture duplicate
+ (
+ texture_cube_array const & Texture,
+ texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,
+ texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,
+ texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLevel < Texture.levels());
+ GLI_ASSERT(MaxLevel < Texture.levels());
+ GLI_ASSERT(BaseFace <= MaxFace);
+ GLI_ASSERT(BaseFace < Texture.faces());
+ GLI_ASSERT(MaxFace < Texture.faces());
+ GLI_ASSERT(BaseLayer <= MaxLayer);
+ GLI_ASSERT(BaseLayer < Texture.layers());
+ GLI_ASSERT(MaxLayer < Texture.layers());
+
+ texture_cube_array Duplicate(
+ Texture.format(),
+ Texture[BaseLayer][BaseFace].extent(BaseLevel),
+ MaxLayer - BaseLayer + 1,
+ MaxLevel - BaseLevel + 1);
+
+ for(texture_cube_array::size_type Layer = 0; Layer < Duplicate.layers(); ++Layer)
+ for(texture_cube_array::size_type Face = 0; Face < Duplicate[Layer].faces(); ++Face)
+ memcpy(Duplicate[Layer][Face].data(), Texture[Layer + BaseLayer][Face + BaseFace][BaseLevel].data(), Duplicate[Layer][Face].size());
+
+ return Duplicate;
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/dx.inl b/3rdparty/glm/test/external/gli/core/dx.inl
new file mode 100644
index 00000000000..d39a72cb282
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/dx.inl
@@ -0,0 +1,311 @@
+#include <functional>
+
+namespace gli
+{
+ inline dx::dx()
+ {
+ static format const Table[] =
+ {
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RG4_UNORM_GLI, glm::u32vec4(0x000F, 0x00F0, 0x0000, 0x0000)}, //FORMAT_RG4_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA4_UNORM_GLI, glm::u32vec4(0x000F, 0x00F0, 0x0F00, 0xF000)}, //FORMAT_RGBA4_UNORM,
+ {DDPF_FOURCC, D3DFMT_A4R4G4B4, DXGI_FORMAT_B4G4R4A4_UNORM, glm::u32vec4(0x0F00, 0x00F0, 0x000F, 0xF000)}, //FORMAT_BGRA4_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R5G6B5_UNORM_GLI, glm::u32vec4(0x001f, 0x07e0, 0xf800, 0x0000)}, //FORMAT_R5G6B5_UNORM,
+ {DDPF_FOURCC, D3DFMT_R5G6B5, DXGI_FORMAT_B5G6R5_UNORM, glm::u32vec4(0xf800, 0x07e0, 0x001f, 0x0000)}, //FORMAT_B5G6R5_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R5G5B5A1_UNORM_GLI, glm::u32vec4(0x001f, 0x03e0, 0x7c00, 0x8000)}, //FORMAT_RGB5A1_UNORM,
+ {DDPF_FOURCC, D3DFMT_A1R5G5B5, DXGI_FORMAT_B5G5R5A1_UNORM, glm::u32vec4(0x7c00, 0x03e0, 0x001f, 0x8000)}, //FORMAT_BGR5A1_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_A1B5G5R5_UNORM_GLI, glm::u32vec4(0x7c00, 0x03e0, 0x001f, 0x8000)}, //FORMAT_A1RGB5_UNORM,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8_UNORM, glm::u32vec4(0x00FF0000, 0x00000000, 0x00000000, 0x00000000)}, //FORMAT_R8_UNORM,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8_SNORM, glm::u32vec4(0)}, //FORMAT_R8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8_USCALED_GLI, glm::u32vec4(0x00FF0000, 0x00000000, 0x00000000, 0x00000000)}, //FORMAT_R8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_R8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8_UINT, glm::u32vec4(0)}, //FORMAT_R8_UINT,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8_SINT, glm::u32vec4(0)}, //FORMAT_R8_SINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_R8_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8_UNORM, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x00000000, 0x00000000)}, //FORMAT_RG8_UNORM,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8_SNORM, glm::u32vec4(0)}, //FORMAT_RG8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8_USCALED_GLI, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x00000000, 0x00000000)}, //FORMAT_RG8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_RG8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8_UINT, glm::u32vec4(0)}, //FORMAT_RG8_UINT,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8_SINT, glm::u32vec4(0)}, //FORMAT_RG8_SINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RG8_SRGB,
+
+ {DDPF_RGB, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_UNORM_GLI, glm::u32vec4(0x000000FF, 0x0000FF00, 0x00FF0000, 0x00000000)}, //FORMAT_RGB8_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGB8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGB8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_UINT_GLI, glm::u32vec4(0)}, //FORMAT_RGB8_UINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_SINT_GLI, glm::u32vec4(0)}, //FORMAT_RGB8_SINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGB8_SRGB,
+
+ {DDPF_RGB, D3DFMT_R8G8B8, DXGI_FORMAT_B8G8R8_UNORM_GLI, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0x00000000)}, //FORMAT_BGR8_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_BGR8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_BGR8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_BGR8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8_UINT_GLI, glm::u32vec4(0)}, //FORMAT_BGR8_UINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8_SINT_GLI, glm::u32vec4(0)}, //FORMAT_BGR8_SINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_BGR8_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8B8A8_UNORM, glm::u32vec4(0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000)}, //FORMAT_RGBA8_UNORM,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8B8A8_SNORM, glm::u32vec4(0)}, //FORMAT_RGBA8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGBA8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGBA8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8B8A8_UINT, glm::u32vec4(0)}, //FORMAT_RGBA8_UINT,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8B8A8_SINT, glm::u32vec4(0)}, //FORMAT_RGBA8_SINT,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, glm::u32vec4(0)}, //FORMAT_RGBA8_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_A8R8G8B8, DXGI_FORMAT_B8G8R8A8_UNORM, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000)}, //FORMAT_BGRA8_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8A8_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_BGRA8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8A8_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_BGRA8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8A8_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_BGRA8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8A8_UINT_GLI, glm::u32vec4(0)}, //FORMAT_BGRA8_UINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B8G8R8A8_SINT_GLI, glm::u32vec4(0)}, //FORMAT_BGRA8_SINT,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000)}, //FORMAT_BGRA8_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_UNORM_GLI, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000)}, //FORMAT_ABGR8_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_ABGR8_SNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_ABGR8_USCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_ABGR8_SSCALED,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_UINT_GLI, glm::u32vec4(0)}, //FORMAT_ABGR8_UINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_SINT_GLI, glm::u32vec4(0)}, //FORMAT_ABGR8_SINT,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R8G8B8A8_PACK_SRGB_GLI, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000)}, //FORMAT_ABGR8_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R10G10B10A2_UNORM, glm::u32vec4(0x000003FF, 0x000FFC00, 0x3FF00000, 0xC0000000)}, //FORMAT_RGB10A2_UNORM_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R10G10B10A2_SNORM_GLI, glm::u32vec4(0x000003FF, 0x000FFC00, 0x3FF00000, 0xC0000000)}, //FORMAT_RGB10A2_SNORM_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R10G10B10A2_USCALED_GLI, glm::u32vec4(0x000003FF, 0x000FFC00, 0x3FF00000, 0xC0000000)}, //FORMAT_RGB10A2_USCALED_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R10G10B10A2_SSCALED_GLI, glm::u32vec4(0x000003FF, 0x000FFC00, 0x3FF00000, 0xC0000000)}, //FORMAT_RGB10A2_SSCALED_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R10G10B10A2_UINT, glm::u32vec4(0x000003FF, 0x000FFC00, 0x3FF00000, 0xC0000000)}, //FORMAT_RGB10A2_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R10G10B10A2_SINT_GLI, glm::u32vec4(0x000003FF, 0x000FFC00, 0x3FF00000, 0xC0000000)}, //FORMAT_RGB10A2_SINT_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B10G10R10A2_UNORM_GLI, glm::u32vec4(0x3FF00000, 0x000FFC00, 0x000003FF, 0xC0000000)}, //FORMAT_BGR10A2_UNORM_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B10G10R10A2_SNORM_GLI, glm::u32vec4(0x3FF00000, 0x000FFC00, 0x000003FF, 0xC0000000)}, //FORMAT_BGR10A2_SNORM_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B10G10R10A2_USCALED_GLI, glm::u32vec4(0x3FF00000, 0x000FFC00, 0x000003FF, 0xC0000000)}, //FORMAT_BGR10A2_USCALED_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B10G10R10A2_SSCALED_GLI, glm::u32vec4(0x3FF00000, 0x000FFC00, 0x000003FF, 0xC0000000)}, //FORMAT_BGR10A2_SSCALED_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B10G10R10A2_UINT_GLI, glm::u32vec4(0x3FF00000, 0x000FFC00, 0x000003FF, 0xC0000000)}, //FORMAT_BGR10A2_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_B10G10R10A2_SINT_GLI, glm::u32vec4(0x3FF00000, 0x000FFC00, 0x000003FF, 0xC0000000)}, //FORMAT_BGR10A2_SINT_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16_UNORM, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x00000000)}, //FORMAT_R16_UNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16_SNORM, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x00000000)}, //FORMAT_R16_SNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16_USCALED_GLI, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x00000000)}, //FORMAT_R16_USCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16_SSCALED_GLI, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x00000000)}, //FORMAT_R16_SSCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16_UINT, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x0000000)}, //FORMAT_R16_UINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16_SINT, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x0000000)}, //FORMAT_R16_SINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_R16F, DXGI_FORMAT_R16_FLOAT, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x0000000)}, //FORMAT_R16_SFLOAT_PACK16,
+
+ {DDPF_FOURCC, D3DFMT_G16R16, DXGI_FORMAT_R16G16_UNORM, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_UNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16G16_SNORM, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_SNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16_USCALED_GLI, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_USCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16_SSCALED_GLI, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_SSCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16G16_UINT, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_UINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16G16_SINT, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_SINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_G16R16F, DXGI_FORMAT_R16G16_FLOAT, glm::u32vec4(0x0000FFFF, 0xFFFF0000, 0x00000000, 0x00000000)}, //FORMAT_RG16_SFLOAT_PACK16,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_UNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_SNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_USCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_SSCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_UINT_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_UINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_SINT_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_SINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16_FLOAT_GLI, glm::u32vec4(0)}, //FORMAT_RGB16_SFLOAT_PACK16,
+
+ {DDPF_FOURCC, D3DFMT_A16B16G16R16, DXGI_FORMAT_R16G16B16A16_UNORM, glm::u32vec4(0)}, //FORMAT_RGBA16_UNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16G16B16A16_SNORM, glm::u32vec4(0)}, //FORMAT_RGBA16_SNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16A16_USCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGBA16_USCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R16G16B16A16_SSCALED_GLI, glm::u32vec4(0)}, //FORMAT_RGBA16_SSCALED_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16G16B16A16_UINT, glm::u32vec4(0)}, //FORMAT_RGBA16_UINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R16G16B16A16_SINT, glm::u32vec4(0)}, //FORMAT_RGBA16_SINT_PACK16,
+ {DDPF_FOURCC, D3DFMT_A16B16G16R16F, DXGI_FORMAT_R16G16B16A16_FLOAT, glm::u32vec4(0)}, //FORMAT_RGBA16_SFLOAT_PACK16,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32_UINT, glm::u32vec4(0)}, //FORMAT_R32_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32_SINT, glm::u32vec4(0)}, //FORMAT_R32_SINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_R32F, DXGI_FORMAT_R32_FLOAT, glm::u32vec4(0xFFFFFFFF, 0x0000000, 0x0000000, 0x0000000)}, //FORMAT_R32_SFLOAT_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32_UINT, glm::u32vec4(0)}, //FORMAT_RG32_UINT_PACK32
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32_SINT, glm::u32vec4(0)}, //FORMAT_RG32_SINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_G32R32F, DXGI_FORMAT_R32G32_FLOAT, glm::u32vec4(0)}, //FORMAT_RG32_SFLOAT_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32B32_UINT, glm::u32vec4(0)}, //FORMAT_RGB32_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32B32_SINT, glm::u32vec4(0)}, //FORMAT_RGB32_SINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32B32_FLOAT, glm::u32vec4(0)}, //FORMAT_RGB32_SFLOAT_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32B32A32_UINT, glm::u32vec4(0)}, //FORMAT_RGBA32_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R32G32B32A32_SINT, glm::u32vec4(0)}, //FORMAT_RGBA32_SINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_A32B32G32R32F, DXGI_FORMAT_R32G32B32A32_FLOAT, glm::u32vec4(0)}, //FORMAT_RGBA32_SFLOAT_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64_UINT_GLI, glm::u32vec4(0)}, //FORMAT_R64_UINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64_SINT_GLI, glm::u32vec4(0)}, //FORMAT_R64_SINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64_FLOAT_GLI, glm::u32vec4(0)}, //FORMAT_R64_SFLOAT_PACK64,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64_UINT_GLI, glm::u32vec4(0)}, //FORMAT_RG64_UINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64_SINT_GLI, glm::u32vec4(0)}, //FORMAT_RG64_SINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64_FLOAT_GLI, glm::u32vec4(0)}, //FORMAT_RG64_SFLOAT_PACK64,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64B64_UINT_GLI, glm::u32vec4(0)}, //FORMAT_RGB64_UINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64B64_SINT_GLI, glm::u32vec4(0)}, //FORMAT_RGB64_SINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64B64_FLOAT_GLI, glm::u32vec4(0)}, //FORMAT_RGB64_SFLOAT_PACK64,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64B64A64_UINT_GLI, glm::u32vec4(0)}, //FORMAT_RGBA64_UINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64B64A64_SINT_GLI, glm::u32vec4(0)}, //FORMAT_RGBA64_SINT_PACK64,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R64G64B64A64_FLOAT_GLI, glm::u32vec4(0)}, //FORMAT_RGBA64_SFLOAT_PACK64,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R11G11B10_FLOAT, glm::u32vec4(0)}, //FORMAT_RG11B10_UFLOAT,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_R9G9B9E5_SHAREDEXP, glm::u32vec4(0)}, //FORMAT_RGB9E5_UFLOAT,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_D16_UNORM, glm::u32vec4(0)}, //FORMAT_D16_UNORM_PACK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_D24_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_D24_UNORM,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_D32_FLOAT, glm::u32vec4(0)}, //FORMAT_D32_SFLOAT_PACK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_S8_UINT_GLI, glm::u32vec4(0)}, //FORMAT_S8_UINT_PACK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_D16_UNORM_S8_UINT_GLI, glm::u32vec4(0)}, //FORMAT_D16_UNORM_S8_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_D24_UNORM_S8_UINT, glm::u32vec4(0)}, //FORMAT_D24_UNORM_S8_UINT_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_D32_FLOAT_S8X24_UINT, glm::u32vec4(0)}, //FORMAT_D32_SFLOAT_S8_UINT_PACK64,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_BC1_RGB_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB_DXT1_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_BC1_RGB_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGB_DXT1_SRGB_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_DXT1, DXGI_FORMAT_BC1_UNORM, glm::u32vec4(0)}, //FORMAT_RGBA_DXT1_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC1_UNORM_SRGB, glm::u32vec4(0)}, //FORMAT_RGBA_DXT1_SRGB_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_DXT3, DXGI_FORMAT_BC2_UNORM, glm::u32vec4(0)}, //FORMAT_RGBA_DXT3_UNORM_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC2_UNORM_SRGB, glm::u32vec4(0)}, //FORMAT_RGBA_DXT3_SRGB_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_DXT5, DXGI_FORMAT_BC3_UNORM, glm::u32vec4(0)}, //FORMAT_RGBA_DXT5_UNORM_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC3_UNORM_SRGB, glm::u32vec4(0)}, //FORMAT_RGBA_DXT5_SRGB_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_ATI1, DXGI_FORMAT_BC4_UNORM, glm::u32vec4(0)}, //FORMAT_R_ATI1N_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_AT1N, DXGI_FORMAT_BC4_SNORM, glm::u32vec4(0)}, //FORMAT_R_ATI1N_SNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_ATI2, DXGI_FORMAT_BC5_UNORM, glm::u32vec4(0)}, //FORMAT_RG_ATI2N_UNORM_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_AT2N, DXGI_FORMAT_BC5_SNORM, glm::u32vec4(0)}, //FORMAT_RG_ATI2N_SNORM_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC6H_UF16, glm::u32vec4(0)}, //FORMAT_RGB_BP_UFLOAT_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC6H_SF16, glm::u32vec4(0)}, //FORMAT_RGB_BP_SFLOAT_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC7_UNORM, glm::u32vec4(0)}, //FORMAT_RGB_BP_UNORM,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_BC7_UNORM_SRGB, glm::u32vec4(0)}, //FORMAT_RGB_BP_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGB_ETC2_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB_ETC2_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGB_ETC2_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGB_ETC2_SRGB_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_ETC2_A1_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_ETC2_A1_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_ETC2_A1_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_ETC2_A1_SRGB_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_ETC2_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_ETC2_UNORM_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_ETC2_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_ETC2_SRGB_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R11_EAC_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_R_EAC_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R11_EAC_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_R_EAC_SNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RG11_EAC_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RG_EAC_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RG11_EAC_SNORM_GLI, glm::u32vec4(0)}, //FORMAT_RG_EAC_SNORM_BLOCK8,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_4X4_UNORM, glm::u32vec4(0)}, //FORMAT_ASTC_4x4_UNORM,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_4X4_UNORM_SRGB, glm::u32vec4(0)}, //FORMAT_ASTC_4x4_SRGB,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_5X4_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_5x4,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_5X4_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_5x4,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_5X5_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_5x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_5X5_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_5x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_6X5_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_6x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_6X5_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_6x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_6X6_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_6x6,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_6X6_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_6x6,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_8X5_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_8x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_8X5_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_8x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_8X6_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_8x6,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_8X6_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_8x6,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_8X8_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_8x8,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_8X8_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_8x8,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X5_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_10x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X5_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_10x5,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X6_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_10x6,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X6_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_10x6,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X8_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_10x8,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X8_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_10x8,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X10_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_10x10,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_10X10_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_10x10,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_12X10_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_12x10,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_12X10_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_12x10,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_12X12_UNORM, glm::u32vec4(0)}, //RGBA_ASTC_12x12,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_ASTC_12X12_UNORM_SRGB, glm::u32vec4(0)}, //SRGB_ALPHA_ASTC_12x12,
+
+ {DDPF_FOURCC, D3DFMT_POWERVR_4BPP, DXGI_FORMAT_RGB_PVRTC1_8X8_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGB_PVRTC1_8X8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_POWERVR_2BPP, DXGI_FORMAT_RGB_PVRTC1_16X8_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGB_PVRTC1_16X8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC1_8X8_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC1_8X8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC1_16X8_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC1_16X8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC2_8X8_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC2_8X8_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC2_8X8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC2_8X8_SRGB,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC2_16X8_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC2_16X8_UNORM,
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_RGBA_PVRTC2_16X8_SRGB_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_PVRTC2_16X8_SRGB,
+
+ {DDPF_FOURCC, D3DFMT_ETC, DXGI_FORMAT_RGB_ETC_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB_ETC_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_ATC, DXGI_FORMAT_RGB_ATC_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGB_ATC_UNORM_BLOCK8,
+ {DDPF_FOURCC, D3DFMT_ATCA, DXGI_FORMAT_RGBA_ATCA_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_ATCA_UNORM_BLOCK16,
+ {DDPF_FOURCC, D3DFMT_ATCI, DXGI_FORMAT_RGBA_ATCI_UNORM_GLI, glm::u32vec4(0)}, //FORMAT_RGBA_ATCI_UNORM_BLOCK16,
+
+ {DDPF_LUMINANCE, D3DFMT_L8, DXGI_FORMAT_L8_UNORM_GLI, glm::u32vec4(0x000000FF, 0x00000000, 0x00000000, 0x00000000)}, //L8_UNORM,
+ {DDPF_ALPHA, D3DFMT_A8, DXGI_FORMAT_A8_UNORM_GLI, glm::u32vec4(0x00000000, 0x00000000, 0x00000000, 0x000000FF)}, //A8_UNORM,
+ {DDPF_LUMINANCE_ALPHA, D3DFMT_A8L8, DXGI_FORMAT_LA8_UNORM_GLI, glm::u32vec4(0x000000FF, 0x00000000, 0x00000000, 0x0000FF00)}, //LA8_UNORM,
+ {DDPF_LUMINANCE, D3DFMT_L16, DXGI_FORMAT_L16_UNORM_GLI, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0x00000000)}, //L16_UNORM,
+ {DDPF_ALPHA, D3DFMT_GLI1, DXGI_FORMAT_A16_UNORM_GLI, glm::u32vec4(0x00000000, 0x00000000, 0x00000000, 0x0000FFFF)}, //A16_UNORM,
+ {DDPF_LUMINANCE_ALPHA, D3DFMT_GLI1, DXGI_FORMAT_LA16_UNORM_GLI, glm::u32vec4(0x0000FFFF, 0x00000000, 0x00000000, 0xFFFF0000)}, //LA16_UNORM,
+
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_B8G8R8X8_UNORM, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0x00000000)}, //FORMAT_BGR8_UNORM_PACK32,
+ {DDPF_FOURCC, D3DFMT_DX10, DXGI_FORMAT_B8G8R8X8_UNORM_SRGB, glm::u32vec4(0x00FF0000, 0x0000FF00, 0x000000FF, 0x00000000)}, //FORMAT_BGR8_SRGB_PACK32,
+
+ {DDPF_FOURCC, D3DFMT_GLI1, DXGI_FORMAT_R3G3B2_UNORM_GLI, glm::u32vec4(0x70, 0x38, 0xC0, 0x00)}, //FORMAT_RG3B2_UNORM,
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == FORMAT_COUNT, "GLI error: format descriptor list doesn't match number of supported formats");
+
+ std::copy(&Table[0], &Table[0] + FORMAT_COUNT, this->Translation.begin());
+ }
+
+ inline dx::format const& dx::translate(gli::format Format) const
+ {
+ GLI_ASSERT(Format >= FORMAT_FIRST && Format <= FORMAT_LAST);
+ return Translation[Format - FORMAT_FIRST];
+ }
+
+ inline gli::format dx::find(dx::d3dfmt FourCC) const
+ {
+ gli::format FormatResult = static_cast<gli::format>(FORMAT_INVALID);
+ for(int FormatIndex = FORMAT_FIRST; FormatIndex <= FORMAT_LAST; ++FormatIndex)
+ {
+ if(this->Translation[FormatIndex - FORMAT_FIRST].D3DFormat != FourCC)
+ continue;
+
+ FormatResult = static_cast<gli::format>(FormatIndex);
+ break;
+ }
+ return FormatResult;
+ }
+
+ inline gli::format dx::find(dx::d3dfmt FourCC, dx::dxgiFormat Format) const
+ {
+ GLI_ASSERT(FourCC == D3DFMT_DX10 || FourCC == D3DFMT_GLI1);
+
+ gli::format FormatResult = static_cast<gli::format>(FORMAT_INVALID);
+ for(int FormatIndex = FORMAT_FIRST; FormatIndex <= FORMAT_LAST; ++FormatIndex)
+ {
+ gli::format CurrentFormat = static_cast<gli::format>(FormatIndex);
+ detail::formatInfo const & FormatInfo = detail::get_format_info(CurrentFormat);
+
+ dx::format const & DXFormat = this->Translation[FormatIndex - FORMAT_FIRST];
+
+ if(FourCC == D3DFMT_GLI1 && (FormatInfo.Flags & detail::CAP_DDS_GLI_EXT_BIT) && DXFormat.DXGIFormat.GLI == Format.GLI)
+ {
+ FormatResult = static_cast<gli::format>(FormatIndex);
+ break;
+ }
+
+ if(FourCC == D3DFMT_DX10 && !(FormatInfo.Flags & detail::CAP_DDS_GLI_EXT_BIT) && DXFormat.DXGIFormat.DDS == Format.DDS)
+ {
+ FormatResult = static_cast<gli::format>(FormatIndex);
+ break;
+ }
+ }
+ return FormatResult;
+ }
+
+ inline bool is_dds_ext(target Target, format Format)
+ {
+ dx DX;
+ dx::format const & DXFormat = DX.translate(Format);
+
+ bool const UseDDSExt = detail::get_format_info(Format).Flags & detail::CAP_DDS_GLI_EXT_BIT ? true : false;
+
+ return ((DXFormat.DDPixelFormat & dx::DDPF_FOURCC) && DXFormat.D3DFormat == dx::D3DFMT_GLI1) || ((is_target_array(Target) || is_target_1d(Target)) && UseDDSExt);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/file.hpp b/3rdparty/glm/test/external/gli/core/file.hpp
new file mode 100644
index 00000000000..b61e7ba922c
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/file.hpp
@@ -0,0 +1,15 @@
+/// @brief File helper functions
+/// @file gli/core/file.hpp
+
+#pragma once
+
+#include <cstdio>
+
+namespace gli{
+namespace detail
+{
+ FILE* open_file(const char *Filename, const char *mode);
+}//namespace detail
+}//namespace gli
+
+#include "./file.inl"
diff --git a/3rdparty/glm/test/external/gli/core/file.inl b/3rdparty/glm/test/external/gli/core/file.inl
new file mode 100644
index 00000000000..018358fa12c
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/file.inl
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <glm/simd/platform.h>
+
+namespace gli{
+namespace detail
+{
+ inline FILE* open_file(const char *Filename, const char *Mode)
+ {
+# if GLM_COMPILER & GLM_COMPILER_VC
+ FILE *File = nullptr;
+ fopen_s(&File, Filename, Mode);
+ return File;
+# else
+ return std::fopen(Filename, Mode);
+# endif
+ }
+}//namespace detail
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/filter.hpp b/3rdparty/glm/test/external/gli/core/filter.hpp
new file mode 100644
index 00000000000..5176ae98990
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/filter.hpp
@@ -0,0 +1,23 @@
+/// @brief Include to use filter enum, to select filtering methods.
+/// @file gli/core/filter.hpp
+
+#pragma once
+
+namespace gli
+{
+ /// Texture filtring modes
+ enum filter
+ {
+ FILTER_NONE = 0,
+ FILTER_NEAREST, FILTER_FIRST = FILTER_NEAREST,
+ FILTER_LINEAR, FILTER_LAST = FILTER_LINEAR
+ };
+
+ enum
+ {
+ FILTER_COUNT = FILTER_LAST - FILTER_FIRST + 1,
+ FILTER_INVALID = -1
+ };
+}//namespace gli
+
+#include "filter.inl"
diff --git a/3rdparty/glm/test/external/gli/core/filter.inl b/3rdparty/glm/test/external/gli/core/filter.inl
new file mode 100644
index 00000000000..fd0ab9b005e
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/filter.inl
@@ -0,0 +1,8 @@
+#pragma once
+
+namespace gli{
+namespace detail
+{
+
+}//namespace detail
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/filter_compute.hpp b/3rdparty/glm/test/external/gli/core/filter_compute.hpp
new file mode 100644
index 00000000000..a3956e536d4
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/filter_compute.hpp
@@ -0,0 +1,390 @@
+#pragma once
+
+#include "filter.hpp"
+#include "coord.hpp"
+#include <glm/gtc/integer.hpp>
+
+namespace gli{
+namespace detail
+{
+ enum dimension
+ {
+ DIMENSION_1D,
+ DIMENSION_2D,
+ DIMENSION_3D
+ };
+
+ template <typename T>
+ struct interpolate
+ {
+ typedef float type;
+ };
+
+ template <>
+ struct interpolate<double>
+ {
+ typedef double type;
+ };
+
+ template <>
+ struct interpolate<long double>
+ {
+ typedef long double type;
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct filterBase
+ {
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+
+ typedef texel_type(*filterFunc)(
+ texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap,
+ size_type Layer, size_type Face, interpolate_type Level,
+ texel_type const & BorderColor);
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, bool is_float = true, bool support_border = true>
+ struct nearest : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_nearest<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const & BorderColor)
+ {
+ extent_type const TexelDim(Texture.extent(Level));
+ normalized_type const TexelLast(normalized_type(TexelDim) - normalized_type(1));
+
+ //extent_type const TexelCoord(SampleCoordWrap * TexelLast + interpolate_type(0.5));
+ extent_type const TexelCoord = extent_type(round(SampleCoordWrap * TexelLast));
+ typename extent_type::bool_type const UseTexelCoord = in_interval(TexelCoord, extent_type(0), TexelDim - 1);
+
+ texel_type Texel(BorderColor);
+ if(all(UseTexelCoord))
+ Texel = Fetch(Texture, TexelCoord, Layer, Face, Level);
+
+ return Texel;
+ }
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct nearest<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false> : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_nearest<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const & BorderColor)
+ {
+ normalized_type const TexelLast(normalized_type(Texture.extent(Level)) - normalized_type(1));
+ extent_type const TexelCoord(SampleCoordWrap * TexelLast + interpolate_type(0.5));
+ //extent_type const TexelCoord = extent_type(round(SampleCoordWrap * TexelLast));
+
+ return Fetch(Texture, TexelCoord, Layer, Face, Level);
+ }
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, bool is_float = true, bool support_border = true>
+ struct linear : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const& BorderColor)
+ {
+ return texel_type(0);
+ }
+ };
+
+ template <typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct linear<DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, true> : public filterBase<DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const & BorderColor)
+ {
+ coord_type const& Coord = make_coord_linear_border(Texture.extent(Level), SampleCoordWrap);
+
+ texel_type Texel0(BorderColor);
+ if(Coord.UseTexelFloor.s)
+ Texel0 = Fetch(Texture, extent_type(Coord.TexelFloor.s), Layer, Face, Level);
+
+ texel_type Texel1(BorderColor);
+ if(Coord.UseTexelCeil.s)
+ Texel1 = Fetch(Texture, extent_type(Coord.TexelCeil.s), Layer, Face, Level);
+
+ return mix(Texel0, Texel1, Coord.Blend.s);
+ }
+ };
+
+ template <typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct linear<DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false> : public filterBase<DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const & BorderColor)
+ {
+ coord_type const& Coord = make_coord_linear(Texture.extent(Level), SampleCoordWrap);
+
+ texel_type const Texel0 = Fetch(Texture, extent_type(Coord.TexelFloor.s), Layer, Face, Level);
+ texel_type const Texel1 = Fetch(Texture, extent_type(Coord.TexelCeil.s), Layer, Face, Level);
+
+ return mix(Texel0, Texel1, Coord.Blend.s);
+ }
+ };
+
+ template <typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct linear<DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, true> : public filterBase<DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const& Texture, fetch_type Fetch, normalized_type const& SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const& BorderColor)
+ {
+ coord_type const& Coord = make_coord_linear_border(Texture.extent(Level), SampleCoordWrap);
+
+ texel_type Texel00(BorderColor);
+ if(Coord.UseTexelFloor.s && Coord.UseTexelFloor.t)
+ Texel00 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t), Layer, Face, Level);
+
+ texel_type Texel10(BorderColor);
+ if(Coord.UseTexelCeil.s && Coord.UseTexelFloor.t)
+ Texel10 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t), Layer, Face, Level);
+
+ texel_type Texel11(BorderColor);
+ if(Coord.UseTexelCeil.s && Coord.UseTexelCeil.t)
+ Texel11 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t), Layer, Face, Level);
+
+ texel_type Texel01(BorderColor);
+ if(Coord.UseTexelFloor.s && Coord.UseTexelCeil.t)
+ Texel01 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t), Layer, Face, Level);
+
+ texel_type const ValueA(mix(Texel00, Texel10, Coord.Blend.s));
+ texel_type const ValueB(mix(Texel01, Texel11, Coord.Blend.s));
+ return mix(ValueA, ValueB, Coord.Blend.t);
+ }
+ };
+
+ template <typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct linear<DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false> : public filterBase<DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const& Texture, fetch_type Fetch, normalized_type const& SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const& BorderColor)
+ {
+ coord_type const& Coord = make_coord_linear(Texture.extent(Level), SampleCoordWrap);
+
+ texel_type const& Texel00 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t), Layer, Face, Level);
+ texel_type const& Texel10 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t), Layer, Face, Level);
+ texel_type const& Texel11 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t), Layer, Face, Level);
+ texel_type const& Texel01 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t), Layer, Face, Level);
+
+ texel_type const ValueA(mix(Texel00, Texel10, Coord.Blend.s));
+ texel_type const ValueB(mix(Texel01, Texel11, Coord.Blend.s));
+ return mix(ValueA, ValueB, Coord.Blend.t);
+ }
+ };
+
+ template <typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct linear<DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, true> : public filterBase<DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const& Texture, fetch_type Fetch, normalized_type const& SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const& BorderColor)
+ {
+ coord_type const& Coord = make_coord_linear_border(Texture.extent(Level), SampleCoordWrap);
+
+ texel_type Texel000(BorderColor);
+ if(Coord.UseTexelFloor.s && Coord.UseTexelFloor.t && Coord.UseTexelFloor.p)
+ Texel000 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);
+
+ texel_type Texel100(BorderColor);
+ if(Coord.UseTexelCeil.s && Coord.UseTexelFloor.t && Coord.UseTexelFloor.p)
+ Texel100 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);
+
+ texel_type Texel110(BorderColor);
+ if(Coord.UseTexelCeil.s && Coord.UseTexelCeil.t && Coord.UseTexelFloor.p)
+ Texel110 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);
+
+ texel_type Texel010(BorderColor);
+ if(Coord.UseTexelFloor.s && Coord.UseTexelCeil.t && Coord.UseTexelFloor.p)
+ Texel010 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);
+
+ texel_type Texel001(BorderColor);
+ if (Coord.UseTexelFloor.s && Coord.UseTexelFloor.t && Coord.UseTexelCeil.p)
+ Texel001 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);
+
+ texel_type Texel101(BorderColor);
+ if(Coord.UseTexelCeil.s && Coord.UseTexelFloor.t && Coord.UseTexelCeil.p)
+ Texel101 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);
+
+ texel_type Texel111(BorderColor);
+ if(Coord.UseTexelCeil.s && Coord.UseTexelCeil.t && Coord.UseTexelCeil.p)
+ Texel111 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);
+
+ texel_type Texel011(BorderColor);
+ if(Coord.UseTexelFloor.s && Coord.UseTexelCeil.t && Coord.UseTexelCeil.p)
+ Texel011 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);
+
+ texel_type const ValueA(mix(Texel000, Texel100, Coord.Blend.s));
+ texel_type const ValueB(mix(Texel010, Texel110, Coord.Blend.s));
+
+ texel_type const ValueC(mix(Texel001, Texel101, Coord.Blend.s));
+ texel_type const ValueD(mix(Texel011, Texel111, Coord.Blend.s));
+
+ texel_type const ValueE(mix(ValueA, ValueB, Coord.Blend.t));
+ texel_type const ValueF(mix(ValueC, ValueD, Coord.Blend.t));
+
+ return mix(ValueE, ValueF, Coord.Blend.p);
+ }
+ };
+
+ template <typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type>
+ struct linear<DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false> : public filterBase<DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type const & BorderColor)
+ {
+ coord_type const & Coord = make_coord_linear(Texture.extent(Level), SampleCoordWrap);
+
+ texel_type const & Texel000 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);
+ texel_type const & Texel100 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);
+ texel_type const & Texel110 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);
+ texel_type const & Texel010 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);
+ texel_type const & Texel001 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);
+ texel_type const & Texel101 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);
+ texel_type const & Texel111 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);
+ texel_type const & Texel011 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);
+
+ texel_type const ValueA(mix(Texel000, Texel100, Coord.Blend.s));
+ texel_type const ValueB(mix(Texel010, Texel110, Coord.Blend.s));
+
+ texel_type const ValueC(mix(Texel001, Texel101, Coord.Blend.s));
+ texel_type const ValueD(mix(Texel011, Texel111, Coord.Blend.s));
+
+ texel_type const ValueE(mix(ValueA, ValueB, Coord.Blend.t));
+ texel_type const ValueF(mix(ValueC, ValueD, Coord.Blend.t));
+
+ return mix(ValueE, ValueF, Coord.Blend.p);
+ }
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, bool is_float, bool support_border>
+ struct nearest_mipmap_nearest : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type const & BorderColor)
+ {
+ return nearest<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border>::call(Texture, Fetch, SampleCoordWrap, Layer, Face, glm::iround(Level), BorderColor);
+ }
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, bool is_float, bool support_border>
+ struct nearest_mipmap_linear : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type const & BorderColor)
+ {
+ texel_type const MinTexel = nearest<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border>::call(Texture, Fetch, SampleCoordWrap, Layer, Face, static_cast<size_type>(floor(Level)), BorderColor);
+ texel_type const MaxTexel = nearest<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border>::call(Texture, Fetch, SampleCoordWrap, Layer, Face, static_cast<size_type>(ceil(Level)), BorderColor);
+ return mix(MinTexel, MaxTexel, fract(Level));
+ }
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, bool is_float, bool support_border>
+ struct linear_mipmap_nearest : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type const & BorderColor)
+ {
+ return linear<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border>::call(Texture, Fetch, SampleCoordWrap, Layer, Face, glm::iround(Level), BorderColor);
+ }
+ };
+
+ template <dimension Dimension, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, bool is_float, bool support_border>
+ struct linear_mipmap_linear : public filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>
+ {
+ typedef filterBase<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type> base_type;
+ typedef typename base_type::size_type size_type;
+ typedef typename base_type::extent_type extent_type;
+ typedef coord_linear_border<extent_type, normalized_type> coord_type;
+
+ static texel_type call(texture_type const & Texture, fetch_type Fetch, normalized_type const & SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type const & BorderColor)
+ {
+ size_type const FloorLevel = static_cast<size_type>(floor(Level));
+ size_type const CeilLevel = static_cast<size_type>(ceil(Level));
+ texel_type const MinTexel = linear<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border>::call(Texture, Fetch, SampleCoordWrap, Layer, Face, FloorLevel, BorderColor);
+ texel_type const MaxTexel = linear<Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border>::call(Texture, Fetch, SampleCoordWrap, Layer, Face, CeilLevel, BorderColor);
+ return mix(MinTexel, MaxTexel, fract(Level));
+ }
+ };
+
+ template <typename filter_type, dimension Dimensions, typename texture_type, typename interpolate_type, typename normalized_type, typename fetch_type, typename texel_type, typename T>
+ inline filter_type get_filter(filter Mip, filter Min, bool Border)
+ {
+ static filter_type Table[][FILTER_COUNT][2] =
+ {
+ {
+ {
+ nearest_mipmap_nearest<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, false>::call,
+ nearest_mipmap_nearest<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, true>::call
+ },
+ {
+ linear_mipmap_nearest<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, false>::call,
+ linear_mipmap_nearest<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, true>::call
+ }
+ },
+ {
+ {
+ nearest_mipmap_linear<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, false>::call,
+ nearest_mipmap_linear<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, true>::call
+ },
+ {
+ linear_mipmap_linear<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, false>::call,
+ linear_mipmap_linear<Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits<T>::is_iec559, true>::call
+ }
+ }
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == FILTER_COUNT, "GLI ERROR: 'Table' doesn't match the number of supported filters");
+
+ GLI_ASSERT(Table[Mip - FILTER_FIRST][Min - FILTER_FIRST][Border ? 1 : 0]);
+
+ return Table[Mip - FILTER_FIRST][Min - FILTER_FIRST][Border ? 1 : 0];
+ }
+}//namespace detail
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/flip.hpp b/3rdparty/glm/test/external/gli/core/flip.hpp
new file mode 100644
index 00000000000..f2885425e99
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/flip.hpp
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <array>
+
+#include "../texture2d.hpp"
+#include "../texture2d_array.hpp"
+#include "../texture_cube.hpp"
+#include "../texture_cube_array.hpp"
+
+namespace gli
+{
+ template <typename texture>
+ texture flip(texture const & Texture);
+
+}//namespace gli
+
+#include "flip.inl"
diff --git a/3rdparty/glm/test/external/gli/core/flip.inl b/3rdparty/glm/test/external/gli/core/flip.inl
new file mode 100644
index 00000000000..d58813c72ae
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/flip.inl
@@ -0,0 +1,338 @@
+namespace gli{
+namespace detail
+{
+ inline void flip(image ImageDst, image ImageSrc, size_t BlockSize)
+ {
+ size_t const LineSize = BlockSize * ImageDst.extent().x;
+
+ for(int y = 0; y < ImageDst.extent().y; ++y)
+ {
+ size_t OffsetDst = LineSize * y;
+ size_t OffsetSrc = ImageSrc.size() - (LineSize * (y + 1));
+
+ memcpy(
+ ImageDst.data<glm::byte>() + OffsetDst,
+ ImageSrc.data<glm::byte>() + OffsetSrc,
+ LineSize);
+ }
+ }
+
+ struct dxt1_block
+ {
+ uint16_t Color0;
+ uint16_t Color1;
+ uint8_t Row0;
+ uint8_t Row1;
+ uint8_t Row2;
+ uint8_t Row3;
+ };
+
+ struct dxt3_block
+ {
+ uint16_t AlphaRow0;
+ uint16_t AlphaRow1;
+ uint16_t AlphaRow2;
+ uint16_t AlphaRow3;
+ uint16_t Color0;
+ uint16_t Color1;
+ uint8_t Row0;
+ uint8_t Row1;
+ uint8_t Row2;
+ uint8_t Row3;
+ };
+
+ struct dxt5_block
+ {
+ uint8_t Alpha0;
+ uint8_t Alpha1;
+ uint8_t AlphaR0;
+ uint8_t AlphaR1;
+ uint8_t AlphaR2;
+ uint8_t AlphaR3;
+ uint8_t AlphaR4;
+ uint8_t AlphaR5;
+ uint16_t Color0;
+ uint16_t Color1;
+ uint8_t Row0;
+ uint8_t Row1;
+ uint8_t Row2;
+ uint8_t Row3;
+ };
+
+ inline void flip_block_s3tc(uint8_t* BlockDst, uint8_t* BlockSrc, format Format, bool HeightTwo)
+ {
+ // There is no distinction between RGB and RGBA in DXT-compressed textures,
+ // it is used only to tell OpenGL how to interpret the data.
+ // Moreover, in DXT1 (which does not contain an alpha channel), transparency can be emulated
+ // using Color0 and Color1 on a per-compression-block basis.
+ // There is no difference in how textures with and without transparency are laid out in the file,
+ // so they can be flipped using the same method.
+ if(Format == FORMAT_RGB_DXT1_UNORM_BLOCK8 || Format == FORMAT_RGB_DXT1_SRGB_BLOCK8
+ || Format == FORMAT_RGBA_DXT1_UNORM_BLOCK8 || Format == FORMAT_RGBA_DXT1_SRGB_BLOCK8)
+ {
+ dxt1_block* Src = reinterpret_cast<dxt1_block*>(BlockSrc);
+ dxt1_block* Dst = reinterpret_cast<dxt1_block*>(BlockDst);
+
+ if(HeightTwo)
+ {
+ Dst->Color0 = Src->Color0;
+ Dst->Color1 = Src->Color1;
+ Dst->Row0 = Src->Row1;
+ Dst->Row1 = Src->Row0;
+ Dst->Row2 = Src->Row2;
+ Dst->Row3 = Src->Row3;
+
+ return;
+ }
+
+ Dst->Color0 = Src->Color0;
+ Dst->Color1 = Src->Color1;
+ Dst->Row0 = Src->Row3;
+ Dst->Row1 = Src->Row2;
+ Dst->Row2 = Src->Row1;
+ Dst->Row3 = Src->Row0;
+
+ return;
+ }
+
+ // DXT3
+ if(Format == FORMAT_RGBA_DXT3_UNORM_BLOCK16 || Format == FORMAT_RGBA_DXT3_SRGB_BLOCK16)
+ {
+ dxt3_block* Src = reinterpret_cast<dxt3_block*>(BlockSrc);
+ dxt3_block* Dst = reinterpret_cast<dxt3_block*>(BlockDst);
+
+ if(HeightTwo)
+ {
+ Dst->AlphaRow0 = Src->AlphaRow1;
+ Dst->AlphaRow1 = Src->AlphaRow0;
+ Dst->AlphaRow2 = Src->AlphaRow2;
+ Dst->AlphaRow3 = Src->AlphaRow3;
+ Dst->Color0 = Src->Color0;
+ Dst->Color1 = Src->Color1;
+ Dst->Row0 = Src->Row1;
+ Dst->Row1 = Src->Row0;
+ Dst->Row2 = Src->Row2;
+ Dst->Row3 = Src->Row3;
+
+ return;
+ }
+
+ Dst->AlphaRow0 = Src->AlphaRow3;
+ Dst->AlphaRow1 = Src->AlphaRow2;
+ Dst->AlphaRow2 = Src->AlphaRow1;
+ Dst->AlphaRow3 = Src->AlphaRow0;
+ Dst->Color0 = Src->Color0;
+ Dst->Color1 = Src->Color1;
+ Dst->Row0 = Src->Row3;
+ Dst->Row1 = Src->Row2;
+ Dst->Row2 = Src->Row1;
+ Dst->Row3 = Src->Row0;
+
+ return;
+ }
+
+ // DXT5
+ if(Format == FORMAT_RGBA_DXT5_UNORM_BLOCK16 || Format == FORMAT_RGBA_DXT5_SRGB_BLOCK16)
+ {
+ dxt5_block* Src = reinterpret_cast<dxt5_block*>(BlockSrc);
+ dxt5_block* Dst = reinterpret_cast<dxt5_block*>(BlockDst);
+
+ if(HeightTwo)
+ {
+ Dst->Alpha0 = Src->Alpha0;
+ Dst->Alpha1 = Src->Alpha1;
+ // operator+ has precedence over operator>> and operator<<, hence the parentheses. very important!
+ // the values below are bitmasks used to retrieve alpha values according to the DXT specification
+ // 0xF0 == 0b11110000 and 0xF == 0b1111
+ Dst->AlphaR0 = ((Src->AlphaR1 & 0xF0) >> 4) + ((Src->AlphaR2 & 0xF) << 4);
+ Dst->AlphaR1 = ((Src->AlphaR2 & 0xF0) >> 4) + ((Src->AlphaR0 & 0xF) << 4);
+ Dst->AlphaR2 = ((Src->AlphaR0 & 0xF0) >> 4) + ((Src->AlphaR1 & 0xF) << 4);
+ Dst->AlphaR3 = Src->AlphaR3;
+ Dst->AlphaR4 = Src->AlphaR4;
+ Dst->AlphaR5 = Src->AlphaR5;
+ Dst->Color0 = Src->Color0;
+ Dst->Color1 = Src->Color1;
+ Dst->Row0 = Src->Row1;
+ Dst->Row1 = Src->Row0;
+ Dst->Row2 = Src->Row2;
+ Dst->Row3 = Src->Row3;
+
+ return;
+ }
+
+ Dst->Alpha0 = Src->Alpha0;
+ Dst->Alpha1 = Src->Alpha1;
+ // operator+ has precedence over operator>> and operator<<, hence the parentheses. very important!
+ // the values below are bitmasks used to retrieve alpha values according to the DXT specification
+ // 0xF0 == 0b11110000 and 0xF == 0b1111
+ Dst->AlphaR0 = ((Src->AlphaR4 & 0xF0) >> 4) + ((Src->AlphaR5 & 0xF) << 4);
+ Dst->AlphaR1 = ((Src->AlphaR5 & 0xF0) >> 4) + ((Src->AlphaR3 & 0xF) << 4);
+ Dst->AlphaR2 = ((Src->AlphaR3 & 0xF0) >> 4) + ((Src->AlphaR4 & 0xF) << 4);
+ Dst->AlphaR3 = ((Src->AlphaR1 & 0xF0) >> 4) + ((Src->AlphaR2 & 0xF) << 4);
+ Dst->AlphaR4 = ((Src->AlphaR2 & 0xF0) >> 4) + ((Src->AlphaR0 & 0xF) << 4);
+ Dst->AlphaR5 = ((Src->AlphaR0 & 0xF0) >> 4) + ((Src->AlphaR1 & 0xF) << 4);
+ Dst->Color0 = Src->Color0;
+ Dst->Color1 = Src->Color1;
+ Dst->Row0 = Src->Row3;
+ Dst->Row1 = Src->Row2;
+ Dst->Row2 = Src->Row1;
+ Dst->Row3 = Src->Row0;
+
+ return;
+ }
+
+ // invalid format specified (unknown S3TC format?)
+ assert(false);
+ }
+
+ inline void flip_s3tc(image ImageDst, image ImageSrc, format Format)
+ {
+ if(ImageSrc.extent().y == 1)
+ {
+ memcpy(ImageDst.data(),
+ ImageSrc.data(),
+ ImageSrc.size());
+ return;
+ }
+
+ std::size_t const XBlocks = ImageSrc.extent().x <= 4 ? 1 : ImageSrc.extent().x / 4;
+ if(ImageSrc.extent().y == 2)
+ {
+ for(std::size_t i_block = 0; i_block < XBlocks; ++i_block)
+ flip_block_s3tc(ImageDst.data<uint8_t>() + i_block * block_size(Format), ImageSrc.data<uint8_t>() + i_block * block_size(Format), Format, true);
+
+ return;
+ }
+
+ std::size_t const MaxYBlock = ImageSrc.extent().y / 4 - 1;
+ for(std::size_t i_row = 0; i_row <= MaxYBlock; ++i_row)
+ for(std::size_t i_block = 0; i_block < XBlocks; ++i_block)
+ flip_block_s3tc(ImageDst.data<uint8_t>() + (MaxYBlock - i_row) * block_size(Format) * XBlocks + i_block * block_size(Format), ImageSrc.data<uint8_t>() + i_row * block_size(Format) * XBlocks + i_block * block_size(Format), Format, false);
+ }
+
+}//namespace detail
+
+/*
+template <>
+inline image flip(image const & Image)
+{
+
+}
+*/
+
+template <>
+inline texture2d flip(texture2d const& Texture)
+{
+ GLI_ASSERT(!gli::is_compressed(Texture.format()) || gli::is_s3tc_compressed(Texture.format()));
+
+ texture2d Flip(Texture.format(), Texture.extent(), Texture.levels());
+
+ if(!is_compressed(Texture.format()))
+ {
+ texture2d::size_type const BlockSize = block_size(Texture.format());
+
+ for(texture2d::size_type Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip(Flip[Level], Texture[Level], BlockSize);
+ }
+ else
+ for(texture2d::size_type Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip_s3tc(Flip[Level], Texture[Level], Texture.format());
+
+ return Flip;
+}
+
+template <>
+inline texture2d_array flip(texture2d_array const& Texture)
+{
+ GLI_ASSERT(!gli::is_compressed(Texture.format()) || gli::is_s3tc_compressed(Texture.format()));
+
+ texture2d_array Flip(Texture.format(), Texture.extent(), Texture.layers(), Texture.levels());
+
+ if(!gli::is_compressed(Texture.format()))
+ {
+ texture2d_array::size_type const BlockSize = block_size(Texture.format());
+
+ for(texture2d_array::size_type Layer = 0; Layer < Flip.layers(); ++Layer)
+ for(texture2d_array::size_type Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip(Flip[Layer][Level], Texture[Layer][Level], BlockSize);
+ }
+ else
+ for(texture2d_array::size_type Layer = 0; Layer < Flip.layers(); ++Layer)
+ for(texture2d_array::size_type Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip_s3tc(Flip[Layer][Level], Texture[Layer][Level], Texture.format());
+
+ return Flip;
+}
+
+template <>
+inline texture_cube flip(texture_cube const & Texture)
+{
+ GLI_ASSERT(!gli::is_compressed(Texture.format()) || gli::is_s3tc_compressed(Texture.format()));
+
+ texture_cube Flip(Texture.format(), Texture.extent(), Texture.levels());
+
+ if(!gli::is_compressed(Texture.format()))
+ {
+ texture_cube::size_type const BlockSize = block_size(Texture.format());
+
+ for(texture_cube::size_type Face = 0; Face < Flip.faces(); ++Face)
+ for(texture_cube::size_type Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip(Flip[Face][Level], Texture[Face][Level], BlockSize);
+ }
+ else
+ for(texture_cube::size_type Face = 0; Face < Flip.faces(); ++Face)
+ for(texture_cube::size_type Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip_s3tc(Flip[Face][Level], Texture[Face][Level], Texture.format());
+
+ return Flip;
+}
+
+template <>
+inline texture_cube_array flip(texture_cube_array const & Texture)
+{
+ assert(!is_compressed(Texture.format()) || is_s3tc_compressed(Texture.format()));
+
+ texture_cube_array Flip(Texture.format(), Texture.extent(), Texture.layers(), Texture.levels());
+
+ if(!is_compressed(Texture.format()))
+ {
+ gli::size_t const BlockSize = block_size(Texture.format());
+
+ for(std::size_t Layer = 0; Layer < Flip.layers(); ++Layer)
+ for(std::size_t Face = 0; Face < Flip.faces(); ++Face)
+ for(std::size_t Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip(Flip[Layer][Face][Level], Texture[Layer][Face][Level], BlockSize);
+ }
+ else
+ for(std::size_t Layer = 0; Layer < Flip.layers(); ++Layer)
+ for(std::size_t Face = 0; Face < Flip.faces(); ++Face)
+ for(std::size_t Level = 0; Level < Flip.levels(); ++Level)
+ detail::flip_s3tc(Flip[Layer][Face][Level], Texture[Layer][Face][Level], Texture.format());
+
+ return Flip;
+}
+
+template <>
+inline texture flip(texture const & Texture)
+{
+ switch(Texture.target())
+ {
+ case TARGET_2D:
+ return flip(texture2d(Texture));
+
+ case TARGET_2D_ARRAY:
+ return flip(texture2d_array(Texture));
+
+ case TARGET_CUBE:
+ return flip(texture_cube(Texture));
+
+ case TARGET_CUBE_ARRAY:
+ return flip(texture_cube_array(Texture));
+
+ default:
+ assert(false && "Texture target does not support flipping.");
+ return Texture;
+ }
+}
+
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/format.inl b/3rdparty/glm/test/external/gli/core/format.inl
new file mode 100644
index 00000000000..1a77f14dfbf
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/format.inl
@@ -0,0 +1,376 @@
+namespace gli{
+namespace detail
+{
+ enum
+ {
+ CAP_COMPRESSED_BIT = (1 << 0),
+ CAP_COLORSPACE_SRGB_BIT = (1 << 1),
+ CAP_NORMALIZED_BIT = (1 << 2),
+ CAP_SCALED_BIT = (1 << 3),
+ CAP_UNSIGNED_BIT = (1 << 4),
+ CAP_SIGNED_BIT = (1 << 5),
+ CAP_INTEGER_BIT = (1 << 6),
+ CAP_FLOAT_BIT = (1 << 7),
+ CAP_DEPTH_BIT = (1 << 8),
+ CAP_STENCIL_BIT = (1 << 9),
+ CAP_SWIZZLE_BIT = (1 << 10),
+ CAP_LUMINANCE_ALPHA_BIT = (1 << 11),
+ CAP_PACKED8_BIT = (1 << 12),
+ CAP_PACKED16_BIT = (1 << 13),
+ CAP_PACKED32_BIT = (1 << 14),
+ CAP_DDS_GLI_EXT_BIT = (1 << 15)
+ };
+
+ struct formatInfo
+ {
+ std::uint8_t BlockSize;
+ glm::u8vec3 BlockExtent;
+ std::uint8_t Component;
+ swizzles Swizzles;
+ std::uint16_t Flags;
+ };
+
+ inline formatInfo const & get_format_info(format Format)
+ {
+ GLI_ASSERT(Format >= FORMAT_FIRST && Format <= FORMAT_LAST);
+
+ static formatInfo const Table[] =
+ {
+ { 1, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_PACKED8_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R4G4_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA4_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_BGRA4_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R5G6B5_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_B5G6R5_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB5A1_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_BGR5A1_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_ALPHA, SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE), CAP_PACKED16_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_A1RGB5_UNORM,
+
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_R8_UNORM,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_R8_SNORM,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R8_USCALED,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R8_SSCALED,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_R8_UINT,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_R8_SINT,
+ { 1, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R8_SRGB,
+
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RG8_UNORM,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_RG8_SNORM,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG8_USCALED,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG8_SSCALED,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RG8_UINT,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RG8_SINT,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG8_SRGB,
+
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_UNORM,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_SNORM,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_USCALED,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_SSCALED,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_UINT,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_SINT,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB8_SRGB,
+
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_UNORM,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_SNORM,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_USCALED,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_SSCALED,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_UINT,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_SINT,
+ { 3, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR8_SRGB,
+
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA8_UNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA8_SNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_USCALED,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_SSCALED,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA8_UINT,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA8_SINT,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_COLORSPACE_SRGB_BIT}, //FORMAT_RGBA8_SRGB,
+
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT}, //FORMAT_BGRA8_UNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGRA8_SNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGRA8_USCALED,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGRA8_SSCALED,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGRA8_UINT,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGRA8_SINT,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_SWIZZLE_BIT}, //FORMAT_BGRA8_SRGB,
+
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_UNORM_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_SNORM_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_USCALED_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_SSCALED_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_UINT_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_SINT_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_SWIZZLE_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA8_SRGB_PACK32,
+
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_PACKED32_BIT}, //FORMAT_RGB10A2_UNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB10A2_SNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB10A2_USCALE,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB10A2_SSCALE,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_PACKED32_BIT}, //FORMAT_RGB10A2_UINT,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_PACKED32_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB10A2_SINT,
+
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_PACKED32_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR10A2_UNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_PACKED32_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR10A2_SNORM,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_PACKED32_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR10A2_USCALE,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_PACKED32_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR10A2_SSCALE,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_PACKED32_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR10A2_UINT,
+ { 4, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_PACKED32_BIT | CAP_SWIZZLE_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_BGR10A2_SINT,
+
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_R16_UNORM_PACK16,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_R16_SNORM_PACK16,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R16_USCALE,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R16_SSCALE,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_R16_UINT_PACK16,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_R16_SINT_PACK16,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_R16_SFLOAT_PACK16,
+
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RG16_UNORM_PACK16,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_RG16_SNORM_PACK16,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG16_USCALE,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG16_SSCALE,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RG16_UINT_PACK16,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RG16_SINT_PACK16,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RG16_SFLOAT_PACK16,
+
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_UNORM_PACK16,
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_SNORM_PACK16,
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_USCALE,
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_SSCALE,
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_UINT_PACK16,
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_SINT_PACK16,
+ { 6, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB16_SFLOAT_PACK16,
+
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA16_UNORM_PACK16,
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA16_SNORM_PACK16,
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA16_USCALE,
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_SCALED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA16_SSCALE,
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA16_UINT_PACK16,
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA16_SINT_PACK16,
+ { 8, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA16_SFLOAT_PACK16,
+
+ { 4, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_R32_UINT_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_R32_SINT_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_R32_SFLOAT_PACK32,
+
+ { 8, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RG32_UINT_PACK32,
+ { 8, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RG32_SINT_PACK32,
+ { 8, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RG32_SFLOAT_PACK32,
+
+ { 12, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGB32_UINT_PACK32,
+ { 12, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RGB32_SINT_PACK32,
+ { 12, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RGB32_SFLOAT_PACK32,
+
+ { 16, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA32_UINT_PACK32,
+ { 16, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA32_SINT_PACK32,
+ { 16, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RGBA32_SFLOAT_PACK32,
+
+ { 8, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R64_UINT_PACK64,
+ { 8, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R64_SINT_PACK64,
+ { 8, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R64_SFLOAT_PACK64,
+
+ { 16, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG64_UINT_PACK64,
+ { 16, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG64_SINT_PACK64,
+ { 16, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG64_SFLOAT_PACK64,
+
+ { 24, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB64_UINT_PACK64,
+ { 24, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB64_SINT_PACK64,
+ { 24, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_FLOAT_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB64_SFLOAT_PACK64,
+
+ { 32, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA64_UINT_PACK64,
+ { 32, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_INTEGER_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA64_SINT_PACK64,
+ { 32, glm::u8vec3(1, 1, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_FLOAT_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA64_SFLOAT_PACK64,
+
+ { 4, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_PACKED32_BIT | CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RG11B10_UFLOAT_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_PACKED32_BIT | CAP_FLOAT_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGB9E5_UFLOAT_PACK32,
+
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_INTEGER_BIT}, //FORMAT_D16_UNORM_PACK16,
+ { 4, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_INTEGER_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_D24_UNORM_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_FLOAT_BIT}, //FORMAT_D32_UFLOAT_PACK32,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_STENCIL_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_S8_UNORM_PACK8,
+ { 3, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_INTEGER_BIT | CAP_STENCIL_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_D16_UNORM_S8_UINT_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_INTEGER_BIT | CAP_STENCIL_BIT}, //FORMAT_D24_UNORM_S8_UINT_PACK32,
+ { 5, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_DEPTH_BIT | CAP_FLOAT_BIT | CAP_STENCIL_BIT}, //FORMAT_D32_SFLOAT_S8_UINT_PACK64,
+
+ { 8, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_DXT1_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_DXT1_SRGB_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_DXT1_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_DXT1_SRGB_BLOCK8,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_DXT3_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_DXT3_SRGB_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_DXT5_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_DXT5_SRGB_BLOCK16,
+ { 8, glm::u8vec3(4, 4, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_R_ATI1N_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_R_ATI1N_SNORM_BLOCK8,
+ { 16, glm::u8vec3(4, 4, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RG_ATI2N_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_SIGNED_BIT}, //FORMAT_RG_ATI2N_SNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_FLOAT_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGB_BP_UFLOAT_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_FLOAT_BIT | CAP_SIGNED_BIT}, //FORMAT_RGB_BP_SFLOAT_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_BP_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_BP_SRGB_BLOCK16,
+
+ { 8, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_ETC2_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_ETC2_SRGB_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_ETC2_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_ETC2_SRGB_BLOCK8,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_ETC2_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_ETC2_SRGB_BLOCK16,
+ { 8, glm::u8vec3(4, 4, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R_EAC_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_R_EAC_SNORM_BLOCK8,
+ { 16, glm::u8vec3(4, 4, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG_EAC_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_SIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG_EAC_SNORM_BLOCK16,
+
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_4X4_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_4X4_SRGB_BLOCK16,
+ { 16, glm::u8vec3(5, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_5X4_UNORM_BLOCK16,
+ { 16, glm::u8vec3(5, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_5X4_SRGB_BLOCK16,
+ { 16, glm::u8vec3(5, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_5X5_UNORM_BLOCK16,
+ { 16, glm::u8vec3(5, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_5X5_SRGB_BLOCK16,
+ { 16, glm::u8vec3(6, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_6X5_UNORM_BLOCK16,
+ { 16, glm::u8vec3(6, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_6X5_SRGB_BLOCK16,
+ { 16, glm::u8vec3(6, 6, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_6X6_UNORM_BLOCK16,
+ { 16, glm::u8vec3(6, 6, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_6X6_SRGB_BLOCK16,
+ { 16, glm::u8vec3(8, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_8X5_UNORM_BLOCK16,
+ { 16, glm::u8vec3(8, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_8X5_SRGB_BLOCK16,
+ { 16, glm::u8vec3(8, 6, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_8X6_UNORM_BLOCK16,
+ { 16, glm::u8vec3(8, 6, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_8X6_SRGB_BLOCK16,
+ { 16, glm::u8vec3(8, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_8X8_UNORM_BLOCK16,
+ { 16, glm::u8vec3(8, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_8X8_SRGB_BLOCK16,
+ { 16, glm::u8vec3(10, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X5_UNORM_BLOCK16,
+ { 16, glm::u8vec3(10, 5, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X5_SRGB_BLOCK16,
+ { 16, glm::u8vec3(10, 6, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X6_UNORM_BLOCK16,
+ { 16, glm::u8vec3(10, 6, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X6_SRGB_BLOCK16,
+ { 16, glm::u8vec3(10, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X8_UNORM_BLOCK16,
+ { 16, glm::u8vec3(10, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X8_SRGB_BLOCK16,
+ { 16, glm::u8vec3(10, 10, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X10_UNORM_BLOCK16,
+ { 16, glm::u8vec3(10, 10, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_10X10_SRGB_BLOCK16,
+ { 16, glm::u8vec3(12, 10, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_12X10_UNORM_BLOCK16,
+ { 16, glm::u8vec3(12, 10, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_12X10_SRGB_BLOCK16,
+ { 16, glm::u8vec3(12, 12, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_12X12_UNORM_BLOCK16,
+ { 16, glm::u8vec3(12, 12, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT}, //FORMAT_RGBA_ASTC_12X12_SRGB_BLOCK16,
+
+ { 32, glm::u8vec3(8, 8, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32,
+ { 32, glm::u8vec3(8, 8, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32,
+ { 32, glm::u8vec3(16, 8, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32,
+ { 32, glm::u8vec3(16, 8, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32,
+ { 32, glm::u8vec3(8, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32,
+ { 32, glm::u8vec3(8, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32,
+ { 32, glm::u8vec3(16, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32,
+ { 32, glm::u8vec3(16, 8, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32,
+ { 8, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC2_4X4_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC2_4X4_SRGB_BLOCK8,
+ { 8, glm::u8vec3(8, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC2_8X4_UNORM_BLOCK8,
+ { 8, glm::u8vec3(8, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_COLORSPACE_SRGB_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_PVRTC2_8X4_SRGB_BLOCK8,
+
+ { 8, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_ETC_UNORM_BLOCK8,
+ { 8, glm::u8vec3(4, 4, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGB_ATC_UNORM_BLOCK8,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_ATCA_UNORM_BLOCK16,
+ { 16, glm::u8vec3(4, 4, 1), 4, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA), CAP_COMPRESSED_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RGBA_ATCI_UNORM_BLOCK16,
+
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_LUMINANCE_ALPHA_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_L8_UNORM_PACK8,
+ { 1, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_RED), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_LUMINANCE_ALPHA_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_A8_UNORM_PACK8,
+ { 2, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_GREEN), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_LUMINANCE_ALPHA_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_LA8_UNORM_PACK8,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_LUMINANCE_ALPHA_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_L16_UNORM_PACK16,
+ { 2, glm::u8vec3(1, 1, 1), 1, swizzles(SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_ZERO, SWIZZLE_RED), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_LUMINANCE_ALPHA_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_A16_UNORM_PACK16,
+ { 4, glm::u8vec3(1, 1, 1), 2, swizzles(SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_RED, SWIZZLE_GREEN), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_LUMINANCE_ALPHA_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_LA16_UNORM_PACK16,
+
+ { 4, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT}, //FORMAT_BGR8_UNORM_PACK32,
+ { 4, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_BLUE, SWIZZLE_GREEN, SWIZZLE_RED, SWIZZLE_ONE), CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_SWIZZLE_BIT | CAP_COLORSPACE_SRGB_BIT}, //FORMAT_BGR8_SRGB_PACK32,
+
+ { 1, glm::u8vec3(1, 1, 1), 3, swizzles(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ONE), CAP_PACKED8_BIT | CAP_NORMALIZED_BIT | CAP_UNSIGNED_BIT | CAP_DDS_GLI_EXT_BIT}, //FORMAT_RG3B2_UNORM_PACK8,
+ };
+
+ GLM_STATIC_ASSERT(sizeof(Table) / sizeof(Table[0]) == FORMAT_COUNT, "GLI error: format descriptor list doesn't match number of supported formats");
+ GLI_ASSERT(Format != static_cast<format>(FORMAT_INVALID));
+
+ return Table[Format - FORMAT_FIRST];
+ };
+
+ inline std::uint32_t bits_per_pixel(format Format)
+ {
+ detail::formatInfo const & Info = detail::get_format_info(Format);
+
+ return Info.BlockSize * 8 / (Info.BlockExtent.x * Info.BlockExtent.y * Info.BlockExtent.z);
+ }
+}//namespace detail
+
+ inline bool is_compressed(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_COMPRESSED_BIT ? true : false;
+ }
+
+ inline bool is_s3tc_compressed(format Format)
+ {
+ return Format >= FORMAT_RGB_DXT1_UNORM_BLOCK8 && Format <= FORMAT_RGBA_DXT5_SRGB_BLOCK16;
+ }
+
+ inline bool is_srgb(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_COLORSPACE_SRGB_BIT ? true : false;
+ }
+
+ inline size_t block_size(format Format)
+ {
+ return detail::get_format_info(Format).BlockSize;
+ }
+
+ inline ivec3 block_extent(format Format)
+ {
+ return gli::ivec3(detail::get_format_info(Format).BlockExtent);
+ }
+
+ inline size_t component_count(format Format)
+ {
+ return detail::get_format_info(Format).Component;
+ }
+
+ inline bool is_unsigned(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_UNSIGNED_BIT ? true : false;
+ }
+
+ inline bool is_signed(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_SIGNED_BIT ? true : false;
+ }
+
+ inline bool is_integer(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_INTEGER_BIT ? true : false;
+ }
+
+ inline bool is_signed_integer(format Format)
+ {
+ return is_integer(Format) && is_signed(Format);
+ }
+
+ inline bool is_unsigned_integer(format Format)
+ {
+ return is_integer(Format) && is_unsigned(Format);
+ }
+
+ inline bool is_float(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_FLOAT_BIT ? true : false;
+ }
+
+ inline bool is_normalized(format Format)
+ {
+ return detail::get_format_info(Format).Flags & detail::CAP_NORMALIZED_BIT ? true : false;
+ }
+
+ inline bool is_unorm(format Format)
+ {
+ return is_normalized(Format) && is_unsigned(Format);
+ }
+
+ inline bool is_snorm(format Format)
+ {
+ return is_normalized(Format) && is_signed(Format);
+ }
+
+ inline bool is_packed(format Format)
+ {
+ uint16_t flags = detail::get_format_info(Format).Flags;
+
+ return (flags & detail::CAP_PACKED8_BIT) != 0 || (flags & detail::CAP_PACKED16_BIT) != 0 || (flags & detail::CAP_PACKED32_BIT) != 0;
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/generate_mipmaps.hpp b/3rdparty/glm/test/external/gli/core/generate_mipmaps.hpp
deleted file mode 100644
index 43409360de6..00000000000
--- a/3rdparty/glm/test/external/gli/core/generate_mipmaps.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-27
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/core/generate_mipmaps.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GENERATE_MIPMAPS_INCLUDED
-#define GLI_GENERATE_MIPMAPS_INCLUDED
-
-#include "texture2d.hpp"
-
-namespace gli
-{
- texture2D generateMipmaps(
- texture2D const & Texture,
- texture2D::level_type const & BaseLevel);
-
-}//namespace gli
-
-#include "generate_mipmaps.inl"
-
-#endif//GLI_GENERATE_MIPMAPS_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/generate_mipmaps.inl b/3rdparty/glm/test/external/gli/core/generate_mipmaps.inl
index bbc6e4c460f..e91dca220a8 100644
--- a/3rdparty/glm/test/external/gli/core/generate_mipmaps.inl
+++ b/3rdparty/glm/test/external/gli/core/generate_mipmaps.inl
@@ -1,69 +1,127 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-27
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/core/generate_mipmaps.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
+#include "../sampler1d.hpp"
+#include "../sampler1d_array.hpp"
+#include "../sampler2d.hpp"
+#include "../sampler2d_array.hpp"
+#include "../sampler3d.hpp"
+#include "../sampler_cube.hpp"
+#include "../sampler_cube_array.hpp"
namespace gli
{
-/*
- inline texture2D generateMipmaps
- (
- texture2D const & Image,
- texture2D::level_type const & BaseLevel
- )
+ inline texture1d generate_mipmaps(
+ texture1d const& Texture,
+ texture1d::size_type BaseLevel, texture1d::size_type MaxLevel,
+ filter Minification)
{
- assert(BaseLevel < Image.levels());
- texture2D::format_type Format = Image[BaseLevel].format();
+ fsampler1D Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- assert(Format == R8U || Format == RG8U || Format == RGB8U || Format == RGBA8U);
- texture2D::level_type Levels = std::size_t(glm::log2(float(glm::compMax(Image[0].dimensions())))) + 1;
+ inline texture1d_array generate_mipmaps(
+ texture1d_array const& Texture,
+ texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,
+ texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel,
+ filter Minification)
+ {
+ fsampler1DArray Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseLayer, MaxLayer, BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- texture2D Result(Levels);
- for(texture2D::level_type Level = 0; Level <= BaseLevel; ++Level)
- Result[Level] = detail::duplicate(Image[Level]);
+ inline texture2d generate_mipmaps(
+ texture2d const& Texture,
+ texture2d::size_type BaseLevel, texture2d::size_type MaxLevel,
+ filter Minification)
+ {
+ fsampler2D Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- for(texture2D::level_type Level = BaseLevel; Level < Levels - 1; ++Level)
- {
- std::size_t BaseWidth = Result[Level + 0].dimensions().x;
- texture2D::value_type * DataSrc = Result[Level + 0].data();
+ inline texture2d_array generate_mipmaps(
+ texture2d_array const& Texture,
+ texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,
+ texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel,
+ filter Minification)
+ {
+ fsampler2DArray Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseLayer, MaxLayer, BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- texture2D::dimensions_type LevelDimensions = Result[Level + 0].dimensions() >> texture2D::dimensions_type(1);
- LevelDimensions = glm::max(LevelDimensions, texture2D::dimensions_type(1));
- texture2D::size_type Components = Result[Level + 0].components();
+ inline texture3d generate_mipmaps(
+ texture3d const& Texture,
+ texture3d::size_type BaseLevel, texture3d::size_type MaxLevel,
+ filter Minification)
+ {
+ fsampler3D Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- texture2D::data_type DataDst(glm::compMul(LevelDimensions) * Components);
+ inline texture_cube generate_mipmaps(
+ texture_cube const& Texture,
+ texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,
+ texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel,
+ filter Minification)
+ {
+ fsamplerCube Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseFace, MaxFace, BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- for(std::size_t j = 0; j < LevelDimensions.y; ++j)
- for(std::size_t i = 0; i < LevelDimensions.x; ++i)
- for(std::size_t c = 0; c < Components; ++c)
- {
- std::size_t x = (i << 1);
- std::size_t y = (j << 1);
+ inline texture_cube_array generate_mipmaps(
+ texture_cube_array const& Texture,
+ texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,
+ texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,
+ texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel,
+ filter Minification)
+ {
+ fsamplerCubeArray Sampler(Texture, WRAP_CLAMP_TO_EDGE);
+ Sampler.generate_mipmaps(BaseLayer, MaxLayer, BaseFace, MaxFace, BaseLevel, MaxLevel, Minification);
+ return Sampler();
+ }
- std::size_t Index00 = ((x + 0) + (y + 0) * BaseWidth) * Components + c;
- std::size_t Index01 = ((x + 0) + (y + 1) * BaseWidth) * Components + c;
- std::size_t Index11 = ((x + 1) + (y + 1) * BaseWidth) * Components + c;
- std::size_t Index10 = ((x + 1) + (y + 0) * BaseWidth) * Components + c;
+ template <>
+ inline texture1d generate_mipmaps<texture1d>(texture1d const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_level(), Texture.max_level(), Minification);
+ }
- glm::u32 Data00 = reinterpret_cast<texture2D::value_type*>(DataSrc)[Index00];
- glm::u32 Data01 = reinterpret_cast<texture2D::value_type*>(DataSrc)[Index01];
- glm::u32 Data11 = reinterpret_cast<texture2D::value_type*>(DataSrc)[Index11];
- glm::u32 Data10 = reinterpret_cast<texture2D::value_type*>(DataSrc)[Index10];
+ template <>
+ inline texture1d_array generate_mipmaps<texture1d_array>(texture1d_array const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_layer(), Texture.max_layer(), Texture.base_level(), Texture.max_level(), Minification);
+ }
- texture2D::value_type Result = (Data00 + Data01 + Data11 + Data10) >> 2;
- texture2D::value_type * Data = reinterpret_cast<texture2D::value_type*>(DataDst.data());
+ template <>
+ inline texture2d generate_mipmaps<texture2d>(texture2d const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_level(), Texture.max_level(), Minification);
+ }
- *(Data + ((i + j * LevelDimensions.x) * Components + c)) = Result;
- }
+ template <>
+ inline texture2d_array generate_mipmaps<texture2d_array>(texture2d_array const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_layer(), Texture.max_layer(), Texture.base_level(), Texture.max_level(), Minification);
+ }
- Result[Level + 1] = image2D(LevelDimensions, Format, DataDst);
- }
+ template <>
+ inline texture3d generate_mipmaps<texture3d>(texture3d const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_level(), Texture.max_level(), Minification);
+ }
+
+ template <>
+ inline texture_cube generate_mipmaps<texture_cube>(texture_cube const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_face(), Texture.max_face(), Texture.base_level(), Texture.max_level(), Minification);
+ }
- return Result;
+ template <>
+ inline texture_cube_array generate_mipmaps<texture_cube_array>(texture_cube_array const& Texture, filter Minification)
+ {
+ return generate_mipmaps(Texture, Texture.base_layer(), Texture.max_layer(), Texture.base_face(), Texture.max_face(), Texture.base_level(), Texture.max_level(), Minification);
}
-*/
}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/gl.inl b/3rdparty/glm/test/external/gli/core/gl.inl
new file mode 100644
index 00000000000..779ade579c9
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/gl.inl
@@ -0,0 +1,366 @@
+#include <algorithm>
+
+namespace gli{
+namespace detail
+{
+ inline gl::swizzles translate(gli::swizzles const& Swizzles)
+ {
+ static gl::swizzle const Table[] =
+ {
+ gl::SWIZZLE_RED,
+ gl::SWIZZLE_GREEN,
+ gl::SWIZZLE_BLUE,
+ gl::SWIZZLE_ALPHA,
+ gl::SWIZZLE_ZERO,
+ gl::SWIZZLE_ONE
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == SWIZZLE_COUNT, "GLI error: swizzle descriptor list doesn't match number of supported swizzles");
+
+ return gl::swizzles(Table[Swizzles.r], Table[Swizzles.g], Table[Swizzles.b], Table[Swizzles.a]);
+ }
+
+ enum format_property
+ {
+ FORMAT_PROPERTY_BGRA_FORMAT_BIT = (1 << 0),
+ FORMAT_PROPERTY_BGRA_TYPE_BIT = (1 << 1)
+ };
+}//namespace detail
+
+ inline gl::gl(profile Profile)
+ : Profile(Profile)
+ {
+ bool const HasSwizzle = has_swizzle(Profile);
+ external_format const ExternalBGR = HasSwizzle ? EXTERNAL_RGB : EXTERNAL_BGR;
+ external_format const ExternalBGRA = HasSwizzle ? EXTERNAL_RGBA : EXTERNAL_BGRA;
+ external_format const ExternalBGRInt = HasSwizzle ? EXTERNAL_RGB_INTEGER : EXTERNAL_BGR_INTEGER;
+ external_format const ExternalBGRAInt = HasSwizzle ? EXTERNAL_RGBA_INTEGER : EXTERNAL_BGRA_INTEGER;
+
+ external_format const ExternalSRGB8 = Profile != PROFILE_ES20 ? EXTERNAL_RGB : EXTERNAL_SRGB_EXT;
+ external_format const ExternalSRGB8_A8 = Profile != PROFILE_ES20 ? EXTERNAL_RGBA : EXTERNAL_SRGB_ALPHA_EXT;
+
+ internal_format const InternalBGRA = Profile == PROFILE_ES20 ? INTERNAL_BGRA8_UNORM : INTERNAL_RGBA8_UNORM;
+ internal_format const InternalRGBETC = Profile == PROFILE_ES20 ? INTERNAL_RGB_ETC : INTERNAL_RGB_ETC2;
+
+ internal_format const InternalLuminance8 = HasSwizzle ? INTERNAL_R8_UNORM : INTERNAL_LUMINANCE8;
+ internal_format const InternalAlpha8 = HasSwizzle ? INTERNAL_R8_UNORM : INTERNAL_ALPHA8;
+ internal_format const InternalLuminanceAlpha8 = HasSwizzle ? INTERNAL_RG8_UNORM : INTERNAL_LUMINANCE8_ALPHA8;
+
+ internal_format const InternalLuminance16 = HasSwizzle ? INTERNAL_R16_UNORM : INTERNAL_LUMINANCE16;
+ internal_format const InternalAlpha16 = HasSwizzle ? INTERNAL_R16_UNORM : INTERNAL_ALPHA16;
+ internal_format const InternalLuminanceAlpha16 = HasSwizzle ? INTERNAL_RG16_UNORM : INTERNAL_LUMINANCE16_ALPHA16;
+
+ external_format const ExternalLuminance = HasSwizzle ? EXTERNAL_RED : EXTERNAL_LUMINANCE;
+ external_format const ExternalAlpha = HasSwizzle ? EXTERNAL_RED : EXTERNAL_ALPHA;
+ external_format const ExternalLuminanceAlpha = HasSwizzle ? EXTERNAL_RG : EXTERNAL_LUMINANCE_ALPHA;
+
+ type_format const TypeF16 = Profile == PROFILE_ES20 ? TYPE_F16_OES : TYPE_F16;
+
+ format_desc const Table[] =
+ {
+ {INTERNAL_RG4_EXT, EXTERNAL_RG, TYPE_UINT8_RG4_REV_GTC, 0}, //FORMAT_R4G4_UNORM,
+ {INTERNAL_RGBA4, EXTERNAL_RGBA, TYPE_UINT16_RGBA4_REV, 0}, //FORMAT_RGBA4_UNORM,
+ {INTERNAL_RGBA4, EXTERNAL_RGBA, TYPE_UINT16_RGBA4, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGRA4_UNORM,
+ {INTERNAL_R5G6B5, EXTERNAL_RGB, TYPE_UINT16_R5G6B5_REV, 0}, //FORMAT_R5G6B5_UNORM,
+ {INTERNAL_R5G6B5, EXTERNAL_RGB, TYPE_UINT16_R5G6B5, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_B5G6R5_UNORM,
+ {INTERNAL_RGB5A1, EXTERNAL_RGBA, TYPE_UINT16_RGB5A1_REV, 0}, //FORMAT_RGB5A1_UNORM,
+ {INTERNAL_RGB5A1, EXTERNAL_RGBA, TYPE_UINT16_RGB5A1, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR5A1_UNORM,
+ {INTERNAL_RGB5A1, EXTERNAL_RGBA, TYPE_UINT16_A1RGB5_GTC, 0}, //FORMAT_A1RGB5_UNORM,
+
+ {INTERNAL_R8_UNORM, EXTERNAL_RED, TYPE_U8, 0}, //FORMAT_R8_UNORM,
+ {INTERNAL_R8_SNORM, EXTERNAL_RED, TYPE_I8, 0}, //FORMAT_R8_SNORM,
+ {INTERNAL_R8_USCALED_GTC, EXTERNAL_RED, TYPE_U8, 0}, //FORMAT_R8_USCALED,
+ {INTERNAL_R8_SSCALED_GTC, EXTERNAL_RED, TYPE_I8, 0}, //FORMAT_R8_SSCALED,
+ {INTERNAL_R8U, EXTERNAL_RED_INTEGER, TYPE_U8, 0}, //FORMAT_R8_UINT,
+ {INTERNAL_R8I, EXTERNAL_RED_INTEGER, TYPE_I8, 0}, //FORMAT_R8_SINT,
+ {INTERNAL_SR8, EXTERNAL_RED, TYPE_U8, 0}, //FORMAT_R8_SRGB,
+
+ {INTERNAL_RG8_UNORM, EXTERNAL_RG, TYPE_U8, 0}, //FORMAT_RG8_UNORM,
+ {INTERNAL_RG8_SNORM, EXTERNAL_RG, TYPE_I8, 0}, //FORMAT_RG8_SNORM,
+ {INTERNAL_RG8_USCALED_GTC, EXTERNAL_RG, TYPE_U8, 0}, //FORMAT_RG8_USCALED,
+ {INTERNAL_RG8_SSCALED_GTC, EXTERNAL_RG, TYPE_I8, 0}, //FORMAT_RG8_SSCALED,
+ {INTERNAL_RG8U, EXTERNAL_RG_INTEGER, TYPE_U8, 0}, //FORMAT_RG8_UINT,
+ {INTERNAL_RG8I, EXTERNAL_RG_INTEGER, TYPE_I8, 0}, //FORMAT_RG8_SINT,
+ {INTERNAL_SRG8, EXTERNAL_RG, TYPE_U8, 0}, //FORMAT_RG8_SRGB,
+
+ {INTERNAL_RGB8_UNORM, EXTERNAL_RGB, TYPE_U8, 0}, //FORMAT_RGB8_UNORM,
+ {INTERNAL_RGB8_SNORM, EXTERNAL_RGB, TYPE_I8, 0}, //FORMAT_RGB8_SNORM,
+ {INTERNAL_RGB8_USCALED_GTC, EXTERNAL_RGB, TYPE_U8, 0}, //FORMAT_RGB8_USCALED,
+ {INTERNAL_RGB8_SSCALED_GTC, EXTERNAL_RGB, TYPE_I8, 0}, //FORMAT_RGB8_SSCALED,
+ {INTERNAL_RGB8U, EXTERNAL_RGB_INTEGER, TYPE_U8, 0}, //FORMAT_RGB8_UINT,
+ {INTERNAL_RGB8I, EXTERNAL_RGB_INTEGER, TYPE_I8, 0}, //FORMAT_RGB8_SINT,
+ {INTERNAL_SRGB8, ExternalSRGB8, TYPE_U8, 0}, //FORMAT_RGB8_SRGB,
+
+ {INTERNAL_RGB8_UNORM, ExternalBGR, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_UNORM_PACK8,
+ {INTERNAL_RGB8_SNORM, ExternalBGR, TYPE_I8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_SNORM_PACK8,
+ {INTERNAL_RGB8_USCALED_GTC, ExternalBGR, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_USCALED_PACK8,
+ {INTERNAL_RGB8_SSCALED_GTC, ExternalBGR, TYPE_I8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_SSCALED_PACK8,
+ {INTERNAL_RGB8U, ExternalBGRInt, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_UINT_PACK8,
+ {INTERNAL_RGB8I, ExternalBGRInt, TYPE_I8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_SINT_PACK8,
+ {INTERNAL_SRGB8, ExternalBGR, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGR8_SRGB_PACK8,
+
+ {INTERNAL_RGBA8_UNORM, EXTERNAL_RGBA, TYPE_U8, 0}, //FORMAT_RGBA8_UNORM_PACK8,
+ {INTERNAL_RGBA8_SNORM, EXTERNAL_RGBA, TYPE_I8, 0}, //FORMAT_RGBA8_SNORM_PACK8,
+ {INTERNAL_RGBA8_USCALED_GTC, EXTERNAL_RGBA, TYPE_U8, 0}, //FORMAT_RGBA8_USCALED_PACK8,
+ {INTERNAL_RGBA8_SSCALED_GTC, EXTERNAL_RGBA, TYPE_I8, 0}, //FORMAT_RGBA8_SSCALED_PACK8,
+ {INTERNAL_RGBA8U, EXTERNAL_RGBA_INTEGER, TYPE_U8, 0}, //FORMAT_RGBA8_UINT_PACK8,
+ {INTERNAL_RGBA8I, EXTERNAL_RGBA_INTEGER, TYPE_I8, 0}, //FORMAT_RGBA8_SINT_PACK8,
+ {INTERNAL_SRGB8_ALPHA8, ExternalSRGB8_A8, TYPE_U8, 0}, //FORMAT_RGBA8_SRGB_PACK8,
+
+ {InternalBGRA, ExternalBGRA, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_UNORM_PACK8,
+ {INTERNAL_RGBA8_SNORM, ExternalBGRA, TYPE_I8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_SNORM_PACK8,
+ {INTERNAL_RGBA8_USCALED_GTC, ExternalBGRA, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_USCALED_PACK8,
+ {INTERNAL_RGBA8_SSCALED_GTC, ExternalBGRA, TYPE_I8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_SSCALED_PACK8,
+ {INTERNAL_RGBA8U, ExternalBGRAInt, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_UINT_PACK8,
+ {INTERNAL_RGBA8I, ExternalBGRAInt, TYPE_I8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_SINT_PACK8,
+ {INTERNAL_SRGB8_ALPHA8, ExternalBGRA, TYPE_U8, detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT}, //FORMAT_BGRA8_SRGB_PACK8,
+
+ {INTERNAL_RGBA8_UNORM, EXTERNAL_RGBA, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_UNORM_PACK32,
+ {INTERNAL_RGBA8_SNORM, EXTERNAL_RGBA, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_SNORM_PACK32,
+ {INTERNAL_RGBA8_USCALED_GTC, EXTERNAL_RGBA, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_USCALED_PACK32,
+ {INTERNAL_RGBA8_SSCALED_GTC, EXTERNAL_RGBA, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_SSCALED_PACK32,
+ {INTERNAL_RGBA8U, EXTERNAL_RGBA_INTEGER, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_UINT_PACK32,
+ {INTERNAL_RGBA8I, EXTERNAL_RGBA_INTEGER, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_SINT_PACK32,
+ {INTERNAL_SRGB8_ALPHA8, EXTERNAL_RGBA, TYPE_UINT32_RGBA8_REV, 0}, //FORMAT_ABGR8_SRGB_PACK32,
+
+ {INTERNAL_RGB10A2_UNORM, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2_REV, 0}, //FORMAT_RGB10A2_UNORM_PACK32,
+ {INTERNAL_RGB10A2_SNORM_EXT, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2_REV, 0}, //FORMAT_RGB10A2_SNORM_PACK32,
+ {INTERNAL_RGB10A2_USCALED_GTC, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2_REV, 0}, //FORMAT_RGB10A2_USCALE_PACK32,
+ {INTERNAL_RGB10A2_SSCALED_GTC, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2_REV, 0}, //FORMAT_RGB10A2_SSCALE_PACK32,
+ {INTERNAL_RGB10A2U, EXTERNAL_RGBA_INTEGER, TYPE_UINT32_RGB10A2_REV, 0}, //FORMAT_RGB10A2_UINT_PACK32,
+ {INTERNAL_RGB10A2I_EXT, EXTERNAL_RGBA_INTEGER, TYPE_UINT32_RGB10A2_REV, 0}, //FORMAT_RGB10A2_SINT_PACK32,
+
+ {INTERNAL_RGB10A2_UNORM, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR10A2_UNORM_PACK32,
+ {INTERNAL_RGB10A2_SNORM_EXT, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR10A2_SNORM_PACK32,
+ {INTERNAL_RGB10A2_USCALED_GTC, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR10A2_USCALE_PACK32,
+ {INTERNAL_RGB10A2_SSCALED_GTC, EXTERNAL_RGBA, TYPE_UINT32_RGB10A2, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR10A2_SSCALE_PACK32,
+ {INTERNAL_RGB10A2U, EXTERNAL_RGBA_INTEGER, TYPE_UINT32_RGB10A2, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR10A2_UINT_PACK32,
+ {INTERNAL_RGB10A2I_EXT, EXTERNAL_RGBA_INTEGER, TYPE_UINT32_RGB10A2, detail::FORMAT_PROPERTY_BGRA_TYPE_BIT}, //FORMAT_BGR10A2_SINT_PACK32,
+
+ {INTERNAL_R16_UNORM, EXTERNAL_RED, TYPE_U16, 0}, //FORMAT_R16_UNORM_PACK16,
+ {INTERNAL_R16_SNORM, EXTERNAL_RED, TYPE_I16, 0}, //FORMAT_R16_SNORM_PACK16,
+ {INTERNAL_R16_USCALED_GTC, EXTERNAL_RED, TYPE_U16, 0}, //FORMAT_R16_USCALED_PACK16,
+ {INTERNAL_R16_SSCALED_GTC, EXTERNAL_RED, TYPE_I16, 0}, //FORMAT_R16_SSCALED_PACK16,
+ {INTERNAL_R16U, EXTERNAL_RED_INTEGER, TYPE_U16, 0}, //FORMAT_R16_UINT_PACK16,
+ {INTERNAL_R16I, EXTERNAL_RED_INTEGER, TYPE_I16, 0}, //FORMAT_R16_SINT_PACK16,
+ {INTERNAL_R16F, EXTERNAL_RED, TypeF16, 0}, //FORMAT_R16_SFLOAT_PACK16,
+
+ {INTERNAL_RG16_UNORM, EXTERNAL_RG, TYPE_U16, 0}, //FORMAT_RG16_UNORM_PACK16,
+ {INTERNAL_RG16_SNORM, EXTERNAL_RG, TYPE_I16, 0}, //FORMAT_RG16_SNORM_PACK16,
+ {INTERNAL_RG16_USCALED_GTC, EXTERNAL_RG, TYPE_U16, 0}, //FORMAT_RG16_USCALED_PACK16,
+ {INTERNAL_RG16_SSCALED_GTC, EXTERNAL_RG, TYPE_I16, 0}, //FORMAT_RG16_SSCALED_PACK16,
+ {INTERNAL_RG16U, EXTERNAL_RG_INTEGER, TYPE_U16, 0}, //FORMAT_RG16_UINT_PACK16,
+ {INTERNAL_RG16I, EXTERNAL_RG_INTEGER, TYPE_I16, 0}, //FORMAT_RG16_SINT_PACK16,
+ {INTERNAL_RG16F, EXTERNAL_RG, TypeF16, 0}, //FORMAT_RG16_SFLOAT_PACK16,
+
+ {INTERNAL_RGB16_UNORM, EXTERNAL_RGB, TYPE_U16, 0}, //FORMAT_RGB16_UNORM_PACK16,
+ {INTERNAL_RGB16_SNORM, EXTERNAL_RGB, TYPE_I16, 0}, //FORMAT_RGB16_SNORM_PACK16,
+ {INTERNAL_RGB16_USCALED_GTC, EXTERNAL_RGB, TYPE_U16, 0}, //FORMAT_RGB16_USCALED_PACK16,
+ {INTERNAL_RGB16_SSCALED_GTC, EXTERNAL_RGB, TYPE_I16, 0}, //FORMAT_RGB16_USCALED_PACK16,
+ {INTERNAL_RGB16U, EXTERNAL_RGB_INTEGER, TYPE_U16, 0}, //FORMAT_RGB16_UINT_PACK16,
+ {INTERNAL_RGB16I, EXTERNAL_RGB_INTEGER, TYPE_I16, 0}, //FORMAT_RGB16_SINT_PACK16,
+ {INTERNAL_RGB16F, EXTERNAL_RGB, TypeF16, 0}, //FORMAT_RGB16_SFLOAT_PACK16,
+
+ {INTERNAL_RGBA16_UNORM, EXTERNAL_RGBA, TYPE_U16, 0}, //FORMAT_RGBA16_UNORM_PACK16,
+ {INTERNAL_RGBA16_SNORM, EXTERNAL_RGBA, TYPE_I16, 0}, //FORMAT_RGBA16_SNORM_PACK16,
+ {INTERNAL_RGBA16_USCALED_GTC, EXTERNAL_RGBA, TYPE_U16, 0}, //FORMAT_RGBA16_USCALED_PACK16,
+ {INTERNAL_RGBA16_SSCALED_GTC, EXTERNAL_RGBA, TYPE_I16, 0}, //FORMAT_RGBA16_SSCALED_PACK16,
+ {INTERNAL_RGBA16U, EXTERNAL_RGBA_INTEGER, TYPE_U16, 0}, //FORMAT_RGBA16_UINT_PACK16,
+ {INTERNAL_RGBA16I, EXTERNAL_RGBA_INTEGER, TYPE_I16, 0}, //FORMAT_RGBA16_SINT_PACK16,
+ {INTERNAL_RGBA16F, EXTERNAL_RGBA, TypeF16, 0}, //FORMAT_RGBA16_SFLOAT_PACK16,
+
+ {INTERNAL_R32U, EXTERNAL_RED_INTEGER, TYPE_U32, 0}, //FORMAT_R32_UINT_PACK32,
+ {INTERNAL_R32I, EXTERNAL_RED_INTEGER, TYPE_I32, 0}, //FORMAT_R32_SINT_PACK32,
+ {INTERNAL_R32F, EXTERNAL_RED, TYPE_F32, 0}, //FORMAT_R32_SFLOAT_PACK32,
+
+ {INTERNAL_RG32U, EXTERNAL_RG_INTEGER, TYPE_U32, 0}, //FORMAT_RG32_UINT_PACK32,
+ {INTERNAL_RG32I, EXTERNAL_RG_INTEGER, TYPE_I32, 0}, //FORMAT_RG32_SINT_PACK32,
+ {INTERNAL_RG32F, EXTERNAL_RG, TYPE_F32, 0}, //FORMAT_RG32_SFLOAT_PACK32,
+
+ {INTERNAL_RGB32U, EXTERNAL_RGB_INTEGER, TYPE_U32, 0}, //FORMAT_RGB32_UINT_PACK32,
+ {INTERNAL_RGB32I, EXTERNAL_RGB_INTEGER, TYPE_I32, 0}, //FORMAT_RGB32_SINT_PACK32,
+ {INTERNAL_RGB32F, EXTERNAL_RGB, TYPE_F32, 0}, //FORMAT_RGB32_SFLOAT_PACK32,
+
+ {INTERNAL_RGBA32U, EXTERNAL_RGBA_INTEGER, TYPE_U32, 0}, //FORMAT_RGBA32_UINT_PACK32,
+ {INTERNAL_RGBA32I, EXTERNAL_RGBA_INTEGER, TYPE_I32, 0}, //FORMAT_RGBA32_SINT_PACK32,
+ {INTERNAL_RGBA32F, EXTERNAL_RGBA, TYPE_F32, 0}, //FORMAT_RGBA32_SFLOAT_PACK32,
+
+ {INTERNAL_R64F_EXT, EXTERNAL_RED, TYPE_U64, 0}, //FORMAT_R64_UINT_PACK64,
+ {INTERNAL_R64F_EXT, EXTERNAL_RED, TYPE_I64, 0}, //FORMAT_R64_SINT_PACK64,
+ {INTERNAL_R64F_EXT, EXTERNAL_RED, TYPE_F64, 0}, //FORMAT_R64_SFLOAT_PACK64,
+
+ {INTERNAL_RG64F_EXT, EXTERNAL_RG, TYPE_U64, 0}, //FORMAT_RG64_UINT_PACK64,
+ {INTERNAL_RG64F_EXT, EXTERNAL_RG, TYPE_I64, 0}, //FORMAT_RG64_SINT_PACK64,
+ {INTERNAL_RG64F_EXT, EXTERNAL_RG, TYPE_F64, 0}, //FORMAT_RG64_SFLOAT_PACK64,
+
+ {INTERNAL_RGB64F_EXT, EXTERNAL_RGB, TYPE_U64, 0}, //FORMAT_RGB64_UINT_PACK64,
+ {INTERNAL_RGB64F_EXT, EXTERNAL_RGB, TYPE_I64, 0}, //FORMAT_RGB64_SINT_PACK64,
+ {INTERNAL_RGB64F_EXT, EXTERNAL_RGB, TYPE_F64, 0}, //FORMAT_RGB64_SFLOAT_PACK64,
+
+ {INTERNAL_RGBA64F_EXT, EXTERNAL_RGBA, TYPE_U64, 0}, //FORMAT_RGBA64_UINT_PACK64,
+ {INTERNAL_RGBA64F_EXT, EXTERNAL_RGBA, TYPE_I64, 0}, //FORMAT_RGBA64_SINT_PACK64,
+ {INTERNAL_RGBA64F_EXT, EXTERNAL_RGBA, TYPE_F64, 0}, //FORMAT_RGBA64_SFLOAT_PACK64,
+
+ {INTERNAL_RG11B10F, EXTERNAL_RGB, TYPE_UINT32_RG11B10F_REV, 0}, //FORMAT_RG11B10_UFLOAT_PACK32,
+ {INTERNAL_RGB9E5, EXTERNAL_RGB, TYPE_UINT32_RGB9_E5_REV, 0}, //FORMAT_RGB9E5_UFLOAT_PACK32,
+
+ {INTERNAL_D16, EXTERNAL_DEPTH, TYPE_NONE, 0}, //FORMAT_D16_UNORM_PACK16,
+ {INTERNAL_D24, EXTERNAL_DEPTH, TYPE_NONE, 0}, //FORMAT_D24_UNORM,
+ {INTERNAL_D32F, EXTERNAL_DEPTH, TYPE_NONE, 0}, //FORMAT_D32_UFLOAT,
+ {INTERNAL_S8_EXT, EXTERNAL_STENCIL, TYPE_NONE, 0}, //FORMAT_S8_UNORM,
+ {INTERNAL_D16S8_EXT, EXTERNAL_DEPTH, TYPE_NONE, 0}, //FORMAT_D16_UNORM_S8_UINT_PACK32,
+ {INTERNAL_D24S8, EXTERNAL_DEPTH_STENCIL, TYPE_NONE, 0}, //FORMAT_D24_UNORM_S8_UINT_PACK32,
+ {INTERNAL_D32FS8X24, EXTERNAL_DEPTH_STENCIL, TYPE_NONE, 0}, //FORMAT_D32_SFLOAT_S8_UINT_PACK64,
+
+ {INTERNAL_RGB_DXT1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_DXT1_UNORM_BLOCK8,
+ {INTERNAL_SRGB_DXT1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_DXT1_SRGB_BLOCK8,
+ {INTERNAL_RGBA_DXT1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_DXT1_UNORM_BLOCK8,
+ {INTERNAL_SRGB_ALPHA_DXT1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_DXT1_SRGB_BLOCK8,
+ {INTERNAL_RGBA_DXT3, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_DXT3_UNORM_BLOCK16,
+ {INTERNAL_SRGB_ALPHA_DXT3, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_DXT3_SRGB_BLOCK16,
+ {INTERNAL_RGBA_DXT5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_DXT5_UNORM_BLOCK16,
+ {INTERNAL_SRGB_ALPHA_DXT5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_DXT5_SRGB_BLOCK16,
+ {INTERNAL_R_ATI1N_UNORM, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_R_ATI1N_UNORM_BLOCK8,
+ {INTERNAL_R_ATI1N_SNORM, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_R_ATI1N_SNORM_BLOCK8,
+ {INTERNAL_RG_ATI2N_UNORM, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RG_ATI2N_UNORM_BLOCK16,
+ {INTERNAL_RG_ATI2N_SNORM, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RG_ATI2N_SNORM_BLOCK16,
+ {INTERNAL_RGB_BP_UNSIGNED_FLOAT, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_BP_UFLOAT_BLOCK16,
+ {INTERNAL_RGB_BP_SIGNED_FLOAT, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_BP_SFLOAT_BLOCK16,
+ {INTERNAL_RGB_BP_UNORM, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_BP_UNORM,
+ {INTERNAL_SRGB_BP_UNORM, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_BP_SRGB,
+
+ {InternalRGBETC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_ETC2_UNORM_BLOCK8,
+ {INTERNAL_SRGB8_ETC2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_ETC2_SRGB_BLOCK8,
+ {INTERNAL_RGBA_PUNCHTHROUGH_ETC2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ETC2_PUNCHTHROUGH_UNORM,
+ {INTERNAL_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ETC2_PUNCHTHROUGH_SRGB,
+ {INTERNAL_RGBA_ETC2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ETC2_UNORM_BLOCK16,
+ {INTERNAL_SRGB8_ALPHA8_ETC2_EAC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ETC2_SRGB_BLOCK16,
+ {INTERNAL_R11_EAC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_R11_EAC_UNORM,
+ {INTERNAL_SIGNED_R11_EAC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_R11_EAC_SNORM,
+ {INTERNAL_RG11_EAC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RG11_EAC_UNORM,
+ {INTERNAL_SIGNED_RG11_EAC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RG11_EAC_SNORM,
+
+ {INTERNAL_RGBA_ASTC_4x4, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC4X4_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_4x4, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC4X4_SRGB,
+ {INTERNAL_RGBA_ASTC_5x4, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC5X4_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_5x4, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC5X4_SRGB,
+ {INTERNAL_RGBA_ASTC_5x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC5X5_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_5x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC5X5_SRGB,
+ {INTERNAL_RGBA_ASTC_6x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC6X5_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_6x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC6X5_SRGB,
+ {INTERNAL_RGBA_ASTC_6x6, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC6X6_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_6x6, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC6X6_SRGB,
+ {INTERNAL_RGBA_ASTC_8x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC8X5_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_8x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC8X5_SRGB,
+ {INTERNAL_RGBA_ASTC_8x6, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC8X6_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_8x6, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC8X6_SRGB,
+ {INTERNAL_RGBA_ASTC_8x8, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC8X8_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_8x8, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC8X8_SRGB,
+ {INTERNAL_RGBA_ASTC_10x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X5_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_10x5, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X5_SRGB,
+ {INTERNAL_RGBA_ASTC_10x6, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X6_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_10x6, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X6_SRGB,
+ {INTERNAL_RGBA_ASTC_10x8, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X8_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_10x8, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X8_SRGB,
+ {INTERNAL_RGBA_ASTC_10x10, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X10_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_10x10, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC10X10_SRGB,
+ {INTERNAL_RGBA_ASTC_12x10, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC12X10_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_12x10, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC12X10_SRGB,
+ {INTERNAL_RGBA_ASTC_12x12, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC12X12_UNORM,
+ {INTERNAL_SRGB8_ALPHA8_ASTC_12x12, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ASTC12X12_SRGB,
+
+ {INTERNAL_RGB_PVRTC_4BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32,
+ {INTERNAL_SRGB_PVRTC_2BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32,
+ {INTERNAL_RGB_PVRTC_2BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32,
+ {INTERNAL_SRGB_PVRTC_4BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32,
+ {INTERNAL_RGBA_PVRTC_4BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32,
+ {INTERNAL_SRGB_ALPHA_PVRTC_2BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32,
+ {INTERNAL_RGBA_PVRTC_2BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32,
+ {INTERNAL_SRGB_ALPHA_PVRTC_4BPPV1, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32,
+ {INTERNAL_RGBA_PVRTC_4BPPV2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC2_4X4_UNORM_BLOCK8,
+ {INTERNAL_SRGB_ALPHA_PVRTC_4BPPV2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC2_4X4_SRGB_BLOCK8,
+ {INTERNAL_RGBA_PVRTC_2BPPV2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC2_8X4_UNORM_BLOCK8,
+ {INTERNAL_SRGB_ALPHA_PVRTC_2BPPV2, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_PVRTC2_8X4_SRGB_BLOCK8,
+
+ {INTERNAL_RGB_ETC, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_ETC_UNORM_BLOCK8,
+ {INTERNAL_ATC_RGB, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGB_ATC_UNORM_BLOCK8,
+ {INTERNAL_ATC_RGBA_EXPLICIT_ALPHA, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ATCA_UNORM_BLOCK16,
+ {INTERNAL_ATC_RGBA_INTERPOLATED_ALPHA, EXTERNAL_NONE, TYPE_NONE, 0}, //FORMAT_RGBA_ATCI_UNORM_BLOCK16,
+
+ {InternalLuminance8, ExternalLuminance, TYPE_U8, 0}, //FORMAT_L8_UNORM_PACK8,
+ {InternalAlpha8, ExternalAlpha, TYPE_U8, 0}, //FORMAT_A8_UNORM_PACK8,
+ {InternalLuminanceAlpha8, ExternalLuminanceAlpha, TYPE_U8, 0}, //FORMAT_LA8_UNORM_PACK8,
+ {InternalLuminance16, ExternalLuminance, TYPE_U16, 0}, //FORMAT_L16_UNORM_PACK16,
+ {InternalAlpha16, ExternalAlpha, TYPE_U16, 0}, //FORMAT_A16_UNORM_PACK16,
+ {InternalLuminanceAlpha16, ExternalLuminanceAlpha, TYPE_U16, 0}, //FORMAT_LA16_UNORM_PACK16,
+
+ {INTERNAL_RGB8_UNORM, ExternalBGRA, TYPE_U8, 0}, //FORMAT_BGRX8_UNORM,
+ {INTERNAL_SRGB8, ExternalBGRA, TYPE_U8, 0}, //FORMAT_BGRX8_SRGB,
+
+ {INTERNAL_RG3B2, EXTERNAL_RGB, TYPE_UINT8_RG3B2_REV, 0}, //FORMAT_RG3B2_UNORM,
+ };
+
+ static_assert(sizeof(Table) / sizeof(Table[0]) == FORMAT_COUNT, "GLI error: format descriptor list doesn't match number of supported formats");
+
+ std::copy(&Table[0], &Table[0] + FORMAT_COUNT, this->FormatDesc.begin());
+ }
+
+ inline gl::target const& gl::translate(gli::target Target) const
+ {
+ static gl::target const Table[] =
+ {
+ gl::TARGET_1D,
+ gl::TARGET_1D_ARRAY,
+ gl::TARGET_2D,
+ gl::TARGET_2D_ARRAY,
+ gl::TARGET_3D,
+ gl::TARGET_RECT,
+ gl::TARGET_RECT_ARRAY,
+ gl::TARGET_CUBE,
+ gl::TARGET_CUBE_ARRAY
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == TARGET_COUNT, "GLI error: target descriptor list doesn't match number of supported targets");
+
+ return Table[Target];
+ }
+
+ inline gl::format gl::translate(gli::format Format, gli::swizzles const& Swizzles) const
+ {
+ GLI_ASSERT(Format >= FORMAT_FIRST && Format <= FORMAT_LAST);
+
+ gl::format_desc const& FormatDesc = this->FormatDesc[Format - FORMAT_FIRST];
+
+ gl::format FormatGL;
+ FormatGL.Internal = FormatDesc.Internal;
+ FormatGL.External = FormatDesc.External;
+ FormatGL.Type = FormatDesc.Type;
+ FormatGL.Swizzles = this->compute_swizzle(FormatDesc, Swizzles);
+ return FormatGL;
+ }
+
+ inline gli::format gl::find(gl::internal_format InternalFormat, gl::external_format ExternalFormat, gl::type_format Type)
+ {
+ for(int FormatIndex = FORMAT_FIRST; FormatIndex <= FORMAT_LAST; ++FormatIndex)
+ {
+ std::size_t const Index = FormatIndex - FORMAT_FIRST;
+ if (this->FormatDesc[Index].Internal != InternalFormat)
+ continue;
+ if (this->FormatDesc[Index].External != ExternalFormat)
+ continue;
+ if (this->FormatDesc[Index].Type != Type)
+ continue;
+
+ return static_cast<gli::format>(FormatIndex);
+ }
+ return static_cast<gli::format>(FORMAT_INVALID);
+ }
+
+ inline gl::swizzles gl::compute_swizzle(format_desc const& FormatDesc, gli::swizzles const& Swizzles) const
+ {
+ if (!this->has_swizzle(this->Profile))
+ return swizzles(gl::SWIZZLE_RED, gl::SWIZZLE_GREEN, gl::SWIZZLE_BLUE, gl::SWIZZLE_ALPHA);
+
+ bool const IsExternalBGRA = ((FormatDesc.Properties & detail::FORMAT_PROPERTY_BGRA_FORMAT_BIT) && !has_swizzle(this->Profile)) || (FormatDesc.Properties & detail::FORMAT_PROPERTY_BGRA_TYPE_BIT);
+
+ return detail::translate(IsExternalBGRA ? gli::swizzles(Swizzles.b, Swizzles.g, Swizzles.r, Swizzles.a) : Swizzles);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/image.inl b/3rdparty/glm/test/external/gli/core/image.inl
new file mode 100644
index 00000000000..595a6d9bfa9
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/image.inl
@@ -0,0 +1,251 @@
+namespace gli{
+namespace detail
+{
+ inline size_t texel_linear_aAdressing
+ (
+ extent1d const& Extent,
+ extent1d const& TexelCoord
+ )
+ {
+ GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, Extent)));
+
+ return static_cast<size_t>(TexelCoord.x);
+ }
+
+ inline size_t texel_linear_adressing
+ (
+ extent2d const& Extent,
+ extent2d const& TexelCoord
+ )
+ {
+ GLI_ASSERT(TexelCoord.x < Extent.x);
+ GLI_ASSERT(TexelCoord.y < Extent.y);
+
+ return static_cast<size_t>(TexelCoord.x + Extent.x * TexelCoord.y);
+ }
+
+ inline size_t texel_linear_adressing
+ (
+ extent3d const& Extent,
+ extent3d const& TexelCoord
+ )
+ {
+ GLI_ASSERT(TexelCoord.x < Extent.x);
+ GLI_ASSERT(TexelCoord.y < Extent.y);
+ GLI_ASSERT(TexelCoord.z < Extent.z);
+
+ return static_cast<size_t>(TexelCoord.x + Extent.x * (TexelCoord.y + Extent.y * TexelCoord.z));
+ }
+
+ inline size_t texel_morton_adressing
+ (
+ extent1d const& Extent,
+ extent1d const& TexelCoord
+ )
+ {
+ GLI_ASSERT(TexelCoord.x < Extent.x);
+
+ return TexelCoord.x;
+ }
+
+ inline size_t texel_morton_adressing
+ (
+ extent2d const& Extent,
+ extent2d const& TexelCoord
+ )
+ {
+ GLI_ASSERT(TexelCoord.x < Extent.x && TexelCoord.x >= 0 && TexelCoord.x < std::numeric_limits<extent2d::value_type>::max());
+ GLI_ASSERT(TexelCoord.y < Extent.y && TexelCoord.y >= 0 && TexelCoord.y < std::numeric_limits<extent2d::value_type>::max());
+
+ glm::u32vec2 const Input(TexelCoord);
+
+ return static_cast<size_t>(glm::bitfieldInterleave(Input.x, Input.y));
+ }
+
+ inline size_t texel_morton_adressing
+ (
+ extent3d const& Extent,
+ extent3d const& TexelCoord
+ )
+ {
+ GLI_ASSERT(TexelCoord.x < Extent.x);
+ GLI_ASSERT(TexelCoord.y < Extent.y);
+ GLI_ASSERT(TexelCoord.z < Extent.z);
+
+ glm::u32vec3 const Input(TexelCoord);
+
+ return static_cast<size_t>(glm::bitfieldInterleave(Input.x, Input.y, Input.z));
+ }
+}//namespace detail
+
+ inline image::image()
+ : Format(static_cast<gli::format>(FORMAT_INVALID))
+ , BaseLevel(0)
+ , Data(nullptr)
+ , Size(0)
+ {}
+
+ inline image::image
+ (
+ format_type Format,
+ extent_type const& Extent
+ )
+ : Storage(std::make_shared<storage_linear>(Format, Extent, 1, 1, 1))
+ , Format(Format)
+ , BaseLevel(0)
+ , Data(Storage->data())
+ , Size(compute_size(0))
+ {}
+
+ inline image::image
+ (
+ std::shared_ptr<storage_linear> Storage,
+ format_type Format,
+ size_type BaseLayer,
+ size_type BaseFace,
+ size_type BaseLevel
+ )
+ : Storage(Storage)
+ , Format(Format)
+ , BaseLevel(BaseLevel)
+ , Data(compute_data(BaseLayer, BaseFace, BaseLevel))
+ , Size(compute_size(BaseLevel))
+ {}
+
+ inline image::image
+ (
+ image const & Image,
+ format_type Format
+ )
+ : Storage(Image.Storage)
+ , Format(Format)
+ , BaseLevel(Image.BaseLevel)
+ , Data(Image.Data)
+ , Size(Image.Size)
+ {
+ GLI_ASSERT(block_size(Format) == block_size(Image.format()));
+ }
+
+ inline bool image::empty() const
+ {
+ if(this->Storage.get() == nullptr)
+ return true;
+
+ return this->Storage->empty();
+ }
+
+ inline image::size_type image::size() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Size;
+ }
+
+ template <typename genType>
+ inline image::size_type image::size() const
+ {
+ GLI_ASSERT(sizeof(genType) <= this->Storage->block_size());
+
+ return this->size() / sizeof(genType);
+ }
+
+ inline image::format_type image::format() const
+ {
+ return this->Format;
+ }
+
+ inline image::extent_type image::extent() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ storage_linear::extent_type const& SrcExtent = this->Storage->extent(this->BaseLevel);
+ storage_linear::extent_type const& DstExtent = SrcExtent * block_extent(this->format()) / this->Storage->block_extent();
+
+ return glm::max(DstExtent, storage_linear::extent_type(1));
+ }
+
+ inline void* image::data()
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Data;
+ }
+
+ inline void const* image::data() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Data;
+ }
+
+ template <typename genType>
+ inline genType* image::data()
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(this->Storage->block_size() >= sizeof(genType));
+
+ return reinterpret_cast<genType *>(this->data());
+ }
+
+ template <typename genType>
+ inline genType const* image::data() const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(this->Storage->block_size() >= sizeof(genType));
+
+ return reinterpret_cast<genType const *>(this->data());
+ }
+
+ inline void image::clear()
+ {
+ GLI_ASSERT(!this->empty());
+
+ memset(this->data<glm::byte>(), 0, this->size<glm::byte>());
+ }
+
+ template <typename genType>
+ inline void image::clear(genType const& Texel)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(this->Storage->block_size() == sizeof(genType));
+
+ for(size_type TexelIndex = 0; TexelIndex < this->size<genType>(); ++TexelIndex)
+ *(this->data<genType>() + TexelIndex) = Texel;
+ }
+
+ inline image::data_type* image::compute_data(size_type BaseLayer, size_type BaseFace, size_type BaseLevel)
+ {
+ size_type const BaseOffset = this->Storage->base_offset(BaseLayer, BaseFace, BaseLevel);
+
+ return this->Storage->data() + BaseOffset;
+ }
+
+ inline image::size_type image::compute_size(size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Storage->level_size(Level);
+ }
+
+ template <typename genType>
+ genType image::load(extent_type const& TexelCoord)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(!is_compressed(this->format()));
+ GLI_ASSERT(this->Storage->block_size() == sizeof(genType));
+ GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, this->extent())));
+
+ return *(this->data<genType>() + detail::texel_linear_adressing(this->extent(), TexelCoord));
+ }
+
+ template <typename genType>
+ void image::store(extent_type const& TexelCoord, genType const& Data)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(!is_compressed(this->format()));
+ GLI_ASSERT(this->Storage->block_size() == sizeof(genType));
+ GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, this->extent())));
+
+ *(this->data<genType>() + detail::texel_linear_adressing(this->extent(), TexelCoord)) = Data;
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/image2d.hpp b/3rdparty/glm/test/external/gli/core/image2d.hpp
deleted file mode 100644
index 918514d53bd..00000000000
--- a/3rdparty/glm/test/external/gli/core/image2d.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-05
-// Updated : 2011-04-05
-// Licence : This source is under MIT License
-// File : gli/core/image2d.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_CORE_IMAGE2D_INCLUDED
-#define GLI_CORE_IMAGE2D_INCLUDED
-
-// STD
-#include <vector>
-#include <cassert>
-#include <cmath>
-#include <cstring>
-
-// GLM
-#include <glm/glm.hpp>
-#include <glm/gtx/number_precision.hpp>
-#include <glm/gtx/raw_data.hpp>
-#include <glm/gtx/gradient_paint.hpp>
-#include <glm/gtx/component_wise.hpp>
-
-namespace gli
-{
- enum format
- {
- FORMAT_NULL,
-
- // Unsigned integer formats
- R8U,
- RG8U,
- RGB8U,
- RGBA8U,
-
- R16U,
- RG16U,
- RGB16U,
- RGBA16U,
-
- R32U,
- RG32U,
- RGB32U,
- RGBA32U,
-
- // Signed integer formats
- R8I,
- RG8I,
- RGB8I,
- RGBA8I,
-
- R16I,
- RG16I,
- RGB16I,
- RGBA16I,
-
- R32I,
- RG32I,
- RGB32I,
- RGBA32I,
-
- // Floating formats
- R16F,
- RG16F,
- RGB16F,
- RGBA16F,
-
- R32F,
- RG32F,
- RGB32F,
- RGBA32F,
-
- // Packed formats
- RGBE8,
- RGB9E5,
- RG11B10F,
- R5G6B5,
- RGBA4,
- RGB10A2,
-
- // Depth formats
- D16,
- D24X8,
- D24S8,
- D32F,
- D32FS8X24,
-
- // Compressed formats
- DXT1,
- DXT3,
- DXT5,
- ATI1N_UNORM,
- ATI1N_SNORM,
- ATI2N_UNORM,
- ATI2N_SNORM,
- BP_UF16,
- BP_SF16,
- BP,
-
- FORMAT_MAX
- };
-
- enum size_type
- {
- LINEAR_SIZE,
- BLOCK_SIZE,
- BIT_PER_PIXEL,
- COMPONENT
- };
-
- class image2D
- {
- public:
- typedef glm::uvec2 dimensions_type;
- typedef glm::vec2 texcoord_type;
- typedef glm::uint32 size_type;
- typedef glm::byte value_type;
- typedef gli::format format_type;
- typedef std::vector<value_type> data_type;
-
- public:
- image2D();
- image2D(
- image2D const & Image);
-
- explicit image2D(
- dimensions_type const & Dimensions,
- format_type const & Format);
-
- template <typename genType>
- explicit image2D(
- dimensions_type const & Dimensions,
- format_type const & Format,
- genType const & Value);
-
- explicit image2D(
- dimensions_type const & Dimensions,
- format_type const & Format,
- std::vector<value_type> const & Data);
-
- ~image2D();
-
- template <typename genType>
- void setPixel(
- dimensions_type const & TexelCoord,
- genType const & TexelData);
-
- size_type value_size() const;
- size_type capacity() const;
- dimensions_type dimensions() const;
- size_type components() const;
- format_type format() const;
-
- value_type * data();
- value_type const * const data() const;
-
- private:
- data_type Data;
- dimensions_type Dimensions;
- format_type Format;
- };
-
-}//namespace gli
-
-#include "image2d.inl"
-
-#endif//GLI_CORE_IMAGE2D_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/image2d.inl b/3rdparty/glm/test/external/gli/core/image2d.inl
deleted file mode 100644
index 3781be83169..00000000000
--- a/3rdparty/glm/test/external/gli/core/image2d.inl
+++ /dev/null
@@ -1,229 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-05
-// Updated : 2011-04-05
-// Licence : This source is under MIT License
-// File : gli/core/image2d.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli
-{
- namespace detail
- {
- struct format_desc
- {
- image2D::size_type BlockSize;
- image2D::size_type BBP;
- image2D::size_type Component;
- };
-
- inline format_desc getFormatInfo(format const & Format)
- {
- format_desc Desc[FORMAT_MAX] =
- {
- { 0, 0, 0}, //FORMAT_NULL
-
- // Unsigned integer formats
- { 1, 8, 1}, //R8U,
- { 2, 16, 2}, //RG8U,
- { 3, 24, 3}, //RGB8U,
- { 4, 32, 4}, //RGBA8U,
-
- { 2, 16, 1}, //R16U,
- { 4, 32, 2}, //RG16U,
- { 6, 48, 3}, //RGB16U,
- { 8, 64, 4}, //RGBA16U,
-
- { 4, 32, 1}, //R32U,
- { 8, 64, 2}, //RG32U,
- { 12, 96, 3}, //RGB32U,
- { 16, 128, 4}, //RGBA32U,
-
- //// Signed integer formats
- { 4, 32, 1}, //R8I,
- { 8, 64, 2}, //RG8I,
- { 12, 96, 3}, //RGB8I,
- { 16, 128, 4}, //RGBA8I,
-
- { 2, 16, 1}, //R16I,
- { 4, 32, 2}, //RG16I,
- { 6, 48, 3}, //RGB16I,
- { 8, 64, 4}, //RGBA16I,
-
- { 4, 32, 1}, //R32I,
- { 8, 64, 2}, //RG32I,
- { 12, 96, 3}, //RGB32I,
- { 16, 128, 4}, //RGBA32I,
-
- //// Floating formats
- { 2, 16, 1}, //R16F,
- { 4, 32, 2}, //RG16F,
- { 6, 48, 3}, //RGB16F,
- { 8, 64, 4}, //RGBA16F,
-
- { 4, 32, 1}, //R32F,
- { 8, 64, 2}, //RG32F,
- { 12, 96, 3}, //RGB32F,
- { 16, 128, 4}, //RGBA32F,
-
- //// Packed formats
- { 4, 32, 3}, //RGBE8,
- { 4, 32, 3}, //RGB9E5,
- { 4, 32, 3}, //RG11B10F,
- { 2, 16, 3}, //R5G6B5,
- { 2, 16, 4}, //RGBA4,
- { 4, 32, 3}, //RGB10A2,
-
- //// Depth formats
- { 2, 16, 1}, //D16,
- { 4, 32, 1}, //D24X8,
- { 4, 32, 2}, //D24S8,
- { 4, 32, 1}, //D32F,
- { 8, 64, 2}, //D32FS8X24,
-
- //// Compressed formats
- { 8, 4, 4}, //DXT1,
- { 16, 8, 4}, //DXT3,
- { 16, 8, 4}, //DXT5,
- { 8, 4, 1}, //ATI1N_UNORM,
- { 8, 4, 1}, //ATI1N_SNORM,
- { 16, 8, 2}, //ATI2N_UNORM,
- { 16, 8, 2}, //ATI2N_SNORM,
- { 16, 8, 3}, //BP_UF16,
- { 16, 8, 3}, //BP_SF16,
- { 16, 8, 4}, //BP,
- };
-
- return Desc[Format];
- }
-
- inline image2D::size_type sizeBlock
- (
- format const & Format
- )
- {
- return getFormatInfo(Format).BlockSize;
- }
-
- inline image2D::size_type sizeBitPerPixel
- (
- format const & Format
- )
- {
- return getFormatInfo(Format).BBP;
- }
-
- inline image2D::size_type sizeComponent
- (
- format const & Format
- )
- {
- return getFormatInfo(Format).Component;
- }
-
- inline image2D::size_type sizeLinear
- (
- image2D const & Image
- )
- {
- image2D::dimensions_type Dimension = Image.dimensions();
- Dimension = glm::max(Dimension, image2D::dimensions_type(1));
-
- image2D::size_type BlockSize = sizeBlock(Image.format());
- image2D::size_type BPP = sizeBitPerPixel(Image.format());
- image2D::size_type BlockCount = 0;
- if((BlockSize << 3) == BPP)
- BlockCount = Dimension.x * Dimension.y;
- else
- BlockCount = ((Dimension.x + 3) >> 2) * ((Dimension.y + 3) >> 2);
-
- return BlockCount * BlockSize;
- }
- }//namespace detail
-
- inline image2D::image2D() :
- Data(0),
- Dimensions(0),
- Format(FORMAT_NULL)
- {}
-
- inline image2D::image2D
- (
- image2D const & Image
- ) :
- Data(Image.Data),
- Dimensions(Image.Dimensions),
- Format(Image.Format)
- {}
-
- inline image2D::image2D
- (
- dimensions_type const & Dimensions,
- format_type const & Format
- ) :
- Data((glm::compMul(Dimensions) * detail::sizeBitPerPixel(Format)) >> 3),
- Dimensions(Dimensions),
- Format(Format)
- {}
-
- inline image2D::image2D
- (
- dimensions_type const & Dimensions,
- format_type const & Format,
- std::vector<value_type> const & Data
- ) :
- Data(Data),
- Dimensions(Dimensions),
- Format(Format)
- {}
-
- inline image2D::~image2D()
- {}
-
- template <typename genType>
- inline void image2D::setPixel
- (
- dimensions_type const & TexelCoord,
- genType const & TexelData
- )
- {
- size_type Index = this->dimensions().x * sizeof(genType) * TexelCoord.y + sizeof(genType) * TexelCoord.x;
- memcpy(this->data() + Index, &TexelData[0], sizeof(genType));
- }
-
- inline image2D::size_type image2D::value_size() const
- {
- return detail::sizeBitPerPixel(this->format());
- }
-
- inline image2D::size_type image2D::capacity() const
- {
- return detail::sizeLinear(*this);
- }
-
- inline image2D::dimensions_type image2D::dimensions() const
- {
- return this->Dimensions;
- }
-
- inline image2D::size_type image2D::components() const
- {
- return detail::sizeComponent(this->format());
- }
-
- inline image2D::format_type image2D::format() const
- {
- return this->Format;
- }
-
- inline image2D::value_type * image2D::data()
- {
- return &this->Data[0];
- }
-
- inline image2D::value_type const * const image2D::data() const
- {
- return &this->Data[0];
- }
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/levels.inl b/3rdparty/glm/test/external/gli/core/levels.inl
new file mode 100644
index 00000000000..a2f49a6d1fa
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/levels.inl
@@ -0,0 +1,24 @@
+#include <glm/gtc/integer.hpp>
+#define GLM_ENABLE_EXPERIMENTAL
+#include <glm/gtx/component_wise.hpp>
+
+namespace gli
+{
+ template <length_t L, typename T, precision P, template <length_t, typename, precision> class vecType>
+ inline T levels(vecType<L, T, P> const& Extent)
+ {
+ return glm::log2(compMax(Extent)) + static_cast<T>(1);
+ }
+
+ template <typename T>
+ inline T levels(T Extent)
+ {
+ return static_cast<T>(glm::log2(Extent) + static_cast<size_t>(1));
+ }
+/*
+ inline int levels(int Extent)
+ {
+ return glm::log2(Extent) + static_cast<int>(1);
+ }
+*/
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/load.inl b/3rdparty/glm/test/external/gli/core/load.inl
new file mode 100644
index 00000000000..dc47722f5ca
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/load.inl
@@ -0,0 +1,55 @@
+#include "../load_dds.hpp"
+#include "../load_kmg.hpp"
+#include "../load_ktx.hpp"
+#include "file.hpp"
+
+namespace gli
+{
+ /// Load a texture (DDS, KTX or KMG) from memory
+ inline texture load(char const * Data, std::size_t Size)
+ {
+ {
+ texture Texture = load_dds(Data, Size);
+ if(!Texture.empty())
+ return Texture;
+ }
+ {
+ texture Texture = load_kmg(Data, Size);
+ if(!Texture.empty())
+ return Texture;
+ }
+ {
+ texture Texture = load_ktx(Data, Size);
+ if(!Texture.empty())
+ return Texture;
+ }
+
+ return texture();
+ }
+
+ /// Load a texture (DDS, KTX or KMG) from file
+ inline texture load(char const * Filename)
+ {
+ FILE* File = detail::open_file(Filename, "rb");
+ if(!File)
+ return texture();
+
+ long Beg = std::ftell(File);
+ std::fseek(File, 0, SEEK_END);
+ long End = std::ftell(File);
+ std::fseek(File, 0, SEEK_SET);
+
+ std::vector<char> Data(static_cast<std::size_t>(End - Beg));
+
+ std::fread(&Data[0], 1, Data.size(), File);
+ std::fclose(File);
+
+ return load(&Data[0], Data.size());
+ }
+
+ /// Load a texture (DDS, KTX or KMG) from file
+ inline texture load(std::string const & Filename)
+ {
+ return load(Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/load_dds.inl b/3rdparty/glm/test/external/gli/core/load_dds.inl
new file mode 100644
index 00000000000..ba62c9b36f2
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/load_dds.inl
@@ -0,0 +1,324 @@
+#include "../dx.hpp"
+#include "file.hpp"
+#include <cstdio>
+#include <cassert>
+
+namespace gli{
+namespace detail
+{
+ static char const FOURCC_DDS[] = {'D', 'D', 'S', ' '};
+
+ enum dds_cubemap_flag
+ {
+ DDSCAPS2_CUBEMAP = 0x00000200,
+ DDSCAPS2_CUBEMAP_POSITIVEX = 0x00000400,
+ DDSCAPS2_CUBEMAP_NEGATIVEX = 0x00000800,
+ DDSCAPS2_CUBEMAP_POSITIVEY = 0x00001000,
+ DDSCAPS2_CUBEMAP_NEGATIVEY = 0x00002000,
+ DDSCAPS2_CUBEMAP_POSITIVEZ = 0x00004000,
+ DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x00008000,
+ DDSCAPS2_VOLUME = 0x00200000
+ };
+
+ enum
+ {
+ DDSCAPS2_CUBEMAP_ALLFACES = DDSCAPS2_CUBEMAP_POSITIVEX | DDSCAPS2_CUBEMAP_NEGATIVEX | DDSCAPS2_CUBEMAP_POSITIVEY | DDSCAPS2_CUBEMAP_NEGATIVEY | DDSCAPS2_CUBEMAP_POSITIVEZ | DDSCAPS2_CUBEMAP_NEGATIVEZ
+ };
+
+ enum dds_flag
+ {
+ DDSD_CAPS = 0x00000001,
+ DDSD_HEIGHT = 0x00000002,
+ DDSD_WIDTH = 0x00000004,
+ DDSD_PITCH = 0x00000008,
+ DDSD_PIXELFORMAT = 0x00001000,
+ DDSD_MIPMAPCOUNT = 0x00020000,
+ DDSD_LINEARSIZE = 0x00080000,
+ DDSD_DEPTH = 0x00800000
+ };
+
+ enum dds_surface_flag
+ {
+ DDSCAPS_COMPLEX = 0x00000008,
+ DDSCAPS_MIPMAP = 0x00400000,
+ DDSCAPS_TEXTURE = 0x00001000
+ };
+
+ struct dds_pixel_format
+ {
+ std::uint32_t size; // 32
+ dx::ddpf flags;
+ dx::d3dfmt fourCC;
+ std::uint32_t bpp;
+ glm::u32vec4 Mask;
+ };
+
+ struct dds_header
+ {
+ std::uint32_t Size;
+ std::uint32_t Flags;
+ std::uint32_t Height;
+ std::uint32_t Width;
+ std::uint32_t Pitch;
+ std::uint32_t Depth;
+ std::uint32_t MipMapLevels;
+ std::uint32_t Reserved1[11];
+ dds_pixel_format Format;
+ std::uint32_t SurfaceFlags;
+ std::uint32_t CubemapFlags;
+ std::uint32_t Reserved2[3];
+ };
+
+ static_assert(sizeof(dds_header) == 124, "DDS Header size mismatch");
+
+ enum d3d10_resource_dimension
+ {
+ D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
+ D3D10_RESOURCE_DIMENSION_BUFFER = 1,
+ D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
+ D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
+ };
+
+ enum d3d10_resource_misc_flag
+ {
+ D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x01,
+ D3D10_RESOURCE_MISC_SHARED = 0x02,
+ D3D10_RESOURCE_MISC_TEXTURECUBE = 0x04,
+ D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x10,
+ D3D10_RESOURCE_MISC_GDI_COMPATIBLE = 0x20,
+ };
+
+ enum dds_alpha_mode
+ {
+ DDS_ALPHA_MODE_UNKNOWN = 0x0,
+ DDS_ALPHA_MODE_STRAIGHT = 0x1,
+ DDS_ALPHA_MODE_PREMULTIPLIED = 0x2,
+ DDS_ALPHA_MODE_OPAQUE = 0x3,
+ DDS_ALPHA_MODE_CUSTOM = 0x4
+ };
+
+ struct dds_header10
+ {
+ dds_header10() :
+ Format(dx::DXGI_FORMAT_UNKNOWN),
+ ResourceDimension(D3D10_RESOURCE_DIMENSION_UNKNOWN),
+ MiscFlag(0),
+ ArraySize(0),
+ AlphaFlags(DDS_ALPHA_MODE_UNKNOWN)
+ {}
+
+ dx::dxgiFormat Format;
+ d3d10_resource_dimension ResourceDimension;
+ std::uint32_t MiscFlag; // D3D10_RESOURCE_MISC_GENERATE_MIPS
+ std::uint32_t ArraySize;
+ dds_alpha_mode AlphaFlags; // Should be 0 whenever possible to avoid D3D utility library to fail
+ };
+
+ static_assert(sizeof(dds_header10) == 20, "DDS DX10 Extended Header size mismatch");
+
+ inline target get_target(dds_header const& Header, dds_header10 const& Header10)
+ {
+ if(Header.CubemapFlags & detail::DDSCAPS2_CUBEMAP)
+ {
+ if(Header10.ArraySize > 1)
+ return TARGET_CUBE_ARRAY;
+ else
+ return TARGET_CUBE;
+ }
+ else if(Header10.ArraySize > 1)
+ {
+ if(Header.Flags & detail::DDSD_HEIGHT)
+ return TARGET_2D_ARRAY;
+ else
+ return TARGET_1D_ARRAY;
+ }
+ else if(Header10.ResourceDimension == D3D10_RESOURCE_DIMENSION_TEXTURE1D)
+ return TARGET_1D;
+ else if(Header10.ResourceDimension == D3D10_RESOURCE_DIMENSION_TEXTURE3D || Header.Flags & detail::DDSD_DEPTH || Header.CubemapFlags & detail::DDSCAPS2_VOLUME)
+ return TARGET_3D;
+ else
+ return TARGET_2D;
+ }
+
+ // Some formats have multiple fourcc values. This function allows remapping to the default fourcc value of a format
+ inline dx::d3dfmt remap_four_cc(dx::d3dfmt FourCC)
+ {
+ switch(FourCC)
+ {
+ default:
+ return FourCC;
+ case dx::D3DFMT_BC4U:
+ return dx::D3DFMT_ATI1;
+ case dx::D3DFMT_BC4S:
+ return dx::D3DFMT_AT1N;
+ case dx::D3DFMT_BC5U:
+ return dx::D3DFMT_ATI2;
+ case dx::D3DFMT_BC5S:
+ return dx::D3DFMT_AT2N;
+ }
+ }
+}//namespace detail
+
+ inline texture load_dds(char const * Data, std::size_t Size)
+ {
+ GLI_ASSERT(Data && (Size >= sizeof(detail::FOURCC_DDS)));
+
+ if(strncmp(Data, detail::FOURCC_DDS, 4) != 0)
+ return texture();
+ std::size_t Offset = sizeof(detail::FOURCC_DDS);
+
+ GLI_ASSERT(Size >= sizeof(detail::dds_header));
+
+ detail::dds_header const & Header(*reinterpret_cast<detail::dds_header const *>(Data + Offset));
+ Offset += sizeof(detail::dds_header);
+
+ detail::dds_header10 Header10;
+ if((Header.Format.flags & dx::DDPF_FOURCC) && (Header.Format.fourCC == dx::D3DFMT_DX10 || Header.Format.fourCC == dx::D3DFMT_GLI1))
+ {
+ std::memcpy(&Header10, Data + Offset, sizeof(Header10));
+ Offset += sizeof(detail::dds_header10);
+ }
+
+ dx DX;
+
+ gli::format Format(static_cast<gli::format>(gli::FORMAT_INVALID));
+ if((Header.Format.flags & (dx::DDPF_RGB | dx::DDPF_ALPHAPIXELS | dx::DDPF_ALPHA | dx::DDPF_YUV | dx::DDPF_LUMINANCE)) && Format == static_cast<format>(gli::FORMAT_INVALID) && Header.Format.bpp != 0)
+ {
+ switch(Header.Format.bpp)
+ {
+ default:
+ GLI_ASSERT(0);
+ break;
+ case 8:
+ {
+ if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RG4_UNORM_PACK8).Mask)))
+ Format = FORMAT_RG4_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_L8_UNORM_PACK8).Mask)))
+ Format = FORMAT_L8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_A8_UNORM_PACK8).Mask)))
+ Format = FORMAT_A8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_R8_UNORM_PACK8).Mask)))
+ Format = FORMAT_R8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RG3B2_UNORM_PACK8).Mask)))
+ Format = FORMAT_RG3B2_UNORM_PACK8;
+ else
+ GLI_ASSERT(0);
+ break;
+ }
+ case 16:
+ {
+ if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RGBA4_UNORM_PACK16).Mask)))
+ Format = FORMAT_RGBA4_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_BGRA4_UNORM_PACK16).Mask)))
+ Format = FORMAT_BGRA4_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_R5G6B5_UNORM_PACK16).Mask)))
+ Format = FORMAT_R5G6B5_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_B5G6R5_UNORM_PACK16).Mask)))
+ Format = FORMAT_B5G6R5_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RGB5A1_UNORM_PACK16).Mask)))
+ Format = FORMAT_RGB5A1_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_BGR5A1_UNORM_PACK16).Mask)))
+ Format = FORMAT_BGR5A1_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_LA8_UNORM_PACK8).Mask)))
+ Format = FORMAT_LA8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RG8_UNORM_PACK8).Mask)))
+ Format = FORMAT_RG8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_L16_UNORM_PACK16).Mask)))
+ Format = FORMAT_L16_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_A16_UNORM_PACK16).Mask)))
+ Format = FORMAT_A16_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_R16_UNORM_PACK16).Mask)))
+ Format = FORMAT_R16_UNORM_PACK16;
+ else
+ GLI_ASSERT(0);
+ break;
+ }
+ case 24:
+ {
+ if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RGB8_UNORM_PACK8).Mask)))
+ Format = FORMAT_RGB8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_BGR8_UNORM_PACK8).Mask)))
+ Format = FORMAT_BGR8_UNORM_PACK8;
+ else
+ GLI_ASSERT(0);
+ break;
+ }
+ case 32:
+ {
+ if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_BGR8_UNORM_PACK32).Mask)))
+ Format = FORMAT_BGR8_UNORM_PACK32;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_BGRA8_UNORM_PACK8).Mask)))
+ Format = FORMAT_BGRA8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RGBA8_UNORM_PACK8).Mask)))
+ Format = FORMAT_RGBA8_UNORM_PACK8;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RGB10A2_UNORM_PACK32).Mask)))
+ Format = FORMAT_RGB10A2_UNORM_PACK32;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_LA16_UNORM_PACK16).Mask)))
+ Format = FORMAT_LA16_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_RG16_UNORM_PACK16).Mask)))
+ Format = FORMAT_RG16_UNORM_PACK16;
+ else if(glm::all(glm::equal(Header.Format.Mask, DX.translate(FORMAT_R32_SFLOAT_PACK32).Mask)))
+ Format = FORMAT_R32_SFLOAT_PACK32;
+ else
+ GLI_ASSERT(0);
+ break;
+ }
+ }
+ }
+ else if((Header.Format.flags & dx::DDPF_FOURCC) && (Header.Format.fourCC != dx::D3DFMT_DX10) && (Header.Format.fourCC != dx::D3DFMT_GLI1) && (Format == static_cast<format>(gli::FORMAT_INVALID)))
+ {
+ dx::d3dfmt const FourCC = detail::remap_four_cc(Header.Format.fourCC);
+ Format = DX.find(FourCC);
+ }
+ else if(Header.Format.fourCC == dx::D3DFMT_DX10 || Header.Format.fourCC == dx::D3DFMT_GLI1)
+ Format = DX.find(Header.Format.fourCC, Header10.Format);
+
+ GLI_ASSERT(Format != static_cast<format>(gli::FORMAT_INVALID));
+
+ size_t const MipMapCount = (Header.Flags & detail::DDSD_MIPMAPCOUNT) ? Header.MipMapLevels : 1;
+ size_t FaceCount = 1;
+ if(Header.CubemapFlags & detail::DDSCAPS2_CUBEMAP)
+ FaceCount = int(glm::bitCount(Header.CubemapFlags & detail::DDSCAPS2_CUBEMAP_ALLFACES));
+
+ size_t DepthCount = 1;
+ if(Header.CubemapFlags & detail::DDSCAPS2_VOLUME)
+ DepthCount = Header.Depth;
+
+ texture Texture(
+ get_target(Header, Header10), Format,
+ texture::extent_type(Header.Width, Header.Height, DepthCount),
+ std::max<texture::size_type>(Header10.ArraySize, 1), FaceCount, MipMapCount);
+
+ std::size_t const SourceSize = Offset + Texture.size();
+ GLI_ASSERT(SourceSize == Size);
+
+ std::memcpy(Texture.data(), Data + Offset, Texture.size());
+
+ return Texture;
+ }
+
+ inline texture load_dds(char const * Filename)
+ {
+ FILE* File = detail::open_file(Filename, "rb");
+ if(!File)
+ return texture();
+
+ long Beg = std::ftell(File);
+ std::fseek(File, 0, SEEK_END);
+ long End = std::ftell(File);
+ std::fseek(File, 0, SEEK_SET);
+
+ std::vector<char> Data(static_cast<std::size_t>(End - Beg));
+
+ std::fread(&Data[0], 1, Data.size(), File);
+ std::fclose(File);
+
+ return load_dds(&Data[0], Data.size());
+ }
+
+ inline texture load_dds(std::string const & Filename)
+ {
+ return load_dds(Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/load_kmg.inl b/3rdparty/glm/test/external/gli/core/load_kmg.inl
new file mode 100644
index 00000000000..e2b8a11156d
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/load_kmg.inl
@@ -0,0 +1,103 @@
+#include "file.hpp"
+#include <cstdio>
+#include <cassert>
+
+namespace gli{
+namespace detail
+{
+ static unsigned char const FOURCC_KMG100[] = {0xAB, 0x4B, 0x49, 0x4D, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A};
+
+ struct kmgHeader10
+ {
+ std::uint32_t Endianness;
+ std::uint32_t Format;
+ std::uint32_t Target;
+ std::uint32_t SwizzleRed;
+ std::uint32_t SwizzleGreen;
+ std::uint32_t SwizzleBlue;
+ std::uint32_t SwizzleAlpha;
+ std::uint32_t PixelWidth;
+ std::uint32_t PixelHeight;
+ std::uint32_t PixelDepth;
+ std::uint32_t Layers;
+ std::uint32_t Levels;
+ std::uint32_t Faces;
+ std::uint32_t GenerateMipmaps;
+ std::uint32_t BaseLevel;
+ std::uint32_t MaxLevel;
+ };
+
+ inline texture load_kmg100(char const * Data, std::size_t Size)
+ {
+ detail::kmgHeader10 const & Header(*reinterpret_cast<detail::kmgHeader10 const *>(Data));
+
+ size_t Offset = sizeof(detail::kmgHeader10);
+
+ texture Texture(
+ static_cast<target>(Header.Target),
+ static_cast<format>(Header.Format),
+ texture::extent_type(Header.PixelWidth, Header.PixelHeight, Header.PixelDepth),
+ Header.Layers,
+ Header.Faces,
+ Header.Levels,
+ texture::swizzles_type(Header.SwizzleRed, Header.SwizzleGreen, Header.SwizzleBlue, Header.SwizzleAlpha));
+
+ for(texture::size_type Layer = 0, Layers = Texture.layers(); Layer < Layers; ++Layer)
+ for(texture::size_type Level = 0, Levels = Texture.levels(); Level < Levels; ++Level)
+ {
+ texture::size_type const FaceSize = static_cast<texture::size_type>(Texture.size(Level));
+ for(texture::size_type Face = 0, Faces = Texture.faces(); Face < Faces; ++Face)
+ {
+ std::memcpy(Texture.data(Layer, Face, Level), Data + Offset, FaceSize);
+
+ Offset += FaceSize;
+ GLI_ASSERT(Offset <= Size);
+ }
+ }
+
+ return texture(
+ Texture, Texture.target(), Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Header.BaseLevel, Header.MaxLevel,
+ Texture.swizzles());
+ }
+}//namespace detail
+
+ inline texture load_kmg(char const * Data, std::size_t Size)
+ {
+ GLI_ASSERT(Data && (Size >= sizeof(detail::kmgHeader10)));
+
+ // KMG100
+ {
+ if(memcmp(Data, detail::FOURCC_KMG100, sizeof(detail::FOURCC_KMG100)) == 0)
+ return detail::load_kmg100(Data + sizeof(detail::FOURCC_KMG100), Size - sizeof(detail::FOURCC_KMG100));
+ }
+
+ return texture();
+ }
+
+ inline texture load_kmg(char const * Filename)
+ {
+ FILE* File = detail::open_file(Filename, "rb");
+ if(!File)
+ return texture();
+
+ long Beg = std::ftell(File);
+ std::fseek(File, 0, SEEK_END);
+ long End = std::ftell(File);
+ std::fseek(File, 0, SEEK_SET);
+
+ std::vector<char> Data(static_cast<std::size_t>(End - Beg));
+
+ std::fread(&Data[0], 1, Data.size(), File);
+ std::fclose(File);
+
+ return load_kmg(&Data[0], Data.size());
+ }
+
+ inline texture load_kmg(std::string const & Filename)
+ {
+ return load_kmg(Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/load_ktx.inl b/3rdparty/glm/test/external/gli/core/load_ktx.inl
new file mode 100644
index 00000000000..4b79ce5b98d
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/load_ktx.inl
@@ -0,0 +1,137 @@
+#include "../gl.hpp"
+#include "file.hpp"
+#include <cstdio>
+#include <cassert>
+
+namespace gli{
+namespace detail
+{
+ static unsigned char const FOURCC_KTX10[] = {0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A};
+ static unsigned char const FOURCC_KTX20[] = {0xAB, 0x4B, 0x54, 0x58, 0x20, 0x32, 0x30, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A};
+
+ struct ktx_header10
+ {
+ std::uint32_t Endianness;
+ std::uint32_t GLType;
+ std::uint32_t GLTypeSize;
+ std::uint32_t GLFormat;
+ std::uint32_t GLInternalFormat;
+ std::uint32_t GLBaseInternalFormat;
+ std::uint32_t PixelWidth;
+ std::uint32_t PixelHeight;
+ std::uint32_t PixelDepth;
+ std::uint32_t NumberOfArrayElements;
+ std::uint32_t NumberOfFaces;
+ std::uint32_t NumberOfMipmapLevels;
+ std::uint32_t BytesOfKeyValueData;
+ };
+
+ inline target get_target(ktx_header10 const& Header)
+ {
+ if(Header.NumberOfFaces > 1)
+ {
+ if(Header.NumberOfArrayElements > 0)
+ return TARGET_CUBE_ARRAY;
+ else
+ return TARGET_CUBE;
+ }
+ else if(Header.NumberOfArrayElements > 0)
+ {
+ if(Header.PixelHeight == 0)
+ return TARGET_1D_ARRAY;
+ else
+ return TARGET_2D_ARRAY;
+ }
+ else if(Header.PixelHeight == 0)
+ return TARGET_1D;
+ else if(Header.PixelDepth > 0)
+ return TARGET_3D;
+ else
+ return TARGET_2D;
+ }
+
+ inline texture load_ktx10(char const* Data, std::size_t Size)
+ {
+ detail::ktx_header10 const & Header(*reinterpret_cast<detail::ktx_header10 const*>(Data));
+
+ size_t Offset = sizeof(detail::ktx_header10);
+
+ // Skip key value data
+ Offset += Header.BytesOfKeyValueData;
+
+ gl GL(gl::PROFILE_KTX);
+ gli::format const Format = GL.find(
+ static_cast<gli::gl::internal_format>(Header.GLInternalFormat),
+ static_cast<gli::gl::external_format>(Header.GLFormat),
+ static_cast<gli::gl::type_format>(Header.GLType));
+ GLI_ASSERT(Format != static_cast<format>(gli::FORMAT_INVALID));
+
+ texture::size_type const BlockSize = block_size(Format);
+
+ texture Texture(
+ detail::get_target(Header),
+ Format,
+ texture::extent_type(
+ Header.PixelWidth,
+ std::max<texture::size_type>(Header.PixelHeight, 1),
+ std::max<texture::size_type>(Header.PixelDepth, 1)),
+ std::max<texture::size_type>(Header.NumberOfArrayElements, 1),
+ std::max<texture::size_type>(Header.NumberOfFaces, 1),
+ std::max<texture::size_type>(Header.NumberOfMipmapLevels, 1));
+
+ for(texture::size_type Level = 0, Levels = Texture.levels(); Level < Levels; ++Level)
+ {
+ Offset += sizeof(std::uint32_t);
+
+ for(texture::size_type Layer = 0, Layers = Texture.layers(); Layer < Layers; ++Layer)
+ for(texture::size_type Face = 0, Faces = Texture.faces(); Face < Faces; ++Face)
+ {
+ texture::size_type const FaceSize = Texture.size(Level);
+
+ std::memcpy(Texture.data(Layer, Face, Level), Data + Offset, FaceSize);
+
+ Offset += std::max(BlockSize, glm::ceilMultiple(FaceSize, static_cast<texture::size_type>(4)));
+ }
+ }
+
+ return Texture;
+ }
+}//namespace detail
+
+ inline texture load_ktx(char const* Data, std::size_t Size)
+ {
+ GLI_ASSERT(Data && (Size >= sizeof(detail::ktx_header10)));
+
+ // KTX10
+ {
+ if(memcmp(Data, detail::FOURCC_KTX10, sizeof(detail::FOURCC_KTX10)) == 0)
+ return detail::load_ktx10(Data + sizeof(detail::FOURCC_KTX10), Size - sizeof(detail::FOURCC_KTX10));
+ }
+
+ return texture();
+ }
+
+ inline texture load_ktx(char const* Filename)
+ {
+ FILE* File = detail::open_file(Filename, "rb");
+ if(!File)
+ return texture();
+
+ long Beg = std::ftell(File);
+ std::fseek(File, 0, SEEK_END);
+ long End = std::ftell(File);
+ std::fseek(File, 0, SEEK_SET);
+
+ std::vector<char> Data(static_cast<std::size_t>(End - Beg));
+
+ std::fread(&Data[0], 1, Data.size(), File);
+ std::fclose(File);
+
+ return load_ktx(&Data[0], Data.size());
+ }
+
+ inline texture load_ktx(std::string const& Filename)
+ {
+ return load_ktx(Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/make_texture.inl b/3rdparty/glm/test/external/gli/core/make_texture.inl
new file mode 100644
index 00000000000..f0eb84de999
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/make_texture.inl
@@ -0,0 +1,72 @@
+namespace gli
+{
+ inline gli::texture make_texture1d(format Format, extent1d const& Extent, size_t Levels)
+ {
+ return gli::texture(TARGET_1D, Format, texture::extent_type(Extent.x, 1, 1), 1, 1, Levels);
+ }
+
+ inline gli::texture make_texture1d(format Format, extent1d const& Extent)
+ {
+ return gli::texture(TARGET_1D, Format, texture::extent_type(Extent.x, 1, 1), 1, 1, gli::levels(texture::extent_type(Extent.x, 1, 1)));
+ }
+
+ inline gli::texture make_texture1d_array(format Format, extent1d const& Extent, size_t Layers, size_t Levels)
+ {
+ return gli::texture(TARGET_1D_ARRAY, Format, texture::extent_type(Extent.x, 1, 1), Layers, 1, Levels);
+ }
+
+ inline gli::texture make_texture1d_array(format Format, extent1d const& Extent, size_t Layers)
+ {
+ return gli::texture(TARGET_1D_ARRAY, Format, texture::extent_type(Extent.x, 1, 1), Layers, 1, gli::levels(texture::extent_type(Extent.x, 1, 1)));
+ }
+
+ inline gli::texture make_texture2d(format Format, extent2d const& Extent, size_t Levels)
+ {
+ return gli::texture(TARGET_2D, Format, texture::extent_type(Extent, 1), 1, 1, Levels);
+ }
+
+ inline gli::texture make_texture2d(format Format, extent2d const& Extent)
+ {
+ return gli::texture(TARGET_2D, Format, texture::extent_type(Extent, 1), 1, 1, gli::levels(texture::extent_type(Extent, 1)));
+ }
+
+ inline gli::texture make_texture2d_array(format Format, extent2d const& Extent, size_t Layer, size_t Levels)
+ {
+ return gli::texture(TARGET_2D_ARRAY, Format, texture::extent_type(Extent, 1), Layer, 1, Levels);
+ }
+
+ inline gli::texture make_texture2d_array(format Format, extent2d const& Extent, size_t Layer)
+ {
+ return gli::texture(TARGET_2D_ARRAY, Format, texture::extent_type(Extent, 1), Layer, 1, gli::levels(texture::extent_type(Extent, 1)));
+ }
+
+ inline gli::texture make_texture3d(format Format, extent3d const& Extent, size_t Levels)
+ {
+ return gli::texture(TARGET_3D, Format, texture::extent_type(Extent), 1, 1, Levels);
+ }
+
+ inline gli::texture make_texture3d(format Format, extent3d const& Extent)
+ {
+ return gli::texture(TARGET_3D, Format, texture::extent_type(Extent), 1, 1, gli::levels(texture::extent_type(Extent)));
+ }
+
+ inline gli::texture make_texture_cube(format Format, extent2d const& Extent, size_t Levels)
+ {
+ return gli::texture(TARGET_CUBE, Format, texture::extent_type(Extent, 1), 1, 6, Levels);
+ }
+
+ inline gli::texture make_texture_cube(format Format, extent2d const& Extent)
+ {
+ return gli::texture(TARGET_CUBE, Format, texture::extent_type(Extent, 1), 1, 6, gli::levels(texture::extent_type(Extent, 1)));
+ }
+
+ inline gli::texture make_texture_cube_array(format Format, extent2d const& Extent, size_t Layer, size_t Levels)
+ {
+ return gli::texture(TARGET_CUBE_ARRAY, Format, texture::extent_type(Extent, 1), Layer, 6, Levels);
+ }
+
+ inline gli::texture make_texture_cube_array(format Format, extent2d const& Extent, size_t Layer)
+ {
+ return gli::texture(TARGET_CUBE_ARRAY, Format, texture::extent_type(Extent, 1), Layer, 6, gli::levels(texture::extent_type(Extent, 1)));
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/mipmaps_compute.hpp b/3rdparty/glm/test/external/gli/core/mipmaps_compute.hpp
new file mode 100644
index 00000000000..3c025e86048
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/mipmaps_compute.hpp
@@ -0,0 +1,116 @@
+#pragma once
+
+#include "filter_compute.hpp"
+
+namespace gli{
+namespace detail
+{
+ template <typename texture_type, typename sampler_value_type, typename fetch_func, typename write_func, typename normalized_type, typename texel_type>
+ inline void generate_mipmaps_1d
+ (
+ texture_type & Texture, fetch_func Fetch, write_func Write,
+ typename texture_type::size_type BaseLayer, typename texture_type::size_type MaxLayer,
+ typename texture_type::size_type BaseFace, typename texture_type::size_type MaxFace,
+ typename texture_type::size_type BaseLevel, typename texture_type::size_type MaxLevel,
+ filter Min
+ )
+ {
+ typedef typename detail::interpolate<sampler_value_type>::type interpolate_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename extent_type::value_type component_type;
+ typedef typename detail::filterBase<detail::DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_func, texel_type>::filterFunc filter_func;
+
+ filter_func const Filter = detail::get_filter<filter_func, detail::DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_func, texel_type, sampler_value_type>(FILTER_NEAREST, Min, false);
+ GLI_ASSERT(Filter);
+
+ for(size_type Layer = BaseLayer; Layer <= MaxLayer; ++Layer)
+ for(size_type Face = BaseFace; Face <= MaxFace; ++Face)
+ for(size_type Level = BaseLevel; Level < MaxLevel; ++Level)
+ {
+ extent_type const& ExtentDst = Texture.extent(Level + 1);
+ normalized_type const& Scale = normalized_type(1) / normalized_type(max(ExtentDst - extent_type(1), extent_type(1)));
+
+ for(component_type i = 0; i < ExtentDst.x; ++i)
+ {
+ normalized_type const& SamplePosition(normalized_type(static_cast<typename normalized_type::value_type>(i)) * Scale);
+ texel_type const& Texel = Filter(Texture, Fetch, SamplePosition, Layer, Face, static_cast<sampler_value_type>(Level), texel_type(0));
+ Write(Texture, extent_type(i), Layer, Face, Level + 1, Texel);
+ }
+ }
+ }
+
+ template <typename texture_type, typename sampler_value_type, typename fetch_func, typename write_func, typename normalized_type, typename texel_type>
+ inline void generate_mipmaps_2d
+ (
+ texture_type & Texture, fetch_func Fetch, write_func Write,
+ typename texture_type::size_type BaseLayer, typename texture_type::size_type MaxLayer,
+ typename texture_type::size_type BaseFace, typename texture_type::size_type MaxFace,
+ typename texture_type::size_type BaseLevel, typename texture_type::size_type MaxLevel,
+ filter Min
+ )
+ {
+ typedef typename detail::interpolate<sampler_value_type>::type interpolate_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename extent_type::value_type component_type;
+ typedef typename detail::filterBase<detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_func, texel_type>::filterFunc filter_func;
+
+ filter_func const Filter = detail::get_filter<filter_func, detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_func, texel_type, sampler_value_type>(FILTER_NEAREST, Min, false);
+ GLI_ASSERT(Filter);
+
+ for(size_type Layer = BaseLayer; Layer <= MaxLayer; ++Layer)
+ for(size_type Face = BaseFace; Face <= MaxFace; ++Face)
+ for(size_type Level = BaseLevel; Level < MaxLevel; ++Level)
+ {
+ extent_type const& ExtentDst = Texture.extent(Level + 1);
+ normalized_type const& Scale = normalized_type(1) / normalized_type(max(ExtentDst - extent_type(1), extent_type(1)));
+
+ for(component_type j = 0; j < ExtentDst.y; ++j)
+ for(component_type i = 0; i < ExtentDst.x; ++i)
+ {
+ normalized_type const& SamplePosition(normalized_type(i, j) * Scale);
+ texel_type const& Texel = Filter(Texture, Fetch, SamplePosition, Layer, Face, static_cast<sampler_value_type>(Level), texel_type(0));
+ Write(Texture, extent_type(i, j), Layer, Face, Level + 1, Texel);
+ }
+ }
+ }
+
+ template <typename texture_type, typename sampler_value_type, typename fetch_func, typename write_func, typename normalized_type, typename texel_type>
+ inline void generate_mipmaps_3d
+ (
+ texture_type & Texture, fetch_func Fetch, write_func Write,
+ typename texture_type::size_type BaseLayer, typename texture_type::size_type MaxLayer,
+ typename texture_type::size_type BaseFace, typename texture_type::size_type MaxFace,
+ typename texture_type::size_type BaseLevel, typename texture_type::size_type MaxLevel,
+ filter Min
+ )
+ {
+ typedef typename detail::interpolate<sampler_value_type>::type interpolate_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename extent_type::value_type component_type;
+ typedef typename detail::filterBase<detail::DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_func, texel_type>::filterFunc filter_func;
+
+ filter_func const Filter = detail::get_filter<filter_func, detail::DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_func, texel_type, sampler_value_type>(FILTER_NEAREST, Min, false);
+ GLI_ASSERT(Filter);
+
+ for(size_type Layer = BaseLayer; Layer <= MaxLayer; ++Layer)
+ for(size_type Face = BaseFace; Face <= MaxFace; ++Face)
+ for(size_type Level = BaseLevel; Level < MaxLevel; ++Level)
+ {
+ extent_type const& ExtentDst = Texture.extent(Level + 1);
+ normalized_type const& Scale = normalized_type(1) / normalized_type(max(ExtentDst - extent_type(1), extent_type(1)));
+
+ for(component_type k = 0; k < ExtentDst.z; ++k)
+ for(component_type j = 0; j < ExtentDst.y; ++j)
+ for(component_type i = 0; i < ExtentDst.x; ++i)
+ {
+ normalized_type const& SamplePosition(normalized_type(i, j, k) * Scale);
+ texel_type const& Texel = Filter(Texture, Fetch, SamplePosition, Layer, Face, static_cast<sampler_value_type>(Level), texel_type(0));
+ Write(Texture, extent_type(i, j, k), Layer, Face, Level + 1, Texel);
+ }
+ }
+ }
+}//namespace detail
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/operation.hpp b/3rdparty/glm/test/external/gli/core/operation.hpp
deleted file mode 100644
index c23c29d7319..00000000000
--- a/3rdparty/glm/test/external/gli/core/operation.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/operation.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_OPERATION_INCLUDED
-#define GLI_OPERATION_INCLUDED
-
-#include "texture2d.hpp"
-
-namespace gli
-{
- texture2D duplicate(texture2D const & Texture);
- texture2D flip(texture2D const & Texture);
- texture2D mirror(texture2D const & Texture);
- texture2D swizzle(
- texture2D const & Texture,
- glm::uvec4 const & Channel);
- texture2D crop(
- texture2D const & Texture,
- texture2D::dimensions_type const & Position,
- texture2D::dimensions_type const & Size);
-
- image2D crop(
- image2D const & Image,
- texture2D::dimensions_type const & Position,
- texture2D::dimensions_type const & Size);
-
- image2D copy(
- image2D const & SrcImage,
- image2D::dimensions_type const & SrcPosition,
- image2D::dimensions_type const & SrcSize,
- image2D & DstImage,
- image2D::dimensions_type const & DstPosition);
-
- //image operator+(image const & MipmapA, image const & MipmapB);
- //image operator-(image const & MipmapA, image const & MipmapB);
- //image operator*(image const & MipmapA, image const & MipmapB);
- //image operator/(image const & MipmapA, image const & MipmapB);
-
- //namespace wip
- //{
- // template <typename GENTYPE, template <typename> class SURFACE>
- // GENTYPE fetch(SURFACE<GENTYPE> const & Image)
- // {
- // return GENTYPE();
- // }
-
- // template
- // <
- // typename GENTYPE,
- // template
- // <
- // typename
- // >
- // class SURFACE,
- // template
- // <
- // typename,
- // template
- // <
- // typename
- // >
- // class
- // >
- // class IMAGE
- // >
- // GENTYPE fetch(IMAGE<GENTYPE, SURFACE> const & Image)
- // {
- // return GENTYPE();
- // }
- //}//namespace wip
-
-}//namespace gli
-
-#include "operation.inl"
-
-#endif//GLI_OPERATION_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/operation.inl b/3rdparty/glm/test/external/gli/core/operation.inl
deleted file mode 100644
index ef3394efe69..00000000000
--- a/3rdparty/glm/test/external/gli/core/operation.inl
+++ /dev/null
@@ -1,233 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-09-08
-// Licence : This source is under MIT License
-// File : gli/core/operation.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#include <cstring>
-
-namespace gli
-{
- namespace detail
- {
- inline image2D duplicate(image2D const & Mipmap2D)
- {
- image2D Result(Mipmap2D.dimensions(), Mipmap2D.format());
- memcpy(Result.data(), Mipmap2D.data(), Mipmap2D.capacity());
- return Result;
- }
-
- inline image2D flip(image2D const & Mipmap2D)
- {
- image2D Result(Mipmap2D.dimensions(), Mipmap2D.format());
-
- std::size_t ValueSize = Result.value_size();
- glm::byte * DstPtr = Result.data();
- glm::byte const * const SrcPtr = Mipmap2D.data();
-
- for(std::size_t j = 0; j < Result.dimensions().y; ++j)
- for(std::size_t i = 0; i < Result.dimensions().x; ++i)
- {
- std::size_t DstIndex = (i + j * Result.dimensions().y) * ValueSize;
- std::size_t SrcIndex = (i + (Result.dimensions().y - j) * Result.dimensions().x) * ValueSize;
- memcpy(DstPtr + DstIndex, SrcPtr + SrcIndex, ValueSize);
- }
-
- return Result;
- }
-
- inline image2D mirror(image2D const & Mipmap2D)
- {
- image2D Result(Mipmap2D.dimensions(), Mipmap2D.format());
-
- std::size_t ValueSize = Mipmap2D.value_size();
- glm::byte * DstPtr = Result.data();
- glm::byte const * const SrcPtr = Mipmap2D.data();
-
- for(std::size_t j = 0; j < Result.dimensions().y; ++j)
- for(std::size_t i = 0; i < Result.dimensions().x; ++i)
- {
- std::size_t DstIndex = (i + j * Result.dimensions().x) * ValueSize;
- std::size_t SrcIndex = ((Result.dimensions().x - i) + j * Result.dimensions().x) * ValueSize;
- memcpy(DstPtr + DstIndex, SrcPtr + SrcIndex, ValueSize);
- }
-
- return Result;
- }
-
- inline image2D swizzle
- (
- image2D const & Mipmap,
- glm::uvec4 const & Channel
- )
- {
- image2D Result = detail::duplicate(Mipmap);
-
- glm::byte * DataDst = Result.data();
- glm::byte const * const DataSrc = Mipmap.data();
-
- gli::texture2D::size_type CompSize = Mipmap.value_size() / Mipmap.components();
- gli::texture2D::size_type TexelCount = Mipmap.capacity() / Mipmap.value_size();
-
- for(gli::texture2D::size_type t = 0; t < TexelCount; ++t)
- for(gli::texture2D::size_type c = 0; c < Mipmap.components(); ++c)
- {
- gli::texture2D::size_type IndexSrc = t * Mipmap.components() + Channel[static_cast<int>(c)];
- gli::texture2D::size_type IndexDst = t * Mipmap.components() + c;
-
- memcpy(DataDst + IndexDst, DataSrc + IndexSrc, CompSize);
- }
-
- return Result;
- }
-
- inline image2D crop
- (
- image2D const & Image,
- image2D::dimensions_type const & Position,
- image2D::dimensions_type const & Size
- )
- {
- assert((Position.x + Size.x) <= Image.dimensions().x && (Position.y + Size.y) <= Image.dimensions().y);
-
- image2D Result(Size, Image.format());
-
- glm::byte* DstData = Result.data();
- glm::byte const * const SrcData = Image.data();
-
- for(std::size_t j = 0; j < Size.y; ++j)
- {
- std::size_t DstIndex = 0 + (0 + j) * Size.x * Image.value_size();
- std::size_t SrcIndex = Position.x * Image.value_size() + (Position.y + j) * Image.dimensions().x * Image.value_size();
- memcpy(DstData + DstIndex, SrcData + SrcIndex, Image.value_size() * Size.x);
- }
-
- return Result;
- }
-
- inline image2D copy
- (
- image2D const & SrcMipmap,
- image2D::dimensions_type const & SrcPosition,
- image2D::dimensions_type const & SrcSize,
- image2D & DstMipmap,
- image2D::dimensions_type const & DstPosition
- )
- {
- assert((SrcPosition.x + SrcSize.x) <= SrcMipmap.dimensions().x && (SrcPosition.y + SrcSize.y) <= SrcMipmap.dimensions().y);
- assert(SrcMipmap.format() == DstMipmap.format());
-
- glm::byte * DstData = DstMipmap.data();
- glm::byte const * const SrcData = SrcMipmap.data();
-
- std::size_t SizeX = glm::min(std::size_t(SrcSize.x + SrcPosition.x), std::size_t(DstMipmap.dimensions().x + DstPosition.x));
- std::size_t SizeY = glm::min(std::size_t(SrcSize.y + SrcPosition.y), std::size_t(DstMipmap.dimensions().y + DstPosition.y));
-
- for(std::size_t j = 0; j < SizeY; ++j)
- {
- std::size_t DstIndex = DstPosition.x * DstMipmap.value_size() + (DstPosition.y + j) * DstMipmap.dimensions().x * DstMipmap.value_size();
- std::size_t SrcIndex = SrcPosition.x * SrcMipmap.value_size() + (SrcPosition.y + j) * SrcMipmap.dimensions().x * SrcMipmap.value_size();
- memcpy(DstData + DstIndex, SrcData + SrcIndex, SrcMipmap.value_size() * SizeX);
- }
-
- return DstMipmap;
- }
-
- }//namespace detail
-
- inline texture2D duplicate(texture2D const & Texture2D)
- {
- texture2D Result(Texture2D.levels());
- for(texture2D::level_type Level = 0; Level < Texture2D.levels(); ++Level)
- Result[Level] = detail::duplicate(Texture2D[Level]);
- return Result;
- }
-
- inline texture2D flip(texture2D const & Texture2D)
- {
- texture2D Result(Texture2D.levels());
- for(texture2D::level_type Level = 0; Level < Texture2D.levels(); ++Level)
- Result[Level] = detail::flip(Texture2D[Level]);
- return Result;
- }
-
- inline texture2D mirror(texture2D const & Texture2D)
- {
- texture2D Result(Texture2D.levels());
- for(texture2D::level_type Level = 0; Level < Texture2D.levels(); ++Level)
- Result[Level] = detail::mirror(Texture2D[Level]);
- return Result;
- }
-
- inline texture2D crop
- (
- texture2D const & Texture2D,
- texture2D::dimensions_type const & Position,
- texture2D::dimensions_type const & Size
- )
- {
- texture2D Result(Texture2D.levels());
- for(texture2D::level_type Level = 0; Level < Texture2D.levels(); ++Level)
- Result[Level] = detail::crop(
- Texture2D[Level],
- Position >> texture2D::dimensions_type(Level),
- Size >> texture2D::dimensions_type(Level));
- return Result;
- }
-
- inline texture2D swizzle
- (
- texture2D const & Texture2D,
- glm::uvec4 const & Channel
- )
- {
- texture2D Result(Texture2D.levels());
- for(texture2D::level_type Level = 0; Level < Texture2D.levels(); ++Level)
- Result[Level] = detail::swizzle(Texture2D[Level], Channel);
- return Result;
- }
-
- inline texture2D copy
- (
- texture2D const & SrcImage,
- texture2D::level_type const & SrcLevel,
- texture2D::dimensions_type const & SrcPosition,
- texture2D::dimensions_type const & SrcDimensions,
- texture2D & DstMipmap,
- texture2D::level_type const & DstLevel,
- texture2D::dimensions_type const & DstDimensions
- )
- {
- detail::copy(
- SrcImage[SrcLevel],
- SrcPosition,
- SrcDimensions,
- DstMipmap[DstLevel],
- DstDimensions);
- return DstMipmap;
- }
-
- //inline image operator+(image const & MipmapA, image const & MipmapB)
- //{
- //
- //}
-
- //inline image operator-(image const & MipmapA, image const & MipmapB)
- //{
- //
- //}
-
- //inline image operator*(image const & MipmapA, image const & MipmapB)
- //{
- //
- //}
-
- //inline image operator/(image const & MipmapA, image const & MipmapB)
- //{
- //
- //}
-
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/operator.hpp b/3rdparty/glm/test/external/gli/core/operator.hpp
deleted file mode 100644
index 46f27321aa7..00000000000
--- a/3rdparty/glm/test/external/gli/core/operator.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-01-19
-// Updated : 2010-01-19
-// Licence : This source is under MIT License
-// File : gli/core/operator.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_OPERATOR_INCLUDED
-#define GLI_OPERATOR_INCLUDED
-
-#include "texture2d.hpp"
-
-namespace gli{
-namespace detail
-{
-
-}//namespace detail
-
- texture2D operator+(texture2D const & TextureA, texture2D const & TextureB);
- texture2D operator-(texture2D const & TextureA, texture2D const & TextureB);
-
-}//namespace gli
-
-#include "operator.inl"
-
-#endif//GLI_OPERATOR_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/operator.inl b/3rdparty/glm/test/external/gli/core/operator.inl
deleted file mode 100644
index 1ac8328199c..00000000000
--- a/3rdparty/glm/test/external/gli/core/operator.inl
+++ /dev/null
@@ -1,210 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-01-19
-// Updated : 2010-01-19
-// Licence : This source is under MIT License
-// File : gli/core/operator.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli
-{
- namespace detail
- {
- template <typename T>
- void element
- (
- T & DataDst,
- T const & DataSrcA,
- T const & DataSrcB,
- std::binary_function<T, T, T> const & Func
- )
- {
- *DataDst = Func(DataSrcA, DataSrcB);
- }
-
- void op
- (
- texture2D::value_type * DataDst,
- texture2D::value_type const * const DataSrcA,
- texture2D::value_type const * const DataSrcB,
- format Format
- )
- {
- std::plus<>()
- switch(Format)
- {
- case R8U:
- *((glm::u8*)DataDst) = *((glm::u8*)DataSrcA) + *((glm::u8*)DataSrcB);
- break;
- case RG8U:
- *((glm::u8vec2*)DataDst) = *((glm::u8vec2*)DataSrcA) + *((glm::u8vec2*)DataSrcB);
- break;
- case RGB8U:
- *((glm::u8vec3*)DataDst) = *((glm::u8vec3*)DataSrcA) + *((glm::u8vec3*)DataSrcB);
- break;
- case RGBA8U:
- *((glm::u8vec4*)DataDst) = *((glm::u8vec4*)DataSrcA) + *((glm::u8vec4*)DataSrcB);
- break;
-
- case R16U:
- *((glm::u16*)DataDst) = *((glm::u16*)DataSrcA) + *((glm::u16*)DataSrcB);
- break;
- case RG16U:
- *((glm::u16vec2*)DataDst) = *((glm::u16vec2*)DataSrcA) + *((glm::u16vec2*)DataSrcB);
- break;
- case RGB16U:
- *((glm::u16vec3*)DataDst) = *((glm::u16vec3*)DataSrcA) + *((glm::u16vec3*)DataSrcB);
- break;
- case RGBA16U:
- *((glm::u16vec4*)DataDst) = *((glm::u16vec4*)DataSrcA) + *((glm::u16vec4*)DataSrcB);
- break;
-
- case R32U:
- *((glm::u32*)DataDst) = *((glm::u32*)DataSrcA) + *((glm::u32*)DataSrcB);
- break;
- case RG32U:
- *((glm::u32vec2*)DataDst) = *((glm::u32vec2*)DataSrcA) + *((glm::u32vec2*)DataSrcB);
- break;
- case RGB32U:
- *((glm::u32vec3*)DataDst) = *((glm::u32vec3*)DataSrcA) + *((glm::u32vec3*)DataSrcB);
- break;
- case RGBA32U:
- *((glm::u32vec4*)DataDst) = *((glm::u32vec4*)DataSrcA) + *((glm::u32vec4*)DataSrcB);
- break;
-
- case R8I:
- *((glm::i8*)DataDst) = *((glm::i8*)DataSrcA) + *((glm::i8*)DataSrcB);
- break;
- case RG8I:
- *((glm::i8vec2*)DataDst) = *((glm::i8vec2*)DataSrcA) + *((glm::i8vec2*)DataSrcB);
- break;
- case RGB8I:
- *((glm::i8vec3*)DataDst) = *((glm::i8vec3*)DataSrcA) + *((glm::i8vec3*)DataSrcB);
- break;
- case RGBA8I:
- *((glm::i8vec4*)DataDst) = *((glm::i8vec4*)DataSrcA) + *((glm::i8vec4*)DataSrcB);
- break;
-
- case R16I:
- *((glm::i16*)DataDst) = *((glm::i16*)DataSrcA) + *((glm::i16*)DataSrcB);
- break;
- case RG16I:
- *((glm::i16vec2*)DataDst) = *((glm::i16vec2*)DataSrcA) + *((glm::i16vec2*)DataSrcB);
- break;
- case RGB16I:
- *((glm::i16vec3*)DataDst) = *((glm::i16vec3*)DataSrcA) + *((glm::i16vec3*)DataSrcB);
- break;
- case RGBA16I:
- *((glm::i16vec4*)DataDst) = *((glm::i16vec4*)DataSrcA) + *((glm::i16vec4*)DataSrcB);
- break;
-
- case R32I:
- *((glm::i32*)DataDst) = *((glm::i32*)DataSrcA) + *((glm::i32*)DataSrcB);
- break;
- case RG32I:
- *((glm::i32vec2*)DataDst) = *((glm::i32vec2*)DataSrcA) + *((glm::i32vec2*)DataSrcB);
- break;
- case RGB32I:
- *((glm::i32vec3*)DataDst) = *((glm::i32vec3*)DataSrcA) + *((glm::i32vec3*)DataSrcB);
- break;
- case RGBA32I:
- *((glm::i32vec4*)DataDst) = *((glm::i32vec4*)DataSrcA) + *((glm::i32vec4*)DataSrcB);
- break;
-
- case R16F:
- *((glm::f16*)DataDst) = *((glm::f16*)DataSrcA) + *((glm::f16*)DataSrcB);
- break;
- case RG16F:
- *((glm::f16vec2*)DataDst) = *((glm::f16vec2*)DataSrcA) + *((glm::f16vec2*)DataSrcB);
- break;
- case RGB16F:
- *((glm::f16vec3*)DataDst) = *((glm::f16vec3*)DataSrcA) + *((glm::f16vec3*)DataSrcB);
- break;
- case RGBA16F:
- *((glm::f16vec4*)DataDst) = *((glm::f16vec4*)DataSrcA) + *((glm::f16vec4*)DataSrcB);
- break;
-
- case R32F:
- *((glm::f32*)DataDst) = *((glm::f32*)DataSrcA) + *((glm::f32*)DataSrcB);
- break;
- case RG32F:
- *((glm::f32vec2*)DataDst) = *((glm::f32vec2*)DataSrcA) + *((glm::f32vec2*)DataSrcB);
- break;
- case RGB32F:
- *((glm::f32vec3*)DataDst) = *((glm::f32vec3*)DataSrcA) + *((glm::f32vec3*)DataSrcB);
- break;
- case RGBA32F:
- *((glm::f32vec4*)DataDst) = *((glm::f32vec4*)DataSrcA) + *((glm::f32vec4*)DataSrcB);
- break;
- default:
- assert(0);
- }
- }
-
- void add
- (
- texture2D::image & Result,
- texture2D::image const & ImageA,
- texture2D::image const & ImageB,
- )
- {
-
- }
-
- }//namespace detail
-
- texture2D operator+
- (
- texture2D const & ImageA,
- texture2D const & ImageB
- )
- {
- assert(ImageA.levels() == ImageB.levels());
- texture2D Result[ImageA.levels()];
-
- for(texture2D::level_type Level = 0; Level < Result.levels(); ++Level)
- {
- assert(ImageA.capacity() == ImageB.capacity());
- assert(ImageA.format() == ImageB.format());
-
- Result[Level] = texture2D::image(ImageA[Level].dimensions(), ImageA[Level].format());
-
- add(Result[Level], ImageA[Level], ImageB[Level]);
-
- texture2D::size_type ValueSize = Result.value_size();
- texture2D::size_type TexelCount = this->capacity() / ValueSize;
- for(texture2D::size_type Texel = 0; Texel < TexelCount; ++Texel)
- {
- texture2D::value_type * DataDst = Result[Level].data() + Texel * ValueSize;
- texture2D::value_type const * const DataSrcA = ImageA[Level].data() + Texel * ValueSize;
- texture2D::value_type const * const DataSrcB = ImageB[Level].data() + Texel * ValueSize;
-
- detail::op(DataDst, DataSrcA, DataSrcB, Result.format(), std::plus);
- }
- }
-
- return Result;
- }
-
- texture2D operator-
- (
- texture2D const & ImageA,
- texture2D const & ImageB
- )
- {
- assert(ImageA.levels() == ImageB.levels());
- texture2D Result[ImageA.levels()];
-
-
- for(texture2D::level_type Level = 0; Level < ImageA.levels(); ++Level)
- {
- assert(ImageA.capacity() == ImageB.capacity());
-
-
- }
-
- return Result;
- }
-
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/reduce.inl b/3rdparty/glm/test/external/gli/core/reduce.inl
new file mode 100644
index 00000000000..fd1272128ae
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/reduce.inl
@@ -0,0 +1,533 @@
+#include "../sampler1d.hpp"
+#include "../sampler1d_array.hpp"
+#include "../sampler2d.hpp"
+#include "../sampler2d_array.hpp"
+#include "../sampler3d.hpp"
+#include "../sampler_cube.hpp"
+#include "../sampler_cube_array.hpp"
+
+namespace gli
+{
+ template <typename val_type>
+ struct binary_func
+ {
+ typedef vec<4, val_type>(*type)(vec<4, val_type> const& A, vec<4, val_type> const& B);
+ };
+
+namespace detail
+{
+ inline bool are_compatible(texture const& A, texture const& B)
+ {
+ return all(equal(A.extent(), B.extent())) && A.levels() == B.levels() && A.faces() == B.faces() && A.layers() == B.layers();
+ }
+
+ template <typename val_type>
+ struct compute_sampler_reduce_1d
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture1d::size_type size_type;
+ typedef texture1d::extent_type extent_type;
+
+ static vec<4, val_type> call(texture1d const& A, texture1d const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler1d<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0), SamplerB.template fetch(TexelIndex, 0)));
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename val_type>
+ struct compute_sampler_reduce_1d_array
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture1d_array::size_type size_type;
+ typedef texture1d_array::extent_type extent_type;
+
+ static vec<4, val_type> call(texture1d_array const& A, texture1d_array const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler1d_array<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0, 0), SamplerB.template fetch(TexelIndex, 0, 0)));
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, LayerIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, LayerIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename val_type>
+ struct compute_sampler_reduce_2d
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture2d::size_type size_type;
+ typedef texture2d::extent_type extent_type;
+
+ static vec<4, val_type> call(texture2d const& A, texture2d const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler2d<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0), SamplerB.template fetch(TexelIndex, 0)));
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename val_type>
+ struct compute_sampler_reduce_2d_array
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture2d_array::size_type size_type;
+ typedef texture2d_array::extent_type extent_type;
+
+ static vec<4, val_type> call(texture2d_array const& A, texture2d_array const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler2d_array<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0, 0), SamplerB.template fetch(TexelIndex, 0, 0)));
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, LayerIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, LayerIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename val_type>
+ struct compute_sampler_reduce_3d
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture3d::size_type size_type;
+ typedef texture3d::extent_type extent_type;
+
+ static vec<4, val_type> call(texture3d const& A, texture3d const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler3d<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0), SamplerB.template fetch(TexelIndex, 0)));
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.z = 0; TexelIndex.z < TexelCount.z; ++TexelIndex.z)
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename val_type>
+ struct compute_sampler_reduce_cube
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture_cube::size_type size_type;
+ typedef texture_cube::extent_type extent_type;
+
+ static vec<4, val_type> call(texture_cube const& A, texture_cube const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler_cube<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0, 0), SamplerB.template fetch(TexelIndex, 0, 0)));
+
+ for(size_type FaceIndex = 0, FaceCount = A.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, FaceIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, FaceIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename val_type>
+ struct compute_sampler_reduce_cube_array
+ {
+ typedef typename binary_func<val_type>::type func_type;
+ typedef texture_cube_array::size_type size_type;
+ typedef texture_cube_array::extent_type extent_type;
+
+ static vec<4, val_type> call(texture_cube_array const& A, texture_cube_array const& B, binary_func<val_type> TexelFunc, binary_func<val_type> ReduceFunc)
+ {
+ GLI_ASSERT(are_compatible(A, B));
+
+ sampler_cube_array<val_type> const SamplerA(A, gli::WRAP_CLAMP_TO_EDGE), SamplerB(B, gli::WRAP_CLAMP_TO_EDGE);
+ extent_type TexelIndex(0);
+ vec<4, val_type> Result(TexelFunc(SamplerA.template fetch(TexelIndex, 0, 0, 0), SamplerB.template fetch(TexelIndex, 0, 0, 0)));
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type FaceIndex = 0, FaceCount = A.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ SamplerA.template fetch(TexelIndex, LayerIndex, FaceIndex, LevelIndex),
+ SamplerB.template fetch(TexelIndex, LayerIndex, FaceIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+}//namespace detail
+
+namespace detail
+{
+ template <typename vec_type>
+ struct compute_reduce_1d
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture1d::size_type size_type;
+ typedef texture1d::extent_type extent_type;
+
+ static vec_type call(texture1d const& A, texture1d const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.template load<vec_type>(TexelIndex, 0),
+ B.template load<vec_type>(TexelIndex, 0)));
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_reduce_1d_array
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture1d_array::size_type size_type;
+ typedef texture1d_array::extent_type extent_type;
+
+ static vec_type call(texture1d_array const& A, texture1d_array const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.template load<vec_type>(TexelIndex, 0),
+ B.template load<vec_type>(TexelIndex, 0)));
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, LayerIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, LayerIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_reduce_2d
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture2d::size_type size_type;
+ typedef texture2d::extent_type extent_type;
+
+ static vec_type call(texture2d const& A, texture2d const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.template load<vec_type>(TexelIndex, 0),
+ B.template load<vec_type>(TexelIndex, 0)));
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_reduce_2d_array
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture2d_array::size_type size_type;
+ typedef texture2d_array::extent_type extent_type;
+
+ static vec_type call(texture2d_array const& A, texture2d_array const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.template load<vec_type>(TexelIndex, 0, 0),
+ B.template load<vec_type>(TexelIndex, 0, 0)));
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, LayerIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, LayerIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_reduce_3d
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture3d::size_type size_type;
+ typedef texture3d::extent_type extent_type;
+
+ static vec_type call(texture3d const& A, texture3d const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.template load<vec_type>(TexelIndex, 0),
+ B.template load<vec_type>(TexelIndex, 0)));
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.z = 0; TexelIndex.z < TexelCount.z; ++TexelIndex.z)
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_reduce_cube
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture_cube::size_type size_type;
+ typedef texture_cube::extent_type extent_type;
+
+ static vec_type call(texture_cube const& A, texture_cube const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.load<vec_type>(TexelIndex, 0, 0),
+ B.load<vec_type>(TexelIndex, 0, 0)));
+
+ for(size_type FaceIndex = 0, FaceCount = A.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, FaceIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, FaceIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_reduce_cube_array
+ {
+ typedef typename reduce_func<vec_type>::type func_type;
+ typedef texture_cube_array::size_type size_type;
+ typedef texture_cube_array::extent_type extent_type;
+
+ static vec_type call(texture_cube_array const& A, texture_cube_array const& B, func_type TexelFunc, func_type ReduceFunc)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ extent_type TexelIndex(0);
+ vec_type Result(TexelFunc(
+ A.load<vec_type>(TexelIndex, 0, 0, 0),
+ B.load<vec_type>(TexelIndex, 0, 0 ,0)));
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type FaceIndex = 0, FaceCount = A.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Result = ReduceFunc(Result, TexelFunc(
+ A.template load<vec_type>(TexelIndex, LayerIndex, FaceIndex, LevelIndex),
+ B.template load<vec_type>(TexelIndex, LayerIndex, FaceIndex, LevelIndex)));
+ }
+ }
+
+ return Result;
+ }
+ };
+}//namepsace detail
+
+template <typename vec_type>
+inline vec_type reduce(texture1d const& In0, texture1d const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_1d<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+
+template <typename vec_type>
+inline vec_type reduce(texture1d_array const& In0, texture1d_array const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_1d_array<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+
+template <typename vec_type>
+inline vec_type reduce(texture2d const& In0, texture2d const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_2d<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+
+template <typename vec_type>
+inline vec_type reduce(texture2d_array const& In0, texture2d_array const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_2d_array<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+
+template <typename vec_type>
+inline vec_type reduce(texture3d const& In0, texture3d const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_3d<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+
+template <typename vec_type>
+inline vec_type reduce(texture_cube const& In0, texture_cube const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_cube<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+
+template <typename vec_type>
+inline vec_type reduce(texture_cube_array const& In0, texture_cube_array const& In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc)
+{
+ return detail::compute_reduce_cube_array<vec_type>::call(In0, In1, TexelFunc, ReduceFunc);
+}
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler.inl b/3rdparty/glm/test/external/gli/core/sampler.inl
new file mode 100644
index 00000000000..e0b646316db
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler.inl
@@ -0,0 +1,35 @@
+#define GLM_ENABLE_EXPERIMENTAL
+#include <glm/gtx/wrap.hpp>
+
+namespace gli{
+namespace detail
+{
+ template <typename T>
+ inline T passThrought(T const & SampleCoord)
+ {
+ return SampleCoord;
+ }
+}//namespace detail
+
+ inline sampler::sampler(wrap Wrap, filter Mip, filter Min)
+ : Wrap(get_func(Wrap))
+ , Mip(Mip)
+ , Min(Min)
+ {}
+
+ inline sampler::wrap_type sampler::get_func(wrap WrapMode) const
+ {
+ static wrap_type Table[] =
+ {
+ glm::clamp,
+ detail::passThrought,
+ glm::repeat,
+ glm::mirrorRepeat,
+ glm::mirrorClamp,
+ glm::mirrorClamp
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == WRAP_COUNT, "Table needs to be updated");
+
+ return Table[WrapMode];
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/sampler1d.inl b/3rdparty/glm/test/external/gli/core/sampler1d.inl
new file mode 100644
index 00000000000..c0fac39fd46
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler1d.inl
@@ -0,0 +1,82 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler1d<T, P>::sampler1d(texture_type const & Texture, wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_type, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler1d<T, P>::texture_type const & sampler1d<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler1d<T, P>::texel_type sampler1d<T, P>::texel_fetch(extent_type const & TexelCoord, size_type const & Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, 0, 0, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d<T, P>::texel_write(extent_type const & TexelCoord, size_type const & Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, 0, 0, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler1d<T, P>::texel_type sampler1d<T, P>::texture_lod(normalized_type const & SampleCoord, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x));
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, size_type(0), size_type(0), Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d<T, P>::generate_mipmaps(size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_1d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, 0, 0, 0, 0, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler1d_array.inl b/3rdparty/glm/test/external/gli/core/sampler1d_array.inl
new file mode 100644
index 00000000000..0f4b1c61835
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler1d_array.inl
@@ -0,0 +1,83 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler1d_array<T, P>::sampler1d_array(texture_type const & Texture, gli::wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_type, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler1d_array<T, P>::texture_type const & sampler1d_array<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler1d_array<T, P>::texel_type sampler1d_array<T, P>::texel_fetch(extent_type const & TexelCoord, size_type layer, size_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, layer, 0, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d_array<T, P>::texel_write(extent_type const & TexelCoord, size_type layer, size_type Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, layer, 0, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d_array<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler1d_array<T, P>::texel_type sampler1d_array<T, P>::texture_lod(normalized_type const & SampleCoord, size_type Layer, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x));
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, Layer, size_type(0), Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d_array<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_layer(), this->Texture.max_layer(), this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler1d_array<T, P>::generate_mipmaps(size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_layer() <= BaseLayer && BaseLayer <= MaxLayer && MaxLayer <= this->Texture.max_layer());
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_1d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, BaseLayer, MaxLayer, 0, 0, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler2d.inl b/3rdparty/glm/test/external/gli/core/sampler2d.inl
new file mode 100644
index 00000000000..880c6550ee5
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler2d.inl
@@ -0,0 +1,82 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler2d<T, P>::sampler2d(texture_type const & Texture, wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_type, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler2d<T, P>::texture_type const & sampler2d<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler2d<T, P>::texel_type sampler2d<T, P>::texel_fetch(extent_type const & TexelCoord, size_type const & Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, 0, 0, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d<T, P>::texel_write(extent_type const & TexelCoord, size_type const & Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, 0, 0, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler2d<T, P>::texel_type sampler2d<T, P>::texture_lod(normalized_type const & SampleCoord, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x), this->Wrap(SampleCoord.y));
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, size_type(0), size_type(0), Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d<T, P>::generate_mipmaps(size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_2d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, 0, 0, 0, 0, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler2d_array.inl b/3rdparty/glm/test/external/gli/core/sampler2d_array.inl
new file mode 100644
index 00000000000..27aae9f9842
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler2d_array.inl
@@ -0,0 +1,83 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler2d_array<T, P>::sampler2d_array(texture_type const & Texture, gli::wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_type, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler2d_array<T, P>::texture_type const & sampler2d_array<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler2d_array<T, P>::texel_type sampler2d_array<T, P>::texel_fetch(extent_type const & TexelCoord, size_type layer, size_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, layer, 0, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d_array<T, P>::texel_write(extent_type const & TexelCoord, size_type layer, size_type Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, layer, 0, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d_array<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler2d_array<T, P>::texel_type sampler2d_array<T, P>::texture_lod(normalized_type const & SampleCoord, size_type Layer, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x), this->Wrap(SampleCoord.y));
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, Layer, size_type(0), Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d_array<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_layer(), this->Texture.max_layer(), this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler2d_array<T, P>::generate_mipmaps(size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_layer() <= BaseLayer && BaseLayer <= MaxLayer && MaxLayer <= this->Texture.max_layer());
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_2d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, BaseLayer, MaxLayer, 0, 0, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler3d.inl b/3rdparty/glm/test/external/gli/core/sampler3d.inl
new file mode 100644
index 00000000000..acf9fcd5d59
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler3d.inl
@@ -0,0 +1,82 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler3d<T, P>::sampler3d(texture_type const & Texture, wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_type, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler3d<T, P>::texture_type const & sampler3d<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler3d<T, P>::texel_type sampler3d<T, P>::texel_fetch(extent_type const & TexelCoord, size_type const & Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, 0, 0, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler3d<T, P>::texel_write(extent_type const & TexelCoord, size_type const & Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, 0, 0, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler3d<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ GLI_FORCE_INLINE typename sampler3d<T, P>::texel_type sampler3d<T, P>::texture_lod(normalized_type const & SampleCoord, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x), this->Wrap(SampleCoord.y), this->Wrap(SampleCoord.z));
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, size_type(0), size_type(0), Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler3d<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler3d<T, P>::generate_mipmaps(size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_3d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, 0, 0, 0, 0, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler_cube.inl b/3rdparty/glm/test/external/gli/core/sampler_cube.inl
new file mode 100644
index 00000000000..c392efe41fc
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler_cube.inl
@@ -0,0 +1,84 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler_cube<T, P>::sampler_cube(texture_cube const & Texture, gli::wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_cube, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline texture_cube const & sampler_cube<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler_cube<T, P>::texel_type sampler_cube<T, P>::texel_fetch(extent_type const & TexelCoord, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, 0, Face, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube<T, P>::texel_write(extent_type const & TexelCoord, size_type Face, size_type Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, 0, Face, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler_cube<T, P>::texel_type sampler_cube<T, P>::texture_lod(normalized_type const & SampleCoord, size_type Face, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x), this->Wrap(SampleCoord.y));
+
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, size_type(0), Face, Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_face(), this->Texture.max_face(), this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube<T, P>::generate_mipmaps(size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_face() <= BaseFace && BaseFace <= MaxFace && MaxFace <= this->Texture.max_face());
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_2d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, 0, 0, BaseFace, MaxFace, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/sampler_cube_array.inl b/3rdparty/glm/test/external/gli/core/sampler_cube_array.inl
new file mode 100644
index 00000000000..e1f49d82cac
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/sampler_cube_array.inl
@@ -0,0 +1,84 @@
+#include "clear.hpp"
+#include <glm/vector_relational.hpp>
+
+namespace gli
+{
+ template <typename T, precision P>
+ inline sampler_cube_array<T, P>::sampler_cube_array(texture_type const & Texture, gli::wrap Wrap, filter Mip, filter Min, texel_type const & BorderColor)
+ : sampler(Wrap, Texture.levels() > 1 ? Mip : FILTER_NEAREST, Min)
+ , Texture(Texture)
+ , Convert(detail::convert<texture_type, T, P>::call(this->Texture.format()))
+ , BorderColor(BorderColor)
+ , Filter(detail::get_filter<filter_type, detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, T>(Mip, Min, is_border(Wrap)))
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(!is_compressed(Texture.format()));
+ GLI_ASSERT((!std::numeric_limits<T>::is_iec559 && Mip == FILTER_NEAREST && Min == FILTER_NEAREST) || std::numeric_limits<T>::is_iec559);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler_cube_array<T, P>::texture_type const & sampler_cube_array<T, P>::operator()() const
+ {
+ return this->Texture;
+ }
+
+ template <typename T, precision P>
+ inline typename sampler_cube_array<T, P>::texel_type sampler_cube_array<T, P>::texel_fetch(extent_type const & TexelCoord, size_type layer, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Fetch);
+
+ return this->Convert.Fetch(this->Texture, TexelCoord, layer, Face, Level);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube_array<T, P>::texel_write(extent_type const & TexelCoord, size_type layer, size_type Face, size_type Level, texel_type const & Texel)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ this->Convert.Write(this->Texture, TexelCoord, layer, Face, Level, Texel);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube_array<T, P>::clear(texel_type const & Color)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(this->Convert.Write);
+
+ detail::clear<texture_type, T, P>::call(this->Texture, this->Convert.Write, Color);
+ }
+
+ template <typename T, precision P>
+ inline typename sampler_cube_array<T, P>::texel_type sampler_cube_array<T, P>::texture_lod(normalized_type const & SampleCoord, size_type Layer, size_type Face, level_type Level) const
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(std::numeric_limits<T>::is_iec559);
+ GLI_ASSERT(this->Filter && this->Convert.Fetch);
+
+ normalized_type const SampleCoordWrap(this->Wrap(SampleCoord.x), this->Wrap(SampleCoord.y));
+ return this->Filter(this->Texture, this->Convert.Fetch, SampleCoordWrap, Layer, Face, Level, this->BorderColor);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube_array<T, P>::generate_mipmaps(filter Minification)
+ {
+ this->generate_mipmaps(this->Texture.base_layer(), this->Texture.max_layer(), this->Texture.base_face(), this->Texture.max_face(), this->Texture.base_level(), this->Texture.max_level(), Minification);
+ }
+
+ template <typename T, precision P>
+ inline void sampler_cube_array<T, P>::generate_mipmaps(size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, filter Minification)
+ {
+ GLI_ASSERT(!this->Texture.empty());
+ GLI_ASSERT(!is_compressed(this->Texture.format()));
+ GLI_ASSERT(this->Texture.base_layer() <= BaseLayer && BaseLayer <= MaxLayer && MaxLayer <= this->Texture.max_layer());
+ GLI_ASSERT(this->Texture.base_face() <= BaseFace && BaseFace <= MaxFace && MaxFace <= this->Texture.max_face());
+ GLI_ASSERT(this->Texture.base_level() <= BaseLevel && BaseLevel <= MaxLevel && MaxLevel <= this->Texture.max_level());
+ GLI_ASSERT(this->Convert.Fetch && this->Convert.Write);
+ GLI_ASSERT(Minification >= FILTER_FIRST && Minification <= FILTER_LAST);
+
+ detail::generate_mipmaps_2d<texture_type, T, fetch_type, write_type, normalized_type, texel_type>(
+ this->Texture, this->Convert.Fetch, this->Convert.Write, BaseLayer, MaxLayer, BaseFace, MaxFace, BaseLevel, MaxLevel, Minification);
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/save.inl b/3rdparty/glm/test/external/gli/core/save.inl
new file mode 100644
index 00000000000..0d4b44ff43d
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/save.inl
@@ -0,0 +1,22 @@
+#include "../save_dds.hpp"
+#include "../save_kmg.hpp"
+#include "../save_ktx.hpp"
+
+namespace gli
+{
+ inline bool save(texture const & Texture, char const * Path)
+ {
+ return save(Texture, std::string(Path));
+ }
+
+ inline bool save(texture const & Texture, std::string const & Path)
+ {
+ if(Path.rfind(".dds") != std::string::npos)
+ return save_dds(Texture, Path);
+ if(Path.rfind(".kmg") != std::string::npos)
+ return save_kmg(Texture, Path);
+ if(Path.rfind(".ktx") != std::string::npos)
+ return save_ktx(Texture, Path);
+ return false;
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/save_dds.inl b/3rdparty/glm/test/external/gli/core/save_dds.inl
new file mode 100644
index 00000000000..018238bd4f4
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/save_dds.inl
@@ -0,0 +1,139 @@
+#include <cstdio>
+#include "../load_dds.hpp"
+#include "file.hpp"
+
+namespace gli{
+namespace detail
+{
+ inline d3d10_resource_dimension get_dimension(gli::target Target)
+ {
+ static d3d10_resource_dimension Table[] = //TARGET_COUNT
+ {
+ D3D10_RESOURCE_DIMENSION_TEXTURE1D, //TARGET_1D,
+ D3D10_RESOURCE_DIMENSION_TEXTURE1D, //TARGET_1D_ARRAY,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D, //TARGET_2D,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D, //TARGET_2D_ARRAY,
+ D3D10_RESOURCE_DIMENSION_TEXTURE3D, //TARGET_3D,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D, //TARGET_RECT,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D, //TARGET_RECT_ARRAY,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D, //TARGET_CUBE,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D //TARGET_CUBE_ARRAY
+ };
+ static_assert(sizeof(Table) / sizeof(Table[0]) == TARGET_COUNT, "Table needs to be updated");
+
+ return Table[Target];
+ }
+
+ inline dx::d3dfmt get_fourcc(bool RequireDX10Header, gli::format Format, dx::format const& DXFormat)
+ {
+ if(RequireDX10Header)
+ {
+ detail::formatInfo const & FormatInfo = detail::get_format_info(Format);
+
+ if(FormatInfo.Flags & detail::CAP_DDS_GLI_EXT_BIT)
+ return dx::D3DFMT_GLI1;
+ else
+ return dx::D3DFMT_DX10;
+ }
+ else
+ {
+ return (DXFormat.DDPixelFormat & dx::DDPF_FOURCC) ? DXFormat.D3DFormat : dx::D3DFMT_UNKNOWN;
+ }
+ }
+}//namespace detail
+
+ inline bool save_dds(texture const& Texture, std::vector<char>& Memory)
+ {
+ if(Texture.empty())
+ return false;
+
+ dx DX;
+ dx::format const& DXFormat = DX.translate(Texture.format());
+
+ bool const RequireDX10Header = DXFormat.D3DFormat == dx::D3DFMT_GLI1 || DXFormat.D3DFormat == dx::D3DFMT_DX10 || is_target_array(Texture.target()) || is_target_1d(Texture.target());
+
+ Memory.resize(Texture.size() + sizeof(detail::FOURCC_DDS) + sizeof(detail::dds_header) + (RequireDX10Header ? sizeof(detail::dds_header10) : 0));
+
+ memcpy(&Memory[0], detail::FOURCC_DDS, sizeof(detail::FOURCC_DDS));
+ std::size_t Offset = sizeof(detail::FOURCC_DDS);
+
+ detail::dds_header& Header = *reinterpret_cast<detail::dds_header*>(&Memory[0] + Offset);
+ Offset += sizeof(detail::dds_header);
+
+ detail::formatInfo const& Desc = detail::get_format_info(Texture.format());
+
+ std::uint32_t Caps = detail::DDSD_CAPS | detail::DDSD_WIDTH | detail::DDSD_PIXELFORMAT | detail::DDSD_MIPMAPCOUNT;
+ Caps |= !is_target_1d(Texture.target()) ? detail::DDSD_HEIGHT : 0;
+ Caps |= Texture.target() == TARGET_3D ? detail::DDSD_DEPTH : 0;
+ //Caps |= Storage.levels() > 1 ? detail::DDSD_MIPMAPCOUNT : 0;
+ Caps |= (Desc.Flags & detail::CAP_COMPRESSED_BIT) ? detail::DDSD_LINEARSIZE : detail::DDSD_PITCH;
+
+ memset(Header.Reserved1, 0, sizeof(Header.Reserved1));
+ memset(Header.Reserved2, 0, sizeof(Header.Reserved2));
+ Header.Size = sizeof(detail::dds_header);
+ Header.Flags = Caps;
+ Header.Width = static_cast<std::uint32_t>(Texture.extent().x);
+ Header.Height = static_cast<std::uint32_t>(Texture.extent().y);
+ Header.Pitch = static_cast<std::uint32_t>((Desc.Flags & detail::CAP_COMPRESSED_BIT) ? Texture.size() / Texture.faces() : 32);
+ Header.Depth = static_cast<std::uint32_t>(Texture.extent().z > 1 ? Texture.extent().z : 0);
+ Header.MipMapLevels = static_cast<std::uint32_t>(Texture.levels());
+ Header.Format.size = sizeof(detail::dds_pixel_format);
+ Header.Format.flags = RequireDX10Header ? dx::DDPF_FOURCC : DXFormat.DDPixelFormat;
+ Header.Format.fourCC = detail::get_fourcc(RequireDX10Header, Texture.format(), DXFormat);
+ Header.Format.bpp = static_cast<std::uint32_t>(detail::bits_per_pixel(Texture.format()));
+ Header.Format.Mask = DXFormat.Mask;
+ //Header.surfaceFlags = detail::DDSCAPS_TEXTURE | (Storage.levels() > 1 ? detail::DDSCAPS_MIPMAP : 0);
+ Header.SurfaceFlags = detail::DDSCAPS_TEXTURE | detail::DDSCAPS_MIPMAP;
+ Header.CubemapFlags = 0;
+
+ // Cubemap
+ if(Texture.faces() > 1)
+ {
+ GLI_ASSERT(Texture.faces() == 6);
+ Header.CubemapFlags |= detail::DDSCAPS2_CUBEMAP_ALLFACES | detail::DDSCAPS2_CUBEMAP;
+ }
+
+ // Texture3D
+ if(Texture.extent().z > 1)
+ Header.CubemapFlags |= detail::DDSCAPS2_VOLUME;
+
+ if(RequireDX10Header)
+ {
+ detail::dds_header10& Header10 = *reinterpret_cast<detail::dds_header10*>(&Memory[0] + Offset);
+ Offset += sizeof(detail::dds_header10);
+
+ Header10.ArraySize = static_cast<std::uint32_t>(Texture.layers());
+ Header10.ResourceDimension = detail::get_dimension(Texture.target());
+ Header10.MiscFlag = 0;//Storage.levels() > 0 ? detail::D3D10_RESOURCE_MISC_GENERATE_MIPS : 0;
+ Header10.Format = DXFormat.DXGIFormat;
+ Header10.AlphaFlags = detail::DDS_ALPHA_MODE_UNKNOWN;
+ }
+
+ std::memcpy(&Memory[0] + Offset, Texture.data(), Texture.size());
+
+ return true;
+ }
+
+ inline bool save_dds(texture const& Texture, char const* Filename)
+ {
+ if(Texture.empty())
+ return false;
+
+ FILE* File = detail::open_file(Filename, "wb");
+ if(!File)
+ return false;
+
+ std::vector<char> Memory;
+ bool const Result = save_dds(Texture, Memory);
+
+ std::fwrite(&Memory[0], 1, Memory.size(), File);
+ std::fclose(File);
+
+ return Result;
+ }
+
+ inline bool save_dds(texture const& Texture, std::string const& Filename)
+ {
+ return save_dds(Texture, Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/save_kmg.inl b/3rdparty/glm/test/external/gli/core/save_kmg.inl
new file mode 100644
index 00000000000..f03d976d34a
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/save_kmg.inl
@@ -0,0 +1,80 @@
+#include <cstdio>
+#include <glm/gtc/round.hpp>
+#include "../load_kmg.hpp"
+#include "filter.hpp"
+#include "file.hpp"
+
+namespace gli
+{
+ inline bool save_kmg(texture const & Texture, std::vector<char> & Memory)
+ {
+ if(Texture.empty())
+ return false;
+
+ Memory.resize(sizeof(detail::FOURCC_KMG100) + sizeof(detail::kmgHeader10) + Texture.size());
+
+ std::memcpy(&Memory[0], detail::FOURCC_KMG100, sizeof(detail::FOURCC_KMG100));
+
+ std::size_t Offset = sizeof(detail::FOURCC_KMG100);
+
+ texture::swizzles_type Swizzle = Texture.swizzles();
+
+ detail::kmgHeader10 & Header = *reinterpret_cast<detail::kmgHeader10*>(&Memory[0] + Offset);
+ Header.Endianness = 0x04030201;
+ Header.Format = Texture.format();
+ Header.Target = Texture.target();
+ Header.SwizzleRed = Swizzle[0];
+ Header.SwizzleGreen = Swizzle[1];
+ Header.SwizzleBlue = Swizzle[2];
+ Header.SwizzleAlpha = Swizzle[3];
+ Header.PixelWidth = static_cast<std::uint32_t>(Texture.extent().x);
+ Header.PixelHeight = static_cast<std::uint32_t>(Texture.extent().y);
+ Header.PixelDepth = static_cast<std::uint32_t>(Texture.extent().z);
+ Header.Layers = static_cast<std::uint32_t>(Texture.layers());
+ Header.Levels = static_cast<std::uint32_t>(Texture.levels());
+ Header.Faces = static_cast<std::uint32_t>(Texture.faces());
+ Header.GenerateMipmaps = FILTER_NONE;
+ Header.BaseLevel = static_cast<std::uint32_t>(Texture.base_level());
+ Header.MaxLevel = static_cast<std::uint32_t>(Texture.max_level());
+
+ Offset += sizeof(detail::kmgHeader10);
+
+ for(texture::size_type Layer = 0, Layers = Texture.layers(); Layer < Layers; ++Layer)
+ for(texture::size_type Level = 0, Levels = Texture.levels(); Level < Levels; ++Level)
+ {
+ texture::size_type const FaceSize = Texture.size(Level);
+ for(texture::size_type Face = 0, Faces = Texture.faces(); Face < Faces; ++Face)
+ {
+ std::memcpy(&Memory[0] + Offset, Texture.data(Layer, Face, Level), FaceSize);
+
+ Offset += FaceSize;
+ GLI_ASSERT(Offset <= Memory.size());
+ }
+ }
+
+ return true;
+ }
+
+ inline bool save_kmg(texture const & Texture, char const * Filename)
+ {
+ if(Texture.empty())
+ return false;
+
+ FILE* File = detail::open_file(Filename, "wb");
+ if(!File)
+ return false;
+
+ std::vector<char> Memory;
+ bool const Result = save_kmg(Texture, Memory);
+
+ std::fwrite(&Memory[0], 1, Memory.size(), File);
+ std::fclose(File);
+
+ return Result;
+ }
+
+ inline bool save_kmg(texture const & Texture, std::string const & Filename)
+ {
+ return save_kmg(Texture, Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/save_ktx.inl b/3rdparty/glm/test/external/gli/core/save_ktx.inl
new file mode 100644
index 00000000000..4bb4d6038cb
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/save_ktx.inl
@@ -0,0 +1,114 @@
+#include <cstdio>
+#include <glm/gtc/round.hpp>
+#include "../load_ktx.hpp"
+#include "file.hpp"
+
+namespace gli{
+namespace detail
+{
+ inline texture::size_type compute_ktx_storage_size(texture const & Texture)
+ {
+ texture::size_type const BlockSize = block_size(Texture.format());
+ texture::size_type TotalSize = sizeof(detail::FOURCC_KTX10) + sizeof(detail::ktx_header10);
+
+ for(texture::size_type Level = 0, Levels = Texture.levels(); Level < Levels; ++Level)
+ {
+ TotalSize += sizeof(std::uint32_t);
+
+ for(texture::size_type Layer = 0, Layers = Texture.layers(); Layer < Layers; ++Layer)
+ for(texture::size_type Face = 0, Faces = Texture.faces(); Face < Faces; ++Face)
+ {
+ texture::size_type const FaceSize = Texture.size(Level);
+ texture::size_type const PaddedSize = std::max(BlockSize, glm::ceilMultiple(FaceSize, static_cast<texture::size_type>(4)));
+
+ TotalSize += PaddedSize;
+ }
+ }
+
+ return TotalSize;
+ }
+}//namespace detail
+
+ inline bool save_ktx(texture const& Texture, std::vector<char>& Memory)
+ {
+ if(Texture.empty())
+ return false;
+
+ gl GL(gl::PROFILE_KTX);
+ gl::format const& Format = GL.translate(Texture.format(), Texture.swizzles());
+ target const Target = Texture.target();
+
+ detail::formatInfo const& Desc = detail::get_format_info(Texture.format());
+
+ Memory.resize(detail::compute_ktx_storage_size(Texture));
+
+ std::memcpy(&Memory[0], detail::FOURCC_KTX10, sizeof(detail::FOURCC_KTX10));
+
+ std::size_t Offset = sizeof(detail::FOURCC_KTX10);
+
+ detail::ktx_header10& Header = *reinterpret_cast<detail::ktx_header10*>(&Memory[0] + Offset);
+ Header.Endianness = 0x04030201;
+ Header.GLType = Format.Type;
+ Header.GLTypeSize = Format.Type == gl::TYPE_NONE ? 1 : Desc.BlockSize;
+ Header.GLFormat = Format.External;
+ Header.GLInternalFormat = Format.Internal;
+ Header.GLBaseInternalFormat = Format.External;
+ Header.PixelWidth = static_cast<std::uint32_t>(Texture.extent().x);
+ Header.PixelHeight = !is_target_1d(Target) ? static_cast<std::uint32_t>(Texture.extent().y) : 0;
+ Header.PixelDepth = Target == TARGET_3D ? static_cast<std::uint32_t>(Texture.extent().z) : 0;
+ Header.NumberOfArrayElements = is_target_array(Target) ? static_cast<std::uint32_t>(Texture.layers()) : 0;
+ Header.NumberOfFaces = is_target_cube(Target) ? static_cast<std::uint32_t>(Texture.faces()) : 1;
+ Header.NumberOfMipmapLevels = static_cast<std::uint32_t>(Texture.levels());
+ Header.BytesOfKeyValueData = 0;
+
+ Offset += sizeof(detail::ktx_header10);
+
+ for(texture::size_type Level = 0, Levels = Texture.levels(); Level < Levels; ++Level)
+ {
+ std::uint32_t& ImageSize = *reinterpret_cast<std::uint32_t*>(&Memory[0] + Offset);
+ Offset += sizeof(std::uint32_t);
+
+ for(texture::size_type Layer = 0, Layers = Texture.layers(); Layer < Layers; ++Layer)
+ for(texture::size_type Face = 0, Faces = Texture.faces(); Face < Faces; ++Face)
+ {
+ texture::size_type const FaceSize = Texture.size(Level);
+
+ std::memcpy(&Memory[0] + Offset, Texture.data(Layer, Face, Level), FaceSize);
+
+ texture::size_type const PaddedSize = glm::ceilMultiple(FaceSize, static_cast<texture::size_type>(4));
+
+ ImageSize += static_cast<std::uint32_t>(PaddedSize);
+ Offset += PaddedSize;
+
+ GLI_ASSERT(Offset <= Memory.size());
+ }
+
+ ImageSize = glm::ceilMultiple(ImageSize, static_cast<std::uint32_t>(4));
+ }
+
+ return true;
+ }
+
+ inline bool save_ktx(texture const& Texture, char const* Filename)
+ {
+ if(Texture.empty())
+ return false;
+
+ FILE* File = detail::open_file(Filename, "wb");
+ if(!File)
+ return false;
+
+ std::vector<char> Memory;
+ bool const Result = save_ktx(Texture, Memory);
+
+ std::fwrite(&Memory[0], 1, Memory.size(), File);
+ std::fclose(File);
+
+ return Result;
+ }
+
+ inline bool save_ktx(texture const& Texture, std::string const& Filename)
+ {
+ return save_ktx(Texture, Filename.c_str());
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/shared_array.hpp b/3rdparty/glm/test/external/gli/core/shared_array.hpp
deleted file mode 100644
index 326a54af47b..00000000000
--- a/3rdparty/glm/test/external/gli/core/shared_array.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2005-06-13
-// Licence : This source is under MIT License
-// File : gli/shared_array.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_SHARED_ARRAY_INCLUDED
-#define GLI_SHARED_ARRAY_INCLUDED
-
-namespace gli
-{
- template <typename T>
- class shared_array
- {
- public:
-
- shared_array();
- shared_array(shared_array const & SharedArray);
- shared_array(T * Pointer);
- virtual ~shared_array();
-
- void reset();
- void reset(T * Pointer);
-
- T & operator*();
- T * operator->();
- T const & operator*() const;
- T const * const operator->() const;
-
- T * get();
- T const * const get() const;
-
- shared_array & operator=(shared_array const & SharedArray);
- bool operator==(shared_array const & SharedArray) const;
- bool operator!=(shared_array const & SharedArray) const;
-
- private:
- int * Counter;
- T * Pointer;
- };
-}//namespace gli
-
-#include "shared_array.inl"
-
-#endif //GLI_SHARED_ARRAY_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/shared_array.inl b/3rdparty/glm/test/external/gli/core/shared_array.inl
deleted file mode 100644
index 74edbb4ac35..00000000000
--- a/3rdparty/glm/test/external/gli/core/shared_array.inl
+++ /dev/null
@@ -1,151 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2005-06-13
-// Licence : This source is under MIT License
-// File : gli/shared_array.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli
-{
- template <typename T>
- shared_array<T>::shared_array() :
- Counter(0),
- Pointer(0)
- {}
-
- template <typename T>
- shared_array<T>::shared_array
- (
- shared_array<T> const & SharedArray
- )
- {
- this->Counter = SharedArray.Counter;
- this->Pointer = SharedArray.Pointer;
- (*this->Counter)++;
- }
-
- template <typename T>
- shared_array<T>::shared_array
- (
- T * Pointer
- )
- {
- this->reset(Pointer);
- }
-
- template <typename T>
- shared_array<T>::~shared_array()
- {
- this->reset();
- }
-
- template <typename T>
- void shared_array<T>::reset()
- {
- if(this->Pointer)
- {
- (*this->Counter)--;
- if(*this->Counter <= 0)
- {
- delete this->Counter;
- this->Counter = 0;
- delete[] this->Pointer;
- this->Pointer = 0;
- }
- }
- }
-
- template <typename T>
- void shared_array<T>::reset(T * Pointer)
- {
- this->Counter = new int;
- this->Pointer = Pointer;
- *this->Counter = 1;
- }
-
- template <typename T>
- shared_array<T>& shared_array<T>::operator=
- (
- shared_array<T> const & SharedArray
- )
- {
- this->reset();
-
- this->Counter = SharedArray.Counter;
- this->Pointer = SharedArray.Pointer;
- (*this->Counter)++;
-
- return *this;
- }
-
- //template <typename T>
- //shared_array<T> & shared_array<T>::operator=(T * Pointer)
- //{
- // if(this->Pointer)
- // {
- // (*this->Counter)--;
- // if(*this->Counter <= 0)
- // {
- // delete this->Counter;
- // delete[] this->Pointer;
- // }
- // }
-
- // this->Counter = new int;
- // this->Pointer = this->Pointer;
- // (*this->Counter) = 1;
-
- // return *this;
- //}
-
- template <typename T>
- bool shared_array<T>::operator==(shared_array<T> const & SharedArray) const
- {
- return this->Pointer == SharedArray.Pointer;
- }
-
- template <typename T>
- bool shared_array<T>::operator!=(shared_array<T> const & SharedArray) const
- {
- return this->Pointer != SharedArray.Pointer;
- }
-
- template <typename T>
- T & shared_array<T>::operator*()
- {
- return *this->Pointer;
- }
-
- template <typename T>
- T * shared_array<T>::operator->()
- {
- return this->Pointer;
- }
-
- template <typename T>
- T const & shared_array<T>::operator*() const
- {
- return * this->Pointer;
- }
-
- template <typename T>
- T const * const shared_array<T>::operator->() const
- {
- return this->Pointer;
- }
-
- template <typename T>
- T * shared_array<T>::get()
- {
- return this->Pointer;
- }
-
- template <typename T>
- T const * const shared_array<T>::get() const
- {
- return this->Pointer;
- }
-
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/shared_ptr.hpp b/3rdparty/glm/test/external/gli/core/shared_ptr.hpp
deleted file mode 100644
index 533e33f56cc..00000000000
--- a/3rdparty/glm/test/external/gli/core/shared_ptr.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2005-06-13
-// Licence : This source is under MIT License
-// File : gli/fetch.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_SHARED_PTR_INCLUDED
-#define GLI_SHARED_PTR_INCLUDED
-
-namespace gli
-{
- template <typename T>
- class shared_ptr
- {
- public:
- shared_ptr();
- shared_ptr(shared_ptr const & SmartPtr);
- shared_ptr(T* pPointer);
- ~shared_ptr();
-
- T& operator*();
- T* operator->();
- const T& operator*() const;
- const T* operator->() const;
- shared_ptr& operator=(shared_ptr const & SmartPtr);
- shared_ptr& operator=(T* pPointer);
- bool operator==(shared_ptr const & SmartPtr) const;
- bool operator!=(shared_ptr const & SmartPtr) const;
-
- private:
- int* m_pReference;
- T* m_pPointer;
- };
-}//namespace gli
-
-#include "shared_ptr.inl"
-
-#endif //GLI_SHARED_PTR_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/shared_ptr.inl b/3rdparty/glm/test/external/gli/core/shared_ptr.inl
deleted file mode 100644
index 43974110e6b..00000000000
--- a/3rdparty/glm/test/external/gli/core/shared_ptr.inl
+++ /dev/null
@@ -1,125 +0,0 @@
-///////////////////////////////////////////////////////////////////////////
-// Interstate Gangs : smart_ptr.inl
-///////////////////////////////////////////////////////////////////////////
-// This file is under GPL licence
-///////////////////////////////////////////////////////////////////////////
-// CHANGELOG
-// Groove - 13/06/2005 :
-// - Create file
-///////////////////////////////////////////////////////////////////////////
-
-namespace gli
-{
- template <typename T>
- util::CSmartPtr<T>::CSmartPtr()
- {
- m_pPointer = 0;
- }
-
- template <typename T>
- util::CSmartPtr<T>::CSmartPtr(const util::CSmartPtr<T> & SmartPtr)
- {
- m_pReference = SmartPtr.m_pReference;
- m_pPointer = SmartPtr.m_pPointer;
- (*m_pReference)++;
- }
-
- template <typename T>
- util::CSmartPtr<T>::CSmartPtr(T* pPointer)
- {
- m_pReference = new int;
- m_pPointer = pPointer;
- (*m_pReference) = 1;
- }
-
- template <typename T>
- util::CSmartPtr<T>::~CSmartPtr()
- {
- if(!m_pPointer)
- return;
-
- (*m_pReference)--;
- if(*m_pReference <= 0)
- {
- delete m_pReference;
- delete m_pPointer;
- }
- }
-
- template <typename T>
- util::CSmartPtr<T>& util::CSmartPtr<T>::operator=(const util::CSmartPtr<T> & SmartPtr)
- {
- if(m_pPointer)
- {
- (*m_pReference)--;
- if(*m_pReference <= 0)
- {
- delete m_pReference;
- delete m_pPointer;
- }
- }
-
- m_pReference = SmartPtr.m_pReference;
- m_pPointer = SmartPtr.m_pPointer;
- (*m_pReference)++;
-
- return *this;
- }
-
- template <typename T>
- util::CSmartPtr<T>& util::CSmartPtr<T>::operator=(T* pPointer)
- {
- if(m_pPointer)
- {
- (*m_pReference)--;
- if(*m_pReference <= 0)
- {
- delete m_pReference;
- delete m_pPointer;
- }
- }
-
- m_pReference = new int;
- m_pPointer = pPointer;
- (*m_pReference) = 1;
-
- return *this;
- }
-
- template <typename T>
- bool util::CSmartPtr<T>::operator==(const util::CSmartPtr<T> & SmartPtr) const
- {
- return m_pPointer == SmartPtr.m_pPointer;
- }
-
- template <typename T>
- bool util::CSmartPtr<T>::operator!=(const util::CSmartPtr<T> & SmartPtr) const
- {
- return m_pPointer != SmartPtr.m_pPointer;
- }
-
- template <typename T>
- T& util::CSmartPtr<T>::operator*()
- {
- return *m_pPointer;
- }
-
- template <typename T>
- T* util::CSmartPtr<T>::operator->()
- {
- return m_pPointer;
- }
-
- template <typename T>
- const T& util::CSmartPtr<T>::operator*() const
- {
- return *m_pPointer;
- }
-
- template <typename T>
- const T* util::CSmartPtr<T>::operator->() const
- {
- return m_pPointer;
- }
-
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/size.hpp b/3rdparty/glm/test/external/gli/core/size.hpp
deleted file mode 100644
index 3fe461baa09..00000000000
--- a/3rdparty/glm/test/external/gli/core/size.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-08
-// Licence : This source is under MIT License
-// File : gli/core/size.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_CORE_SIZE_INCLUDED
-#define GLI_CORE_SIZE_INCLUDED
-
-#include "texture2d.hpp"
-
-namespace gli
-{
- //template <size_type sizeType>
- image2D::size_type size(
- image2D const & Image,
- image2D::size_type const & SizeType);
-
- //template <size_type sizeType>
- texture2D::size_type size(
- texture2D const & Texture,
- texture2D::size_type const & SizeType);
-
-}//namespace gli
-
-#include "size.inl"
-
-#endif//GLI_CORE_SIZE_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/size.inl b/3rdparty/glm/test/external/gli/core/size.inl
deleted file mode 100644
index dfb6123846a..00000000000
--- a/3rdparty/glm/test/external/gli/core/size.inl
+++ /dev/null
@@ -1,47 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-09-08
-// Licence : This source is under MIT License
-// File : gli/core/size.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli
-{
- inline image2D::size_type size
- (
- image2D const & Image,
- image2D::size_type const & SizeType
- )
- {
- switch(SizeType)
- {
- case LINEAR_SIZE:
- return detail::sizeLinear(Image);
- case BLOCK_SIZE:
- return detail::sizeBlock(Image.format());
- case BIT_PER_PIXEL:
- return detail::sizeBitPerPixel(Image.format());
- case COMPONENT:
- return detail::sizeComponent(Image.format());
- default:
- assert(0);
- return 0;
- };
- }
-
- inline texture2D::size_type size
- (
- texture2D const & Texture,
- texture2D::size_type const & SizeType
- )
- {
- texture2D::size_type Size = 0;
- for(texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
- Size += size(Texture[Level], SizeType);
-
- return Size;
- }
-
-}//namespace
diff --git a/3rdparty/glm/test/external/gli/core/storage.hpp b/3rdparty/glm/test/external/gli/core/storage.hpp
new file mode 100644
index 00000000000..d9fa3c97a8f
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/storage.hpp
@@ -0,0 +1,92 @@
+#pragma once
+
+// STD
+#include <vector>
+#include <queue>
+#include <string>
+#include <cassert>
+#include <cmath>
+#include <cstring>
+#include <memory>
+
+#include "../type.hpp"
+#include "../format.hpp"
+
+// GLM
+#include <glm/gtc/round.hpp>
+#include <glm/gtx/component_wise.hpp>
+#include <glm/gtx/integer.hpp>
+#include <glm/gtx/bit.hpp>
+#include <glm/gtx/raw_data.hpp>
+#include <glm/gtx/wrap.hpp>
+
+static_assert(GLM_VERSION >= 97, "GLI requires at least GLM 0.9.7");
+
+namespace gli
+{
+ class storage_linear
+ {
+ public:
+ typedef extent3d extent_type;
+ typedef size_t size_type;
+ typedef gli::format format_type;
+ typedef glm::byte data_type;
+
+ public:
+ storage_linear();
+
+ storage_linear(
+ format_type Format,
+ extent_type const & Extent,
+ size_type Layers,
+ size_type Faces,
+ size_type Levels);
+
+ bool empty() const;
+ size_type size() const; // Express is bytes
+ size_type layers() const;
+ size_type levels() const;
+ size_type faces() const;
+
+ size_type block_size() const;
+ extent_type block_extent() const;
+ extent_type block_count(size_type Level) const;
+ extent_type extent(size_type Level) const;
+
+ data_type* data();
+ data_type const* const data() const;
+
+ /// Compute the relative memory offset to access the data for a specific layer, face and level
+ size_type base_offset(
+ size_type Layer,
+ size_type Face,
+ size_type Level) const;
+
+ /// Copy a subset of a specific image of a texture
+ void copy(
+ storage_linear const& StorageSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const& BlockIndexSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const& BlockIndexDst,
+ extent_type const& BlockCount);
+
+ size_type level_size(
+ size_type Level) const;
+ size_type face_size(
+ size_type BaseLevel, size_type MaxLevel) const;
+ size_type layer_size(
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel) const;
+
+ private:
+ size_type const Layers;
+ size_type const Faces;
+ size_type const Levels;
+ size_type const BlockSize;
+ extent_type const BlockCount;
+ extent_type const BlockExtent;
+ extent_type const Extent;
+ std::vector<data_type> Data;
+ };
+}//namespace gli
+
+#include "storage_linear.inl"
diff --git a/3rdparty/glm/test/external/gli/core/storage.inl b/3rdparty/glm/test/external/gli/core/storage.inl
new file mode 100644
index 00000000000..92f7e740fa7
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/storage.inl
@@ -0,0 +1,170 @@
+#include "../index.hpp"
+
+namespace gli
+{
+ inline storage_linear::storage_linear()
+ : Layers(0)
+ , Faces(0)
+ , Levels(0)
+ , BlockSize(0)
+ , BlockCount(0)
+ , BlockExtent(0)
+ , Extent(0)
+ {}
+
+ inline storage_linear::storage_linear(format_type Format, extent_type const & Extent, size_type Layers, size_type Faces, size_type Levels)
+ : Layers(Layers)
+ , Faces(Faces)
+ , Levels(Levels)
+ , BlockSize(gli::block_size(Format))
+ , BlockCount(glm::max(Extent / gli::block_extent(Format), extent_type(1)))
+ , BlockExtent(gli::block_extent(Format))
+ , Extent(Extent)
+ {
+ GLI_ASSERT(Layers > 0);
+ GLI_ASSERT(Faces > 0);
+ GLI_ASSERT(Levels > 0);
+ GLI_ASSERT(glm::all(glm::greaterThan(Extent, extent_type(0))));
+
+ this->Data.resize(this->layer_size(0, Faces - 1, 0, Levels - 1) * Layers, 0);
+ }
+
+ inline bool storage_linear::empty() const
+ {
+ return this->Data.empty();
+ }
+
+ inline storage_linear::size_type storage_linear::layers() const
+ {
+ return this->Layers;
+ }
+
+ inline storage_linear::size_type storage_linear::faces() const
+ {
+ return this->Faces;
+ }
+
+ inline storage_linear::size_type storage_linear::levels() const
+ {
+ return this->Levels;
+ }
+
+ inline storage_linear::size_type storage_linear::block_size() const
+ {
+ return this->BlockSize;
+ }
+
+ inline storage_linear::extent_type storage_linear::block_extent() const
+ {
+ return this->BlockExtent;
+ }
+
+ inline storage_linear::extent_type storage_linear::block_count(size_type Level) const
+ {
+ GLI_ASSERT(Level >= 0 && Level < this->Levels);
+
+ return glm::max(this->BlockCount >> storage_linear::extent_type(static_cast<storage_linear::extent_type::value_type>(Level)), storage_linear::extent_type(1));
+ }
+
+ inline storage_linear::extent_type storage_linear::extent(size_type Level) const
+ {
+ GLI_ASSERT(Level >= 0 && Level < this->Levels);
+
+ return glm::max(this->Extent >> storage_linear::extent_type(static_cast<storage_linear::extent_type::value_type>(Level)), storage_linear::extent_type(1));
+ }
+
+ inline storage_linear::size_type storage_linear::size() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return static_cast<size_type>(this->Data.size());
+ }
+
+ inline storage_linear::data_type* storage_linear::data()
+ {
+ GLI_ASSERT(!this->empty());
+
+ return &this->Data[0];
+ }
+
+ inline storage_linear::data_type const* const storage_linear::data() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return &this->Data[0];
+ }
+
+ inline storage_linear::size_type storage_linear::base_offset(size_type Layer, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Layer >= 0 && Layer < this->layers() && Face >= 0 && Face < this->faces() && Level >= 0 && Level < this->levels());
+
+ size_type const LayerSize = this->layer_size(0, this->faces() - 1, 0, this->levels() - 1);
+ size_type const FaceSize = this->face_size(0, this->levels() - 1);
+ size_type BaseOffset = LayerSize * Layer + FaceSize * Face;
+
+ for(size_type LevelIndex = 0, LevelCount = Level; LevelIndex < LevelCount; ++LevelIndex)
+ BaseOffset += this->level_size(LevelIndex);
+
+ return BaseOffset;
+ }
+
+ inline void storage_linear::copy(
+ storage_linear const& StorageSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const& BlockIndexSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const& BlockIndexDst,
+ extent_type const& BlockCount)
+ {
+ storage_linear::size_type const BaseOffsetSrc = StorageSrc.base_offset(LayerSrc, FaceSrc, LevelSrc);
+ storage_linear::size_type const BaseOffsetDst = this->base_offset(LayerDst, FaceDst, LevelDst);
+ storage_linear::data_type const* const ImageSrc = StorageSrc.data() + BaseOffsetSrc;
+ storage_linear::data_type* const ImageDst = this->data() + BaseOffsetDst;
+
+ for(size_t BlockIndexZ = 0, BlockCountZ = BlockCount.z; BlockIndexZ < BlockCountZ; ++BlockIndexZ)
+ for(size_t BlockIndexY = 0, BlockCountY = BlockCount.y; BlockIndexY < BlockCountY; ++BlockIndexY)
+ {
+ extent_type const BlockIndex(0, BlockIndexY, BlockIndexZ);
+ gli::size_t const OffsetSrc = linear_index(BlockIndexSrc + BlockIndex, this->extent(LevelSrc)) * this->block_size();
+ gli::size_t const OffsetDst = linear_index(BlockIndexDst + BlockIndex, this->extent(LevelDst)) * this->block_size();
+ storage_linear::data_type const* const DataSrc = ImageSrc + OffsetSrc;
+ storage_linear::data_type* DataDst = ImageDst + OffsetDst;
+ memcpy(DataDst, DataSrc, this->block_size() * BlockCount.x);
+ }
+ }
+
+ inline storage_linear::size_type storage_linear::level_size(size_type Level) const
+ {
+ GLI_ASSERT(Level >= 0 && Level < this->levels());
+
+ return this->BlockSize * glm::compMul(this->block_count(Level));
+ }
+
+ inline storage_linear::size_type storage_linear::face_size(size_type BaseLevel, size_type MaxLevel) const
+ {
+ GLI_ASSERT(MaxLevel >= 0 && MaxLevel < this->levels());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < this->levels());
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+
+ size_type FaceSize(0);
+
+ // The size of a face is the sum of the size of each level.
+ for(storage_linear::size_type Level(BaseLevel); Level <= MaxLevel; ++Level)
+ FaceSize += this->level_size(Level);
+
+ return FaceSize;
+ }
+
+ inline storage_linear::size_type storage_linear::layer_size(
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel) const
+ {
+ GLI_ASSERT(BaseFace >= 0 && MaxFace < this->faces());
+ GLI_ASSERT(BaseFace >= 0 && BaseFace < this->faces());
+ GLI_ASSERT(MaxLevel >= 0 && MaxLevel < this->levels());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < this->levels());
+
+ // The size of a layer is the sum of the size of each face.
+ // All the faces have the same size.
+ return this->face_size(BaseLevel, MaxLevel) * (MaxFace - BaseFace + 1);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/storage_linear.hpp b/3rdparty/glm/test/external/gli/core/storage_linear.hpp
new file mode 100644
index 00000000000..d1e3265ebeb
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/storage_linear.hpp
@@ -0,0 +1,98 @@
+#pragma once
+
+// STD
+#include <vector>
+#include <queue>
+#include <string>
+#include <cassert>
+#include <cmath>
+#include <cstring>
+#include <memory>
+
+#include "../type.hpp"
+#include "../format.hpp"
+
+// GLM
+#include <glm/gtc/round.hpp>
+#include <glm/gtx/component_wise.hpp>
+#include <glm/gtx/integer.hpp>
+#include <glm/gtx/bit.hpp>
+#include <glm/gtx/raw_data.hpp>
+#include <glm/gtx/wrap.hpp>
+
+static_assert(GLM_VERSION >= 97, "GLI requires at least GLM 0.9.7");
+
+namespace gli
+{
+ class storage_linear
+ {
+ public:
+ typedef extent3d extent_type;
+ typedef size_t size_type;
+ typedef gli::format format_type;
+ typedef glm::byte data_type;
+
+ public:
+ storage_linear();
+
+ storage_linear(
+ format_type Format,
+ extent_type const & Extent,
+ size_type Layers,
+ size_type Faces,
+ size_type Levels);
+
+ bool empty() const;
+ size_type size() const; // Express is bytes
+ size_type layers() const;
+ size_type levels() const;
+ size_type faces() const;
+
+ size_type block_size() const;
+ extent_type block_extent() const;
+ extent_type block_count(size_type Level) const;
+ extent_type extent(size_type Level) const;
+
+ data_type* data();
+ data_type const* const data() const;
+
+ /// Compute the relative memory offset to access the data for a specific layer, face and level
+ size_type base_offset(
+ size_type Layer,
+ size_type Face,
+ size_type Level) const;
+
+ size_type image_offset(extent1d const& Coord, extent1d const& Extent) const;
+
+ size_type image_offset(extent2d const& Coord, extent2d const& Extent) const;
+
+ size_type image_offset(extent3d const& Coord, extent3d const& Extent) const;
+
+ /// Copy a subset of a specific image of a texture
+ void copy(
+ storage_linear const& StorageSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const& BlockIndexSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const& BlockIndexDst,
+ extent_type const& BlockCount);
+
+ size_type level_size(
+ size_type Level) const;
+ size_type face_size(
+ size_type BaseLevel, size_type MaxLevel) const;
+ size_type layer_size(
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel) const;
+
+ private:
+ size_type const Layers;
+ size_type const Faces;
+ size_type const Levels;
+ size_type const BlockSize;
+ extent_type const BlockCount;
+ extent_type const BlockExtent;
+ extent_type const Extent;
+ std::vector<data_type> Data;
+ };
+}//namespace gli
+
+#include "storage_linear.inl"
diff --git a/3rdparty/glm/test/external/gli/core/storage_linear.inl b/3rdparty/glm/test/external/gli/core/storage_linear.inl
new file mode 100644
index 00000000000..497f2b16c75
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/storage_linear.inl
@@ -0,0 +1,186 @@
+namespace gli
+{
+ inline storage_linear::storage_linear()
+ : Layers(0)
+ , Faces(0)
+ , Levels(0)
+ , BlockSize(0)
+ , BlockCount(0)
+ , BlockExtent(0)
+ , Extent(0)
+ {}
+
+ inline storage_linear::storage_linear(format_type Format, extent_type const& Extent, size_type Layers, size_type Faces, size_type Levels)
+ : Layers(Layers)
+ , Faces(Faces)
+ , Levels(Levels)
+ , BlockSize(gli::block_size(Format))
+ , BlockCount(glm::ceilMultiple(Extent, gli::block_extent(Format)) / gli::block_extent(Format))
+ , BlockExtent(gli::block_extent(Format))
+ , Extent(Extent)
+ {
+ GLI_ASSERT(Layers > 0);
+ GLI_ASSERT(Faces > 0);
+ GLI_ASSERT(Levels > 0);
+ GLI_ASSERT(glm::all(glm::greaterThan(Extent, extent_type(0))));
+
+ this->Data.resize(this->layer_size(0, Faces - 1, 0, Levels - 1) * Layers, 0);
+ }
+
+ inline bool storage_linear::empty() const
+ {
+ return this->Data.empty();
+ }
+
+ inline storage_linear::size_type storage_linear::layers() const
+ {
+ return this->Layers;
+ }
+
+ inline storage_linear::size_type storage_linear::faces() const
+ {
+ return this->Faces;
+ }
+
+ inline storage_linear::size_type storage_linear::levels() const
+ {
+ return this->Levels;
+ }
+
+ inline storage_linear::size_type storage_linear::block_size() const
+ {
+ return this->BlockSize;
+ }
+
+ inline storage_linear::extent_type storage_linear::block_extent() const
+ {
+ return this->BlockExtent;
+ }
+
+ inline storage_linear::extent_type storage_linear::block_count(size_type Level) const
+ {
+ GLI_ASSERT(Level >= 0 && Level < this->Levels);
+
+ return glm::ceilMultiple(this->extent(Level), BlockExtent) / BlockExtent;
+ }
+
+ inline storage_linear::extent_type storage_linear::extent(size_type Level) const
+ {
+ GLI_ASSERT(Level >= 0 && Level < this->Levels);
+
+ return glm::max(this->Extent >> storage_linear::extent_type(static_cast<storage_linear::extent_type::value_type>(Level)), storage_linear::extent_type(1));
+ }
+
+ inline storage_linear::size_type storage_linear::size() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return static_cast<size_type>(this->Data.size());
+ }
+
+ inline storage_linear::data_type* storage_linear::data()
+ {
+ GLI_ASSERT(!this->empty());
+
+ return &this->Data[0];
+ }
+
+ inline storage_linear::data_type const* const storage_linear::data() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return &this->Data[0];
+ }
+
+ inline storage_linear::size_type storage_linear::base_offset(size_type Layer, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Layer >= 0 && Layer < this->layers() && Face >= 0 && Face < this->faces() && Level >= 0 && Level < this->levels());
+
+ size_type const LayerSize = this->layer_size(0, this->faces() - 1, 0, this->levels() - 1);
+ size_type const FaceSize = this->face_size(0, this->levels() - 1);
+ size_type BaseOffset = LayerSize * Layer + FaceSize * Face;
+
+ for(size_type LevelIndex = 0, LevelCount = Level; LevelIndex < LevelCount; ++LevelIndex)
+ BaseOffset += this->level_size(LevelIndex);
+
+ return BaseOffset;
+ }
+
+ inline storage_linear::size_type storage_linear::image_offset(extent1d const& Coord, extent1d const& Extent) const
+ {
+ GLI_ASSERT(glm::all(glm::lessThan(Coord, Extent)));
+ return static_cast<size_t>(Coord.x);
+ }
+
+ inline storage_linear::size_type storage_linear::image_offset(extent2d const& Coord, extent2d const& Extent) const
+ {
+ GLI_ASSERT(glm::all(glm::lessThan(Coord, Extent)));
+ return static_cast<size_t>(Coord.x + Coord.y * Extent.x);
+ }
+
+ inline storage_linear::size_type storage_linear::image_offset(extent3d const& Coord, extent3d const& Extent) const
+ {
+ GLI_ASSERT(glm::all(glm::lessThan(Coord, Extent)));
+ return static_cast<storage_linear::size_type>(Coord.x + Coord.y * Extent.x + Coord.z * Extent.x * Extent.y);
+ }
+
+ inline void storage_linear::copy(
+ storage_linear const& StorageSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const& BlockIndexSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const& BlockIndexDst,
+ extent_type const& BlockCount)
+ {
+ storage_linear::size_type const BaseOffsetSrc = StorageSrc.base_offset(LayerSrc, FaceSrc, LevelSrc);
+ storage_linear::size_type const BaseOffsetDst = this->base_offset(LayerDst, FaceDst, LevelDst);
+ storage_linear::data_type const* const ImageSrc = StorageSrc.data() + BaseOffsetSrc;
+ storage_linear::data_type* const ImageDst = this->data() + BaseOffsetDst;
+
+ for(size_t BlockIndexZ = 0, BlockCountZ = BlockCount.z; BlockIndexZ < BlockCountZ; ++BlockIndexZ)
+ for(size_t BlockIndexY = 0, BlockCountY = BlockCount.y; BlockIndexY < BlockCountY; ++BlockIndexY)
+ {
+ extent_type const BlockIndex(0, BlockIndexY, BlockIndexZ);
+ gli::size_t const OffsetSrc = this->image_offset(BlockIndexSrc + BlockIndex, this->extent(LevelSrc)) * this->block_size();
+ gli::size_t const OffsetDst = this->image_offset(BlockIndexDst + BlockIndex, this->extent(LevelDst)) * this->block_size();
+ storage_linear::data_type const* const DataSrc = ImageSrc + OffsetSrc;
+ storage_linear::data_type* DataDst = ImageDst + OffsetDst;
+ memcpy(DataDst, DataSrc, this->block_size() * BlockCount.x);
+ }
+ }
+
+ inline storage_linear::size_type storage_linear::level_size(size_type Level) const
+ {
+ GLI_ASSERT(Level >= 0 && Level < this->levels());
+
+ return this->BlockSize * glm::compMul(this->block_count(Level));
+ }
+
+ inline storage_linear::size_type storage_linear::face_size(size_type BaseLevel, size_type MaxLevel) const
+ {
+ GLI_ASSERT(MaxLevel >= 0 && MaxLevel < this->levels());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < this->levels());
+ GLI_ASSERT(BaseLevel <= MaxLevel);
+
+ size_type FaceSize(0);
+
+ // The size of a face is the sum of the size of each level.
+ for(storage_linear::size_type Level(BaseLevel); Level <= MaxLevel; ++Level)
+ FaceSize += this->level_size(Level);
+
+ return FaceSize;
+ }
+
+ inline storage_linear::size_type storage_linear::layer_size(
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel) const
+ {
+ GLI_ASSERT(BaseFace >= 0 && MaxFace < this->faces());
+ GLI_ASSERT(BaseFace >= 0 && BaseFace < this->faces());
+ GLI_ASSERT(MaxLevel >= 0 && MaxLevel < this->levels());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < this->levels());
+
+ // The size of a layer is the sum of the size of each face.
+ // All the faces have the same size.
+ return this->face_size(BaseLevel, MaxLevel) * (MaxFace - BaseFace + 1);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/texture.inl b/3rdparty/glm/test/external/gli/core/texture.inl
new file mode 100644
index 00000000000..dc6e892eed6
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/texture.inl
@@ -0,0 +1,410 @@
+#include <cstring>
+
+namespace gli
+{
+ inline texture::texture()
+ : Storage(nullptr)
+ , Target(static_cast<gli::target>(TARGET_INVALID))
+ , Format(static_cast<gli::format>(FORMAT_INVALID))
+ , BaseLayer(0), MaxLayer(0)
+ , BaseFace(0), MaxFace(0)
+ , BaseLevel(0), MaxLevel(0)
+ , Swizzles(SWIZZLE_ZERO)
+ , Cache(cache::DEFAULT)
+ {}
+
+ inline texture::texture
+ (
+ target_type Target,
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ size_type Faces,
+ size_type Levels,
+ swizzles_type const& Swizzles
+ )
+ : Storage(std::make_shared<storage_type>(Format, Extent, Layers, Faces, Levels))
+ , Target(Target)
+ , Format(Format)
+ , BaseLayer(0), MaxLayer(Layers - 1)
+ , BaseFace(0), MaxFace(Faces - 1)
+ , BaseLevel(0), MaxLevel(Levels - 1)
+ , Swizzles(Swizzles)
+ , Cache(*Storage, Format, this->base_layer(), this->layers(), this->base_face(), this->max_face(), this->base_level(), this->max_level())
+ {
+ GLI_ASSERT(Target != TARGET_CUBE || (Target == TARGET_CUBE && Extent.x == Extent.y));
+ GLI_ASSERT(Target != TARGET_CUBE_ARRAY || (Target == TARGET_CUBE_ARRAY && Extent.x == Extent.y));
+ }
+
+ inline texture::texture
+ (
+ texture const& Texture,
+ target_type Target,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
+ )
+ : Storage(Texture.Storage)
+ , Target(Target)
+ , Format(Format)
+ , BaseLayer(BaseLayer), MaxLayer(MaxLayer)
+ , BaseFace(BaseFace), MaxFace(MaxFace)
+ , BaseLevel(BaseLevel), MaxLevel(MaxLevel)
+ , Swizzles(Swizzles)
+ , Cache(*Storage, Format, this->base_layer(), this->layers(), this->base_face(), this->max_face(), this->base_level(), this->max_level())
+ {
+ GLI_ASSERT(block_size(Format) == block_size(Texture.format()));
+ GLI_ASSERT(Target != TARGET_1D || (Target == TARGET_1D && this->layers() == 1 && this->faces() == 1 && this->extent().y == 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_1D_ARRAY || (Target == TARGET_1D_ARRAY && this->layers() >= 1 && this->faces() == 1 && this->extent().y == 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_2D || (Target == TARGET_2D && this->layers() == 1 && this->faces() == 1 && this->extent().y >= 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_2D_ARRAY || (Target == TARGET_2D_ARRAY && this->layers() >= 1 && this->faces() == 1 && this->extent().y >= 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_3D || (Target == TARGET_3D && this->layers() == 1 && this->faces() == 1 && this->extent().y >= 1 && this->extent().z >= 1));
+ GLI_ASSERT(Target != TARGET_CUBE || (Target == TARGET_CUBE && this->layers() == 1 && this->faces() >= 1 && this->extent().y >= 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_CUBE_ARRAY || (Target == TARGET_CUBE_ARRAY && this->layers() >= 1 && this->faces() >= 1 && this->extent().y >= 1 && this->extent().z == 1));
+ }
+
+ inline texture::texture
+ (
+ texture const& Texture,
+ target_type Target,
+ format_type Format,
+ swizzles_type const& Swizzles
+ )
+ : Storage(Texture.Storage)
+ , Target(Target)
+ , Format(Format)
+ , BaseLayer(Texture.base_layer()), MaxLayer(Texture.max_layer())
+ , BaseFace(Texture.base_face()), MaxFace(Texture.max_face())
+ , BaseLevel(Texture.base_level()), MaxLevel(Texture.max_level())
+ , Swizzles(Swizzles)
+ , Cache(*Storage, Format, this->base_layer(), this->layers(), this->base_face(), this->max_face(), this->base_level(), this->max_level())
+ {
+ if(this->empty())
+ return;
+
+ GLI_ASSERT(Target != TARGET_1D || (Target == TARGET_1D && this->layers() == 1 && this->faces() == 1 && this->extent().y == 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_1D_ARRAY || (Target == TARGET_1D_ARRAY && this->layers() >= 1 && this->faces() == 1 && this->extent().y == 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_2D || (Target == TARGET_2D && this->layers() == 1 && this->faces() == 1 && this->extent().y >= 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_2D_ARRAY || (Target == TARGET_2D_ARRAY && this->layers() >= 1 && this->faces() == 1 && this->extent().y >= 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_3D || (Target == TARGET_3D && this->layers() == 1 && this->faces() == 1 && this->extent().y >= 1 && this->extent().z >= 1));
+ GLI_ASSERT(Target != TARGET_CUBE || (Target == TARGET_CUBE && this->layers() == 1 && this->faces() >= 1 && this->extent().y >= 1 && this->extent().z == 1));
+ GLI_ASSERT(Target != TARGET_CUBE_ARRAY || (Target == TARGET_CUBE_ARRAY && this->layers() >= 1 && this->faces() >= 1 && this->extent().y >= 1 && this->extent().z == 1));
+ }
+
+ inline bool texture::empty() const
+ {
+ if(this->Storage.get() == nullptr)
+ return true;
+
+ return this->Storage->empty();
+ }
+
+ inline texture::format_type texture::format() const
+ {
+ return this->Format;
+ }
+
+ inline texture::swizzles_type texture::swizzles() const
+ {
+ swizzles_type const FormatSwizzle = detail::get_format_info(this->format()).Swizzles;
+ swizzles_type const CustomSwizzle = this->Swizzles;
+
+ swizzles_type ResultSwizzle(SWIZZLE_ZERO);
+ ResultSwizzle.r = is_channel(CustomSwizzle.r) ? FormatSwizzle[CustomSwizzle.r] : CustomSwizzle.r;
+ ResultSwizzle.g = is_channel(CustomSwizzle.g) ? FormatSwizzle[CustomSwizzle.g] : CustomSwizzle.g;
+ ResultSwizzle.b = is_channel(CustomSwizzle.b) ? FormatSwizzle[CustomSwizzle.b] : CustomSwizzle.b;
+ ResultSwizzle.a = is_channel(CustomSwizzle.a) ? FormatSwizzle[CustomSwizzle.a] : CustomSwizzle.a;
+ return ResultSwizzle;
+ }
+
+ inline texture::size_type texture::base_layer() const
+ {
+ return this->BaseLayer;
+ }
+
+ inline texture::size_type texture::max_layer() const
+ {
+ return this->MaxLayer;
+ }
+
+ inline texture::size_type texture::layers() const
+ {
+ if(this->empty())
+ return 0;
+ return this->max_layer() - this->base_layer() + 1;
+ }
+
+ inline texture::size_type texture::base_face() const
+ {
+ return this->BaseFace;
+ }
+
+ inline texture::size_type texture::max_face() const
+ {
+ return this->MaxFace;
+ }
+
+ inline texture::size_type texture::faces() const
+ {
+ if(this->empty())
+ return 0;
+ return this->max_face() - this->base_face() + 1;
+ }
+
+ inline texture::size_type texture::base_level() const
+ {
+ return this->BaseLevel;
+ }
+
+ inline texture::size_type texture::max_level() const
+ {
+ return this->MaxLevel;
+ }
+
+ inline texture::size_type texture::levels() const
+ {
+ if(this->empty())
+ return 0;
+ return this->max_level() - this->base_level() + 1;
+ }
+
+ inline texture::size_type texture::size() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Cache.get_memory_size();
+ }
+
+ template <typename gen_type>
+ inline texture::size_type texture::size() const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(block_size(this->format()) == sizeof(gen_type));
+
+ return this->size() / sizeof(gen_type);
+ }
+
+ inline texture::size_type texture::size(size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Level >= 0 && Level < this->levels());
+
+ return this->Cache.get_memory_size(Level);
+ }
+
+ template <typename gen_type>
+ inline texture::size_type texture::size(size_type Level) const
+ {
+ GLI_ASSERT(block_size(this->format()) == sizeof(gen_type));
+
+ return this->size(Level) / sizeof(gen_type);
+ }
+
+ inline void* texture::data()
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Cache.get_base_address(0, 0, 0);
+ }
+
+ inline void const* texture::data() const
+ {
+ GLI_ASSERT(!this->empty());
+
+ return this->Cache.get_base_address(0, 0, 0);
+ }
+
+ template <typename gen_type>
+ inline gen_type* texture::data()
+ {
+ GLI_ASSERT(block_size(this->format()) >= sizeof(gen_type));
+
+ return reinterpret_cast<gen_type*>(this->data());
+ }
+
+ template <typename gen_type>
+ inline gen_type const* texture::data() const
+ {
+ GLI_ASSERT(block_size(this->format()) >= sizeof(gen_type));
+
+ return reinterpret_cast<gen_type const*>(this->data());
+ }
+
+ inline void* texture::data(size_type Layer, size_type Face, size_type Level)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Layer >= 0 && Layer < this->layers() && Face >= 0 && Face < this->faces() && Level >= 0 && Level < this->levels());
+
+ return this->Cache.get_base_address(Layer, Face, Level);
+ }
+
+ inline void const* const texture::data(size_type Layer, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Layer >= 0 && Layer < this->layers() && Face >= 0 && Face < this->faces() && Level >= 0 && Level < this->levels());
+
+ return this->Cache.get_base_address(Layer, Face, Level);
+ }
+
+ template <typename gen_type>
+ inline gen_type* texture::data(size_type Layer, size_type Face, size_type Level)
+ {
+ GLI_ASSERT(block_size(this->format()) >= sizeof(gen_type));
+
+ return reinterpret_cast<gen_type*>(this->data(Layer, Face, Level));
+ }
+
+ template <typename gen_type>
+ inline gen_type const* const texture::data(size_type Layer, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(block_size(this->format()) >= sizeof(gen_type));
+
+ return reinterpret_cast<gen_type const* const>(this->data(Layer, Face, Level));
+ }
+
+ inline texture::extent_type texture::extent(size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Level >= 0 && Level < this->levels());
+
+ return this->Cache.get_extent(Level);
+ }
+
+ inline void texture::clear()
+ {
+ GLI_ASSERT(!this->empty());
+
+ memset(this->data(), 0, this->size());
+ }
+
+ template <typename gen_type>
+ inline void texture::clear(gen_type const& Texel)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(block_size(this->format()) == sizeof(gen_type));
+
+ gen_type* Data = this->data<gen_type>();
+ size_type const BlockCount = this->size<gen_type>();
+
+ for(size_type BlockIndex = 0; BlockIndex < BlockCount; ++BlockIndex)
+ *(Data + BlockIndex) = Texel;
+ }
+
+ template <typename gen_type>
+ inline void texture::clear(size_type Layer, size_type Face, size_type Level, gen_type const& BlockData)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(block_size(this->format()) == sizeof(gen_type));
+ GLI_ASSERT(Layer >= 0 && Layer < this->layers() && Face >= 0 && Face < this->faces() && Level >= 0 && Level < this->levels());
+
+ size_type const BlockCount = this->Storage->level_size(Level) / sizeof(gen_type);
+ gen_type* Data = this->data<gen_type>(Layer, Face, Level);
+ for(size_type BlockIndex = 0; BlockIndex < BlockCount; ++BlockIndex)
+ *(Data + BlockIndex) = BlockData;
+ }
+
+ template <typename gen_type>
+ inline void texture::clear
+ (
+ size_type Layer, size_type Face, size_type Level,
+ extent_type const& TexelOffset, extent_type const& TexelExtent,
+ gen_type const& BlockData
+ )
+ {
+ storage_type::size_type const BaseOffset = this->Storage->base_offset(Layer, Face, Level);
+ storage_type::data_type* const BaseAddress = this->Storage->data() + BaseOffset;
+
+ extent_type BlockOffset(TexelOffset / this->Storage->block_extent());
+ extent_type const BlockExtent(TexelExtent / this->Storage->block_extent() + BlockOffset);
+ for(; BlockOffset.z < BlockExtent.z; ++BlockOffset.z)
+ for(; BlockOffset.y < BlockExtent.y; ++BlockOffset.y)
+ for(; BlockOffset.x < BlockExtent.x; ++BlockOffset.x)
+ {
+ gli::size_t const Offset = this->Storage->image_offset(BlockOffset, this->extent(Level)) * this->Storage->block_size();
+ gen_type* const BlockAddress = reinterpret_cast<gen_type* const>(BaseAddress + Offset);
+ *BlockAddress = BlockData;
+ }
+ }
+
+ inline void texture::copy
+ (
+ texture const& TextureSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst
+ )
+ {
+ GLI_ASSERT(this->size(LevelDst) == TextureSrc.size(LevelSrc));
+ GLI_ASSERT(LayerSrc < TextureSrc.layers());
+ GLI_ASSERT(LayerDst < this->layers());
+ GLI_ASSERT(FaceSrc < TextureSrc.faces());
+ GLI_ASSERT(FaceDst < this->faces());
+ GLI_ASSERT(LevelSrc < TextureSrc.levels());
+ GLI_ASSERT(LevelDst < this->levels());
+
+ memcpy(
+ this->data(LayerDst, FaceDst, LevelDst),
+ TextureSrc.data(LayerSrc, FaceSrc, LevelSrc),
+ this->size(LevelDst));
+ }
+
+ inline void texture::copy
+ (
+ texture const& TextureSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, texture::extent_type const& OffsetSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst, texture::extent_type const& OffsetDst,
+ texture::extent_type const& Extent
+ )
+ {
+ storage_type::extent_type const BlockExtent = this->Storage->block_extent();
+ this->Storage->copy(
+ *TextureSrc.Storage,
+ LayerSrc, FaceSrc, LevelSrc, OffsetSrc / BlockExtent,
+ LayerSrc, FaceSrc, LevelSrc, OffsetSrc / BlockExtent,
+ Extent / BlockExtent);
+ }
+
+ template <typename gen_type>
+ inline void texture::swizzle(gli::swizzles const& Swizzles)
+ {
+ for(size_type TexelIndex = 0, TexelCount = this->size<gen_type>(); TexelIndex < TexelCount; ++TexelIndex)
+ {
+ gen_type& TexelDst = *(this->data<gen_type>() + TexelIndex);
+ gen_type const TexelSrc = TexelDst;
+ for(typename gen_type::length_type Component = 0; Component < TexelDst.length(); ++Component)
+ {
+ GLI_ASSERT(static_cast<typename gen_type::length_type>(Swizzles[Component]) < TexelDst.length());
+ TexelDst[Component] = TexelSrc[Swizzles[Component]];
+ }
+ }
+ }
+
+ template <typename gen_type>
+ inline gen_type texture::load(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(!is_compressed(this->format()));
+ GLI_ASSERT(block_size(this->format()) == sizeof(gen_type));
+
+ size_type const ImageOffset = this->Storage->image_offset(TexelCoord, this->extent(Level));
+ GLI_ASSERT(ImageOffset < this->size<gen_type>(Level));
+
+ return *(this->data<gen_type>(Layer, Face, Level) + ImageOffset);
+ }
+
+ template <typename gen_type>
+ inline void texture::store(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const& Texel)
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(!is_compressed(this->format()));
+ GLI_ASSERT(block_size(this->format()) == sizeof(gen_type));
+ GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, this->extent(Level))));
+
+ size_type const ImageOffset = this->Storage->image_offset(TexelCoord, this->extent(Level));
+ GLI_ASSERT(ImageOffset < this->size<gen_type>(Level));
+
+ *(this->data<gen_type>(Layer, Face, Level) + ImageOffset) = Texel;
+ }
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/core/texture1d.inl b/3rdparty/glm/test/external/gli/core/texture1d.inl
new file mode 100644
index 00000000000..152fbb9e6f3
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/texture1d.inl
@@ -0,0 +1,79 @@
+#include "../levels.hpp"
+
+namespace gli
+{
+ inline texture1d::texture1d()
+ {}
+
+ inline texture1d::texture1d(format_type Format, extent_type const& Extent, swizzles_type const& Swizzles)
+ : texture(TARGET_1D, Format, texture::extent_type(Extent.x, 1, 1), 1, 1, gli::levels(Extent), Swizzles)
+ {}
+
+ inline texture1d::texture1d(format_type Format, extent_type const& Extent, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_1D, Format, texture::extent_type(Extent.x, 1, 1), 1, 1, Levels, Swizzles)
+ {}
+
+ inline texture1d::texture1d(texture const& Texture)
+ : texture(Texture, TARGET_1D, Texture.format())
+ {}
+
+ inline texture1d::texture1d
+ (
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
+ )
+ : texture(
+ Texture, TARGET_1D,
+ Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
+
+ inline texture1d::texture1d
+ (
+ texture1d const& Texture,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : texture(
+ Texture, TARGET_1D,
+ Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
+
+ inline image texture1d::operator[](texture1d::size_type Level) const
+ {
+ GLI_ASSERT(Level < this->levels());
+
+ return image(
+ this->Storage,
+ this->format(),
+ this->base_layer(),
+ this->base_face(),
+ this->base_level() + Level);
+ }
+
+ inline texture1d::extent_type texture1d::extent(size_type Level) const
+ {
+ return extent_type(this->texture::extent(Level));
+ }
+
+ template <typename gen_type>
+ inline gen_type texture1d::load(extent_type const& TexelCoord, size_type Level) const
+ {
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord.x, 0, 0), 0, 0, Level);
+ }
+
+ template <typename gen_type>
+ inline void texture1d::store(extent_type const& TexelCoord, size_type Level, gen_type const& Texel)
+ {
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord.x, 0, 0), 0, 0, Level, Texel);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/texture1d_array.inl b/3rdparty/glm/test/external/gli/core/texture1d_array.inl
new file mode 100644
index 00000000000..9c1c7a36e6e
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/texture1d_array.inl
@@ -0,0 +1,81 @@
+#include "../levels.hpp"
+
+namespace gli
+{
+ inline texture1d_array::texture1d_array()
+ {}
+
+ inline texture1d_array::texture1d_array(format_type Format, extent_type const& Extent, size_type Layers, swizzles_type const& Swizzles)
+ : texture(TARGET_1D_ARRAY, Format, texture::extent_type(Extent.x, 1, 1), Layers, 1, gli::levels(Extent), Swizzles)
+ {}
+
+ inline texture1d_array::texture1d_array(format_type Format, extent_type const& Extent, size_type Layers, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_1D_ARRAY, Format, texture::extent_type(Extent.x, 1, 1), Layers, 1, Levels, Swizzles)
+ {}
+
+ inline texture1d_array::texture1d_array(texture const& Texture)
+ : texture(Texture, TARGET_1D_ARRAY, Texture.format())
+ {}
+
+ inline texture1d_array::texture1d_array
+ (
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
+ )
+ : texture(
+ Texture, TARGET_1D_ARRAY, Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
+
+ inline texture1d_array::texture1d_array
+ (
+ texture1d_array const& Texture,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : texture(
+ Texture, TARGET_1D_ARRAY,
+ Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
+
+ inline texture1d texture1d_array::operator[](size_type Layer) const
+ {
+ GLI_ASSERT(!this->empty());
+ GLI_ASSERT(Layer < this->layers());
+
+ return texture1d(
+ *this, this->format(),
+ this->base_layer() + Layer, this->base_layer() + Layer,
+ this->base_face(), this->max_face(),
+ this->base_level(), this->max_level());
+ }
+
+ inline texture1d_array::extent_type texture1d_array::extent(size_type Level) const
+ {
+ return extent_type(this->texture::extent(Level));
+ }
+
+ template <typename gen_type>
+ inline gen_type texture1d_array::load(extent_type const& TexelCoord, size_type Layer, size_type Level) const
+ {
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord.x, 0, 0), Layer, 0, Level);
+ }
+
+ template <typename gen_type>
+ inline void texture1d_array::store(extent_type const& TexelCoord, size_type Layer, size_type Level, gen_type const& Texel)
+ {
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord.x, 0, 0), Layer, 0, Level, Texel);
+ }
+}//namespace gli
+
+
diff --git a/3rdparty/glm/test/external/gli/core/texture2d.hpp b/3rdparty/glm/test/external/gli/core/texture2d.hpp
deleted file mode 100644
index b5327c299e2..00000000000
--- a/3rdparty/glm/test/external/gli/core/texture2d.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-01-09
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/core/texture2d.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_CORE_TEXTURE2D_INCLUDED
-#define GLI_CORE_TEXTURE2D_INCLUDED
-
-#include "image2d.hpp"
-
-namespace gli
-{
- enum comp
- {
- X = 0,
- R = 0,
- S = 0,
- Y = 1,
- G = 1,
- T = 1,
- Z = 2,
- B = 2,
- P = 2,
- W = 3,
- A = 3,
- Q = 3
- };
-
- //template <template <typename> class mem>
- class texture2D
- {
- public:
- typedef image2D::dimensions_type dimensions_type;
- typedef image2D::texcoord_type texcoord_type;
- typedef image2D::size_type size_type;
- typedef image2D::value_type value_type;
- typedef image2D::format_type format_type;
- typedef image2D::data_type data_type;
- typedef std::size_t level_type;
-
- public:
- texture2D();
-
- explicit texture2D(level_type const & Levels);
- //texture2D(image const & Mipmap, bool GenerateMipmaps = false);
-
- ~texture2D();
-
- image2D & operator[] (
- level_type const & Level);
- image2D const & operator[] (
- level_type const & Level) const;
-
- bool empty() const;
- format_type format() const;
- level_type levels() const;
- void resize(level_type const & Levels);
-
- template <typename genType>
- void swizzle(gli::comp X, gli::comp Y, gli::comp Z, gli::comp W);
-
- private:
- std::vector<image2D> Images;
- };
-
-//namespace wip
-//{
-// // plain
-// template <typename genType>
-// class plain
-// {
-// public:
-//
-// private:
-// boost::shared_array<genType> Data;
-// };
-//
-// // texture2D
-// template
-// <
-// typename genType,
-// template <typename> class surface = plain
-// >
-// class texture2D
-// {
-// public:
-// typedef genType value_type;
-//
-// private:
-// class image_impl
-// {
-// public:
-// template <typename coordType>
-// value_type const & operator() (coordType const & Coord) const;
-//
-// private:
-// surface<value_type> Surface;
-// };
-//
-// public:
-// typedef image_impl image;
-// typedef std::vector<image> mipmaps;
-// typedef typename mipmaps::size_type level_type;
-//
-// level_type levels() const;
-// image & operator[] (level_type Level);
-// image const & operator[] (level_type Level) const;
-//
-// private:
-// mipmaps Mipmaps;
-// };
-//
-//}//namespace wip
-}//namespace gli
-
-#include "texture2d.inl"
-
-#endif//GLI_CORE_TEXTURE2D_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/texture2d.inl b/3rdparty/glm/test/external/gli/core/texture2d.inl
index eee2c4715cf..0fc077e510c 100644
--- a/3rdparty/glm/test/external/gli/core/texture2d.inl
+++ b/3rdparty/glm/test/external/gli/core/texture2d.inl
@@ -1,304 +1,77 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-27
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/core/texture2D.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
+#include "../levels.hpp"
namespace gli
{
- namespace detail
- {
- inline texture2D::size_type sizeLinear
- (
- texture2D const & Texture
- )
- {
- texture2D::size_type Result = 0;
- for(texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
- Result += sizeLinear(Texture[Level]);
- return Result;
- }
- }//namespace detail
-
- inline texture2D::texture2D()
+ inline texture2d::texture2d()
{}
- inline texture2D::texture2D
- (
- level_type const & Levels
- )
- {
- this->Images.resize(Levels);
- }
-
- //inline texture2D::texture2D
- //(
- // image const & Mipmap,
- // bool GenerateMipmaps // ToDo
- //)
- //{
- // //std::size_t Levels = !GenerateMipmaps ? 1 : std::size_t(glm::log2(float(glm::max(Mipmap.width(), Mipmap.height()))));
- // texture2D::level_type Levels = !GenerateMipmaps ? 1 : std::size_t(glm::log2(float(glm::compMax(Mipmap.dimensions()))));
- // this->Mipmaps.resize(Levels);
- // this->Mipmaps[0] = Mipmap;
-
- // if(GenerateMipmaps)
- // this->generateMipmaps(0);
- //}
-
- inline texture2D::~texture2D()
+ inline texture2d::texture2d(format_type Format, extent_type const& Extent, swizzles_type const& Swizzles)
+ : texture(TARGET_2D, Format, texture::extent_type(Extent, 1), 1, 1, gli::levels(Extent), Swizzles)
{}
- inline image2D & texture2D::operator[] (level_type const & Level)
- {
- return this->Images[Level];
- }
-
- inline image2D const & texture2D::operator[] (level_type const & Level) const
- {
- return this->Images[Level];
- }
-
- inline bool texture2D::empty() const
- {
- return this->Images.size() == 0;
- }
+ inline texture2d::texture2d(format_type Format, extent_type const& Extent, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_2D, Format, texture::extent_type(Extent, 1), 1, 1, Levels, Swizzles)
+ {}
- inline texture2D::format_type texture2D::format() const
- {
- return this->Images.empty() ? FORMAT_NULL : this->Images[0].format();
- }
+ inline texture2d::texture2d(texture const& Texture)
+ : texture(Texture, TARGET_2D, Texture.format())
+ {}
- inline texture2D::level_type texture2D::levels() const
- {
- return this->Images.size();
- }
+ inline texture2d::texture2d
+ (
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
+ )
+ : texture(
+ Texture, TARGET_2D, Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
- inline void texture2D::resize
+ inline texture2d::texture2d
(
- texture2D::level_type const & Levels
+ texture2d const& Texture,
+ size_type BaseLevel, size_type MaxLevel
)
- {
- this->Images.resize(Levels);
- }
+ : texture(
+ Texture, TARGET_2D, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
- template <typename genType>
- inline void texture2D::swizzle(gli::comp X, gli::comp Y, gli::comp Z, gli::comp W)
+ inline image texture2d::operator[](size_type Level) const
{
- for(texture2D::level_type Level = 0; Level < this->levels(); ++Level)
- {
- genType * Data = reinterpret_cast<genType*>(this->Images[Level].data());
- texture2D::size_type Components = this->Images[Level].components();
- //gli::detail::getComponents(this->Images[Level].format());
- texture2D::size_type Size = (glm::compMul(this->Images[Level].dimensions()) * Components) / sizeof(genType);
-
- for(texture2D::size_type i = 0; i < Size; ++i)
- {
- genType Copy = Data[i];
- if(Components > 0)
- Data[i][0] = Copy[X];
- if(Components > 1)
- Data[i][1] = Copy[Y];
- if(Components > 2)
- Data[i][2] = Copy[Z];
- if(Components > 3)
- Data[i][3] = Copy[W];
- }
- }
+ GLI_ASSERT(Level < this->levels());
+
+ return image(
+ this->Storage,
+ this->format(),
+ this->base_layer(),
+ this->base_face(),
+ this->base_level() + Level);
}
-/*
- template <typename T>
- inline T texture<T>::texture(float x, float y) const
+ inline texture2d::extent_type texture2d::extent(size_type Level) const
{
- size_type x_below = size_type(std::floor(x * (_width - 1)));
- size_type x_above = size_type(std::ceil(x * (_width - 1)));
- size_type y_below = size_type(std::floor(y * (_height - 1)));
- size_type y_above = size_type(std::ceil(y * (_height - 1)));
-
- float x_step = 1.0f / float(_width);
- float y_step = 1.0f / float(_height);
-
- float x_below_normalized = float(x_below) / float(_width - 1);
- float x_above_normalized = float(x_above) / float(_width - 1);
- float y_below_normalized = float(y_below) / float(_height - 1);
- float y_above_normalized = float(y_above) / float(_height - 1);
-
- T value1 = _data[x_below + y_below * _width];
- T value2 = _data[x_above + y_below * _width];
- T value3 = _data[x_above + y_above * _width];
- T value4 = _data[x_below + y_above * _width];
-
- T valueA = glm::mix(value1, value2, x - x_below_normalized);
- T valueB = glm::mix(value4, value3, x - x_below_normalized);
- T valueC = glm::mix(valueA, valueB, y - y_below_normalized);
- return valueC;
+ return extent_type(this->texture::extent(Level));
}
-*/
-/*
- template <typename T>
- inline T texture(const texture2D<T>& Image2D, const glm::vec2& TexCoord)
- {
- texture2D<T>::size_type s_below = texture2D<T>::size_type(std::floor(TexCoord.s * (Image2D.width() - 1)));
- texture2D<T>::size_type s_above = texture2D<T>::size_type(std::ceil(TexCoord.s * (Image2D.width() - 1)));
- texture2D<T>::size_type t_below = texture2D<T>::size_type(std::floor(TexCoord.t * (Image2D.height() - 1)));
- texture2D<T>::size_type t_above = texture2D<T>::size_type(std::ceil(TexCoord.t * (Image2D.height() - 1)));
- glm::vec2::value_type s_step = 1.0f / glm::vec2::value_type(Image2D.width());
- glm::vec2::value_type t_step = 1.0f / glm::vec2::value_type(Image2D.height());
-
- glm::vec2::value_type s_below_normalized = glm::vec2::value_type(s_below) / glm::vec2::value_type(Image2D.width() - 1);
- glm::vec2::value_type s_above_normalized = glm::vec2::value_type(s_above) / glm::vec2::value_type(Image2D.width() - 1);
- glm::vec2::value_type t_below_normalized = glm::vec2::value_type(t_below) / glm::vec2::value_type(Image2D.height() - 1);
- glm::vec2::value_type t_above_normalized = glm::vec2::value_type(t_above) / glm::vec2::value_type(Image2D.height() - 1);
-
- T value1 = Image2D[s_below + t_below * Image2D.width()];
- T value2 = Image2D[s_above + t_below * Image2D.width()];
- T value3 = Image2D[s_above + t_above * Image2D.width()];
- T value4 = Image2D[s_below + t_above * Image2D.width()];
-
- T valueA = glm::mix(value1, value2, TexCoord.s - s_below_normalized);
- T valueB = glm::mix(value4, value3, TexCoord.s - s_below_normalized);
- T valueC = glm::mix(valueA, valueB, TexCoord.t - t_below_normalized);
- return valueC;
- }
-
- template <typename T>
- inline T textureNearest(const texture2D<T>& Image2D, const glm::vec2& TexCoord)
+ template <typename gen_type>
+ inline gen_type texture2d::load(extent_type const& TexelCoord, size_type Level) const
{
- texture2D<T>::size_type s = texture2D<T>::size_type(glm::roundGTX(TexCoord.s * (Image2D.width() - 1)));
- texture2D<T>::size_type t = texture2D<T>::size_type(std::roundGTX(TexCoord.t * (Image2D.height() - 1)));
-
- return Image2D[s + t * Image2D.width()];
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord, 0), 0, 0, Level);
}
-*/
-namespace wip
-{
- ////////////////
- // image
-/*
- //
- template
- <
- typename coordType
- >
- template
- <
- typename genType,
- template <typename> class surface
- >
- typename texture2D<genType, surface>::value_type &
- texture2D<genType, surface>::image_impl<coordType>::operator()
- (
- coordType const & Coord
- )
+ template <typename gen_type>
+ inline void texture2d::store(extent_type const& TexelCoord, size_type Level, gen_type const& Texel)
{
-
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord, 0), 0, 0, Level, Texel);
}
-*/
-/*
- //
- template
- <
- typename coordType
- >
- template
- <
- typename genType,
- template <typename> class surface
- >
- typename texture2D<genType, surface>::value_type const &
- texture2D<genType, surface>::image_impl::operator()
- (
- coordType const & Coord
- ) const
- {
- return value_type(0);
- }
-*/
-/*
- //
- template
- <
- typename coordType
- >
- template
- <
- typename genType,
- template <typename> class surface
- >
- void texture2D<genType, surface>::image_impl::operator()
- (
- coordType const & Coord
- ) const
- {
-
- }
-*/
- ////
- //template
- //<
- // typename genType,
- // template <typename> class surface
- //>
- //template
- //<
- // typename coordType
- //>
- //typename texture2D<genType, surface>::value_type const &
- //texture2D<genType, surface>::image_impl::operator()
- //(
- // coordType const & Coord
- //) const
- //{
- // return value_type(0);
- //}
-
- //////////////////
- //// texture2D
-
- ////
- //template
- //<
- // typename genType,
- // template <typename> class surface
- //>
- //typename texture2D<genType, surface>::level_type texture2D<genType, surface>::levels() const
- //{
- // return this->Mipmaps.size();
- //}
-
- ////
- //template
- //<
- // typename genType,
- // template <typename> class surface
- //>
- //typename texture2D<genType, surface>::image & texture2D<genType, surface>::operator[]
- //(
- // typename texture2D<genType, surface>::level_type Level
- //)
- //{
- // return this->Mipmaps[Level];
- //}
-
- ////
- //template
- //<
- // typename genType,
- // template <typename> class surface
- //>
- //typename texture2D<genType, surface>::image const & texture2D<genType, surface>::operator[]
- //(
- // typename texture2D<genType, surface>::level_type Level
- //) const
- //{
- // return this->Mipmaps[Level];
- //}
-
-}//namespace wip
}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/texture2d_array.hpp b/3rdparty/glm/test/external/gli/core/texture2d_array.hpp
deleted file mode 100644
index cb337e3b0a2..00000000000
--- a/3rdparty/glm/test/external/gli/core/texture2d_array.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-06
-// Updated : 2011-04-06
-// Licence : This source is under MIT License
-// File : gli/core/texture2d_array.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_CORE_TEXTURE2D_ARRAY_INCLUDED
-#define GLI_CORE_TEXTURE2D_ARRAY_INCLUDED
-
-#include "texture2d.hpp"
-
-namespace gli
-{
- class texture2DArray
- {
- public:
- typedef texture2D::dimensions_type dimensions_type;
- typedef texture2D::texcoord_type texcoord_type;
- typedef texture2D::size_type size_type;
- typedef texture2D::value_type value_type;
- typedef texture2D::format_type format_type;
- typedef texture2D::data_type data_type;
- typedef texture2D::level_type level_type;
- typedef std::vector<texture2D>::size_type layer_type;
-
- public:
- texture2DArray();
-
- explicit texture2DArray(
- layer_type const & Layers,
- level_type const & Levels);
-
- ~texture2DArray();
-
- texture2D & operator[] (
- layer_type const & Layer);
- texture2D const & operator[] (
- layer_type const & Layer) const;
-
- bool empty() const;
- format_type format() const;
- layer_type layers() const;
- level_type levels() const;
- void resize(
- layer_type const & Layers,
- level_type const & Levels);
-
- private:
- std::vector<texture2D> Arrays;
- };
-
-}//namespace gli
-
-#include "texture2d_array.inl"
-
-#endif//GLI_CORE_TEXTURE2D_ARRAY_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/texture2d_array.inl b/3rdparty/glm/test/external/gli/core/texture2d_array.inl
index 386cac017c2..2243344e5c8 100644
--- a/3rdparty/glm/test/external/gli/core/texture2d_array.inl
+++ b/3rdparty/glm/test/external/gli/core/texture2d_array.inl
@@ -1,78 +1,79 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-06
-// Updated : 2011-04-06
-// Licence : This source is under MIT License
-// File : gli/core/texture_cube.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
+#include "../levels.hpp"
namespace gli
{
- inline texture2DArray::texture2DArray()
+ inline texture2d_array::texture2d_array()
{}
- inline texture2DArray::texture2DArray
- (
- texture2DArray::layer_type const & Layers,
- texture2DArray::level_type const & Levels
- )
- {
- this->Arrays.resize(Layers);
- for(texture2DArray::size_type i = 0; i < this->Arrays.size(); ++i)
- this->Arrays[i].resize(Levels);
- }
+ inline texture2d_array::texture2d_array(format_type Format, extent_type const& Extent, size_type Layers, swizzles_type const& Swizzles)
+ : texture(TARGET_2D_ARRAY, Format, texture::extent_type(Extent, 1), Layers, 1, gli::levels(Extent), Swizzles)
+ {}
- inline texture2DArray::~texture2DArray()
+ inline texture2d_array::texture2d_array(format_type Format, extent_type const& Extent, size_type Layers, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_2D_ARRAY, Format, texture::extent_type(Extent, 1), Layers, 1, Levels, Swizzles)
{}
- inline texture2D & texture2DArray::operator[]
+ inline texture2d_array::texture2d_array(texture const& Texture)
+ : texture(Texture, TARGET_2D_ARRAY, Texture.format())
+ {}
+
+ inline texture2d_array::texture2d_array
(
- layer_type const & Layer
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
)
- {
- return this->Arrays[Layer];
- }
+ : texture(
+ Texture, TARGET_2D_ARRAY,
+ Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
- inline texture2D const & texture2DArray::operator[]
+ inline texture2d_array::texture2d_array
(
- layer_type const & Layer
- ) const
- {
- return this->Arrays[Layer];
- }
+ texture2d_array const& Texture,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : texture(
+ Texture, TARGET_2D_ARRAY,
+ Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
- inline bool texture2DArray::empty() const
+ inline texture2d texture2d_array::operator[](size_type Layer) const
{
- return this->Arrays.empty();
- }
+ GLI_ASSERT(Layer < this->layers());
- inline texture2DArray::format_type texture2DArray::format() const
- {
- return this->Arrays.empty() ? FORMAT_NULL : this->Arrays[0].format();
+ return texture2d(
+ *this, this->format(),
+ this->base_layer() + Layer, this->base_layer() + Layer,
+ this->base_face(), this->max_face(),
+ this->base_level(), this->max_level());
}
- inline texture2DArray::layer_type texture2DArray::layers() const
+ inline texture2d_array::extent_type texture2d_array::extent(size_type Level) const
{
- return this->Arrays.size();
+ return extent_type(this->texture::extent(Level));
}
- inline texture2DArray::level_type texture2DArray::levels() const
+ template <typename gen_type>
+ inline gen_type texture2d_array::load(extent_type const& TexelCoord, size_type Layer, size_type Level) const
{
- if(this->empty())
- return 0;
- return this->Arrays[0].levels();
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord, 0), Layer, 0, Level);
}
- inline void texture2DArray::resize
- (
- texture2DArray::layer_type const & Layers,
- texture2DArray::level_type const & Levels
- )
+ template <typename gen_type>
+ inline void texture2d_array::store(extent_type const& TexelCoord, size_type Layer, size_type Level, gen_type const& Texel)
{
- this->Arrays.resize(Layers);
- for(texture2DArray::layer_type i = 0; i < this->Arrays.size(); ++i)
- this->Arrays[i].resize(Levels);
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord, 0), Layer, 0, Level, Texel);
}
-
}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/texture3d.inl b/3rdparty/glm/test/external/gli/core/texture3d.inl
new file mode 100644
index 00000000000..96faf4f8513
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/texture3d.inl
@@ -0,0 +1,77 @@
+#include "../levels.hpp"
+
+namespace gli
+{
+ inline texture3d::texture3d()
+ {}
+
+ inline texture3d::texture3d(format_type Format, extent_type const& Extent, swizzles_type const& Swizzles)
+ : texture(TARGET_3D, Format, Extent, 1, 1, gli::levels(Extent), Swizzles)
+ {}
+
+ inline texture3d::texture3d(format_type Format, extent_type const& Extent, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_3D, Format, Extent, 1, 1, Levels, Swizzles)
+ {}
+
+ inline texture3d::texture3d(texture const& Texture)
+ : texture(Texture, TARGET_3D, Texture.format())
+ {}
+
+ inline texture3d::texture3d
+ (
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
+ )
+ : texture(
+ Texture, TARGET_3D, Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
+
+ inline texture3d::texture3d
+ (
+ texture3d const& Texture,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : texture(
+ Texture, TARGET_3D, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
+
+ inline image texture3d::operator[](size_type Level) const
+ {
+ GLI_ASSERT(Level < this->levels());
+
+ return image(
+ this->Storage,
+ this->format(),
+ this->base_layer(),
+ this->base_face(),
+ this->base_level() + Level);
+ }
+
+ inline texture3d::extent_type texture3d::extent(size_type Level) const
+ {
+ return extent_type(this->texture::extent(Level));
+ }
+
+ template <typename gen_type>
+ inline gen_type texture3d::load(extent_type const& TexelCoord, size_type Level) const
+ {
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord), 0, 0, Level);
+ }
+
+ template <typename gen_type>
+ inline void texture3d::store(extent_type const& TexelCoord, size_type Level, gen_type const& Texel)
+ {
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord), 0, 0, Level, Texel);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/texture_cube.hpp b/3rdparty/glm/test/external/gli/core/texture_cube.hpp
deleted file mode 100644
index 8251d23fe30..00000000000
--- a/3rdparty/glm/test/external/gli/core/texture_cube.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-06
-// Updated : 2011-04-06
-// Licence : This source is under MIT License
-// File : gli/core/texture_cube.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_CORE_TEXTURE_CUBE_INCLUDED
-#define GLI_CORE_TEXTURE_CUBE_INCLUDED
-
-#include "texture2d.hpp"
-
-namespace gli
-{
- enum face
- {
- POSITIVE_X,
- NEGATIVE_X,
- POSITIVE_Y,
- NEGATIVE_Y,
- POSITIVE_Z,
- NEGATIVE_Z,
- FACE_MAX
- };
-
- class textureCube
- {
- public:
- typedef texture2D::dimensions_type dimensions_type;
- typedef texture2D::texcoord_type texcoord_type;
- typedef texture2D::size_type size_type;
- typedef texture2D::value_type value_type;
- typedef texture2D::format_type format_type;
- typedef texture2D::data_type data_type;
- typedef texture2D::level_type level_type;
- typedef face face_type;
-
- public:
- textureCube();
-
- explicit textureCube(level_type const & Levels);
-
- ~textureCube();
-
- texture2D & operator[] (
- face_type const & Face);
- texture2D const & operator[] (
- face_type const & Face) const;
-
- bool empty() const;
- format_type format() const;
- level_type levels() const;
- void resize(level_type const & Levels);
-
- private:
- std::vector<texture2D> Faces;
- };
-
-}//namespace gli
-
-#include "texture_cube.inl"
-
-#endif//GLI_CORE_TEXTURE_CUBE_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/texture_cube.inl b/3rdparty/glm/test/external/gli/core/texture_cube.inl
index d1cbe319efe..4c9fa783c5b 100644
--- a/3rdparty/glm/test/external/gli/core/texture_cube.inl
+++ b/3rdparty/glm/test/external/gli/core/texture_cube.inl
@@ -1,70 +1,75 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-06
-// Updated : 2011-04-06
-// Licence : This source is under MIT License
-// File : gli/core/texture_cube.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
namespace gli
{
- inline textureCube::textureCube()
+ inline texture_cube::texture_cube()
{}
- inline textureCube::textureCube
- (
- level_type const & Levels
- )
- {
- this->Faces.resize(FACE_MAX);
- for(textureCube::size_type i = 0; i < FACE_MAX; ++i)
- this->Faces[i].resize(Levels);
- }
+ inline texture_cube::texture_cube(format_type Format, extent_type const& Extent, swizzles_type const& Swizzles)
+ : texture(TARGET_CUBE, Format, texture::extent_type(Extent, 1), 1, 6, gli::levels(Extent), Swizzles)
+ {}
+
+ inline texture_cube::texture_cube(format_type Format, extent_type const& Extent, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_CUBE, Format, texture::extent_type(Extent, 1), 1, 6, Levels, Swizzles)
+ {}
- inline textureCube::~textureCube()
+ inline texture_cube::texture_cube(texture const& Texture)
+ : texture(Texture, TARGET_CUBE, Texture.format())
{}
- inline texture2D & textureCube::operator[]
+ inline texture_cube::texture_cube
(
- face_type const & Face
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
)
- {
- return this->Faces[Face];
- }
+ : texture(
+ Texture, TARGET_CUBE, Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
- inline texture2D const & textureCube::operator[]
+ inline texture_cube::texture_cube
(
- face_type const & Face
- ) const
- {
- return this->Faces[Face];
- }
+ texture_cube const& Texture,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : texture(
+ Texture, TARGET_CUBE, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face() + BaseFace, Texture.base_face() + MaxFace,
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
- inline bool textureCube::empty() const
+ inline texture2d texture_cube::operator[](size_type Face) const
{
- return this->Faces.size() == 0;
+ GLI_ASSERT(Face < this->faces());
+
+ return texture2d(
+ *this, this->format(),
+ this->base_layer(), this->max_layer(),
+ this->base_face() + Face, this->base_face() + Face,
+ this->base_level(), this->max_level());
}
- inline textureCube::format_type textureCube::format() const
+ inline texture_cube::extent_type texture_cube::extent(size_type Level) const
{
- return this->Faces.empty() ? FORMAT_NULL : this->Faces[0].format();
+ return extent_type(this->texture::extent(Level));
}
- inline textureCube::level_type textureCube::levels() const
+ template <typename gen_type>
+ inline gen_type texture_cube::load(extent_type const& TexelCoord, size_type Face, size_type Level) const
{
- if(this->empty())
- return 0;
- return this->Faces[POSITIVE_X].levels();
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord, 0), 0, Face, Level);
}
- inline void textureCube::resize
- (
- level_type const & Levels
- )
+ template <typename gen_type>
+ inline void texture_cube::store(extent_type const& TexelCoord, size_type Face, size_type Level, gen_type const& Texel)
{
- for(textureCube::size_type i = 0; i < FACE_MAX; ++i)
- this->Faces[i].resize(Levels);
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord, 0), 0, Face, Level, Texel);
}
-
}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/texture_cube_array.hpp b/3rdparty/glm/test/external/gli/core/texture_cube_array.hpp
deleted file mode 100644
index ac2b8b53515..00000000000
--- a/3rdparty/glm/test/external/gli/core/texture_cube_array.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-06
-// Updated : 2011-04-06
-// Licence : This source is under MIT License
-// File : gli/core/texture_cube_array.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_CORE_TEXTURE_CUBE_ARRAY_INCLUDED
-#define GLI_CORE_TEXTURE_CUBE_ARRAY_INCLUDED
-
-#include "texture_cube.hpp"
-
-namespace gli
-{
- class textureCubeArray
- {
- public:
- typedef textureCube::dimensions_type dimensions_type;
- typedef textureCube::texcoord_type texcoord_type;
- typedef textureCube::size_type size_type;
- typedef textureCube::value_type value_type;
- typedef textureCube::format_type format_type;
- typedef std::vector<textureCube> data_type;
- typedef textureCube::level_type level_type;
- typedef data_type::size_type layer_type;
-
- public:
- textureCubeArray();
-
- explicit textureCubeArray(
- layer_type const & Layers,
- level_type const & Levels);
-
- ~textureCubeArray();
-
- textureCube & operator[] (
- layer_type const & Layer);
- textureCube const & operator[] (
- layer_type const & Layer) const;
-
- bool empty() const;
- format_type format() const;
- layer_type layers() const;
- level_type levels() const;
- void resize(
- layer_type const & Layers,
- level_type const & Levels);
-
- private:
- data_type Arrays;
- };
-
-}//namespace gli
-
-#include "texture_cube_array.inl"
-
-#endif//GLI_CORE_TEXTURE_CUBE_ARRAY_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/core/texture_cube_array.inl b/3rdparty/glm/test/external/gli/core/texture_cube_array.inl
index f214902bb65..fea68d6bf33 100644
--- a/3rdparty/glm/test/external/gli/core/texture_cube_array.inl
+++ b/3rdparty/glm/test/external/gli/core/texture_cube_array.inl
@@ -1,72 +1,77 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-04-06
-// Updated : 2011-04-06
-// Licence : This source is under MIT License
-// File : gli/core/texture_cube_array.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
namespace gli
{
- inline textureCubeArray::textureCubeArray()
+ inline texture_cube_array::texture_cube_array()
{}
- inline textureCubeArray::textureCubeArray
- (
- layer_type const & Layers,
- level_type const & Levels
- )
- {
- this->Arrays.resize(Layers);
- for(textureCubeArray::size_type i = 0; i < this->Arrays.size(); ++i)
- this->Arrays[i].resize(Levels);
- }
+ inline texture_cube_array::texture_cube_array(format_type Format, extent_type const& Extent, size_type Layers, swizzles_type const& Swizzles)
+ : texture(TARGET_CUBE_ARRAY, Format, texture::extent_type(Extent, 1), Layers, 6, gli::levels(Extent), Swizzles)
+ {}
+
+ inline texture_cube_array::texture_cube_array(format_type Format, extent_type const& Extent, size_type Layers, size_type Levels, swizzles_type const& Swizzles)
+ : texture(TARGET_CUBE_ARRAY, Format, texture::extent_type(Extent, 1), Layers, 6, Levels, Swizzles)
+ {}
- inline textureCubeArray::~textureCubeArray()
+ inline texture_cube_array::texture_cube_array(texture const& Texture)
+ : texture(Texture, gli::TARGET_CUBE_ARRAY, Texture.format())
{}
- inline textureCube & textureCubeArray::operator[]
+ inline texture_cube_array::texture_cube_array
(
- layer_type const & Layer
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles
)
- {
- return this->Arrays[Layer];
- }
+ : texture(
+ Texture, TARGET_CUBE_ARRAY,
+ Format,
+ BaseLayer, MaxLayer,
+ BaseFace, MaxFace,
+ BaseLevel, MaxLevel,
+ Swizzles)
+ {}
- inline textureCube const & textureCubeArray::operator[]
+ inline texture_cube_array::texture_cube_array
(
- layer_type const & Layer
- ) const
- {
- return this->Arrays[Layer];
- }
+ texture_cube_array const& Texture,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : texture(
+ Texture, TARGET_CUBE_ARRAY, Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face() + BaseFace, Texture.base_face() + MaxFace,
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel)
+ {}
- inline bool textureCubeArray::empty() const
+ inline texture_cube texture_cube_array::operator[](size_type Layer) const
{
- return this->Arrays.empty();
+ GLI_ASSERT(Layer < this->layers());
+
+ return texture_cube(
+ *this, this->format(),
+ this->base_layer() + Layer, this->base_layer() + Layer,
+ this->base_face(), this->max_face(),
+ this->base_level(), this->max_level());
}
- inline textureCubeArray::format_type textureCubeArray::format() const
+ inline texture_cube_array::extent_type texture_cube_array::extent(size_type Level) const
{
- return this->Arrays.empty() ? FORMAT_NULL : this->Arrays[0].format();
+ return extent_type(this->texture::extent(Level));
}
- inline textureCubeArray::level_type textureCubeArray::levels() const
+ template <typename gen_type>
+ inline gen_type texture_cube_array::load(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level) const
{
- if(this->empty())
- return 0;
- return this->Arrays[0].levels();
+ return this->texture::load<gen_type>(texture::extent_type(TexelCoord, 0), Layer, Face, Level);
}
- inline void textureCubeArray::resize
- (
- layer_type const & Layers,
- level_type const & Levels
- )
+ template <typename gen_type>
+ inline void texture_cube_array::store(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const& Texel)
{
- for(textureCubeArray::size_type i = 0; i < this->Arrays.size(); ++i)
- this->Arrays[i].resize(Levels);
+ this->texture::store<gen_type>(texture::extent_type(TexelCoord, 0), Layer, Face, Level, Texel);
}
-
}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/transform.inl b/3rdparty/glm/test/external/gli/core/transform.inl
new file mode 100644
index 00000000000..d93e3355fb2
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/transform.inl
@@ -0,0 +1,257 @@
+namespace gli{
+namespace detail
+{
+ template <typename vec_type>
+ struct compute_transform_1d
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture1d::size_type size_type;
+ typedef texture1d::extent_type extent_type;
+
+ static void call(texture1d& Output, texture1d const& A, texture1d const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_transform_1d_array
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture1d_array::size_type size_type;
+ typedef texture1d_array::extent_type extent_type;
+
+ static void call(texture1d_array& Output, texture1d_array const& A, texture1d_array const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.layers() == B.layers());
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, LayerIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, LayerIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, LayerIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_transform_2d
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture2d::size_type size_type;
+ typedef texture2d::extent_type extent_type;
+
+ static void call(texture2d& Output, texture2d const& A, texture2d const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_transform_2d_array
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture2d_array::size_type size_type;
+ typedef texture2d_array::extent_type extent_type;
+
+ static void call(texture2d_array& Output, texture2d_array const& A, texture2d_array const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.layers() == B.layers());
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, LayerIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, LayerIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, LayerIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_transform_3d
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture3d::size_type size_type;
+ typedef texture3d::extent_type extent_type;
+
+ static void call(texture3d& Output, texture3d const& A, texture3d const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.z = 0; TexelIndex.z < TexelCount.z; ++TexelIndex.z)
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_transform_cube
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture_cube::size_type size_type;
+ typedef texture_cube::extent_type extent_type;
+
+ static void call(texture_cube& Output, texture_cube const& A, texture_cube const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.faces() == B.faces());
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type FaceIndex = 0, FaceCount = A.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, FaceIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, FaceIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, FaceIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+
+ template <typename vec_type>
+ struct compute_transform_cube_array
+ {
+ typedef typename transform_func<vec_type>::type func_type;
+ typedef texture_cube_array::size_type size_type;
+ typedef texture_cube_array::extent_type extent_type;
+
+ static void call(texture_cube_array& Output, texture_cube_array const& A, texture_cube_array const& B, func_type Func)
+ {
+ GLI_ASSERT(all(equal(A.extent(), B.extent())));
+ GLI_ASSERT(A.layers() == B.layers());
+ GLI_ASSERT(A.levels() == B.levels());
+ GLI_ASSERT(A.size() == B.size());
+
+ for(size_type LayerIndex = 0, LayerCount = A.layers(); LayerIndex < LayerCount; ++LayerIndex)
+ for(size_type FaceIndex = 0, FaceCount = A.faces(); FaceIndex < FaceCount; ++FaceIndex)
+ for(size_type LevelIndex = 0, LevelCount = A.levels(); LevelIndex < LevelCount; ++LevelIndex)
+ {
+ extent_type const TexelCount(A.extent(LevelIndex));
+ extent_type TexelIndex(0);
+
+ for(TexelIndex.y = 0; TexelIndex.y < TexelCount.y; ++TexelIndex.y)
+ for(TexelIndex.x = 0; TexelIndex.x < TexelCount.x; ++TexelIndex.x)
+ {
+ Output.store<vec_type>(TexelIndex, LayerIndex, FaceIndex, LevelIndex, Func(
+ A.load<vec_type>(TexelIndex, LayerIndex, FaceIndex, LevelIndex),
+ B.load<vec_type>(TexelIndex, LayerIndex, FaceIndex, LevelIndex)));
+ }
+ }
+ }
+ };
+}//namepsace detail
+
+ template <typename vec_type>
+ inline void transform(texture1d& Out, texture1d const& In0, texture1d const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_1d<vec_type>::call(Out, In0, In1, Func);
+ }
+
+ template <typename vec_type>
+ inline void transform(texture1d_array& Out, texture1d_array const& In0, texture1d_array const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_1d_array<vec_type>::call(Out, In0, In1, Func);
+ }
+
+ template <typename vec_type>
+ inline void transform(texture2d& Out, texture2d const& In0, texture2d const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_2d<vec_type>::call(Out, In0, In1, Func);
+ }
+
+ template <typename vec_type>
+ inline void transform(texture2d_array& Out, texture2d_array const& In0, texture2d_array const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_2d_array<vec_type>::call(Out, In0, In1, Func);
+ }
+
+ template <typename vec_type>
+ inline void transform(texture3d& Out, texture3d const& In0, texture3d const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_3d<vec_type>::call(Out, In0, In1, Func);
+ }
+
+ template <typename vec_type>
+ inline void transform(texture_cube& Out, texture_cube const& In0, texture_cube const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_cube<vec_type>::call(Out, In0, In1, Func);
+ }
+
+ template <typename vec_type>
+ inline void transform(texture_cube_array& Out, texture_cube_array const& In0, texture_cube_array const& In1, typename transform_func<vec_type>::type Func)
+ {
+ detail::compute_transform_cube_array<vec_type>::call(Out, In0, In1, Func);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/view.inl b/3rdparty/glm/test/external/gli/core/view.inl
new file mode 100644
index 00000000000..2b057b9f66e
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/view.inl
@@ -0,0 +1,169 @@
+namespace gli
+{
+ inline image view(image const& Image)
+ {
+ return Image;
+ }
+
+ inline texture view(texture const& Texture)
+ {
+ return Texture;
+ }
+
+ template <typename texType>
+ inline texture view(texType const& Texture)
+ {
+ return Texture;
+ }
+
+ inline texture view
+ (
+ texture const& Texture,
+ texture::size_type BaseLayer, texture::size_type MaxLayer,
+ texture::size_type BaseFace, texture::size_type MaxFace,
+ texture::size_type BaseLevel, texture::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseFace >= 0 && BaseFace < Texture.faces() && MaxFace >= 0 && MaxFace < Texture.faces() && BaseFace <= MaxFace);
+ GLI_ASSERT(BaseLayer >= 0 && BaseLayer < Texture.layers() && MaxLayer >= 0 && MaxLayer < Texture.layers() && BaseLayer <= MaxLayer);
+
+ return texture(
+ Texture, Texture.target(), Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face() + BaseFace, Texture.base_face() + MaxFace,
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ template <typename texType>
+ inline texture view(texType const& Texture, format Format)
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(block_size(Texture.format()) == block_size(Format));
+
+ return texture(Texture, Texture.target(), Format);
+ }
+
+ inline texture view
+ (
+ texture1d const& Texture,
+ texture1d::size_type BaseLevel, texture1d::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+
+ return texture(
+ Texture, TARGET_1D, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ inline texture view
+ (
+ texture1d_array const & Texture,
+ texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,
+ texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLayer >= 0 && BaseLayer < Texture.layers() && MaxLayer >= 0 && MaxLayer < Texture.layers() && BaseLayer <= MaxLayer);
+
+ return texture(
+ Texture, TARGET_1D_ARRAY, Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ inline texture view
+ (
+ texture2d const & Texture,
+ texture2d::size_type BaseLevel, texture2d::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+
+ return texture(
+ Texture, TARGET_2D, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ inline texture view
+ (
+ texture2d_array const & Texture,
+ texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,
+ texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseLayer >= 0 && BaseLayer < Texture.layers() && MaxLayer >= 0 && MaxLayer < Texture.layers() && BaseLayer <= MaxLayer);
+
+ return texture(
+ Texture, TARGET_2D_ARRAY, Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ inline texture view
+ (
+ texture3d const & Texture,
+ texture3d::size_type BaseLevel, texture3d::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+
+ return texture(
+ Texture, TARGET_3D, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.max_face(),
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ inline texture view
+ (
+ texture_cube const & Texture,
+ texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,
+ texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseFace >= 0 && BaseFace < Texture.faces() && MaxFace >= 0 && MaxFace < Texture.faces() && BaseFace <= MaxFace);
+
+ return texture(
+ Texture, TARGET_CUBE, Texture.format(),
+ Texture.base_layer(), Texture.max_layer(),
+ Texture.base_face(), Texture.base_face() + MaxFace,
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+
+ inline texture view
+ (
+ texture_cube_array const & Texture,
+ texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,
+ texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,
+ texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel
+ )
+ {
+ GLI_ASSERT(!Texture.empty());
+ GLI_ASSERT(BaseLevel >= 0 && BaseLevel < Texture.levels() && MaxLevel >= 0 && MaxLevel < Texture.levels() && BaseLevel <= MaxLevel);
+ GLI_ASSERT(BaseFace >= 0 && BaseFace < Texture.faces() && MaxFace >= 0 && MaxFace < Texture.faces() && BaseFace <= MaxFace);
+ GLI_ASSERT(BaseLayer >= 0 && BaseLayer < Texture.layers() && MaxLayer >= 0 && MaxLayer < Texture.layers() && BaseLayer <= MaxLayer);
+
+ return texture(
+ Texture, TARGET_CUBE_ARRAY, Texture.format(),
+ Texture.base_layer() + BaseLayer, Texture.base_layer() + MaxLayer,
+ Texture.base_face() + BaseFace, Texture.base_face() + MaxFace,
+ Texture.base_level() + BaseLevel, Texture.base_level() + MaxLevel);
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/core/workaround.hpp b/3rdparty/glm/test/external/gli/core/workaround.hpp
new file mode 100644
index 00000000000..a8ba1e0e933
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/core/workaround.hpp
@@ -0,0 +1,392 @@
+#pragma once
+
+// Removed after upgrading to GLM 0.9.8
+namespace gli{
+namespace workaround{
+namespace detail
+{
+ union u3u3u2
+ {
+ struct
+ {
+ uint x : 3;
+ uint y : 3;
+ uint z : 2;
+ } data;
+ uint8 pack;
+ };
+
+ union u4u4
+ {
+ struct
+ {
+ uint x : 4;
+ uint y : 4;
+ } data;
+ uint8 pack;
+ };
+
+ union u4u4u4u4
+ {
+ struct
+ {
+ uint x : 4;
+ uint y : 4;
+ uint z : 4;
+ uint w : 4;
+ } data;
+ uint16 pack;
+ };
+
+ union u5u6u5
+ {
+ struct
+ {
+ uint x : 5;
+ uint y : 6;
+ uint z : 5;
+ } data;
+ uint16 pack;
+ };
+
+ union u5u5u5u1
+ {
+ struct
+ {
+ uint x : 5;
+ uint y : 5;
+ uint z : 5;
+ uint w : 1;
+ } data;
+ uint16 pack;
+ };
+
+ union u9u9u9e5
+ {
+ struct
+ {
+ uint x : 9;
+ uint y : 9;
+ uint z : 9;
+ uint w : 5;
+ } data;
+ uint32 pack;
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType, bool isInteger, bool signedType>
+ struct compute_compNormalize
+ {};
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compNormalize<T, floatType, P, vecType, true, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ {
+ floatType const Min = static_cast<floatType>(std::numeric_limits<T>::min());
+ floatType const Max = static_cast<floatType>(std::numeric_limits<T>::max());
+ return (vecType<floatType, P>(v) - Min) / (Max - Min) * static_cast<floatType>(2) - static_cast<floatType>(1);
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compNormalize<T, floatType, P, vecType, true, false>
+ {
+ GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ {
+ return vecType<floatType, P>(v) / static_cast<floatType>(std::numeric_limits<T>::max());
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compNormalize<T, floatType, P, vecType, false, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ {
+ return v;
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType, bool isInteger, bool signedType>
+ struct compute_compScale
+ {};
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compScale<T, floatType, P, vecType, true, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ {
+ floatType const Max = static_cast<floatType>(std::numeric_limits<T>::max()) + static_cast<floatType>(0.5);
+ vecType<floatType, P> const Scaled(v * Max);
+ vecType<T, P> const Result(Scaled - static_cast<floatType>(0.5));
+ return Result;
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compScale<T, floatType, P, vecType, true, false>
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ {
+ return vecType<T, P>(vecType<floatType, P>(v) * static_cast<floatType>(std::numeric_limits<T>::max()));
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compScale<T, floatType, P, vecType, false, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ {
+ return v;
+ }
+ };
+
+ template <precision P, template <typename, precision> class vecType>
+ struct compute_half
+ {};
+
+ template <precision P>
+ struct compute_half<P, tvec1>
+ {
+ GLM_FUNC_QUALIFIER static tvec1<uint16, P> pack(tvec1<float, P> const & v)
+ {
+ int16 const Unpacked(glm::detail::toFloat16(v.x));
+ return tvec1<uint16, P>(reinterpret_cast<uint16 const &>(Unpacked));
+ }
+
+ GLM_FUNC_QUALIFIER static tvec1<float, P> unpack(tvec1<uint16, P> const & v)
+ {
+ return tvec1<float, P>(glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.x)));
+ }
+ };
+
+ template <precision P>
+ struct compute_half<P, tvec2>
+ {
+ GLM_FUNC_QUALIFIER static tvec2<uint16, P> pack(tvec2<float, P> const & v)
+ {
+ tvec2<int16, P> const Unpacked(glm::detail::toFloat16(v.x), glm::detail::toFloat16(v.y));
+ return tvec2<uint16, P>(
+ reinterpret_cast<uint16 const &>(Unpacked.x),
+ reinterpret_cast<uint16 const &>(Unpacked.y));
+ }
+
+ GLM_FUNC_QUALIFIER static tvec2<float, P> unpack(tvec2<uint16, P> const & v)
+ {
+ return tvec2<float, P>(
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.x)),
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.y)));
+ }
+ };
+
+ template <precision P>
+ struct compute_half<P, tvec3>
+ {
+ GLM_FUNC_QUALIFIER static tvec3<uint16, P> pack(tvec3<float, P> const & v)
+ {
+ tvec3<int16, P> const Unpacked(glm::detail::toFloat16(v.x), glm::detail::toFloat16(v.y), glm::detail::toFloat16(v.z));
+ return tvec3<uint16, P>(
+ reinterpret_cast<uint16 const &>(Unpacked.x),
+ reinterpret_cast<uint16 const &>(Unpacked.y),
+ reinterpret_cast<uint16 const &>(Unpacked.z));
+ }
+
+ GLM_FUNC_QUALIFIER static tvec3<float, P> unpack(tvec3<uint16, P> const & v)
+ {
+ return tvec3<float, P>(
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.x)),
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.y)),
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.z)));
+ }
+ };
+
+ template <precision P>
+ struct compute_half<P, tvec4>
+ {
+ GLM_FUNC_QUALIFIER static vec<4, uint16, P> pack(vec<4, float, P> const & v)
+ {
+ vec<4, int16, P> const Unpacked(glm::detail::toFloat16(v.x), glm::detail::toFloat16(v.y), glm::detail::toFloat16(v.z), glm::detail::toFloat16(v.w));
+ return vec<4, uint16, P>(
+ reinterpret_cast<uint16 const &>(Unpacked.x),
+ reinterpret_cast<uint16 const &>(Unpacked.y),
+ reinterpret_cast<uint16 const &>(Unpacked.z),
+ reinterpret_cast<uint16 const &>(Unpacked.w));
+ }
+
+ GLM_FUNC_QUALIFIER static vec<4, float, P> unpack(vec<4, uint16, P> const & v)
+ {
+ return vec<4, float, P>(
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.x)),
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.y)),
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.z)),
+ glm::detail::toFloat32(reinterpret_cast<int16 const &>(v.w)));
+ }
+ };
+}//namespace detail
+
+ template <typename floatType, typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<floatType, P> compNormalize(vecType<T, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "'compNormalize' accepts only floating-point types for 'floatType' template parameter");
+
+ return detail::compute_compNormalize<T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
+ }
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> compScale(vecType<floatType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "'compScale' accepts only floating-point types for 'floatType' template parameter");
+
+ return detail::compute_compScale<T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
+ }
+
+ template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<uintType, P> packUnorm(vecType<floatType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer, "uintType must be an integer type");
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
+
+ return vecType<uintType, P>(round(clamp(v, static_cast<floatType>(0), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<uintType>::max())));
+ }
+
+ template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<floatType, P> unpackUnorm(vecType<uintType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer, "uintType must be an integer type");
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
+
+ return vecType<float, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<uintType>::max()));
+ }
+
+ GLM_FUNC_QUALIFIER uint8 packUnorm2x3_1x2(vec3 const & v)
+ {
+ u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(7.f, 7.f, 3.f)));
+ detail::u3u3u2 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec3 unpackUnorm2x3_1x2(uint8 v)
+ {
+ vec3 const ScaleFactor(1.f / 7.f, 1.f / 7.f, 1.f / 3.f);
+ detail::u3u3u2 Unpack;
+ Unpack.pack = v;
+ return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint8 packUnorm2x4(vec2 const & v)
+ {
+ u32vec2 const Unpack(round(clamp(v, 0.0f, 1.0f) * 15.0f));
+ detail::u4u4 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec2 unpackUnorm2x4(uint8 v)
+ {
+ float const ScaleFactor(1.f / 15.f);
+ detail::u4u4 Unpack;
+ Unpack.pack = v;
+ return vec2(Unpack.data.x, Unpack.data.y) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint16 packUnorm4x4(vec4 const & v)
+ {
+ u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * 15.0f));
+ detail::u4u4u4u4 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ Result.data.w = Unpack.w;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec4 unpackUnorm4x4(uint16 v)
+ {
+ float const ScaleFactor(1.f / 15.f);
+ detail::u4u4u4u4 Unpack;
+ Unpack.pack = v;
+ return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint16 packUnorm3x5_1x1(vec4 const & v)
+ {
+ u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec4(15.f, 15.f, 15.f, 1.f)));
+ detail::u5u5u5u1 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ Result.data.w = Unpack.w;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec4 unpackUnorm3x5_1x1(uint16 v)
+ {
+ vec4 const ScaleFactor(1.f / 15.f, 1.f / 15.f, 1.f / 15.f, 1.f);
+ detail::u5u5u5u1 Unpack;
+ Unpack.pack = v;
+ return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint16 packUnorm1x5_1x6_1x5(vec3 const & v)
+ {
+ u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(15.f, 31.f, 15.f)));
+ detail::u5u6u5 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec3 unpackUnorm1x5_1x6_1x5(uint16 v)
+ {
+ vec3 const ScaleFactor(1.f / 15.f, 1.f / 31.f, 1.f / 15.f);
+ detail::u5u6u5 Unpack;
+ Unpack.pack = v;
+ return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint32 packF3x9_E1x5(vec3 const & v)
+ {
+ float const SharedExpMax = (pow(2.0f, 9.0f - 1.0f) / pow(2.0f, 9.0f)) * pow(2.0f, 31.f - 15.f);
+ vec3 const Color = clamp(v, 0.0f, SharedExpMax);
+ float const MaxColor = max(Color.x, max(Color.y, Color.z));
+
+ float const ExpSharedP = max(-15.f - 1.f, floor(log2(MaxColor))) + 1.0f + 15.f;
+ float const MaxShared = floor(MaxColor / pow(2.0f, (ExpSharedP - 16.f - 9.f)) + 0.5f);
+ float const ExpShared = MaxShared == pow(2.0f, 9.0f) ? ExpSharedP + 1.0f : ExpSharedP;
+
+ uvec3 const ColorComp(floor(Color / pow(2.f, (ExpShared - 15.f - 9.f)) + 0.5f));
+
+ detail::u9u9u9e5 Unpack;
+ Unpack.data.x = ColorComp.x;
+ Unpack.data.y = ColorComp.y;
+ Unpack.data.z = ColorComp.z;
+ Unpack.data.w = uint(ExpShared);
+ return Unpack.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec3 unpackF3x9_E1x5(uint32 v)
+ {
+ detail::u9u9u9e5 Unpack;
+ Unpack.pack = v;
+
+ return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * pow(2.0f, Unpack.data.w - 15.f - 9.f);
+ }
+
+ template <precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<uint16, P> packHalf(vecType<float, P> const & v)
+ {
+ return detail::compute_half<P, vecType>::pack(v);
+ }
+
+ template <precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<float, P> unpackHalf(vecType<uint16, P> const & v)
+ {
+ return detail::compute_half<P, vecType>::unpack(v);
+ }
+}//namespace workaround
+}//namespace gli
+
diff --git a/3rdparty/glm/test/external/gli/duplicate.hpp b/3rdparty/glm/test/external/gli/duplicate.hpp
new file mode 100644
index 00000000000..7fb673ba5b1
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/duplicate.hpp
@@ -0,0 +1,70 @@
+/// @brief Include to duplicate textures, images or a subset of either textures or an image. These operations will cause memory allocations.
+/// @file gli/duplicate.hpp
+
+#pragma once
+
+#include "image.hpp"
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ /// Duplicate an image and create a new image with a new storage_linear allocation.
+ image duplicate(image const & Image);
+
+ /// Duplicate a texture and create a new texture with a new storage_linear allocation.
+ template <typename texType>
+ texture duplicate(texType const& Texture);
+
+ /// Duplicate a texture and create a new texture with a new storage_linear allocation but a different format.
+ /// The format must be a compatible format, a format which block size match the original format.
+ template <typename texType>
+ texture duplicate(texType const& Texture, format Format);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture1d const& Texture,
+ texture1d::size_type BaseLevel, texture1d::size_type MaxLevel);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture1d_array const& Texture,
+ texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,
+ texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture2d const& Texture,
+ texture2d::size_type BaseLevel, texture2d::size_type MaxLevel);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture2d_array const& Texture,
+ texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,
+ texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture3d const& Texture,
+ texture3d::size_type BaseLevel, texture3d::size_type MaxLevel);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture_cube const& Texture,
+ texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,
+ texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel);
+
+ /// Duplicate a subset of a texture and create a new texture with a new storage_linear allocation.
+ texture duplicate(
+ texture_cube_array const& Texture,
+ texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,
+ texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,
+ texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel);
+}//namespace gli
+
+#include "./core/duplicate.inl"
diff --git a/3rdparty/glm/test/external/gli/dx.hpp b/3rdparty/glm/test/external/gli/dx.hpp
new file mode 100644
index 00000000000..c3f0d4543b9
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/dx.hpp
@@ -0,0 +1,490 @@
+/// @brief Include to translate GLI enums to DirectX enums
+/// @file gli/dx.hpp
+
+#pragma once
+
+#include "format.hpp"
+#include "target.hpp"
+#include <array>
+
+namespace gli
+{
+ /// Translation class to convert GLI enums into DirectX enums
+ class dx
+ {
+ public:
+ #define GLI_MAKEFOURCC(ch0, ch1, ch2, ch3) \
+ (std::uint32_t)( \
+ (((std::uint32_t)(std::uint8_t)(ch3) << 24) & 0xFF000000) | \
+ (((std::uint32_t)(std::uint8_t)(ch2) << 16) & 0x00FF0000) | \
+ (((std::uint32_t)(std::uint8_t)(ch1) << 8) & 0x0000FF00) | \
+ ((std::uint32_t)(std::uint8_t)(ch0) & 0x000000FF) )
+
+ enum d3dfmt
+ {
+ D3DFMT_UNKNOWN = 0,
+
+ D3DFMT_R8G8B8 = 20,
+ D3DFMT_A8R8G8B8 = 21,
+ D3DFMT_X8R8G8B8 = 22,
+ D3DFMT_R5G6B5 = 23,
+ D3DFMT_X1R5G5B5 = 24,
+ D3DFMT_A1R5G5B5 = 25,
+ D3DFMT_A4R4G4B4 = 26,
+ D3DFMT_R3G3B2 = 27,
+ D3DFMT_A8 = 28,
+ D3DFMT_A8R3G3B2 = 29,
+ D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A2B10G10R10 = 31,
+ D3DFMT_A8B8G8R8 = 32,
+ D3DFMT_X8B8G8R8 = 33,
+ D3DFMT_G16R16 = 34,
+ D3DFMT_A2R10G10B10 = 35,
+ D3DFMT_A16B16G16R16 = 36,
+
+ D3DFMT_A8P8 = 40,
+ D3DFMT_P8 = 41,
+
+ D3DFMT_L8 = 50,
+ D3DFMT_A8L8 = 51,
+ D3DFMT_A4L4 = 52,
+
+ D3DFMT_V8U8 = 60,
+ D3DFMT_L6V5U5 = 61,
+ D3DFMT_X8L8V8U8 = 62,
+ D3DFMT_Q8W8V8U8 = 63,
+ D3DFMT_V16U16 = 64,
+ D3DFMT_A2W10V10U10 = 67,
+
+ D3DFMT_UYVY = GLI_MAKEFOURCC('U', 'Y', 'V', 'Y'),
+ D3DFMT_R8G8_B8G8 = GLI_MAKEFOURCC('R', 'G', 'B', 'G'),
+ D3DFMT_YUY2 = GLI_MAKEFOURCC('Y', 'U', 'Y', '2'),
+ D3DFMT_G8R8_G8B8 = GLI_MAKEFOURCC('G', 'R', 'G', 'B'),
+ D3DFMT_DXT1 = GLI_MAKEFOURCC('D', 'X', 'T', '1'),
+ D3DFMT_DXT2 = GLI_MAKEFOURCC('D', 'X', 'T', '2'),
+ D3DFMT_DXT3 = GLI_MAKEFOURCC('D', 'X', 'T', '3'),
+ D3DFMT_DXT4 = GLI_MAKEFOURCC('D', 'X', 'T', '4'),
+ D3DFMT_DXT5 = GLI_MAKEFOURCC('D', 'X', 'T', '5'),
+
+ D3DFMT_ATI1 = GLI_MAKEFOURCC('A', 'T', 'I', '1'),
+ D3DFMT_AT1N = GLI_MAKEFOURCC('A', 'T', '1', 'N'),
+ D3DFMT_ATI2 = GLI_MAKEFOURCC('A', 'T', 'I', '2'),
+ D3DFMT_AT2N = GLI_MAKEFOURCC('A', 'T', '2', 'N'),
+
+ D3DFMT_BC4U = GLI_MAKEFOURCC('B', 'C', '4', 'U'),
+ D3DFMT_BC4S = GLI_MAKEFOURCC('B', 'C', '4', 'S'),
+ D3DFMT_BC5U = GLI_MAKEFOURCC('B', 'C', '5', 'U'),
+ D3DFMT_BC5S = GLI_MAKEFOURCC('B', 'C', '5', 'S'),
+
+ D3DFMT_ETC = GLI_MAKEFOURCC('E', 'T', 'C', ' '),
+ D3DFMT_ETC1 = GLI_MAKEFOURCC('E', 'T', 'C', '1'),
+ D3DFMT_ATC = GLI_MAKEFOURCC('A', 'T', 'C', ' '),
+ D3DFMT_ATCA = GLI_MAKEFOURCC('A', 'T', 'C', 'A'),
+ D3DFMT_ATCI = GLI_MAKEFOURCC('A', 'T', 'C', 'I'),
+
+ D3DFMT_POWERVR_2BPP = GLI_MAKEFOURCC('P', 'T', 'C', '2'),
+ D3DFMT_POWERVR_4BPP = GLI_MAKEFOURCC('P', 'T', 'C', '4'),
+
+ D3DFMT_D16_LOCKABLE = 70,
+ D3DFMT_D32 = 71,
+ D3DFMT_D15S1 = 73,
+ D3DFMT_D24S8 = 75,
+ D3DFMT_D24X8 = 77,
+ D3DFMT_D24X4S4 = 79,
+ D3DFMT_D16 = 80,
+
+ D3DFMT_D32F_LOCKABLE = 82,
+ D3DFMT_D24FS8 = 83,
+
+ D3DFMT_L16 = 81,
+
+ D3DFMT_VERTEXDATA = 100,
+ D3DFMT_INDEX16 = 101,
+ D3DFMT_INDEX32 = 102,
+
+ D3DFMT_Q16W16V16U16 = 110,
+
+ D3DFMT_MULTI2_ARGB8 = GLI_MAKEFOURCC('M','E','T','1'),
+
+ D3DFMT_R16F = 111,
+ D3DFMT_G16R16F = 112,
+ D3DFMT_A16B16G16R16F = 113,
+
+ D3DFMT_R32F = 114,
+ D3DFMT_G32R32F = 115,
+ D3DFMT_A32B32G32R32F = 116,
+
+ D3DFMT_CxV8U8 = 117,
+
+ D3DFMT_DX10 = GLI_MAKEFOURCC('D', 'X', '1', '0'),
+
+ D3DFMT_GLI1 = GLI_MAKEFOURCC('G', 'L', 'I', '1'),
+
+ D3DFMT_FORCE_DWORD = 0x7fffffff
+ };
+
+ enum dxgi_format_dds
+ {
+ DXGI_FORMAT_UNKNOWN = 0,
+ DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
+ DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
+ DXGI_FORMAT_R32G32B32A32_UINT = 3,
+ DXGI_FORMAT_R32G32B32A32_SINT = 4,
+ DXGI_FORMAT_R32G32B32_TYPELESS = 5,
+ DXGI_FORMAT_R32G32B32_FLOAT = 6,
+ DXGI_FORMAT_R32G32B32_UINT = 7,
+ DXGI_FORMAT_R32G32B32_SINT = 8,
+ DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
+ DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
+ DXGI_FORMAT_R16G16B16A16_UNORM = 11,
+ DXGI_FORMAT_R16G16B16A16_UINT = 12,
+ DXGI_FORMAT_R16G16B16A16_SNORM = 13,
+ DXGI_FORMAT_R16G16B16A16_SINT = 14,
+ DXGI_FORMAT_R32G32_TYPELESS = 15,
+ DXGI_FORMAT_R32G32_FLOAT = 16,
+ DXGI_FORMAT_R32G32_UINT = 17,
+ DXGI_FORMAT_R32G32_SINT = 18,
+ DXGI_FORMAT_R32G8X24_TYPELESS = 19,
+ DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
+ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
+ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
+ DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
+ DXGI_FORMAT_R10G10B10A2_UNORM = 24,
+ DXGI_FORMAT_R10G10B10A2_UINT = 25,
+ DXGI_FORMAT_R11G11B10_FLOAT = 26,
+ DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
+ DXGI_FORMAT_R8G8B8A8_UNORM = 28,
+ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
+ DXGI_FORMAT_R8G8B8A8_UINT = 30,
+ DXGI_FORMAT_R8G8B8A8_SNORM = 31,
+ DXGI_FORMAT_R8G8B8A8_SINT = 32,
+ DXGI_FORMAT_R16G16_TYPELESS = 33,
+ DXGI_FORMAT_R16G16_FLOAT = 34,
+ DXGI_FORMAT_R16G16_UNORM = 35,
+ DXGI_FORMAT_R16G16_UINT = 36,
+ DXGI_FORMAT_R16G16_SNORM = 37,
+ DXGI_FORMAT_R16G16_SINT = 38,
+ DXGI_FORMAT_R32_TYPELESS = 39,
+ DXGI_FORMAT_D32_FLOAT = 40,
+ DXGI_FORMAT_R32_FLOAT = 41,
+ DXGI_FORMAT_R32_UINT = 42,
+ DXGI_FORMAT_R32_SINT = 43,
+ DXGI_FORMAT_R24G8_TYPELESS = 44,
+ DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
+ DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
+ DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
+ DXGI_FORMAT_R8G8_TYPELESS = 48,
+ DXGI_FORMAT_R8G8_UNORM = 49,
+ DXGI_FORMAT_R8G8_UINT = 50,
+ DXGI_FORMAT_R8G8_SNORM = 51,
+ DXGI_FORMAT_R8G8_SINT = 52,
+ DXGI_FORMAT_R16_TYPELESS = 53,
+ DXGI_FORMAT_R16_FLOAT = 54,
+ DXGI_FORMAT_D16_UNORM = 55,
+ DXGI_FORMAT_R16_UNORM = 56,
+ DXGI_FORMAT_R16_UINT = 57,
+ DXGI_FORMAT_R16_SNORM = 58,
+ DXGI_FORMAT_R16_SINT = 59,
+ DXGI_FORMAT_R8_TYPELESS = 60,
+ DXGI_FORMAT_R8_UNORM = 61,
+ DXGI_FORMAT_R8_UINT = 62,
+ DXGI_FORMAT_R8_SNORM = 63,
+ DXGI_FORMAT_R8_SINT = 64,
+ DXGI_FORMAT_A8_UNORM = 65,
+ DXGI_FORMAT_R1_UNORM = 66,
+ DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
+ DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
+ DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
+ DXGI_FORMAT_BC1_TYPELESS = 70,
+ DXGI_FORMAT_BC1_UNORM = 71,
+ DXGI_FORMAT_BC1_UNORM_SRGB = 72,
+ DXGI_FORMAT_BC2_TYPELESS = 73,
+ DXGI_FORMAT_BC2_UNORM = 74,
+ DXGI_FORMAT_BC2_UNORM_SRGB = 75,
+ DXGI_FORMAT_BC3_TYPELESS = 76,
+ DXGI_FORMAT_BC3_UNORM = 77,
+ DXGI_FORMAT_BC3_UNORM_SRGB = 78,
+ DXGI_FORMAT_BC4_TYPELESS = 79,
+ DXGI_FORMAT_BC4_UNORM = 80,
+ DXGI_FORMAT_BC4_SNORM = 81,
+ DXGI_FORMAT_BC5_TYPELESS = 82,
+ DXGI_FORMAT_BC5_UNORM = 83,
+ DXGI_FORMAT_BC5_SNORM = 84,
+ DXGI_FORMAT_B5G6R5_UNORM = 85,
+ DXGI_FORMAT_B5G5R5A1_UNORM = 86,
+ DXGI_FORMAT_B8G8R8A8_UNORM = 87,
+ DXGI_FORMAT_B8G8R8X8_UNORM = 88,
+ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
+ DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
+ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
+ DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
+ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
+ DXGI_FORMAT_BC6H_TYPELESS = 94,
+ DXGI_FORMAT_BC6H_UF16 = 95,
+ DXGI_FORMAT_BC6H_SF16 = 96,
+ DXGI_FORMAT_BC7_TYPELESS = 97,
+ DXGI_FORMAT_BC7_UNORM = 98,
+ DXGI_FORMAT_BC7_UNORM_SRGB = 99,
+ DXGI_FORMAT_AYUV = 100,
+ DXGI_FORMAT_Y410 = 101,
+ DXGI_FORMAT_Y416 = 102,
+ DXGI_FORMAT_NV12 = 103,
+ DXGI_FORMAT_P010 = 104,
+ DXGI_FORMAT_P016 = 105,
+ DXGI_FORMAT_420_OPAQUE = 106,
+ DXGI_FORMAT_YUY2 = 107,
+ DXGI_FORMAT_Y210 = 108,
+ DXGI_FORMAT_Y216 = 109,
+ DXGI_FORMAT_NV11 = 110,
+ DXGI_FORMAT_AI44 = 111,
+ DXGI_FORMAT_IA44 = 112,
+ DXGI_FORMAT_P8 = 113,
+ DXGI_FORMAT_A8P8 = 114,
+ DXGI_FORMAT_B4G4R4A4_UNORM = 115,
+
+ DXGI_FORMAT_P208 = 130,
+ DXGI_FORMAT_V208 = 131,
+ DXGI_FORMAT_V408 = 132,
+ DXGI_FORMAT_ASTC_4X4_TYPELESS = 133,
+ DXGI_FORMAT_ASTC_4X4_UNORM = 134,
+ DXGI_FORMAT_ASTC_4X4_UNORM_SRGB = 135,
+ DXGI_FORMAT_ASTC_5X4_TYPELESS = 137,
+ DXGI_FORMAT_ASTC_5X4_UNORM = 138,
+ DXGI_FORMAT_ASTC_5X4_UNORM_SRGB = 139,
+ DXGI_FORMAT_ASTC_5X5_TYPELESS = 141,
+ DXGI_FORMAT_ASTC_5X5_UNORM = 142,
+ DXGI_FORMAT_ASTC_5X5_UNORM_SRGB = 143,
+ DXGI_FORMAT_ASTC_6X5_TYPELESS = 145,
+ DXGI_FORMAT_ASTC_6X5_UNORM = 146,
+ DXGI_FORMAT_ASTC_6X5_UNORM_SRGB = 147,
+ DXGI_FORMAT_ASTC_6X6_TYPELESS = 149,
+ DXGI_FORMAT_ASTC_6X6_UNORM = 150,
+ DXGI_FORMAT_ASTC_6X6_UNORM_SRGB = 151,
+ DXGI_FORMAT_ASTC_8X5_TYPELESS = 153,
+ DXGI_FORMAT_ASTC_8X5_UNORM = 154,
+ DXGI_FORMAT_ASTC_8X5_UNORM_SRGB = 155,
+ DXGI_FORMAT_ASTC_8X6_TYPELESS = 157,
+ DXGI_FORMAT_ASTC_8X6_UNORM = 158,
+ DXGI_FORMAT_ASTC_8X6_UNORM_SRGB = 159,
+ DXGI_FORMAT_ASTC_8X8_TYPELESS = 161,
+ DXGI_FORMAT_ASTC_8X8_UNORM = 162,
+ DXGI_FORMAT_ASTC_8X8_UNORM_SRGB = 163,
+ DXGI_FORMAT_ASTC_10X5_TYPELESS = 165,
+ DXGI_FORMAT_ASTC_10X5_UNORM = 166,
+ DXGI_FORMAT_ASTC_10X5_UNORM_SRGB = 167,
+ DXGI_FORMAT_ASTC_10X6_TYPELESS = 169,
+ DXGI_FORMAT_ASTC_10X6_UNORM = 170,
+ DXGI_FORMAT_ASTC_10X6_UNORM_SRGB = 171,
+ DXGI_FORMAT_ASTC_10X8_TYPELESS = 173,
+ DXGI_FORMAT_ASTC_10X8_UNORM = 174,
+ DXGI_FORMAT_ASTC_10X8_UNORM_SRGB = 175,
+ DXGI_FORMAT_ASTC_10X10_TYPELESS = 177,
+ DXGI_FORMAT_ASTC_10X10_UNORM = 178,
+ DXGI_FORMAT_ASTC_10X10_UNORM_SRGB = 179,
+ DXGI_FORMAT_ASTC_12X10_TYPELESS = 181,
+ DXGI_FORMAT_ASTC_12X10_UNORM = 182,
+ DXGI_FORMAT_ASTC_12X10_UNORM_SRGB = 183,
+ DXGI_FORMAT_ASTC_12X12_TYPELESS = 185,
+ DXGI_FORMAT_ASTC_12X12_UNORM = 186,
+ DXGI_FORMAT_ASTC_12X12_UNORM_SRGB = 187,
+
+ DXGI_FORMAT_FORCE_UINT = 0xffffffffUL
+ };
+
+ enum dxgi_format_gli
+ {
+ DXGI_FORMAT_R64_UINT_GLI = 1,
+ DXGI_FORMAT_R64_SINT_GLI,
+ DXGI_FORMAT_R64_FLOAT_GLI,
+ DXGI_FORMAT_R64G64_UINT_GLI,
+ DXGI_FORMAT_R64G64_SINT_GLI,
+ DXGI_FORMAT_R64G64_FLOAT_GLI,
+ DXGI_FORMAT_R64G64B64_UINT_GLI,
+ DXGI_FORMAT_R64G64B64_SINT_GLI,
+ DXGI_FORMAT_R64G64B64_FLOAT_GLI,
+ DXGI_FORMAT_R64G64B64A64_UINT_GLI,
+ DXGI_FORMAT_R64G64B64A64_SINT_GLI,
+ DXGI_FORMAT_R64G64B64A64_FLOAT_GLI,
+
+ DXGI_FORMAT_RG4_UNORM_GLI,
+ DXGI_FORMAT_RGBA4_UNORM_GLI,
+ DXGI_FORMAT_R5G6B5_UNORM_GLI,
+ DXGI_FORMAT_R5G5B5A1_UNORM_GLI,
+ DXGI_FORMAT_A1B5G5R5_UNORM_GLI,
+
+ DXGI_FORMAT_R8_SRGB_GLI,
+ DXGI_FORMAT_R8_USCALED_GLI,
+ DXGI_FORMAT_R8_SSCALED_GLI,
+
+ DXGI_FORMAT_R8G8_SRGB_GLI,
+ DXGI_FORMAT_R8G8_USCALED_GLI,
+ DXGI_FORMAT_R8G8_SSCALED_GLI,
+
+ DXGI_FORMAT_R8G8B8_UNORM_GLI,
+ DXGI_FORMAT_R8G8B8_SNORM_GLI,
+ DXGI_FORMAT_R8G8B8_USCALED_GLI,
+ DXGI_FORMAT_R8G8B8_SSCALED_GLI,
+ DXGI_FORMAT_R8G8B8_UINT_GLI,
+ DXGI_FORMAT_R8G8B8_SINT_GLI,
+ DXGI_FORMAT_R8G8B8_SRGB_GLI,
+
+ DXGI_FORMAT_B8G8R8_UNORM_GLI,
+ DXGI_FORMAT_B8G8R8_SNORM_GLI,
+ DXGI_FORMAT_B8G8R8_USCALED_GLI,
+ DXGI_FORMAT_B8G8R8_SSCALED_GLI,
+ DXGI_FORMAT_B8G8R8_UINT_GLI,
+ DXGI_FORMAT_B8G8R8_SINT_GLI,
+ DXGI_FORMAT_B8G8R8_SRGB_GLI,
+
+ DXGI_FORMAT_R8G8B8A8_USCALED_GLI,
+ DXGI_FORMAT_R8G8B8A8_SSCALED_GLI,
+
+ DXGI_FORMAT_B8G8R8A8_SNORM_GLI,
+ DXGI_FORMAT_B8G8R8A8_USCALED_GLI,
+ DXGI_FORMAT_B8G8R8A8_SSCALED_GLI,
+ DXGI_FORMAT_B8G8R8A8_UINT_GLI,
+ DXGI_FORMAT_B8G8R8A8_SINT_GLI,
+
+ DXGI_FORMAT_R8G8B8A8_PACK_UNORM_GLI,
+ DXGI_FORMAT_R8G8B8A8_PACK_SNORM_GLI,
+ DXGI_FORMAT_R8G8B8A8_PACK_USCALED_GLI,
+ DXGI_FORMAT_R8G8B8A8_PACK_SSCALED_GLI,
+ DXGI_FORMAT_R8G8B8A8_PACK_UINT_GLI,
+ DXGI_FORMAT_R8G8B8A8_PACK_SINT_GLI,
+ DXGI_FORMAT_R8G8B8A8_PACK_SRGB_GLI,
+
+ DXGI_FORMAT_R10G10B10A2_SNORM_GLI,
+ DXGI_FORMAT_R10G10B10A2_USCALED_GLI,
+ DXGI_FORMAT_R10G10B10A2_SSCALED_GLI,
+ DXGI_FORMAT_R10G10B10A2_SINT_GLI,
+
+ DXGI_FORMAT_B10G10R10A2_UNORM_GLI,
+ DXGI_FORMAT_B10G10R10A2_SNORM_GLI,
+ DXGI_FORMAT_B10G10R10A2_USCALED_GLI,
+ DXGI_FORMAT_B10G10R10A2_SSCALED_GLI,
+ DXGI_FORMAT_B10G10R10A2_UINT_GLI,
+ DXGI_FORMAT_B10G10R10A2_SINT_GLI,
+
+ DXGI_FORMAT_R16_USCALED_GLI,
+ DXGI_FORMAT_R16_SSCALED_GLI,
+ DXGI_FORMAT_R16G16_USCALED_GLI,
+ DXGI_FORMAT_R16G16_SSCALED_GLI,
+
+ DXGI_FORMAT_R16G16B16_UNORM_GLI,
+ DXGI_FORMAT_R16G16B16_SNORM_GLI,
+ DXGI_FORMAT_R16G16B16_USCALED_GLI,
+ DXGI_FORMAT_R16G16B16_SSCALED_GLI,
+ DXGI_FORMAT_R16G16B16_UINT_GLI,
+ DXGI_FORMAT_R16G16B16_SINT_GLI,
+ DXGI_FORMAT_R16G16B16_FLOAT_GLI,
+
+ DXGI_FORMAT_R16G16B16A16_USCALED_GLI,
+ DXGI_FORMAT_R16G16B16A16_SSCALED_GLI,
+
+ DXGI_FORMAT_S8_UINT_GLI,
+ DXGI_FORMAT_D16_UNORM_S8_UINT_GLI,
+ DXGI_FORMAT_D24_UNORM_GLI,
+
+ DXGI_FORMAT_L8_UNORM_GLI,
+ DXGI_FORMAT_A8_UNORM_GLI,
+ DXGI_FORMAT_LA8_UNORM_GLI,
+ DXGI_FORMAT_L16_UNORM_GLI,
+ DXGI_FORMAT_A16_UNORM_GLI,
+ DXGI_FORMAT_LA16_UNORM_GLI,
+
+ DXGI_FORMAT_R3G3B2_UNORM_GLI,
+
+ DXGI_FORMAT_BC1_RGB_UNORM_GLI,
+ DXGI_FORMAT_BC1_RGB_SRGB_GLI,
+ DXGI_FORMAT_RGB_ETC2_UNORM_GLI,
+ DXGI_FORMAT_RGB_ETC2_SRGB_GLI,
+ DXGI_FORMAT_RGBA_ETC2_A1_UNORM_GLI,
+ DXGI_FORMAT_RGBA_ETC2_A1_SRGB_GLI,
+ DXGI_FORMAT_RGBA_ETC2_UNORM_GLI,
+ DXGI_FORMAT_RGBA_ETC2_SRGB_GLI,
+ DXGI_FORMAT_R11_EAC_UNORM_GLI,
+ DXGI_FORMAT_R11_EAC_SNORM_GLI,
+ DXGI_FORMAT_RG11_EAC_UNORM_GLI,
+ DXGI_FORMAT_RG11_EAC_SNORM_GLI,
+
+ DXGI_FORMAT_RGB_PVRTC1_8X8_UNORM_GLI,
+ DXGI_FORMAT_RGB_PVRTC1_8X8_SRGB_GLI,
+ DXGI_FORMAT_RGB_PVRTC1_16X8_UNORM_GLI,
+ DXGI_FORMAT_RGB_PVRTC1_16X8_SRGB_GLI,
+ DXGI_FORMAT_RGBA_PVRTC1_8X8_UNORM_GLI,
+ DXGI_FORMAT_RGBA_PVRTC1_8X8_SRGB_GLI,
+ DXGI_FORMAT_RGBA_PVRTC1_16X8_UNORM_GLI,
+ DXGI_FORMAT_RGBA_PVRTC1_16X8_SRGB_GLI,
+ DXGI_FORMAT_RGBA_PVRTC2_8X8_UNORM_GLI,
+ DXGI_FORMAT_RGBA_PVRTC2_8X8_SRGB_GLI,
+ DXGI_FORMAT_RGBA_PVRTC2_16X8_UNORM_GLI,
+ DXGI_FORMAT_RGBA_PVRTC2_16X8_SRGB_GLI,
+
+ DXGI_FORMAT_RGB_ETC_UNORM_GLI,
+ DXGI_FORMAT_RGB_ATC_UNORM_GLI,
+ DXGI_FORMAT_RGBA_ATCA_UNORM_GLI,
+ DXGI_FORMAT_RGBA_ATCI_UNORM_GLI,
+ };
+
+ union dxgiFormat
+ {
+ dxgiFormat()
+ : DDS(DXGI_FORMAT_UNKNOWN)
+ {}
+
+ dxgiFormat(dxgi_format_dds DDS)
+ : DDS(DDS)
+ {}
+
+ dxgiFormat(dxgi_format_gli GLI)
+ : GLI(GLI)
+ {}
+
+ dxgi_format_dds DDS;
+ dxgi_format_gli GLI;
+ };
+
+ enum ddpf
+ {
+ DDPF_ALPHAPIXELS = 0x1,
+ DDPF_ALPHA = 0x2,
+ DDPF_FOURCC = 0x4,
+ DDPF_RGB = 0x40,
+ DDPF_YUV = 0x200,
+ DDPF_LUMINANCE = 0x20000,
+ DDPF_LUMINANCE_ALPHA = DDPF_LUMINANCE | DDPF_ALPHA,
+ DDPF_RGBAPIXELS = DDPF_RGB | DDPF_ALPHAPIXELS,
+ DDPF_RGBA = DDPF_RGB | DDPF_ALPHA,
+ DDPF_LUMINANCE_ALPHAPIXELS = DDPF_LUMINANCE | DDPF_ALPHAPIXELS,
+
+ };
+
+ struct format
+ {
+ ddpf DDPixelFormat;
+ d3dfmt D3DFormat;
+ dxgiFormat DXGIFormat;
+ glm::u32vec4 Mask;
+ };
+
+ public:
+ dx();
+
+ /// Convert GLI formats into Direct3D formats
+ format const& translate(gli::format Format) const;
+
+ /// Convert a Direct3D 9 format into a GLI format
+ gli::format find(d3dfmt FourCC) const;
+
+ /// Convert a Direct3D 10 format into a GLI format
+ gli::format find(d3dfmt FourCC, dxgiFormat Format) const;
+
+ private:
+ std::array<format, FORMAT_COUNT> Translation;
+ };
+
+ /// Evaluate whether a target and format combinaison is only supported by the DDS container through GLI DDS extension.
+ bool is_dds_ext(target Target, format Format);
+}//namespace gli
+
+#include "./core/dx.inl"
diff --git a/3rdparty/glm/test/external/gli/format.hpp b/3rdparty/glm/test/external/gli/format.hpp
new file mode 100644
index 00000000000..d6854d78f84
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/format.hpp
@@ -0,0 +1,340 @@
+/// @brief Include to use the format enum and query properties of formats.
+/// @file gli/format.hpp
+
+#pragma once
+
+#include "type.hpp"
+#include <cstdint>
+
+namespace gli
+{
+ /// Texture data format
+ enum format
+ {
+ FORMAT_UNDEFINED = 0,
+
+ FORMAT_RG4_UNORM_PACK8, FORMAT_FIRST = FORMAT_RG4_UNORM_PACK8,
+ FORMAT_RGBA4_UNORM_PACK16,
+ FORMAT_BGRA4_UNORM_PACK16,
+ FORMAT_R5G6B5_UNORM_PACK16,
+ FORMAT_B5G6R5_UNORM_PACK16,
+ FORMAT_RGB5A1_UNORM_PACK16,
+ FORMAT_BGR5A1_UNORM_PACK16,
+ FORMAT_A1RGB5_UNORM_PACK16,
+
+ FORMAT_R8_UNORM_PACK8,
+ FORMAT_R8_SNORM_PACK8,
+ FORMAT_R8_USCALED_PACK8,
+ FORMAT_R8_SSCALED_PACK8,
+ FORMAT_R8_UINT_PACK8,
+ FORMAT_R8_SINT_PACK8,
+ FORMAT_R8_SRGB_PACK8,
+
+ FORMAT_RG8_UNORM_PACK8,
+ FORMAT_RG8_SNORM_PACK8,
+ FORMAT_RG8_USCALED_PACK8,
+ FORMAT_RG8_SSCALED_PACK8,
+ FORMAT_RG8_UINT_PACK8,
+ FORMAT_RG8_SINT_PACK8,
+ FORMAT_RG8_SRGB_PACK8,
+
+ FORMAT_RGB8_UNORM_PACK8,
+ FORMAT_RGB8_SNORM_PACK8,
+ FORMAT_RGB8_USCALED_PACK8,
+ FORMAT_RGB8_SSCALED_PACK8,
+ FORMAT_RGB8_UINT_PACK8,
+ FORMAT_RGB8_SINT_PACK8,
+ FORMAT_RGB8_SRGB_PACK8,
+
+ FORMAT_BGR8_UNORM_PACK8,
+ FORMAT_BGR8_SNORM_PACK8,
+ FORMAT_BGR8_USCALED_PACK8,
+ FORMAT_BGR8_SSCALED_PACK8,
+ FORMAT_BGR8_UINT_PACK8,
+ FORMAT_BGR8_SINT_PACK8,
+ FORMAT_BGR8_SRGB_PACK8,
+
+ FORMAT_RGBA8_UNORM_PACK8,
+ FORMAT_RGBA8_SNORM_PACK8,
+ FORMAT_RGBA8_USCALED_PACK8,
+ FORMAT_RGBA8_SSCALED_PACK8,
+ FORMAT_RGBA8_UINT_PACK8,
+ FORMAT_RGBA8_SINT_PACK8,
+ FORMAT_RGBA8_SRGB_PACK8,
+
+ FORMAT_BGRA8_UNORM_PACK8,
+ FORMAT_BGRA8_SNORM_PACK8,
+ FORMAT_BGRA8_USCALED_PACK8,
+ FORMAT_BGRA8_SSCALED_PACK8,
+ FORMAT_BGRA8_UINT_PACK8,
+ FORMAT_BGRA8_SINT_PACK8,
+ FORMAT_BGRA8_SRGB_PACK8,
+
+ FORMAT_RGBA8_UNORM_PACK32,
+ FORMAT_RGBA8_SNORM_PACK32,
+ FORMAT_RGBA8_USCALED_PACK32,
+ FORMAT_RGBA8_SSCALED_PACK32,
+ FORMAT_RGBA8_UINT_PACK32,
+ FORMAT_RGBA8_SINT_PACK32,
+ FORMAT_RGBA8_SRGB_PACK32,
+
+ FORMAT_RGB10A2_UNORM_PACK32,
+ FORMAT_RGB10A2_SNORM_PACK32,
+ FORMAT_RGB10A2_USCALED_PACK32,
+ FORMAT_RGB10A2_SSCALED_PACK32,
+ FORMAT_RGB10A2_UINT_PACK32,
+ FORMAT_RGB10A2_SINT_PACK32,
+
+ FORMAT_BGR10A2_UNORM_PACK32,
+ FORMAT_BGR10A2_SNORM_PACK32,
+ FORMAT_BGR10A2_USCALED_PACK32,
+ FORMAT_BGR10A2_SSCALED_PACK32,
+ FORMAT_BGR10A2_UINT_PACK32,
+ FORMAT_BGR10A2_SINT_PACK32,
+
+ FORMAT_R16_UNORM_PACK16,
+ FORMAT_R16_SNORM_PACK16,
+ FORMAT_R16_USCALED_PACK16,
+ FORMAT_R16_SSCALED_PACK16,
+ FORMAT_R16_UINT_PACK16,
+ FORMAT_R16_SINT_PACK16,
+ FORMAT_R16_SFLOAT_PACK16,
+
+ FORMAT_RG16_UNORM_PACK16,
+ FORMAT_RG16_SNORM_PACK16,
+ FORMAT_RG16_USCALED_PACK16,
+ FORMAT_RG16_SSCALED_PACK16,
+ FORMAT_RG16_UINT_PACK16,
+ FORMAT_RG16_SINT_PACK16,
+ FORMAT_RG16_SFLOAT_PACK16,
+
+ FORMAT_RGB16_UNORM_PACK16,
+ FORMAT_RGB16_SNORM_PACK16,
+ FORMAT_RGB16_USCALED_PACK16,
+ FORMAT_RGB16_SSCALED_PACK16,
+ FORMAT_RGB16_UINT_PACK16,
+ FORMAT_RGB16_SINT_PACK16,
+ FORMAT_RGB16_SFLOAT_PACK16,
+
+ FORMAT_RGBA16_UNORM_PACK16,
+ FORMAT_RGBA16_SNORM_PACK16,
+ FORMAT_RGBA16_USCALED_PACK16,
+ FORMAT_RGBA16_SSCALED_PACK16,
+ FORMAT_RGBA16_UINT_PACK16,
+ FORMAT_RGBA16_SINT_PACK16,
+ FORMAT_RGBA16_SFLOAT_PACK16,
+
+ FORMAT_R32_UINT_PACK32,
+ FORMAT_R32_SINT_PACK32,
+ FORMAT_R32_SFLOAT_PACK32,
+
+ FORMAT_RG32_UINT_PACK32,
+ FORMAT_RG32_SINT_PACK32,
+ FORMAT_RG32_SFLOAT_PACK32,
+
+ FORMAT_RGB32_UINT_PACK32,
+ FORMAT_RGB32_SINT_PACK32,
+ FORMAT_RGB32_SFLOAT_PACK32,
+
+ FORMAT_RGBA32_UINT_PACK32,
+ FORMAT_RGBA32_SINT_PACK32,
+ FORMAT_RGBA32_SFLOAT_PACK32,
+
+ FORMAT_R64_UINT_PACK64,
+ FORMAT_R64_SINT_PACK64,
+ FORMAT_R64_SFLOAT_PACK64,
+
+ FORMAT_RG64_UINT_PACK64,
+ FORMAT_RG64_SINT_PACK64,
+ FORMAT_RG64_SFLOAT_PACK64,
+
+ FORMAT_RGB64_UINT_PACK64,
+ FORMAT_RGB64_SINT_PACK64,
+ FORMAT_RGB64_SFLOAT_PACK64,
+
+ FORMAT_RGBA64_UINT_PACK64,
+ FORMAT_RGBA64_SINT_PACK64,
+ FORMAT_RGBA64_SFLOAT_PACK64,
+
+ FORMAT_RG11B10_UFLOAT_PACK32,
+ FORMAT_RGB9E5_UFLOAT_PACK32,
+
+ FORMAT_D16_UNORM_PACK16,
+ FORMAT_D24_UNORM_PACK32,
+ FORMAT_D32_SFLOAT_PACK32,
+ FORMAT_S8_UINT_PACK8,
+ FORMAT_D16_UNORM_S8_UINT_PACK32,
+ FORMAT_D24_UNORM_S8_UINT_PACK32,
+ FORMAT_D32_SFLOAT_S8_UINT_PACK64,
+
+ FORMAT_RGB_DXT1_UNORM_BLOCK8,
+ FORMAT_RGB_DXT1_SRGB_BLOCK8,
+ FORMAT_RGBA_DXT1_UNORM_BLOCK8,
+ FORMAT_RGBA_DXT1_SRGB_BLOCK8,
+ FORMAT_RGBA_DXT3_UNORM_BLOCK16,
+ FORMAT_RGBA_DXT3_SRGB_BLOCK16,
+ FORMAT_RGBA_DXT5_UNORM_BLOCK16,
+ FORMAT_RGBA_DXT5_SRGB_BLOCK16,
+ FORMAT_R_ATI1N_UNORM_BLOCK8,
+ FORMAT_R_ATI1N_SNORM_BLOCK8,
+ FORMAT_RG_ATI2N_UNORM_BLOCK16,
+ FORMAT_RG_ATI2N_SNORM_BLOCK16,
+ FORMAT_RGB_BP_UFLOAT_BLOCK16,
+ FORMAT_RGB_BP_SFLOAT_BLOCK16,
+ FORMAT_RGBA_BP_UNORM_BLOCK16,
+ FORMAT_RGBA_BP_SRGB_BLOCK16,
+
+ FORMAT_RGB_ETC2_UNORM_BLOCK8,
+ FORMAT_RGB_ETC2_SRGB_BLOCK8,
+ FORMAT_RGBA_ETC2_UNORM_BLOCK8,
+ FORMAT_RGBA_ETC2_SRGB_BLOCK8,
+ FORMAT_RGBA_ETC2_UNORM_BLOCK16,
+ FORMAT_RGBA_ETC2_SRGB_BLOCK16,
+ FORMAT_R_EAC_UNORM_BLOCK8,
+ FORMAT_R_EAC_SNORM_BLOCK8,
+ FORMAT_RG_EAC_UNORM_BLOCK16,
+ FORMAT_RG_EAC_SNORM_BLOCK16,
+
+ FORMAT_RGBA_ASTC_4X4_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_4X4_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_5X4_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_5X4_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_5X5_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_5X5_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_6X5_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_6X5_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_6X6_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_6X6_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_8X5_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_8X5_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_8X6_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_8X6_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_8X8_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_8X8_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_10X5_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_10X5_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_10X6_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_10X6_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_10X8_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_10X8_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_10X10_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_10X10_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_12X10_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_12X10_SRGB_BLOCK16,
+ FORMAT_RGBA_ASTC_12X12_UNORM_BLOCK16,
+ FORMAT_RGBA_ASTC_12X12_SRGB_BLOCK16,
+
+ FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32,
+ FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32,
+ FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32,
+ FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32,
+ FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32,
+ FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32,
+ FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32,
+ FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32,
+ FORMAT_RGBA_PVRTC2_4X4_UNORM_BLOCK8,
+ FORMAT_RGBA_PVRTC2_4X4_SRGB_BLOCK8,
+ FORMAT_RGBA_PVRTC2_8X4_UNORM_BLOCK8,
+ FORMAT_RGBA_PVRTC2_8X4_SRGB_BLOCK8,
+
+ FORMAT_RGB_ETC_UNORM_BLOCK8,
+ FORMAT_RGB_ATC_UNORM_BLOCK8,
+ FORMAT_RGBA_ATCA_UNORM_BLOCK16,
+ FORMAT_RGBA_ATCI_UNORM_BLOCK16,
+
+ FORMAT_L8_UNORM_PACK8,
+ FORMAT_A8_UNORM_PACK8,
+ FORMAT_LA8_UNORM_PACK8,
+ FORMAT_L16_UNORM_PACK16,
+ FORMAT_A16_UNORM_PACK16,
+ FORMAT_LA16_UNORM_PACK16,
+
+ FORMAT_BGR8_UNORM_PACK32,
+ FORMAT_BGR8_SRGB_PACK32,
+
+ FORMAT_RG3B2_UNORM_PACK8, FORMAT_LAST = FORMAT_RG3B2_UNORM_PACK8
+ };
+
+ /// Represent the source of a channel
+ enum swizzle
+ {
+ SWIZZLE_RED, SWIZZLE_FIRST = SWIZZLE_RED, SWIZZLE_CHANNEL_FIRST = SWIZZLE_RED,
+ SWIZZLE_GREEN,
+ SWIZZLE_BLUE,
+ SWIZZLE_ALPHA, SWIZZLE_CHANNEL_LAST = SWIZZLE_ALPHA,
+ SWIZZLE_ZERO,
+ SWIZZLE_ONE, SWIZZLE_LAST = SWIZZLE_ONE
+ };
+
+ /// Determine whether the Swizzle value represent a channel
+ inline bool is_channel(swizzle Swizzle)
+ {
+ return Swizzle >= SWIZZLE_CHANNEL_FIRST && Swizzle <= SWIZZLE_CHANNEL_LAST;
+ }
+
+ enum
+ {
+ FORMAT_INVALID = -1,
+ FORMAT_COUNT = FORMAT_LAST - FORMAT_FIRST + 1,
+ SWIZZLE_COUNT = SWIZZLE_LAST - SWIZZLE_FIRST + 1
+ };
+
+ /// Evaluate whether a format value is value or not
+ inline bool is_valid(format Format)
+ {
+ return Format >= FORMAT_FIRST && Format <= FORMAT_LAST;
+ }
+
+ typedef glm::vec<4, swizzle> swizzles;
+
+ /// Evaluate whether a format is compressed
+ bool is_compressed(format Format);
+
+ /// Evaluate whether a format is compressed with an S3TC algorithm.
+ bool is_s3tc_compressed(format Format);
+
+ /// Evaluate whether a format stores sRGB color space values
+ bool is_srgb(format Format);
+
+ /// Return the size in bytes of a block for a format.
+ size_t block_size(format Format);
+
+ /// Return the dimensions in texels of the block for a format
+ ivec3 block_extent(format Format);
+
+ /// Return the number of components of a format
+ size_t component_count(format Format);
+
+ /// Evaluate whether a format is unsigned
+ bool is_unsigned(format Format);
+
+ /// Evaluate whether a format is signed
+ bool is_signed(format Format);
+
+ /// Evaluate whether the format is an integer format
+ bool is_integer(format Format);
+
+ /// Evaluate whether the format is a signed integer format
+ bool is_signed_integer(format Format);
+
+ /// Evaluate whether the format is an unsigned integer format
+ bool is_unsigned_integer(format Format);
+
+ /// Evaluate whether the format is an float format
+ bool is_float(format Format);
+
+ /// Evaluate whether the format is normalized
+ bool is_normalized(format Format);
+
+ /// Evaluate whether the format is an unsigned normalized format
+ bool is_unorm(format Format);
+
+ /// Evaluate whether the format is a signed normalized format
+ bool is_snorm(format Format);
+
+ /// Evaluate whether the format is packed
+ bool is_packed(format Format);
+
+}//namespace gli
+
+#include "./core/format.inl"
diff --git a/3rdparty/glm/test/external/gli/generate_mipmaps.hpp b/3rdparty/glm/test/external/gli/generate_mipmaps.hpp
new file mode 100644
index 00000000000..9810fb10de3
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/generate_mipmaps.hpp
@@ -0,0 +1,69 @@
+/// @brief Include to generate mipmaps of textures.
+/// @file gli/generate_mipmaps.hpp
+
+#pragma once
+
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+#include "sampler.hpp"
+
+namespace gli
+{
+ /// Allocate a texture and generate all the mipmaps of the texture using the Minification filter.
+ template <typename texture_type>
+ texture_type generate_mipmaps(texture_type const& Texture, filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLevel to the MaxLevel included using the Minification filter.
+ texture1d generate_mipmaps(
+ texture1d const& Texture,
+ texture1d::size_type BaseLevel, texture1d::size_type MaxLevel,
+ filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer and from the BaseLevel to the MaxLevel included levels using the Minification filter.
+ texture1d_array generate_mipmaps(
+ texture1d_array const& Texture,
+ texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,
+ texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel,
+ filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLevel to the MaxLevel included using the Minification filter.
+ texture2d generate_mipmaps(
+ texture2d const& Texture,
+ texture2d::size_type BaseLevel, texture2d::size_type MaxLevel,
+ filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer and from the BaseLevel to the MaxLevel included levels using the Minification filter.
+ texture2d_array generate_mipmaps(
+ texture2d_array const& Texture,
+ texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,
+ texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel,
+ filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLevel to the MaxLevel included using the Minification filter.
+ texture3d generate_mipmaps(
+ texture3d const& Texture,
+ texture3d::size_type BaseLevel, texture3d::size_type MaxLevel,
+ filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer, from the BaseFace to the MaxFace and from the BaseLevel to the MaxLevel included levels using the Minification filter.
+ texture_cube generate_mipmaps(
+ texture_cube const& Texture,
+ texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,
+ texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel,
+ filter Minification);
+
+ /// Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer and from the BaseLevel to the MaxLevel included levels using the Minification filter.
+ texture_cube_array generate_mipmaps(
+ texture_cube_array const& Texture,
+ texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,
+ texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,
+ texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel,
+ filter Minification);
+}//namespace gli
+
+#include "./core/generate_mipmaps.inl"
diff --git a/3rdparty/glm/test/external/gli/gl.hpp b/3rdparty/glm/test/external/gli/gl.hpp
new file mode 100644
index 00000000000..5be5f44b2e0
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/gl.hpp
@@ -0,0 +1,373 @@
+/// @brief Include to translate GLI enums to OpenGL enums
+/// @file gli/gl.hpp
+
+#pragma once
+
+#include "format.hpp"
+#include "target.hpp"
+#include <array>
+
+namespace gli
+{
+ /// Translation class to convert GLI enums into OpenGL values
+ class gl
+ {
+ public:
+ enum internal_format
+ {
+ INTERNAL_RGB_UNORM= 0x1907, //GL_RGB
+ INTERNAL_BGR_UNORM = 0x80E0, //GL_BGR
+ INTERNAL_RGBA_UNORM = 0x1908, //GL_RGBA
+ INTERNAL_BGRA_UNORM = 0x80E1, //GL_BGRA
+ INTERNAL_BGRA8_UNORM = 0x93A1, //GL_BGRA8_EXT
+
+ // unorm formats
+ INTERNAL_R8_UNORM = 0x8229, //GL_R8
+ INTERNAL_RG8_UNORM = 0x822B, //GL_RG8
+ INTERNAL_RGB8_UNORM = 0x8051, //GL_RGB8
+ INTERNAL_RGBA8_UNORM = 0x8058, //GL_RGBA8
+
+ INTERNAL_R16_UNORM = 0x822A, //GL_R16
+ INTERNAL_RG16_UNORM = 0x822C, //GL_RG16
+ INTERNAL_RGB16_UNORM = 0x8054, //GL_RGB16
+ INTERNAL_RGBA16_UNORM = 0x805B, //GL_RGBA16
+
+ INTERNAL_RGB10A2_UNORM = 0x8059, //GL_RGB10_A2
+ INTERNAL_RGB10A2_SNORM_EXT = 0xFFFC,
+
+ // snorm formats
+ INTERNAL_R8_SNORM = 0x8F94, //GL_R8_SNORM
+ INTERNAL_RG8_SNORM = 0x8F95, //GL_RG8_SNORM
+ INTERNAL_RGB8_SNORM = 0x8F96, //GL_RGB8_SNORM
+ INTERNAL_RGBA8_SNORM = 0x8F97, //GL_RGBA8_SNORM
+
+ INTERNAL_R16_SNORM = 0x8F98, //GL_R16_SNORM
+ INTERNAL_RG16_SNORM= 0x8F99, //GL_RG16_SNORM
+ INTERNAL_RGB16_SNORM= 0x8F9A, //GL_RGB16_SNORM
+ INTERNAL_RGBA16_SNORM = 0x8F9B, //GL_RGBA16_SNORM
+
+ // unsigned integer formats
+ INTERNAL_R8U = 0x8232, //GL_R8UI
+ INTERNAL_RG8U = 0x8238, //GL_RG8UI
+ INTERNAL_RGB8U = 0x8D7D, //GL_RGB8UI
+ INTERNAL_RGBA8U = 0x8D7C, //GL_RGBA8UI
+
+ INTERNAL_R16U = 0x8234, //GL_R16UI
+ INTERNAL_RG16U = 0x823A, //GL_RG16UI
+ INTERNAL_RGB16U = 0x8D77, //GL_RGB16UI
+ INTERNAL_RGBA16U = 0x8D76, //GL_RGBA16UI
+
+ INTERNAL_R32U = 0x8236, //GL_R32UI
+ INTERNAL_RG32U = 0x823C, //GL_RG32UI
+ INTERNAL_RGB32U = 0x8D71, //GL_RGB32UI
+ INTERNAL_RGBA32U = 0x8D70, //GL_RGBA32UI
+
+ INTERNAL_RGB10A2U = 0x906F, //GL_RGB10_A2UI
+ INTERNAL_RGB10A2I_EXT = 0xFFFB,
+
+ // signed integer formats
+ INTERNAL_R8I = 0x8231, //GL_R8I
+ INTERNAL_RG8I = 0x8237, //GL_RG8I
+ INTERNAL_RGB8I = 0x8D8F, //GL_RGB8I
+ INTERNAL_RGBA8I = 0x8D8E, //GL_RGBA8I
+
+ INTERNAL_R16I = 0x8233, //GL_R16I
+ INTERNAL_RG16I = 0x8239, //GL_RG16I
+ INTERNAL_RGB16I = 0x8D89, //GL_RGB16I
+ INTERNAL_RGBA16I = 0x8D88, //GL_RGBA16I
+
+ INTERNAL_R32I = 0x8235, //GL_R32I
+ INTERNAL_RG32I = 0x823B, //GL_RG32I
+ INTERNAL_RGB32I = 0x8D83, //GL_RGB32I
+ INTERNAL_RGBA32I = 0x8D82, //GL_RGBA32I
+
+ // Floating formats
+ INTERNAL_R16F = 0x822D, //GL_R16F
+ INTERNAL_RG16F = 0x822F, //GL_RG16F
+ INTERNAL_RGB16F = 0x881B, //GL_RGB16F
+ INTERNAL_RGBA16F = 0x881A, //GL_RGBA16F
+
+ INTERNAL_R32F = 0x822E, //GL_R32F
+ INTERNAL_RG32F = 0x8230, //GL_RG32F
+ INTERNAL_RGB32F = 0x8815, //GL_RGB32F
+ INTERNAL_RGBA32F = 0x8814, //GL_RGBA32F
+
+ INTERNAL_R64F_EXT = 0xFFFA, //GL_R64F
+ INTERNAL_RG64F_EXT = 0xFFF9, //GL_RG64F
+ INTERNAL_RGB64F_EXT = 0xFFF8, //GL_RGB64F
+ INTERNAL_RGBA64F_EXT = 0xFFF7, //GL_RGBA64F
+
+ // sRGB formats
+ INTERNAL_SR8 = 0x8FBD, //GL_SR8_EXT
+ INTERNAL_SRG8 = 0x8FBE, //GL_SRG8_EXT
+ INTERNAL_SRGB8 = 0x8C41, //GL_SRGB8
+ INTERNAL_SRGB8_ALPHA8 = 0x8C43, //GL_SRGB8_ALPHA8
+
+ // Packed formats
+ INTERNAL_RGB9E5 = 0x8C3D, //GL_RGB9_E5
+ INTERNAL_RG11B10F = 0x8C3A, //GL_R11F_G11F_B10F
+ INTERNAL_RG3B2 = 0x2A10, //GL_R3_G3_B2
+ INTERNAL_R5G6B5 = 0x8D62, //GL_RGB565
+ INTERNAL_RGB5A1 = 0x8057, //GL_RGB5_A1
+ INTERNAL_RGBA4 = 0x8056, //GL_RGBA4
+
+ INTERNAL_RG4_EXT = 0xFFFE,
+
+ // Luminance Alpha formats
+ INTERNAL_LA4 = 0x8043, //GL_LUMINANCE4_ALPHA4
+ INTERNAL_L8 = 0x8040, //GL_LUMINANCE8
+ INTERNAL_A8 = 0x803C, //GL_ALPHA8
+ INTERNAL_LA8 = 0x8045, //GL_LUMINANCE8_ALPHA8
+ INTERNAL_L16 = 0x8042, //GL_LUMINANCE16
+ INTERNAL_A16 = 0x803E, //GL_ALPHA16
+ INTERNAL_LA16 = 0x8048, //GL_LUMINANCE16_ALPHA16
+
+ // Depth formats
+ INTERNAL_D16 = 0x81A5, //GL_DEPTH_COMPONENT16
+ INTERNAL_D24 = 0x81A6, //GL_DEPTH_COMPONENT24
+ INTERNAL_D16S8_EXT = 0xFFF6,
+ INTERNAL_D24S8 = 0x88F0, //GL_DEPTH24_STENCIL8
+ INTERNAL_D32 = 0x81A7, //GL_DEPTH_COMPONENT32
+ INTERNAL_D32F = 0x8CAC, //GL_DEPTH_COMPONENT32F
+ INTERNAL_D32FS8X24 = 0x8CAD, //GL_DEPTH32F_STENCIL8
+ INTERNAL_S8_EXT = 0x8D48, //GL_STENCIL_INDEX8
+
+ // Compressed formats
+ INTERNAL_RGB_DXT1 = 0x83F0, //GL_COMPRESSED_RGB_S3TC_DXT1_EXT
+ INTERNAL_RGBA_DXT1 = 0x83F1, //GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
+ INTERNAL_RGBA_DXT3 = 0x83F2, //GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
+ INTERNAL_RGBA_DXT5 = 0x83F3, //GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
+ INTERNAL_R_ATI1N_UNORM = 0x8DBB, //GL_COMPRESSED_RED_RGTC1
+ INTERNAL_R_ATI1N_SNORM = 0x8DBC, //GL_COMPRESSED_SIGNED_RED_RGTC1
+ INTERNAL_RG_ATI2N_UNORM = 0x8DBD, //GL_COMPRESSED_RG_RGTC2
+ INTERNAL_RG_ATI2N_SNORM = 0x8DBE, //GL_COMPRESSED_SIGNED_RG_RGTC2
+ INTERNAL_RGB_BP_UNSIGNED_FLOAT = 0x8E8F, //GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
+ INTERNAL_RGB_BP_SIGNED_FLOAT = 0x8E8E, //GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
+ INTERNAL_RGB_BP_UNORM = 0x8E8C, //GL_COMPRESSED_RGBA_BPTC_UNORM
+ INTERNAL_RGB_PVRTC_4BPPV1 = 0x8C00, //GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
+ INTERNAL_RGB_PVRTC_2BPPV1 = 0x8C01, //GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
+ INTERNAL_RGBA_PVRTC_4BPPV1 = 0x8C02, //GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
+ INTERNAL_RGBA_PVRTC_2BPPV1 = 0x8C03, //GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
+ INTERNAL_RGBA_PVRTC_4BPPV2 = 0x9137, //GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
+ INTERNAL_RGBA_PVRTC_2BPPV2 = 0x9138, //GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
+ INTERNAL_ATC_RGB = 0x8C92, //GL_ATC_RGB_AMD
+ INTERNAL_ATC_RGBA_EXPLICIT_ALPHA = 0x8C93, //GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
+ INTERNAL_ATC_RGBA_INTERPOLATED_ALPHA = 0x87EE, //GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD
+
+ INTERNAL_RGB_ETC = 0x8D64, //GL_COMPRESSED_RGB8_ETC1
+ INTERNAL_RGB_ETC2 = 0x9274, //GL_COMPRESSED_RGB8_ETC2
+ INTERNAL_RGBA_PUNCHTHROUGH_ETC2 = 0x9276, //GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
+ INTERNAL_RGBA_ETC2 = 0x9278, //GL_COMPRESSED_RGBA8_ETC2_EAC
+ INTERNAL_R11_EAC = 0x9270, //GL_COMPRESSED_R11_EAC
+ INTERNAL_SIGNED_R11_EAC = 0x9271, //GL_COMPRESSED_SIGNED_R11_EAC
+ INTERNAL_RG11_EAC = 0x9272, //GL_COMPRESSED_RG11_EAC
+ INTERNAL_SIGNED_RG11_EAC = 0x9273, //GL_COMPRESSED_SIGNED_RG11_EAC
+
+ INTERNAL_RGBA_ASTC_4x4 = 0x93B0, //GL_COMPRESSED_RGBA_ASTC_4x4_KHR
+ INTERNAL_RGBA_ASTC_5x4 = 0x93B1, //GL_COMPRESSED_RGBA_ASTC_5x4_KHR
+ INTERNAL_RGBA_ASTC_5x5 = 0x93B2, //GL_COMPRESSED_RGBA_ASTC_5x5_KHR
+ INTERNAL_RGBA_ASTC_6x5 = 0x93B3, //GL_COMPRESSED_RGBA_ASTC_6x5_KHR
+ INTERNAL_RGBA_ASTC_6x6 = 0x93B4, //GL_COMPRESSED_RGBA_ASTC_6x6_KHR
+ INTERNAL_RGBA_ASTC_8x5 = 0x93B5, //GL_COMPRESSED_RGBA_ASTC_8x5_KHR
+ INTERNAL_RGBA_ASTC_8x6 = 0x93B6, //GL_COMPRESSED_RGBA_ASTC_8x6_KHR
+ INTERNAL_RGBA_ASTC_8x8 = 0x93B7, //GL_COMPRESSED_RGBA_ASTC_8x8_KHR
+ INTERNAL_RGBA_ASTC_10x5 = 0x93B8, //GL_COMPRESSED_RGBA_ASTC_10x5_KHR
+ INTERNAL_RGBA_ASTC_10x6 = 0x93B9, //GL_COMPRESSED_RGBA_ASTC_10x6_KHR
+ INTERNAL_RGBA_ASTC_10x8 = 0x93BA, //GL_COMPRESSED_RGBA_ASTC_10x8_KHR
+ INTERNAL_RGBA_ASTC_10x10 = 0x93BB, //GL_COMPRESSED_RGBA_ASTC_10x10_KHR
+ INTERNAL_RGBA_ASTC_12x10 = 0x93BC, //GL_COMPRESSED_RGBA_ASTC_12x10_KHR
+ INTERNAL_RGBA_ASTC_12x12 = 0x93BD, //GL_COMPRESSED_RGBA_ASTC_12x12_KHR
+
+ // sRGB formats
+ INTERNAL_SRGB_DXT1 = 0x8C4C, //GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
+ INTERNAL_SRGB_ALPHA_DXT1 = 0x8C4D, //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
+ INTERNAL_SRGB_ALPHA_DXT3 = 0x8C4E, //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
+ INTERNAL_SRGB_ALPHA_DXT5 = 0x8C4F, //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
+ INTERNAL_SRGB_BP_UNORM = 0x8E8D, //GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
+ INTERNAL_SRGB_PVRTC_2BPPV1 = 0x8A54, //GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT
+ INTERNAL_SRGB_PVRTC_4BPPV1 = 0x8A55, //GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT
+ INTERNAL_SRGB_ALPHA_PVRTC_2BPPV1 = 0x8A56, //GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT
+ INTERNAL_SRGB_ALPHA_PVRTC_4BPPV1 = 0x8A57, //GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT
+ INTERNAL_SRGB_ALPHA_PVRTC_2BPPV2 = 0x93F0, //COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG
+ INTERNAL_SRGB_ALPHA_PVRTC_4BPPV2 = 0x93F1, //GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG
+ INTERNAL_SRGB8_ETC2 = 0x9275, //GL_COMPRESSED_SRGB8_ETC2
+ INTERNAL_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, //GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
+ INTERNAL_SRGB8_ALPHA8_ETC2_EAC = 0x9279, //GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
+ INTERNAL_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
+ INTERNAL_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD, //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
+
+ INTERNAL_ALPHA8 = 0x803C,
+ INTERNAL_ALPHA16 = 0x803E,
+ INTERNAL_LUMINANCE8 = 0x8040,
+ INTERNAL_LUMINANCE16 = 0x8042,
+ INTERNAL_LUMINANCE8_ALPHA8 = 0x8045,
+ INTERNAL_LUMINANCE16_ALPHA16 = 0x8048,
+
+ INTERNAL_R8_USCALED_GTC = 0xF000,
+ INTERNAL_R8_SSCALED_GTC,
+ INTERNAL_RG8_USCALED_GTC,
+ INTERNAL_RG8_SSCALED_GTC,
+ INTERNAL_RGB8_USCALED_GTC,
+ INTERNAL_RGB8_SSCALED_GTC,
+ INTERNAL_RGBA8_USCALED_GTC,
+ INTERNAL_RGBA8_SSCALED_GTC,
+ INTERNAL_RGB10A2_USCALED_GTC,
+ INTERNAL_RGB10A2_SSCALED_GTC,
+ INTERNAL_R16_USCALED_GTC,
+ INTERNAL_R16_SSCALED_GTC,
+ INTERNAL_RG16_USCALED_GTC,
+ INTERNAL_RG16_SSCALED_GTC,
+ INTERNAL_RGB16_USCALED_GTC,
+ INTERNAL_RGB16_SSCALED_GTC,
+ INTERNAL_RGBA16_USCALED_GTC,
+ INTERNAL_RGBA16_SSCALED_GTC,
+ };
+
+ enum external_format
+ {
+ EXTERNAL_NONE = 0, //GL_NONE
+ EXTERNAL_RED = 0x1903, //GL_RED
+ EXTERNAL_RG = 0x8227, //GL_RG
+ EXTERNAL_RGB= 0x1907, //GL_RGB
+ EXTERNAL_BGR = 0x80E0, //GL_BGR
+ EXTERNAL_RGBA = 0x1908, //GL_RGBA
+ EXTERNAL_BGRA = 0x80E1, //GL_BGRA
+ EXTERNAL_RED_INTEGER = 0x8D94, //GL_RED_INTEGER
+ EXTERNAL_RG_INTEGER = 0x8228, //GL_RG_INTEGER
+ EXTERNAL_RGB_INTEGER = 0x8D98, //GL_RGB_INTEGER
+ EXTERNAL_BGR_INTEGER = 0x8D9A, //GL_BGR_INTEGER
+ EXTERNAL_RGBA_INTEGER = 0x8D99, //GL_RGBA_INTEGER
+ EXTERNAL_BGRA_INTEGER = 0x8D9B, //GL_BGRA_INTEGER
+ EXTERNAL_DEPTH = 0x1902, //GL_DEPTH_COMPONENT
+ EXTERNAL_DEPTH_STENCIL = 0x84F9, //GL_DEPTH_STENCIL
+ EXTERNAL_STENCIL = 0x1901, //GL_STENCIL_INDEX
+
+ EXTERNAL_LUMINANCE = 0x1909, //GL_LUMINANCE
+ EXTERNAL_ALPHA = 0x1906, //GL_ALPHA
+ EXTERNAL_LUMINANCE_ALPHA = 0x190A, //GL_LUMINANCE_ALPHA
+
+ EXTERNAL_SRGB_EXT = 0x8C40, //SRGB_EXT
+ EXTERNAL_SRGB_ALPHA_EXT = 0x8C42 //SRGB_ALPHA_EXT
+ };
+
+ enum type_format
+ {
+ TYPE_NONE = 0, //GL_NONE
+ TYPE_I8 = 0x1400, //GL_BYTE
+ TYPE_U8 = 0x1401, //GL_UNSIGNED_BYTE
+ TYPE_I16 = 0x1402, //GL_SHORT
+ TYPE_U16 = 0x1403, //GL_UNSIGNED_SHORT
+ TYPE_I32 = 0x1404, //GL_INT
+ TYPE_U32 = 0x1405, //GL_UNSIGNED_INT
+ TYPE_I64 = 0x140E, //GL_INT64_ARB
+ TYPE_U64 = 0x140F, //GL_UNSIGNED_INT64_ARB
+ TYPE_F16 = 0x140B, //GL_HALF_FLOAT
+ TYPE_F16_OES = 0x8D61, //GL_HALF_FLOAT_OES
+ TYPE_F32 = 0x1406, //GL_FLOAT
+ TYPE_F64 = 0x140A, //GL_DOUBLE
+ TYPE_UINT32_RGB9_E5_REV = 0x8C3E, //GL_UNSIGNED_INT_5_9_9_9_REV
+ TYPE_UINT32_RG11B10F_REV = 0x8C3B, //GL_UNSIGNED_INT_10F_11F_11F_REV
+ TYPE_UINT8_RG3B2 = 0x8032, //GL_UNSIGNED_BYTE_3_3_2
+ TYPE_UINT8_RG3B2_REV = 0x8362, //GL_UNSIGNED_BYTE_2_3_3_REV
+ TYPE_UINT16_RGB5A1 = 0x8034, //GL_UNSIGNED_SHORT_5_5_5_1
+ TYPE_UINT16_RGB5A1_REV = 0x8366, //GL_UNSIGNED_SHORT_1_5_5_5_REV
+ TYPE_UINT16_R5G6B5 = 0x8363, //GL_UNSIGNED_SHORT_5_6_5
+ TYPE_UINT16_R5G6B5_REV = 0x8364, //GL_UNSIGNED_SHORT_5_6_5_REV
+ TYPE_UINT16_RGBA4 = 0x8033, //GL_UNSIGNED_SHORT_4_4_4_4
+ TYPE_UINT16_RGBA4_REV = 0x8365, //GL_UNSIGNED_SHORT_4_4_4_4_REV
+ TYPE_UINT32_RGBA8 = 0x8035, //GL_UNSIGNED_SHORT_8_8_8_8
+ TYPE_UINT32_RGBA8_REV = 0x8367, //GL_UNSIGNED_SHORT_8_8_8_8_REV
+ TYPE_UINT32_RGB10A2 = 0x8036, //GL_UNSIGNED_INT_10_10_10_2
+ TYPE_UINT32_RGB10A2_REV = 0x8368, //GL_UNSIGNED_INT_2_10_10_10_REV
+
+ TYPE_UINT8_RG4_REV_GTC = 0xFFFD,
+ TYPE_UINT16_A1RGB5_GTC = 0xFFFC
+ };
+
+ enum target
+ {
+ TARGET_1D = 0x0DE0,
+ TARGET_1D_ARRAY = 0x8C18,
+ TARGET_2D = 0x0DE1,
+ TARGET_2D_ARRAY = 0x8C1A,
+ TARGET_3D = 0x806F,
+ TARGET_RECT = 0x84F5,
+ TARGET_RECT_ARRAY = 0x84F5, // Not supported by OpenGL
+ TARGET_CUBE = 0x8513,
+ TARGET_CUBE_ARRAY = 0x9009
+ };
+
+ enum swizzle
+ {
+ SWIZZLE_RED = 0x1903, //GL_RED
+ SWIZZLE_GREEN = 0x1904, //GL_GREEN
+ SWIZZLE_BLUE = 0x1905, //GL_BLUE
+ SWIZZLE_ALPHA = 0x1906, //GL_ALPHA
+ SWIZZLE_ZERO = 0x0000, //GL_ZERO
+ SWIZZLE_ONE = 0x0001, //GL_ONE
+ };
+
+ enum profile
+ {
+ PROFILE_ES20,
+ PROFILE_ES30,
+ PROFILE_GL32,
+ PROFILE_GL33,
+ PROFILE_KTX
+ };
+
+ typedef glm::vec<4, int> swizzles;
+
+ struct format
+ {
+ internal_format Internal;
+ external_format External;
+ type_format Type;
+ swizzles Swizzles;
+ };
+
+ gl(profile Profile);
+
+ /// Convert GLI targets into OpenGL texture targets
+ target const& translate(gli::target Target) const;
+
+ /// Convert GLI formats into OpenGL texture formats
+ format translate(gli::format Format, gli::swizzles const& Swizzle) const;
+
+ /// Convert an OpenGL format into a GLI format
+ gli::format find(internal_format InternalFormat, external_format ExternalFormat, type_format Type);
+
+ private:
+ struct format_desc
+ {
+ internal_format Internal;
+ external_format External;
+ type_format Type;
+ unsigned int Properties;
+ };
+
+ bool has_swizzle(profile Profile) const
+ {
+ return Profile == PROFILE_ES30 || Profile == PROFILE_GL33;
+ }
+
+ gl::swizzles compute_swizzle(format_desc const& FormatDesc, gli::swizzles const& Swizzle) const;
+
+ std::array<format_desc, FORMAT_COUNT> FormatDesc;
+ profile Profile;
+ };
+}//namespace gli
+
+#include "./core/gl.inl"
diff --git a/3rdparty/glm/test/external/gli/gli.hpp b/3rdparty/glm/test/external/gli/gli.hpp
index 5b3944735a5..0639a94b473 100644
--- a/3rdparty/glm/test/external/gli/gli.hpp
+++ b/3rdparty/glm/test/external/gli/gli.hpp
@@ -1,31 +1,75 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-09-29
-// Licence : This source is under MIT License
-// File : gli/gli.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-/*! \mainpage OpenGL Image
- *
- */
-
-#ifndef GLI_GLI_INCLUDED
-#define GLI_GLI_INCLUDED
-
-#define GLI_VERSION 31
+/// @brief Include to include everything in GLI which is not recommendated due to compilation time cost.
+/// @file gli/gli.hpp
+/// @mainpage OpenGL Image (GLI)
+///
+/// [OpenGL Image](http://gli.g-truc.net/) (*GLI*) is a header only C++ image library for graphics software.
+/// (*GLI*) provides classes and functions to load image files ([KTX](https://www.khronos.org/opengles/sdk/tools/KTX/) and [DDS](https://msdn.microsoft.com/en-us/library/windows/desktop/bb943990%28v=vs.85%29.aspx)),
+/// facilitate graphics APIs texture creation, compare textures, access texture texels, sample textures, convert textures, generate mipmaps, etc.
+///
+/// This library works perfectly with [OpenGL](https://www.opengl.org) or [Vulkan](https://www.khronos.org/vulkan) but it also ensures interoperability with other third party libraries and SDK.
+/// It is a good candidate for software rendering (raytracing / rasterisation), image processing, image based software testing or any development context that requires a simple and convenient image library.
+///
+/// *GLI* is written in C++11. It is a platform independent library with no dependence and it supports the following compilers:
+/// - [Apple Clang 4.0](https://developer.apple.com/library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html) and higher
+/// - [GCC](http://gcc.gnu.org/) 4.6 and higher
+/// - [Intel C++ Composer](https://software.intel.com/en-us/intel-compilers) XE 2013 and higher
+/// - [LLVM](http://llvm.org/) 3.2 and higher
+/// - [Visual C++](http://www.visualstudio.com/) 2010 and higher
+/// - Any conform C++11 compiler
+///
+/// For more information about *GLI*, please have a look at the [API reference documentation](http://gli.g-truc.net/0.8.0/api/index.html).
+/// The source code and the documentation are licensed under the [Happy Bunny License (Modified MIT) or the MIT License](copying.md).
+///
+/// Thanks for contributing to the project by [submitting issues](https://github.com/g-truc/gli/issues) for bug reports and feature requests. Any feedback is welcome at [gli@g-truc.net](mailto://gli@g-truc.net).
+
+#pragma once
+
+#define GLI_VERSION 82
#define GLI_VERSION_MAJOR 0
-#define GLI_VERSION_MINOR 3
-#define GLI_VERSION_PATCH 1
-#define GLI_VERSION_REVISION 0
-
-#include "./core/texture2d.hpp"
-#include "./core/texture2d_array.hpp"
-#include "./core/texture_cube.hpp"
-#include "./core/texture_cube_array.hpp"
-#include "./core/size.hpp"
-#include "./core/operation.hpp"
-#include "./core/generate_mipmaps.hpp"
-
-#endif//GLI_GLI_INCLUDED
+#define GLI_VERSION_MINOR 8
+#define GLI_VERSION_PATCH 2
+#define GLI_VERSION_REVISION 1
+
+/// Namespace where all the classes and functions provided by GLI are exposed
+namespace gli
+{
+
+}//namespace gli
+
+#include "format.hpp"
+#include "target.hpp"
+#include "levels.hpp"
+
+#include "image.hpp"
+#include "texture.hpp"
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+#include "sampler1d.hpp"
+#include "sampler1d_array.hpp"
+#include "sampler2d.hpp"
+#include "sampler2d_array.hpp"
+#include "sampler3d.hpp"
+#include "sampler_cube.hpp"
+#include "sampler_cube_array.hpp"
+
+#include "duplicate.hpp"
+#include "convert.hpp"
+#include "view.hpp"
+#include "comparison.hpp"
+
+#include "reduce.hpp"
+#include "transform.hpp"
+
+#include "load.hpp"
+#include "save.hpp"
+
+#include "gl.hpp"
+#include "dx.hpp"
+
+#include "./core/flip.hpp"
diff --git a/3rdparty/glm/test/external/gli/gtx/compression.hpp b/3rdparty/glm/test/external/gli/gtx/compression.hpp
deleted file mode 100644
index e314955f22f..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/compression.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/gtx/compression.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_COMPRESSION_INCLUDED
-#define GLI_GTX_COMPRESSION_INCLUDED
-
-namespace gli{
-namespace gtx{
-namespace compression
-{
-
-
-}//namespace compression
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::compression;}
-
-#include "compression.inl"
-
-#endif//GLI_GTX_COMPRESSION_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/compression.inl b/3rdparty/glm/test/external/gli/gtx/compression.inl
deleted file mode 100644
index 4aed576529d..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/compression.inl
+++ /dev/null
@@ -1,8 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/gtx/compression.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/3rdparty/glm/test/external/gli/gtx/fetch.hpp b/3rdparty/glm/test/external/gli/gtx/fetch.hpp
deleted file mode 100644
index 6de5309dfc4..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/fetch.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/fetch.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_FETCH_INCLUDED
-#define GLI_GTX_FETCH_INCLUDED
-
-#include "../gli.hpp"
-
-namespace gli{
-namespace gtx{
-namespace fetch
-{
- template <typename genType>
- genType texelFetch(
- texture2D const & Texture,
- texture2D::dimensions_type const & Texcoord,
- texture2D::level_type const & Level);
-
- template <typename genType>
- genType textureLod(
- texture2D const & Texture,
- texture2D::texcoord_type const & Texcoord,
- texture2D::level_type const & Level);
-
- template <typename genType>
- void texelWrite(
- texture2D & Texture,
- texture2D::dimensions_type const & Texcoord,
- texture2D::level_type const & Level,
- genType const & Color);
-
-}//namespace fetch
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::fetch;}
-
-#include "fetch.inl"
-
-#endif//GLI_GTX_FETCH_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/fetch.inl b/3rdparty/glm/test/external/gli/gtx/fetch.inl
deleted file mode 100644
index d2e272da950..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/fetch.inl
+++ /dev/null
@@ -1,91 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/fetch.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace fetch
-{
- template <typename genType>
- inline genType texelFetch
- (
- texture2D const & Image,
- texture2D::dimensions_type const & TexCoord,
- texture2D::level_type const & Level
- )
- {
- assert(Image[Level].format() == R8U || Image[Level].format() == RG8U || Image[Level].format() == RGB8U || Image[Level].format() == RGBA8U);
-
- texture2D::dimensions_type Dimensions = Image[Level].dimensions();
- texture2D::value_type const * const Data = Image[Level].data();
-
- return reinterpret_cast<genType const * const>(Data)[TexCoord.x + TexCoord.y * Dimensions.x];
- }
-
- template <typename genType>
- inline genType textureLod
- (
- texture2D const & Image,
- texture2D::texcoord_type const & TexCoord,
- texture2D::level_type const & Level
- )
- {
- assert(Image[Level].format() == R8U || Image[Level].format() == RG8U || Image[Level].format() == RGB8U || Image[Level].format() == RGBA8U);
-
- texture2D::dimensions_type Dimensions = Image[Level].dimensions();
- texture2D::value_type const * const Data = Image[Level].data();
-
- std::size_t s_below = std::size_t(glm::floor(TexCoord.s * float(Dimensions.x - 1)));
- std::size_t s_above = std::size_t(glm::ceil( TexCoord.s * float(Dimensions.x - 1)));
- std::size_t t_below = std::size_t(glm::floor(TexCoord.t * float(Dimensions.y - 1)));
- std::size_t t_above = std::size_t(glm::ceil( TexCoord.t * float(Dimensions.y - 1)));
-
- float s_step = 1.0f / float(Dimensions.x);
- float t_step = 1.0f / float(Dimensions.y);
-
- float s_below_normalized = s_below / float(Dimensions.x);
- float s_above_normalized = s_above / float(Dimensions.x);
- float t_below_normalized = t_below / float(Dimensions.y);
- float t_above_normalized = t_above / float(Dimensions.y);
-
- genType Value1 = reinterpret_cast<genType const * const>(Data)[s_below + t_below * Dimensions.x];
- genType Value2 = reinterpret_cast<genType const * const>(Data)[s_above + t_below * Dimensions.x];
- genType Value3 = reinterpret_cast<genType const * const>(Data)[s_above + t_above * Dimensions.x];
- genType Value4 = reinterpret_cast<genType const * const>(Data)[s_below + t_above * Dimensions.x];
-
- float BlendA = float(TexCoord.s - s_below_normalized) * float(Dimensions.x - 1);
- float BlendB = float(TexCoord.s - s_below_normalized) * float(Dimensions.x - 1);
- float BlendC = float(TexCoord.t - t_below_normalized) * float(Dimensions.y - 1);
-
- genType ValueA(glm::mix(Value1, Value2, BlendA));
- genType ValueB(glm::mix(Value4, Value3, BlendB));
-
- return genType(glm::mix(ValueA, ValueB, BlendC));
- }
-
- template <typename genType>
- void texelWrite
- (
- texture2D & Image,
- texture2D::dimensions_type const & Texcoord,
- texture2D::level_type const & Level,
- genType const & Color
- )
- {
- genType * Data = (genType*)Image[Level].data();
- std::size_t Index = Texcoord.x + Texcoord.y * Image[Level].dimensions().x;
-
- std::size_t Capacity = Image[Level].capacity();
- assert(Index < Capacity);
-
- *(Data + Index) = Color;
- }
-
-}//namespace fetch
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/gl_texture2d.hpp b/3rdparty/glm/test/external/gli/gtx/gl_texture2d.hpp
deleted file mode 100644
index 51b911d95f3..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/gl_texture2d.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-27
-// Updated : 2010-10-01
-// Licence : This source is under MIT License
-// File : gli/gtx/gl_texture2d.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_GL_TEXTURE2D_INCLUDED
-#define GLI_GTX_GL_TEXTURE2D_INCLUDED
-
-#include "../gli.hpp"
-#include "../gtx/loader.hpp"
-
-#ifndef GL_VERSION_1_1
-#error "ERROR: OpenGL must be included before GLI_GTX_gl_texture2d"
-#endif//GL_VERSION_1_1
-
-namespace gli{
-namespace gtx{
-namespace gl_texture2d
-{
- GLuint createTexture2D(std::string const & Filename);
-}//namespace gl_texture2d
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::gl_texture2d;}
-
-#include "gl_texture2d.inl"
-
-#endif//GLI_GTX_GL_TEXTURE2D_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/gl_texture2d.inl b/3rdparty/glm/test/external/gli/gtx/gl_texture2d.inl
deleted file mode 100644
index 43dbb68f30e..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/gl_texture2d.inl
+++ /dev/null
@@ -1,210 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-27
-// Updated : 2010-10-01
-// Licence : This source is under MIT License
-// File : gli/gtx/gl_texture2d.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace gl_texture2d{
-namespace detail
-{
- //GL_COMPRESSED_RED, GL_COMPRESSED_RG, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGB_ALPHA,
- //GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8
- struct texture_desc
- {
- GLint InternalFormat;
- GLint InternalFormatCompressed;
- GLint InternalFormatSRGB;
- GLint InternalFormatCompressedSRGB;
- GLenum ExternalFormat;
- GLenum ExternalFormatRev;
- GLenum Type;
- };
-
- //GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
- //GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT,
- //GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV,
- //GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4,
- //GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV,
- //GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2,
- //GL_UNSIGNED_INT_2_10_10_10_REV
-
-# ifndef GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
-# define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
-# endif
-
-# ifndef GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
-# define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
-# endif
-
-# ifndef GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
-# define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
-# endif
-
-# ifndef GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
-# define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
-# endif
-
- inline texture_desc gli2ogl_cast(format const & Format)
- {
- texture_desc Cast[] =
- {
- {GL_NONE, GL_NONE, GL_NONE, GL_NONE, GL_NONE, GL_NONE, GL_NONE},
-
- //// Normalized
- //{GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_UNSIGNED_BYTE},
- //{GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_UNSIGNED_BYTE},
- //{GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_UNSIGNED_BYTE},
- //{GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_UNSIGNED_BYTE},
-
- //{GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_UNSIGNED_SHORT},
- //{GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_UNSIGNED_SHORT},
- //{GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_UNSIGNED_SHORT},
- //{GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_UNSIGNED_SHORT},
-
- //{GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_UNSIGNED_INT},
- //{GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_UNSIGNED_INT},
- //{GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_UNSIGNED_INT},
- //{GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_UNSIGNED_INT},
-
- // Unsigned
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_UNSIGNED_BYTE},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_UNSIGNED_BYTE},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_UNSIGNED_BYTE},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_UNSIGNED_BYTE},
-
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_UNSIGNED_SHORT},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_UNSIGNED_SHORT},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_UNSIGNED_SHORT},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_UNSIGNED_SHORT},
-
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_UNSIGNED_INT},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_UNSIGNED_INT},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_UNSIGNED_INT},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_UNSIGNED_INT},
-
- // Signed
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_BYTE},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_BYTE},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_BYTE},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_BYTE},
-
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_SHORT},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_SHORT},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_SHORT},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_SHORT},
-
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_INT},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_INT},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_INT},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_INT},
-
- // Float
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_HALF_FLOAT},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_HALF_FLOAT},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_HALF_FLOAT},
-
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_FLOAT},
- {GL_RG, GL_COMPRESSED_RG, GL_RG, GL_COMPRESSED_RG, GL_RG, GL_RG, GL_FLOAT},
- {GL_RGB, GL_COMPRESSED_RGB, GL_SRGB8, GL_COMPRESSED_SRGB, GL_RGB, GL_BGR, GL_FLOAT},
- {GL_RGBA, GL_COMPRESSED_RGBA, GL_SRGB8_ALPHA8, GL_COMPRESSED_SRGB_ALPHA, GL_RGBA, GL_BGRA, GL_FLOAT},
-
- // Packed
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
- {GL_RGB9_E5, GL_RGB9_E5, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
- {GL_R11F_G11F_B10F, GL_R11F_G11F_B10F, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
- {GL_RED, GL_COMPRESSED_RED, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
- {GL_RGBA4, GL_RGBA4, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
- {GL_RGB10_A2, GL_RGB10_A2, GL_RED, GL_COMPRESSED_RED, GL_RED, GL_RED, GL_HALF_FLOAT},
-
- // Depth
- {GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT},
- {GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT},
- {GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_UNSIGNED_INT},
- {GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_FLOAT},
- {GL_DEPTH32F_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_UNSIGNED_INT},
-
- // Compressed formats
- {GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RED_RGTC1, GL_COMPRESSED_RED_RGTC1, GL_COMPRESSED_RED_RGTC1, GL_COMPRESSED_RED_RGTC1, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_SIGNED_RED_RGTC1, GL_COMPRESSED_SIGNED_RED_RGTC1, GL_COMPRESSED_SIGNED_RED_RGTC1, GL_COMPRESSED_SIGNED_RED_RGTC1, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RG_RGTC2, GL_COMPRESSED_RG_RGTC2, GL_COMPRESSED_RG_RGTC2, GL_COMPRESSED_RG_RGTC2, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_SIGNED_RG_RGTC2, GL_COMPRESSED_SIGNED_RG_RGTC2, GL_COMPRESSED_SIGNED_RG_RGTC2, GL_COMPRESSED_SIGNED_RG_RGTC2, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB, GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB, GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB, GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB, GL_NONE, GL_NONE, GL_NONE},
- {GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB, GL_NONE, GL_NONE, GL_NONE},
- };
-
- return Cast[Format];
- }
-
-}//namespace detail
-
- inline GLuint createTexture2D(std::string const & Filename)
- {
- gli::texture2D Texture = gli::load(Filename);
- if(Texture.empty())
- return 0;
-
- detail::texture_desc TextureDesc = detail::gli2ogl_cast(Texture.format());
-
- GLint Alignment = 0;
- glGetIntegerv(GL_UNPACK_ALIGNMENT, &Alignment);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- GLuint Name = 0;
- glGenTextures(1, &Name);
- glBindTexture(GL_TEXTURE_2D, Name);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Texture.levels() > 1 ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
- if(size(Texture, BIT_PER_PIXEL) == size(Texture, BLOCK_SIZE) << 3)
- {
- for(gli::texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
- {
- glTexImage2D(
- GL_TEXTURE_2D,
- GLint(Level),
- TextureDesc.InternalFormat,
- GLsizei(Texture[Level].dimensions().x),
- GLsizei(Texture[Level].dimensions().y),
- 0,
- TextureDesc.ExternalFormatRev,
- TextureDesc.Type,
- Texture[Level].data());
- }
- }
- else
- {
- for(gli::texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
- {
- glCompressedTexImage2D(
- GL_TEXTURE_2D,
- GLint(Level),
- TextureDesc.InternalFormat,
- GLsizei(Texture[Level].dimensions().x),
- GLsizei(Texture[Level].dimensions().y),
- 0,
- GLsizei(Texture[Level].capacity()),
- Texture[Level].data());
- }
- }
-
- glBindTexture(GL_TEXTURE_2D, 0);
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, Alignment);
-
- return Name;
- }
-
-}//namespace gl_texture_2d
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/gradient.hpp b/3rdparty/glm/test/external/gli/gtx/gradient.hpp
deleted file mode 100644
index 8a0b423445c..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/gradient.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/gtx/gradient.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_GRADIENT_INCLUDED
-#define GLI_GTX_GRADIENT_INCLUDED
-
-#include "../gli.hpp"
-
-namespace gli{
-namespace gtx{
-namespace gradient
-{
- texture2D radial(
- texture2D::dimensions_type const & Size,
- texture2D::texcoord_type const & Center,
- float const & Radius,
- texture2D::texcoord_type const & Focal);
-
- texture2D linear(
- texture2D::dimensions_type const & Size,
- texture2D::texcoord_type const & Point0,
- texture2D::texcoord_type const & Point1);
-
-}//namespace gradient
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::gradient;}
-
-#include "gradient.inl"
-
-#endif//GLI_GTX_GRADIENT_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/gradient.inl b/3rdparty/glm/test/external/gli/gtx/gradient.inl
deleted file mode 100644
index 223b5585e98..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/gradient.inl
+++ /dev/null
@@ -1,74 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2008-12-19
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/gtx/gradient.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace gradient
-{
- inline texture2D radial
- (
- texture2D::dimensions_type const & Size,
- texture2D::texcoord_type const & Center,
- float const & Radius,
- texture2D::texcoord_type const & Focal
- )
- {
- image2D Result(texture2D::dimensions_type(Size), gli::RGB8U);
- glm::u8vec3 * DstData = (glm::u8vec3 *)Result.data();
-
- for(std::size_t y = 0; y < Result.dimensions().y; ++y)
- for(std::size_t x = 0; x < Result.dimensions().x; ++x)
- {
- float Value = glm::radialGradient(
- Center * glm::vec2(Size),
- Radius,
- Focal * glm::vec2(Size),
- glm::vec2(x, y));
-
- std::size_t Index = x + y * Result.dimensions().x;
-
- *(DstData + Index) = glm::u8vec3(glm::u8(glm::clamp(Value * 255.f, 0.f, 255.f)));
- }
-
- gli::texture2D Image(1);
- Image[0] = Result;
- return Image;
- }
-
- inline texture2D linear
- (
- texture2D::dimensions_type const & Size,
- texture2D::texcoord_type const & Point0,
- texture2D::texcoord_type const & Point1
- )
- {
- image2D Result(texture2D::dimensions_type(Size), gli::RGB8U);
- glm::u8vec3 * DstData = (glm::u8vec3 *)Result.data();
-
- for(std::size_t y = 0; y < Result.dimensions().y; ++y)
- for(std::size_t x = 0; x < Result.dimensions().x; ++x)
- {
- float Value = glm::linearGradient(
- Point0 * glm::vec2(Size),
- Point1 * glm::vec2(Size),
- texture2D::texcoord_type(x, y));
-
- std::size_t Index = x + y * Result.dimensions().x;
-
- *(DstData + Index) = glm::u8vec3(glm::u8(glm::clamp(Value * 255.f, 0.f, 255.f)));
- }
-
- gli::texture2D Image(1);
- Image[0] = Result;
- return Image;
- }
-
-}//namespace gradient
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/loader.hpp b/3rdparty/glm/test/external/gli/gtx/loader.hpp
deleted file mode 100644
index 911d96556c3..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_LOADER_INCLUDED
-#define GLI_GTX_LOADER_INCLUDED
-
-#include "../gli.hpp"
-#include "../gtx/loader_dds9.hpp"
-#include "../gtx/loader_dds10.hpp"
-#include "../gtx/loader_tga.hpp"
-
-namespace gli{
-namespace gtx{
-namespace loader
-{
- inline texture2D load(
- std::string const & Filename);
-
- inline void save(
- texture2D const & Image,
- std::string const & Filename);
-
-}//namespace loader
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::loader;}
-
-#include "loader.inl"
-
-#endif//GLI_GTX_LOADER_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/loader.inl b/3rdparty/glm/test/external/gli/gtx/loader.inl
deleted file mode 100644
index 4f45887f0c2..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader.inl
+++ /dev/null
@@ -1,46 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace loader
-{
- inline texture2D load
- (
- std::string const & Filename
- )
- {
- if(Filename.find(".dds") != std::string::npos)
- return loadDDS10(Filename);
- else if(Filename.find(".tga") != std::string::npos)
- return loadTGA(Filename);
- else
- {
- assert(0); // File format not supported
- return texture2D();
- }
- }
-
- inline void save
- (
- texture2D const & Image,
- std::string const & Filename
- )
- {
- if(Filename.find(".dds") != std::string::npos)
- saveDDS10(Image, Filename);
- else if(Filename.find(".tga") != std::string::npos)
- saveTGA(Image, Filename);
- else
- assert(0); // File format not supported
- }
-
-}//namespace loader
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/loader_dds10.hpp b/3rdparty/glm/test/external/gli/gtx/loader_dds10.hpp
deleted file mode 100644
index 190ffebdbec..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader_dds10.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-26
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader_dds10.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_LOADER_DDS10_INCLUDED
-#define GLI_GTX_LOADER_DDS10_INCLUDED
-
-#include "../gli.hpp"
-#include <fstream>
-
-namespace gli{
-namespace gtx{
-namespace loader_dds10
-{
- texture2D loadDDS10(
- std::string const & Filename);
-
- void saveDDS10(
- texture2D const & Image,
- std::string const & Filename);
-
-}//namespace loader_dds10
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::loader_dds10;}
-
-#include "loader_dds10.inl"
-
-#endif//GLI_GTX_LOADER_DDS10_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/loader_dds10.inl b/3rdparty/glm/test/external/gli/gtx/loader_dds10.inl
deleted file mode 100644
index 58df10faf2e..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader_dds10.inl
+++ /dev/null
@@ -1,595 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-26
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader_dds10.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace loader_dds10{
-namespace detail
-{
- // DDS Documentation
- /*
- http://msdn.microsoft.com/en-us/library/bb943991(VS.85).aspx#File_Layout1
- http://msdn.microsoft.com/en-us/library/bb943992.aspx
- */
-
- #define GLI_MAKEFOURCC(ch0, ch1, ch2, ch3) \
- (glm::uint32)( \
- (((glm::uint32)(glm::uint8)(ch3) << 24) & 0xFF000000) | \
- (((glm::uint32)(glm::uint8)(ch2) << 16) & 0x00FF0000) | \
- (((glm::uint32)(glm::uint8)(ch1) << 8) & 0x0000FF00) | \
- ((glm::uint32)(glm::uint8)(ch0) & 0x000000FF) )
-
- enum DXGI_FORMAT
- {
- DXGI_FORMAT_UNKNOWN = 0,
- DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
- DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
- DXGI_FORMAT_R32G32B32A32_UINT = 3,
- DXGI_FORMAT_R32G32B32A32_SINT = 4,
- DXGI_FORMAT_R32G32B32_TYPELESS = 5,
- DXGI_FORMAT_R32G32B32_FLOAT = 6,
- DXGI_FORMAT_R32G32B32_UINT = 7,
- DXGI_FORMAT_R32G32B32_SINT = 8,
- DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
- DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
- DXGI_FORMAT_R16G16B16A16_UNORM = 11,
- DXGI_FORMAT_R16G16B16A16_UINT = 12,
- DXGI_FORMAT_R16G16B16A16_SNORM = 13,
- DXGI_FORMAT_R16G16B16A16_SINT = 14,
- DXGI_FORMAT_R32G32_TYPELESS = 15,
- DXGI_FORMAT_R32G32_FLOAT = 16,
- DXGI_FORMAT_R32G32_UINT = 17,
- DXGI_FORMAT_R32G32_SINT = 18,
- DXGI_FORMAT_R32G8X24_TYPELESS = 19,
- DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
- DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
- DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
- DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
- DXGI_FORMAT_R10G10B10A2_UNORM = 24,
- DXGI_FORMAT_R10G10B10A2_UINT = 25,
- DXGI_FORMAT_R11G11B10_FLOAT = 26,
- DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
- DXGI_FORMAT_R8G8B8A8_UNORM = 28,
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
- DXGI_FORMAT_R8G8B8A8_UINT = 30,
- DXGI_FORMAT_R8G8B8A8_SNORM = 31,
- DXGI_FORMAT_R8G8B8A8_SINT = 32,
- DXGI_FORMAT_R16G16_TYPELESS = 33,
- DXGI_FORMAT_R16G16_FLOAT = 34,
- DXGI_FORMAT_R16G16_UNORM = 35,
- DXGI_FORMAT_R16G16_UINT = 36,
- DXGI_FORMAT_R16G16_SNORM = 37,
- DXGI_FORMAT_R16G16_SINT = 38,
- DXGI_FORMAT_R32_TYPELESS = 39,
- DXGI_FORMAT_D32_FLOAT = 40,
- DXGI_FORMAT_R32_FLOAT = 41,
- DXGI_FORMAT_R32_UINT = 42,
- DXGI_FORMAT_R32_SINT = 43,
- DXGI_FORMAT_R24G8_TYPELESS = 44,
- DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
- DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
- DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
- DXGI_FORMAT_R8G8_TYPELESS = 48,
- DXGI_FORMAT_R8G8_UNORM = 49,
- DXGI_FORMAT_R8G8_UINT = 50,
- DXGI_FORMAT_R8G8_SNORM = 51,
- DXGI_FORMAT_R8G8_SINT = 52,
- DXGI_FORMAT_R16_TYPELESS = 53,
- DXGI_FORMAT_R16_FLOAT = 54,
- DXGI_FORMAT_D16_UNORM = 55,
- DXGI_FORMAT_R16_UNORM = 56,
- DXGI_FORMAT_R16_UINT = 57,
- DXGI_FORMAT_R16_SNORM = 58,
- DXGI_FORMAT_R16_SINT = 59,
- DXGI_FORMAT_R8_TYPELESS = 60,
- DXGI_FORMAT_R8_UNORM = 61,
- DXGI_FORMAT_R8_UINT = 62,
- DXGI_FORMAT_R8_SNORM = 63,
- DXGI_FORMAT_R8_SINT = 64,
- DXGI_FORMAT_A8_UNORM = 65,
- DXGI_FORMAT_R1_UNORM = 66,
- DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
- DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
- DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
- DXGI_FORMAT_BC1_TYPELESS = 70,
- DXGI_FORMAT_BC1_UNORM = 71,
- DXGI_FORMAT_BC1_UNORM_SRGB = 72,
- DXGI_FORMAT_BC2_TYPELESS = 73,
- DXGI_FORMAT_BC2_UNORM = 74,
- DXGI_FORMAT_BC2_UNORM_SRGB = 75,
- DXGI_FORMAT_BC3_TYPELESS = 76,
- DXGI_FORMAT_BC3_UNORM = 77,
- DXGI_FORMAT_BC3_UNORM_SRGB = 78,
- DXGI_FORMAT_BC4_TYPELESS = 79,
- DXGI_FORMAT_BC4_UNORM = 80,
- DXGI_FORMAT_BC4_SNORM = 81,
- DXGI_FORMAT_BC5_TYPELESS = 82,
- DXGI_FORMAT_BC5_UNORM = 83,
- DXGI_FORMAT_BC5_SNORM = 84,
- DXGI_FORMAT_B5G6R5_UNORM = 85,
- DXGI_FORMAT_B5G5R5A1_UNORM = 86,
- DXGI_FORMAT_B8G8R8A8_UNORM = 87,
- DXGI_FORMAT_B8G8R8X8_UNORM = 88,
- DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
- DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
- DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
- DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
- DXGI_FORMAT_BC6H_TYPELESS = 94,
- DXGI_FORMAT_BC6H_UF16 = 95,
- DXGI_FORMAT_BC6H_SF16 = 96,
- DXGI_FORMAT_BC7_TYPELESS = 97,
- DXGI_FORMAT_BC7_UNORM = 98,
- DXGI_FORMAT_BC7_UNORM_SRGB = 99,
- DXGI_FORMAT_FORCE_UINT = 0xffffffffUL
- };
-
- enum D3D10_RESOURCE_DIMENSION
- {
- D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
- D3D10_RESOURCE_DIMENSION_BUFFER = 1,
- D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
- D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
- D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
- };
-
- enum D3D10_RESOURCE_MISC_FLAG
- {
- D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
- D3D10_RESOURCE_MISC_SHARED = 0x2L,
- D3D10_RESOURCE_MISC_TEXTURECUBE = 0x4L,
- D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x10L,
- D3D10_RESOURCE_MISC_GDI_COMPATIBLE = 0x20L
- };
-
- enum dds_format
- {
- GLI_D3DFMT_R8G8B8 = 20,
- GLI_D3DFMT_A8R8G8B8 = 21,
- GLI_D3DFMT_X8R8G8B8 = 22,
- GLI_D3DFMT_A8 = 28,
- GLI_D3DFMT_A2B10G10R10 = 31,
- GLI_D3DFMT_A8B8G8R8 = 32,
- GLI_D3DFMT_X8B8G8R8 = 33,
- GLI_D3DFMT_G16R16 = 34,
- GLI_D3DFMT_A2R10G10B10 = 35,
- GLI_D3DFMT_A16B16G16R16 = 36,
-
- GLI_D3DFMT_L8 = 50,
- GLI_D3DFMT_A8L8 = 51,
-
- GLI_D3DFMT_DXT1 = GLI_MAKEFOURCC('D', 'X', 'T', '1'),
- GLI_D3DFMT_DXT2 = GLI_MAKEFOURCC('D', 'X', 'T', '2'),
- GLI_D3DFMT_DXT3 = GLI_MAKEFOURCC('D', 'X', 'T', '3'),
- GLI_D3DFMT_DXT4 = GLI_MAKEFOURCC('D', 'X', 'T', '4'),
- GLI_D3DFMT_DXT5 = GLI_MAKEFOURCC('D', 'X', 'T', '5'),
- GLI_D3DFMT_DX10 = GLI_MAKEFOURCC('D', 'X', '1', '0'),
-
- GLI_D3DFMT_D32 = 71,
- GLI_D3DFMT_D24S8 = 75,
- GLI_D3DFMT_D24X8 = 77,
- GLI_D3DFMT_D16 = 80,
- GLI_D3DFMT_L16 = 81,
- GLI_D3DFMT_D32F_LOCKABLE = 82,
- GLI_D3DFMT_D24FS8 = 83,
-
- GLI_D3DFMT_R16F = 111,
- GLI_D3DFMT_G16R16F = 112,
- GLI_D3DFMT_A16B16G16R16F = 113,
-
- GLI_D3DFMT_R32F = 114,
- GLI_D3DFMT_G32R32F = 115,
- GLI_D3DFMT_A32B32G32R32F = 116
- };
-
- struct ddsHeader10
- {
- DXGI_FORMAT dxgiFormat;
- D3D10_RESOURCE_DIMENSION resourceDimension;
- glm::uint32 miscFlag; // D3D10_RESOURCE_MISC_GENERATE_MIPS
- glm::uint32 arraySize;
- glm::uint32 reserved;
- };
-
-
- inline gli::format format_fourcc2gli_cast(glm::uint32 const & FourCC)
- {
- switch(FourCC)
- {
- case loader_dds9::detail::GLI_FOURCC_DXT1:
- return DXT1;
- case loader_dds9::detail::GLI_FOURCC_DXT2:
- case loader_dds9::detail::GLI_FOURCC_DXT3:
- return DXT3;
- case loader_dds9::detail::GLI_FOURCC_DXT4:
- case loader_dds9::detail::GLI_FOURCC_DXT5:
- return DXT5;
- case loader_dds9::detail::GLI_FOURCC_R16F:
- return R16F;
- case loader_dds9::detail::GLI_FOURCC_G16R16F:
- return RG16F;
- case loader_dds9::detail::GLI_FOURCC_A16B16G16R16F:
- return RGBA16F;
- case loader_dds9::detail::GLI_FOURCC_R32F:
- return R32F;
- case loader_dds9::detail::GLI_FOURCC_G32R32F:
- return RG32F;
- case loader_dds9::detail::GLI_FOURCC_A32B32G32R32F:
- return RGBA32F;
-
- case loader_dds9::detail::GLI_D3DFMT_R8G8B8:
- return RGB8U;
- case loader_dds9::detail::GLI_D3DFMT_A8R8G8B8:
- case loader_dds9::detail::GLI_D3DFMT_X8R8G8B8:
- case loader_dds9::detail::GLI_D3DFMT_A8B8G8R8:
- case loader_dds9::detail::GLI_D3DFMT_X8B8G8R8:
- return RGBA8U;
- case loader_dds9::detail::GLI_D3DFMT_R5G6B5:
- return R5G6B5;
- case loader_dds9::detail::GLI_D3DFMT_A4R4G4B4:
- case loader_dds9::detail::GLI_D3DFMT_X4R4G4B4:
- return RGBA4;
- case loader_dds9::detail::GLI_D3DFMT_G16R16:
- return RG16U;
- case loader_dds9::detail::GLI_D3DFMT_A16B16G16R16:
- return RGBA16U;
- case loader_dds9::detail::GLI_D3DFMT_A2R10G10B10:
- case loader_dds9::detail::GLI_D3DFMT_A2B10G10R10:
- return RGB10A2;
- default:
- assert(0);
- return FORMAT_NULL;
- }
- }
-
- inline DXGI_FORMAT format_gli2dds_cast(gli::format const & Format)
- {
- DXGI_FORMAT Cast[] =
- {
- DXGI_FORMAT_UNKNOWN, //FORMAT_NULL,
-
- // Unsigned integer formats
- DXGI_FORMAT_R8_UINT, //R8U,
- DXGI_FORMAT_R8G8_UINT, //RG8U,
- DXGI_FORMAT_UNKNOWN, //RGB8U,
- DXGI_FORMAT_R8G8B8A8_UINT, //RGBA8U,
-
- DXGI_FORMAT_R16_UINT, //R16U,
- DXGI_FORMAT_R16G16_UINT, //RG16U,
- DXGI_FORMAT_UNKNOWN, //RGB16U,
- DXGI_FORMAT_R16G16B16A16_UINT, //RGBA16U,
-
- DXGI_FORMAT_R32_UINT, //R32U,
- DXGI_FORMAT_R32G32_UINT, //RG32U,
- DXGI_FORMAT_R32G32B32_UINT, //RGB32U,
- DXGI_FORMAT_R32G32B32A32_UINT, //RGBA32U,
-
- // Signed integer formats
- DXGI_FORMAT_R8_SINT, //R8I,
- DXGI_FORMAT_R8G8_SINT, //RG8I,
- DXGI_FORMAT_UNKNOWN, //RGB8I,
- DXGI_FORMAT_R8G8B8A8_SINT, //RGBA8I,
-
- DXGI_FORMAT_R16_SINT, //R16I,
- DXGI_FORMAT_R16G16_SINT, //RG16I,
- DXGI_FORMAT_UNKNOWN, //RGB16I,
- DXGI_FORMAT_R16G16B16A16_SINT, //RGBA16I,
-
- DXGI_FORMAT_R32_SINT, //R32I,
- DXGI_FORMAT_R32G32_SINT, //RG32I,
- DXGI_FORMAT_R32G32B32_SINT, //RGB32I,
- DXGI_FORMAT_R32G32B32A32_SINT, //RGBA32I,
-
- // Floating formats
- DXGI_FORMAT_R16_FLOAT, //R16F,
- DXGI_FORMAT_R16G16_FLOAT, //RG16F,
- DXGI_FORMAT_UNKNOWN, //RGB16F,
- DXGI_FORMAT_R16G16B16A16_FLOAT, //RGBA16F,
-
- DXGI_FORMAT_R32_FLOAT, //R32F,
- DXGI_FORMAT_R32G32_FLOAT, //RG32F,
- DXGI_FORMAT_R32G32B32_FLOAT, //RGB32F,
- DXGI_FORMAT_R32G32B32A32_FLOAT, //RGBA32F,
-
- // Packed formats
- DXGI_FORMAT_UNKNOWN, //RGBE8,
- DXGI_FORMAT_R9G9B9E5_SHAREDEXP, //RGB9E5,
- DXGI_FORMAT_R11G11B10_FLOAT,
- DXGI_FORMAT_B5G6R5_UNORM, //R5G6B5,
- DXGI_FORMAT_UNKNOWN, //RGBA4,
- DXGI_FORMAT_R10G10B10A2_TYPELESS, //RGB10A2,
-
- // Depth formats
- DXGI_FORMAT_D16_UNORM, //D16,
- DXGI_FORMAT_D24_UNORM_S8_UINT, //D24X8,
- DXGI_FORMAT_D24_UNORM_S8_UINT, //D24S8,
- DXGI_FORMAT_D32_FLOAT, //D32F,
- DXGI_FORMAT_D32_FLOAT_S8X24_UINT, //D32FS8X24,
-
- // Compressed formats
- DXGI_FORMAT_BC1_UNORM, //DXT1,
- DXGI_FORMAT_BC2_UNORM, //DXT3,
- DXGI_FORMAT_BC3_UNORM, //DXT5,
- DXGI_FORMAT_BC4_UNORM, //ATI1N_UNORM,
- DXGI_FORMAT_BC4_SNORM, //ATI1N_SNORM,
- DXGI_FORMAT_BC5_UNORM, //ATI2N_UNORM,
- DXGI_FORMAT_BC5_SNORM, //ATI2N_SNORM,
- DXGI_FORMAT_BC6H_UF16, //BP_FLOAT,
- DXGI_FORMAT_BC6H_SF16, //BP_FLOAT,
- DXGI_FORMAT_BC7_UNORM //BP,
- };
-
- return Cast[Format];
- }
-
- inline gli::format format_dds2gli_cast(DXGI_FORMAT const & Format)
- {
- gli::format Cast[] =
- {
- gli::FORMAT_NULL, //DXGI_FORMAT_UNKNOWN = 0,
- gli::RGBA32U, //DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
- gli::RGBA32F, //DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
- gli::RGBA32U, //DXGI_FORMAT_R32G32B32A32_UINT = 3,
- gli::RGBA32I, //DXGI_FORMAT_R32G32B32A32_SINT = 4,
- gli::RGB32U, //DXGI_FORMAT_R32G32B32_TYPELESS = 5,
- gli::RGB32F, //DXGI_FORMAT_R32G32B32_FLOAT = 6,
- gli::RGB32U, //DXGI_FORMAT_R32G32B32_UINT = 7,
- gli::RGB32I, //DXGI_FORMAT_R32G32B32_SINT = 8,
- gli::RGBA16U, //DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
- gli::RGBA16F, //DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
- gli::RGBA16U, //DXGI_FORMAT_R16G16B16A16_UNORM = 11,
- gli::RGBA16I, //DXGI_FORMAT_R16G16B16A16_UINT = 12,
- gli::RGBA16I, //DXGI_FORMAT_R16G16B16A16_SNORM = 13,
- gli::RGBA16I, //DXGI_FORMAT_R16G16B16A16_SINT = 14,
- gli::RG32U, //DXGI_FORMAT_R32G32_TYPELESS = 15,
- gli::RG32F, //DXGI_FORMAT_R32G32_FLOAT = 16,
- gli::RG32U, //DXGI_FORMAT_R32G32_UINT = 17,
- gli::RG32I, //DXGI_FORMAT_R32G32_SINT = 18,
- gli::FORMAT_NULL, //DXGI_FORMAT_R32G8X24_TYPELESS = 19,
- gli::D32FS8X24, //DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
- gli::FORMAT_NULL, //DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
- gli::FORMAT_NULL, //DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
- gli::RGB10A2, //DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
- gli::RGB10A2, //DXGI_FORMAT_R10G10B10A2_UNORM = 24,
- gli::RGB10A2, //DXGI_FORMAT_R10G10B10A2_UINT = 25,
- gli::RG11B10F, //DXGI_FORMAT_R11G11B10_FLOAT = 26,
- gli::RGBA8U, //DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
- gli::RGBA8U, //DXGI_FORMAT_R8G8B8A8_UNORM = 28,
- gli::RGBA8U, //DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
- gli::RGBA8U, //DXGI_FORMAT_R8G8B8A8_UINT = 30,
- gli::RGBA8I, //DXGI_FORMAT_R8G8B8A8_SNORM = 31,
- gli::RGBA8I, //DXGI_FORMAT_R8G8B8A8_SINT = 32,
- gli::RG16U, //DXGI_FORMAT_R16G16_TYPELESS = 33,
- gli::RG16F, //DXGI_FORMAT_R16G16_FLOAT = 34,
- gli::RG16U, //DXGI_FORMAT_R16G16_UNORM = 35,
- gli::RG16U, //DXGI_FORMAT_R16G16_UINT = 36,
- gli::RG16I, //DXGI_FORMAT_R16G16_SNORM = 37,
- gli::RG16I, //DXGI_FORMAT_R16G16_SINT = 38,
- gli::R32F, //DXGI_FORMAT_R32_TYPELESS = 39,
- gli::D32F, //DXGI_FORMAT_D32_FLOAT = 40,
- gli::R32F, //DXGI_FORMAT_R32_FLOAT = 41,
- gli::R32U, //DXGI_FORMAT_R32_UINT = 42,
- gli::R32I, //DXGI_FORMAT_R32_SINT = 43,
- gli::FORMAT_NULL, //DXGI_FORMAT_R24G8_TYPELESS = 44,
- gli::FORMAT_NULL, //DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
- gli::FORMAT_NULL, //DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
- gli::FORMAT_NULL, //DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
- gli::RG8U, //DXGI_FORMAT_R8G8_TYPELESS = 48,
- gli::RG8U, //DXGI_FORMAT_R8G8_UNORM = 49,
- gli::RG8U, //DXGI_FORMAT_R8G8_UINT = 50,
- gli::RG8I, //DXGI_FORMAT_R8G8_SNORM = 51,
- gli::RG8I, //DXGI_FORMAT_R8G8_SINT = 52,
- gli::R16U, //DXGI_FORMAT_R16_TYPELESS = 53,
- gli::R16F, //DXGI_FORMAT_R16_FLOAT = 54,
- gli::D16, //DXGI_FORMAT_D16_UNORM = 55,
- gli::R16U, //DXGI_FORMAT_R16_UNORM = 56,
- gli::R16U, //DXGI_FORMAT_R16_UINT = 57,
- gli::R16I, //DXGI_FORMAT_R16_SNORM = 58,
- gli::R16I, //DXGI_FORMAT_R16_SINT = 59,
- gli::R8U, //DXGI_FORMAT_R8_TYPELESS = 60,
- gli::R8U, //DXGI_FORMAT_R8_UNORM = 61,
- gli::R8U, //DXGI_FORMAT_R8_UINT = 62,
- gli::R8I, //DXGI_FORMAT_R8_SNORM = 63,
- gli::R8I, //DXGI_FORMAT_R8_SINT = 64,
- gli::R8U, //DXGI_FORMAT_A8_UNORM = 65,
- gli::FORMAT_NULL, //DXGI_FORMAT_R1_UNORM = 66,
- gli::RGB9E5, //DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
- gli::FORMAT_NULL, //DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
- gli::FORMAT_NULL, //DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
- gli::DXT1, //DXGI_FORMAT_BC1_TYPELESS = 70,
- gli::DXT1, //DXGI_FORMAT_BC1_UNORM = 71,
- gli::DXT1, //DXGI_FORMAT_BC1_UNORM_SRGB = 72,
- gli::DXT3, //DXGI_FORMAT_BC2_TYPELESS = 73,
- gli::DXT3, //DXGI_FORMAT_BC2_UNORM = 74,
- gli::DXT3, //DXGI_FORMAT_BC2_UNORM_SRGB = 75,
- gli::DXT5, //DXGI_FORMAT_BC3_TYPELESS = 76,
- gli::DXT5, //DXGI_FORMAT_BC3_UNORM = 77,
- gli::DXT5, //DXGI_FORMAT_BC3_UNORM_SRGB = 78,
- gli::ATI1N_UNORM, //DXGI_FORMAT_BC4_TYPELESS = 79,
- gli::ATI1N_UNORM, //DXGI_FORMAT_BC4_UNORM = 80,
- gli::ATI1N_SNORM, //DXGI_FORMAT_BC4_SNORM = 81,
- gli::ATI2N_UNORM, //DXGI_FORMAT_BC5_TYPELESS = 82,
- gli::ATI2N_UNORM, //DXGI_FORMAT_BC5_UNORM = 83,
- gli::ATI2N_SNORM, //DXGI_FORMAT_BC5_SNORM = 84,
- gli::FORMAT_NULL, //DXGI_FORMAT_B5G6R5_UNORM = 85,
- gli::FORMAT_NULL, //DXGI_FORMAT_B5G5R5A1_UNORM = 86,
- gli::RGBA8U, //DXGI_FORMAT_B8G8R8A8_UNORM = 87,
- gli::RGBA8U, //DXGI_FORMAT_B8G8R8X8_UNORM = 88,
- gli::FORMAT_NULL, //DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
- gli::RGBA8U, //DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
- gli::RGBA8U, //DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
- gli::RGBA8U, //DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
- gli::RGBA8U, //DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
- gli::BP_UF16, //DXGI_FORMAT_BC6H_TYPELESS = 94,
- gli::BP_UF16, //DXGI_FORMAT_BC6H_UF16 = 95,
- gli::BP_SF16, //DXGI_FORMAT_BC6H_SF16 = 96,
- gli::BP, //DXGI_FORMAT_BC7_TYPELESS = 97,
- gli::BP, //DXGI_FORMAT_BC7_UNORM = 98,
- gli::BP, //DXGI_FORMAT_BC7_UNORM_SRGB = 99,
- gli::R32U //DXGI_FORMAT_FORCE_UINT = 0xffffffffUL
- };
-
- return Cast[Format];
- }
-
-}//namespace detail
-
- inline texture2D loadDDS10
- (
- std::string const & Filename
- )
- {
- std::ifstream FileIn(Filename.c_str(), std::ios::in | std::ios::binary);
- if(FileIn.fail())
- return texture2D();
-
- loader_dds9::detail::ddsHeader HeaderDesc;
- detail::ddsHeader10 HeaderDesc10;
- char Magic[4];
-
- //* Read magic number and check if valid .dds file
- FileIn.read((char*)&Magic, sizeof(Magic));
-
- assert(strncmp(Magic, "DDS ", 4) == 0);
-
- // Get the surface descriptor
- FileIn.read((char*)&HeaderDesc, sizeof(HeaderDesc));
- if(HeaderDesc.format.flags & loader_dds9::detail::GLI_DDPF_FOURCC && HeaderDesc.format.fourCC == loader_dds9::detail::GLI_FOURCC_DX10)
- FileIn.read((char*)&HeaderDesc10, sizeof(HeaderDesc10));
-
- loader_dds9::detail::DDLoader Loader;
- if(HeaderDesc.format.fourCC == loader_dds9::detail::GLI_FOURCC_DX10)
- Loader.Format = detail::format_dds2gli_cast(HeaderDesc10.dxgiFormat);
- else if(HeaderDesc.format.flags & loader_dds9::detail::GLI_DDPF_FOURCC)
- Loader.Format = detail::format_fourcc2gli_cast(HeaderDesc.format.fourCC);
- else
- {
- switch(HeaderDesc.format.bpp)
- {
- case 8:
- Loader.Format = R8U;
- break;
- case 16:
- Loader.Format = RG8U;
- break;
- case 24:
- Loader.Format = RGB8U;
- break;
- case 32:
- Loader.Format = RGBA8U;
- break;
- }
- }
- Loader.BlockSize = size(image2D(texture2D::dimensions_type(0), Loader.Format), BLOCK_SIZE);
- Loader.BPP = size(image2D(image2D::dimensions_type(0), Loader.Format), BIT_PER_PIXEL);
-
- std::size_t Width = HeaderDesc.width;
- std::size_t Height = HeaderDesc.height;
-
- gli::format Format = Loader.Format;
-
- std::streamoff Curr = FileIn.tellg();
- FileIn.seekg(0, std::ios_base::end);
- std::streamoff End = FileIn.tellg();
- FileIn.seekg(Curr, std::ios_base::beg);
-
- std::vector<glm::byte> Data(std::size_t(End - Curr), 0);
- std::size_t Offset = 0;
-
- FileIn.read((char*)&Data[0], std::streamsize(Data.size()));
-
- //texture2D Image(glm::min(MipMapCount, Levels));//SurfaceDesc.mipMapLevels);
- std::size_t MipMapCount = (HeaderDesc.flags & loader_dds9::detail::GLI_DDSD_MIPMAPCOUNT) ? HeaderDesc.mipMapLevels : 1;
- //if(Loader.Format == DXT1 || Loader.Format == DXT3 || Loader.Format == DXT5)
- // MipMapCount -= 2;
- texture2D Image(MipMapCount);
- for(std::size_t Level = 0; Level < Image.levels() && (Width || Height); ++Level)
- {
- Width = glm::max(std::size_t(Width), std::size_t(1));
- Height = glm::max(std::size_t(Height), std::size_t(1));
-
- std::size_t MipmapSize = 0;
- if((Loader.BlockSize << 3) > Loader.BPP)
- MipmapSize = ((Width + 3) >> 2) * ((Height + 3) >> 2) * Loader.BlockSize;
- else
- MipmapSize = Width * Height * Loader.BlockSize;
- std::vector<glm::byte> MipmapData(MipmapSize, 0);
-
- memcpy(&MipmapData[0], &Data[0] + Offset, MipmapSize);
-
- image2D::dimensions_type Dimensions(Width, Height);
- Image[Level] = image2D(Dimensions, Format, MipmapData);
-
- Offset += MipmapSize;
- Width >>= 1;
- Height >>= 1;
- }
-
- return Image;
- }
-
- inline void saveDDS10
- (
- gli::texture2D const & Image,
- std::string const & Filename
- )
- {
- std::ofstream FileOut(Filename.c_str(), std::ios::out | std::ios::binary);
- if (!FileOut)
- return;
-
- char const * Magic = "DDS ";
- FileOut.write((char*)Magic, sizeof(char) * 4);
-
- glm::uint32 Caps = loader_dds9::detail::GLI_DDSD_CAPS | loader_dds9::detail::GLI_DDSD_HEIGHT | loader_dds9::detail::GLI_DDSD_WIDTH | loader_dds9::detail::GLI_DDSD_PIXELFORMAT;
-
- loader_dds9::detail::ddsHeader HeaderDesc;
- HeaderDesc.size = sizeof(loader_dds9::detail::ddsHeader);
- HeaderDesc.flags = Caps | (loader_dds9::detail::isCompressed(Image) ? loader_dds9::detail::GLI_DDSD_LINEARSIZE : loader_dds9::detail::GLI_DDSD_PITCH) | (Image.levels() > 1 ? loader_dds9::detail::GLI_DDSD_MIPMAPCOUNT : 0); //659463;
- HeaderDesc.width = Image[0].dimensions().x;
- HeaderDesc.height = Image[0].dimensions().y;
- HeaderDesc.pitch = loader_dds9::detail::isCompressed(Image) ? size(Image, LINEAR_SIZE) : 32;
- HeaderDesc.depth = 0;
- HeaderDesc.mipMapLevels = glm::uint32(Image.levels());
- HeaderDesc.format.size = sizeof(loader_dds9::detail::ddsPixelFormat);
- HeaderDesc.format.flags = loader_dds9::detail::GLI_DDPF_FOURCC;
- HeaderDesc.format.fourCC = loader_dds9::detail::GLI_FOURCC_DX10;
- HeaderDesc.format.bpp = size(Image, BIT_PER_PIXEL);
- HeaderDesc.format.redMask = 0;
- HeaderDesc.format.greenMask = 0;
- HeaderDesc.format.blueMask = 0;
- HeaderDesc.format.alphaMask = 0;
- HeaderDesc.surfaceFlags = loader_dds9::detail::GLI_DDSCAPS_TEXTURE | (Image.levels() > 1 ? loader_dds9::detail::GLI_DDSCAPS_MIPMAP : 0);
- HeaderDesc.cubemapFlags = 0;
- FileOut.write((char*)&HeaderDesc, sizeof(HeaderDesc));
-
- detail::ddsHeader10 HeaderDesc10;
- HeaderDesc10.arraySize = 1;
- HeaderDesc10.resourceDimension = detail::D3D10_RESOURCE_DIMENSION_TEXTURE2D;
- HeaderDesc10.miscFlag = 0;//Image.levels() > 0 ? detail::D3D10_RESOURCE_MISC_GENERATE_MIPS : 0;
- HeaderDesc10.dxgiFormat = detail::format_gli2dds_cast(Image.format());
- HeaderDesc10.reserved = 0;
-
- FileOut.write((char*)&HeaderDesc10, sizeof(HeaderDesc10));
-
- for(gli::texture2D::level_type Level = 0; Level < Image.levels(); ++Level)
- {
- gli::texture2D::size_type ImageSize = size(Image[Level], gli::LINEAR_SIZE);
- FileOut.write((char*)(Image[Level].data()), ImageSize);
- }
-
- if(FileOut.fail() || FileOut.bad())
- return;
-
- FileOut.close ();
- }
-
-}//namespace loader_dds10
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/loader_dds9.hpp b/3rdparty/glm/test/external/gli/gtx/loader_dds9.hpp
deleted file mode 100644
index 299e1d14864..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader_dds9.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader_dds9.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_LOADER_DDS9_INCLUDED
-#define GLI_GTX_LOADER_DDS9_INCLUDED
-
-#include "../gli.hpp"
-#include <fstream>
-
-namespace gli{
-namespace gtx{
-namespace loader_dds9
-{
- texture2D loadDDS9(
- std::string const & Filename);
-
- void saveDDS9(
- texture2D const & Texture,
- std::string const & Filename);
-
- void saveTextureCubeDDS9(
- textureCube const & Texture,
- std::string const & Filename);
-
-}//namespace loader_dds9
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::loader_dds9;}
-
-#include "loader_dds9.inl"
-
-#endif//GLI_GTX_LOADER_DDS9_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/loader_dds9.inl b/3rdparty/glm/test/external/gli/gtx/loader_dds9.inl
deleted file mode 100644
index 23a0f332a45..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader_dds9.inl
+++ /dev/null
@@ -1,790 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader_dds9.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace loader_dds9{
-namespace detail
-{
- // DDS Documentation
- /*
- http://msdn.microsoft.com/en-us/library/bb943991(VS.85).aspx#File_Layout1
- http://msdn.microsoft.com/en-us/library/bb943992.aspx
- */
-
- #define GLI_MAKEFOURCC(ch0, ch1, ch2, ch3) \
- (glm::uint32)( \
- (((glm::uint32)(glm::uint8)(ch3) << 24) & 0xFF000000) | \
- (((glm::uint32)(glm::uint8)(ch2) << 16) & 0x00FF0000) | \
- (((glm::uint32)(glm::uint8)(ch1) << 8) & 0x0000FF00) | \
- ((glm::uint32)(glm::uint8)(ch0) & 0x000000FF) )
-
- //enum dds_format
- //{
- // GLI_D3DFMT_R8G8B8 = 20,
- // GLI_D3DFMT_A8R8G8B8 = 21,
- // GLI_D3DFMT_X8R8G8B8 = 22,
- // GLI_D3DFMT_A8 = 28,
- // GLI_D3DFMT_A2B10G10R10 = 31,
- // GLI_D3DFMT_A8B8G8R8 = 32,
- // GLI_D3DFMT_X8B8G8R8 = 33,
- // GLI_D3DFMT_G16R16 = 34,
- // GLI_D3DFMT_A2R10G10B10 = 35,
- // GLI_D3DFMT_A16B16G16R16 = 36,
-
- // GLI_D3DFMT_L8 = 50,
- // GLI_D3DFMT_A8L8 = 51,
-
- // GLI_D3DFMT_DXT1 = GLI_MAKEFOURCC('D', 'X', 'T', '1'),
- // GLI_D3DFMT_DXT2 = GLI_MAKEFOURCC('D', 'X', 'T', '2'),
- // GLI_D3DFMT_DXT3 = GLI_MAKEFOURCC('D', 'X', 'T', '3'),
- // GLI_D3DFMT_DXT4 = GLI_MAKEFOURCC('D', 'X', 'T', '4'),
- // GLI_D3DFMT_DXT5 = GLI_MAKEFOURCC('D', 'X', 'T', '5'),
- // GLI_D3DFMT_DX10 = GLI_MAKEFOURCC('D', 'X', '1', '0'),
-
- // GLI_D3DFMT_D32 = 71,
- // GLI_D3DFMT_D24S8 = 75,
- // GLI_D3DFMT_D24X8 = 77,
- // GLI_D3DFMT_D16 = 80,
- // GLI_D3DFMT_L16 = 81,
- // GLI_D3DFMT_D32F_LOCKABLE = 82,
- // GLI_D3DFMT_D24FS8 = 83,
-
- // GLI_D3DFMT_R16F = 111,
- // GLI_D3DFMT_G16R16F = 112,
- // GLI_D3DFMT_A16B16G16R16F = 113,
-
- // GLI_D3DFMT_R32F = 114,
- // GLI_D3DFMT_G32R32F = 115,
- // GLI_D3DFMT_A32B32G32R32F = 116
- //};
-
- enum ddsCubemapflag
- {
- GLI_DDSCAPS2_CUBEMAP = 0x00000200,
- GLI_DDSCAPS2_CUBEMAP_POSITIVEX = 0x00000400,
- GLI_DDSCAPS2_CUBEMAP_NEGATIVEX = 0x00000800,
- GLI_DDSCAPS2_CUBEMAP_POSITIVEY = 0x00001000,
- GLI_DDSCAPS2_CUBEMAP_NEGATIVEY = 0x00002000,
- GLI_DDSCAPS2_CUBEMAP_POSITIVEZ = 0x00004000,
- GLI_DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x00008000,
- GLI_DDSCAPS2_VOLUME = 0x00200000
- };
-
- enum ddsSurfaceflag
- {
- GLI_DDSCAPS_COMPLEX = 0x00000008,
- GLI_DDSCAPS_MIPMAP = 0x00400000,
- GLI_DDSCAPS_TEXTURE = 0x00001000
- };
-
- struct ddsPixelFormat
- {
- glm::uint32 size; // 32
- glm::uint32 flags;
- glm::uint32 fourCC;
- glm::uint32 bpp;
- glm::uint32 redMask;
- glm::uint32 greenMask;
- glm::uint32 blueMask;
- glm::uint32 alphaMask;
- };
-
- struct ddsHeader
- {
- glm::uint32 size;
- glm::uint32 flags;
- glm::uint32 height;
- glm::uint32 width;
- glm::uint32 pitch;
- glm::uint32 depth;
- glm::uint32 mipMapLevels;
- glm::uint32 reserved1[11];
- ddsPixelFormat format;
- glm::uint32 surfaceFlags;
- glm::uint32 cubemapFlags;
- glm::uint32 reserved2[3];
- };
-
- glm::uint32 const GLI_D3DFMT_R8G8B8 = 20;
- glm::uint32 const GLI_D3DFMT_A8R8G8B8 = 21;
- glm::uint32 const GLI_D3DFMT_X8R8G8B8 = 22;
- glm::uint32 const GLI_D3DFMT_R5G6B5 = 23;
- glm::uint32 const GLI_D3DFMT_X1R5G5B5 = 24;
- glm::uint32 const GLI_D3DFMT_A1R5G5B5 = 25;
- glm::uint32 const GLI_D3DFMT_A4R4G4B4 = 26;
- glm::uint32 const GLI_D3DFMT_X4R4G4B4 = 30;
- glm::uint32 const GLI_D3DFMT_A2B10G10R10 = 31;
- glm::uint32 const GLI_D3DFMT_A8B8G8R8 = 32;
- glm::uint32 const GLI_D3DFMT_X8B8G8R8 = 33;
- glm::uint32 const GLI_D3DFMT_G16R16 = 34;
- glm::uint32 const GLI_D3DFMT_A2R10G10B10 = 35;
- glm::uint32 const GLI_D3DFMT_A16B16G16R16 = 36;
-
-
- glm::uint32 const GLI_FOURCC_DXT1 = GLI_MAKEFOURCC('D', 'X', 'T', '1');
- glm::uint32 const GLI_FOURCC_DXT2 = GLI_MAKEFOURCC('D', 'X', 'T', '2');
- glm::uint32 const GLI_FOURCC_DXT3 = GLI_MAKEFOURCC('D', 'X', 'T', '3');
- glm::uint32 const GLI_FOURCC_DXT4 = GLI_MAKEFOURCC('D', 'X', 'T', '4');
- glm::uint32 const GLI_FOURCC_DXT5 = GLI_MAKEFOURCC('D', 'X', 'T', '5');
- glm::uint32 const GLI_FOURCC_ATI1 = GLI_MAKEFOURCC('A', 'T', 'I', '1'); // ATI1
- glm::uint32 const GLI_FOURCC_ATI2 = GLI_MAKEFOURCC('A', 'T', 'I', '2'); // ATI2 (AKA 3Dc)
- glm::uint32 const GLI_FOURCC_DX10 = GLI_MAKEFOURCC('D', 'X', '1', '0');
- glm::uint32 const GLI_FOURCC_BC4U = GLI_MAKEFOURCC('B', 'C', '4', 'U');
- glm::uint32 const GLI_FOURCC_BC4S = GLI_MAKEFOURCC('B', 'C', '4', 'S');
- glm::uint32 const GLI_FOURCC_BC5U = GLI_MAKEFOURCC('B', 'C', '5', 'U');
- glm::uint32 const GLI_FOURCC_BC5S = GLI_MAKEFOURCC('B', 'C', '5', 'S');
- glm::uint32 const GLI_FOURCC_BC6H = GLI_MAKEFOURCC('B', 'C', '6', 'H');
- glm::uint32 const GLI_FOURCC_BC7 = GLI_MAKEFOURCC('B', 'C', '7', 'U');
-
- glm::uint32 const GLI_FOURCC_R16F = 0x0000006f; // 16-bit float Red
- glm::uint32 const GLI_FOURCC_G16R16F = 0x00000070; // 16-bit float Red/Green
- glm::uint32 const GLI_FOURCC_A16B16G16R16F = 0x00000071; // 16-bit float RGBA
- glm::uint32 const GLI_FOURCC_R32F = 0x00000072; // 32-bit float Red
- glm::uint32 const GLI_FOURCC_G32R32F = 0x00000073; // 32-bit float Red/Green
- glm::uint32 const GLI_FOURCC_A32B32G32R32F = 0x00000074; // 32-bit float RGBA
-
- glm::uint32 const GLI_DDPF_ALPHAPIXELS = 0x00000001; // The surface has alpha channel information in the pixel format.
- glm::uint32 const GLI_DDPF_ALPHA = 0x00000002; // The pixel format contains alpha only information
- glm::uint32 const GLI_DDPF_FOURCC = 0x00000004; // The FourCC code is valid.
- glm::uint32 const GLI_DDPF_RGB = 0x00000040; // The RGB data in the pixel format structure is valid.
- //glm::uint32 const GLI_DDPF_COMPRESSED = 0x00000080; // The surface will accept pixel data in the format specified and compress it during the write.
- //glm::uint32 const GLI_DDPF_RGBTOYUV = 0x00000100; // The surface will accept RGB data and translate it during the write to YUV data.
- glm::uint32 const GLI_DDPF_YUV = 0x00000200; // Pixel format is YUV - YUV data in pixel format struct is valid.
- //glm::uint32 const GLI_DDPF_ZBUFFER = 0x00000400; // Pixel format is a z buffer only surface
- //glm::uint32 const GLI_DDPF_ZPIXELS = 0x00002000; // The surface contains Z information in the pixels
- //glm::uint32 const GLI_DDPF_STENCILBUFFER = 0x00004000; // The surface contains stencil information along with Z
- //glm::uint32 const GLI_DDPF_ALPHAPREMULT = 0x00008000; // Premultiplied alpha format -- the color components have been premultiplied by the alpha component.
- glm::uint32 const GLI_DDPF_LUMINANCE = 0x00020000; // Luminance data in the pixel format is valid.
- //glm::uint32 const GLI_DDPF_BUMPLUMINANCE = 0x00040000; // Use this flag for luminance-only or luminance+alpha surfaces, the bit depth is then ddpf.dwLuminanceBitCount.
- //glm::uint32 const GLI_DDPF_BUMPDUDV = 0x00080000; // Bump map dUdV data in the pixel format is valid.
-
- glm::uint32 const GLI_DDSD_CAPS = 0x00000001;
- glm::uint32 const GLI_DDSD_HEIGHT = 0x00000002;
- glm::uint32 const GLI_DDSD_WIDTH = 0x00000004;
- glm::uint32 const GLI_DDSD_PITCH = 0x00000008;
- glm::uint32 const GLI_DDSD_PIXELFORMAT = 0x00001000;
- glm::uint32 const GLI_DDSD_MIPMAPCOUNT = 0x00020000;
- glm::uint32 const GLI_DDSD_LINEARSIZE = 0x00080000;
- glm::uint32 const GLI_DDSD_DEPTH = 0x00800000;
-
- struct DDLoader
- {
- glm::uint32 BlockSize;
- glm::uint32 BPP;
- gli::format Format;
- };
-
- enum format_type
- {
- FORMAT_TYPE_NULL,
- FORMAT_RGBA,
- FORMAT_FOURCC
- };
-
- inline glm::uint32 getFormatFourCC(gli::texture2D const & Image)
- {
- switch(Image.format())
- {
- default:
- return 0;
- case DXT1:
- return GLI_FOURCC_DXT1;
- case DXT3:
- return GLI_FOURCC_DXT3;
- case DXT5:
- return GLI_FOURCC_DXT5;
- case ATI1N_UNORM:
- case ATI1N_SNORM:
- case ATI2N_UNORM:
- case ATI2N_SNORM:
- case BP_UF16:
- case BP_SF16:
- case BP:
- return GLI_FOURCC_DX10;
- case R16F:
- return GLI_FOURCC_R16F;
- case RG16F:
- return GLI_FOURCC_G16R16F;
- case RGBA16F:
- return GLI_FOURCC_A16B16G16R16F;
- case R32F:
- return GLI_FOURCC_R32F;
- case RG32F:
- return GLI_FOURCC_G32R32F;
- case RGBA32F:
- return GLI_FOURCC_A32B32G32R32F;
- }
- }
-
- inline glm::uint32 getFormatBlockSize(gli::texture2D const & Image)
- {
- switch(Image.format())
- {
- default:
- return 0;
- case DXT1:
- return 8;
- case DXT3:
- return 16;
- case DXT5:
- return 16;
- case ATI1N_UNORM:
- case ATI1N_SNORM:
- return 16;
- case ATI2N_UNORM:
- case ATI2N_SNORM:
- return 32;
- case BP_UF16:
- case BP_SF16:
- return 32;
- case BP:
- return 32;
- case R16F:
- return 2;
- case RG16F:
- return 4;
- case RGBA16F:
- return 8;
- case R32F:
- return 4;
- case RG32F:
- return 8;
- case RGBA32F:
- return 16;
- }
- }
-
- inline glm::uint32 getFormatFlags(gli::texture2D const & Image)
- {
- glm::uint32 Result = 0;
-
- switch(Image.format())
- {
- default:
- break;
- case R8U:
- case RG8U:
- case RGB8U:
- case RGBA8U:
- case R16U:
- case RG16U:
- case RGB16U:
- case RGBA16U:
- case R32U:
- case RG32U:
- case RGB32U:
- case RGBA32U:
- case R8I:
- case RG8I:
- case RGB8I:
- case RGBA8I:
- case R16I:
- case RG16I:
- case RGB16I:
- case RGBA16I:
- case R32I:
- case RG32I:
- case RGB32I:
- case RGBA32I:
- Result |= GLI_DDPF_RGB;
- break;
- case R16F:
- case RG16F:
- case RGB16F:
- case RGBA16F:
- case R32F:
- case RG32F:
- case RGB32F:
- case RGBA32F:
- case RGBE8:
- case RGB9E5:
- case RG11B10F:
- case R5G6B5:
- case RGBA4:
- case RGB10A2:
- case D16:
- case D24X8:
- case D24S8:
- case D32F:
- case D32FS8X24:
- case DXT1:
- case DXT3:
- case DXT5:
- case ATI1N_UNORM:
- case ATI1N_SNORM:
- case ATI2N_UNORM:
- case ATI2N_SNORM:
- case BP_UF16:
- case BP_SF16:
- case BP:
- Result |= GLI_DDPF_FOURCC;
- break;
- };
-
- return Result;
- }
-
- inline glm::uint32 getFormatBPP(gli::texture2D const & Image)
- {
- switch(Image.format())
- {
- default:
- return 0;
- case R8U:
- case R8I:
- return 8;
- case RG8U:
- case RG8I:
- return 16;
- case RGB8U:
- case RGB8I:
- return 24;
- case RGBA8U:
- case RGBA8I:
- return 32;
- case DXT1:
- return 4;
- case DXT3:
- return 8;
- case DXT5:
- return 8;
- case ATI1N_UNORM:
- case ATI1N_SNORM:
- return 4;
- case ATI2N_UNORM:
- case ATI2N_SNORM:
- return 8;
- case BP_UF16:
- case BP_SF16:
- return 8;
- case BP:
- return 8;
- }
- }
-
- inline bool isCompressed(gli::texture2D const & Image)
- {
- switch(Image.format())
- {
- default:
- return false;
- case DXT1:
- case DXT3:
- case DXT5:
- case ATI1N_UNORM:
- case ATI1N_SNORM:
- case ATI2N_UNORM:
- case ATI2N_SNORM:
- case BP_UF16:
- case BP_SF16:
- case BP:
- return true;
- }
- return false;
- }
-
-}//namespace detail
-
- inline texture2D loadDDS9
- (
- std::string const & Filename
- )
- {
- std::ifstream FileIn(Filename.c_str(), std::ios::in | std::ios::binary);
- if(FileIn.fail())
- return texture2D();
-
- detail::ddsHeader SurfaceDesc;
- char Magic[4];
-
- //* Read magic number and check if valid .dds file
- FileIn.read((char*)&Magic, sizeof(Magic));
-
- assert(strncmp(Magic, "DDS ", 4) == 0);
-
- // Get the surface descriptor
- FileIn.read((char*)&SurfaceDesc, sizeof(SurfaceDesc));
-
- std::size_t Width = SurfaceDesc.width;
- std::size_t Height = SurfaceDesc.height;
-
- //std::size_t Levels = glm::max(glm::highestBit(Width), glm::highestBit(Height));
-
- detail::DDLoader Loader;
- if(SurfaceDesc.format.flags & detail::GLI_DDPF_FOURCC)
- {
- switch(SurfaceDesc.format.fourCC)
- {
- case detail::GLI_FOURCC_DX10:
- assert(0);
- break;
- case detail::GLI_FOURCC_DXT1:
- Loader.BlockSize = 8;
- Loader.Format = DXT1;
- break;
- case detail::GLI_FOURCC_DXT3:
- Loader.BlockSize = 16;
- Loader.Format = DXT3;
- break;
- case detail::GLI_FOURCC_DXT5:
- Loader.BlockSize = 16;
- Loader.Format = DXT5;
- break;
- case detail::GLI_FOURCC_R16F:
- Loader.BlockSize = 2;
- Loader.Format = R16F;
- break;
- case detail::GLI_FOURCC_G16R16F:
- Loader.BlockSize = 4;
- Loader.Format = RG16F;
- break;
- case detail::GLI_FOURCC_A16B16G16R16F:
- Loader.BlockSize = 8;
- Loader.Format = RGBA16F;
- break;
- case detail::GLI_FOURCC_R32F:
- Loader.BlockSize = 4;
- Loader.Format = R32F;
- break;
- case detail::GLI_FOURCC_G32R32F:
- Loader.BlockSize = 8;
- Loader.Format = RG32F;
- break;
- case detail::GLI_FOURCC_A32B32G32R32F:
- Loader.BlockSize = 16;
- Loader.Format = RGBA32F;
- break;
-
- default:
- assert(0);
- return texture2D();
- }
- }
- else if(SurfaceDesc.format.flags & detail::GLI_DDPF_RGB)
- {
- switch(SurfaceDesc.format.bpp)
- {
- case 8:
- Loader.BlockSize = 2;
- Loader.Format = R8U;
- break;
- case 16:
- Loader.BlockSize = 2;
- Loader.Format = RG8U;
- break;
- case 24:
- Loader.BlockSize = 3;
- Loader.Format = RGB8U;
- break;
- case 32:
- Loader.BlockSize = 4;
- Loader.Format = RGBA8U;
- break;
- }
- }
- else
- {
-
- }
-
- gli::format Format = Loader.Format;
-
- std::streamoff Curr = FileIn.tellg();
- FileIn.seekg(0, std::ios_base::end);
- std::streamoff End = FileIn.tellg();
- FileIn.seekg(Curr, std::ios_base::beg);
-
- std::vector<glm::byte> Data(std::size_t(End - Curr), 0);
- std::size_t Offset = 0;
-
- FileIn.read((char*)&Data[0], std::streamsize(Data.size()));
-
- //image Image(glm::min(MipMapCount, Levels));//SurfaceDesc.mipMapLevels);
- std::size_t MipMapCount = (SurfaceDesc.flags & detail::GLI_DDSD_MIPMAPCOUNT) ? SurfaceDesc.mipMapLevels : 1;
- //if(Loader.Format == DXT1 || Loader.Format == DXT3 || Loader.Format == DXT5)
- // MipMapCount -= 2;
- texture2D Image(MipMapCount);
- for(std::size_t Level = 0; Level < Image.levels() && (Width || Height); ++Level)
- {
- Width = glm::max(std::size_t(Width), std::size_t(1));
- Height = glm::max(std::size_t(Height), std::size_t(1));
-
- std::size_t MipmapSize = 0;
- if(Loader.Format == DXT1 || Loader.Format == DXT3 || Loader.Format == DXT5)
- MipmapSize = ((Width + 3) >> 2) * ((Height + 3) >> 2) * Loader.BlockSize;
- else
- MipmapSize = Width * Height * Loader.BlockSize;
- std::vector<glm::byte> MipmapData(MipmapSize, 0);
-
- memcpy(&MipmapData[0], &Data[0] + Offset, MipmapSize);
-
- image2D::dimensions_type Dimensions(Width, Height);
- Image[Level] = image2D(Dimensions, Format, MipmapData);
-
- Offset += MipmapSize;
- Width >>= 1;
- Height >>= 1;
- }
-
- return Image;
- }
-
- inline textureCube loadTextureCubeDDS9
- (
- std::string const & Filename
- )
- {
- std::ifstream FileIn(Filename.c_str(), std::ios::in | std::ios::binary);
- if(FileIn.fail())
- return textureCube();
-
- detail::ddsHeader SurfaceDesc;
- char Magic[4];
-
- //* Read magic number and check if valid .dds file
- FileIn.read((char*)&Magic, sizeof(Magic));
-
- assert(strncmp(Magic, "DDS ", 4) == 0);
-
- // Get the surface descriptor
- FileIn.read((char*)&SurfaceDesc, sizeof(SurfaceDesc));
-
- std::size_t Width = SurfaceDesc.width;
- std::size_t Height = SurfaceDesc.height;
-
- //std::size_t Levels = glm::max(glm::highestBit(Width), glm::highestBit(Height));
-
- detail::DDLoader Loader;
- if(SurfaceDesc.format.flags & detail::GLI_DDPF_FOURCC)
- {
- switch(SurfaceDesc.format.fourCC)
- {
- case detail::GLI_FOURCC_DX10:
- assert(0);
- break;
- case detail::GLI_FOURCC_DXT1:
- Loader.BlockSize = 8;
- Loader.Format = DXT1;
- break;
- case detail::GLI_FOURCC_DXT3:
- Loader.BlockSize = 16;
- Loader.Format = DXT3;
- break;
- case detail::GLI_FOURCC_DXT5:
- Loader.BlockSize = 16;
- Loader.Format = DXT5;
- break;
- case detail::GLI_FOURCC_R16F:
- Loader.BlockSize = 2;
- Loader.Format = R16F;
- break;
- case detail::GLI_FOURCC_G16R16F:
- Loader.BlockSize = 4;
- Loader.Format = RG16F;
- break;
- case detail::GLI_FOURCC_A16B16G16R16F:
- Loader.BlockSize = 8;
- Loader.Format = RGBA16F;
- break;
- case detail::GLI_FOURCC_R32F:
- Loader.BlockSize = 4;
- Loader.Format = R32F;
- break;
- case detail::GLI_FOURCC_G32R32F:
- Loader.BlockSize = 8;
- Loader.Format = RG32F;
- break;
- case detail::GLI_FOURCC_A32B32G32R32F:
- Loader.BlockSize = 16;
- Loader.Format = RGBA32F;
- break;
-
- default:
- assert(0);
- return textureCube();
- }
- }
- else if(SurfaceDesc.format.flags & detail::GLI_DDPF_RGB)
- {
- switch(SurfaceDesc.format.bpp)
- {
- case 8:
- Loader.BlockSize = 2;
- Loader.Format = R8U;
- break;
- case 16:
- Loader.BlockSize = 2;
- Loader.Format = RG8U;
- break;
- case 24:
- Loader.BlockSize = 3;
- Loader.Format = RGB8U;
- break;
- case 32:
- Loader.BlockSize = 4;
- Loader.Format = RGBA8U;
- break;
- }
- }
- else
- {
-
- }
-
- gli::format Format = Loader.Format;
-
- std::streamoff Curr = FileIn.tellg();
- FileIn.seekg(0, std::ios_base::end);
- std::streamoff End = FileIn.tellg();
- FileIn.seekg(Curr, std::ios_base::beg);
-
- std::vector<glm::byte> Data(std::size_t(End - Curr), 0);
- std::size_t Offset = 0;
-
- FileIn.read((char*)&Data[0], std::streamsize(Data.size()));
-
- //image Image(glm::min(MipMapCount, Levels));//SurfaceDesc.mipMapLevels);
- std::size_t MipMapCount = (SurfaceDesc.flags & detail::GLI_DDSD_MIPMAPCOUNT) ? SurfaceDesc.mipMapLevels : 1;
- //if(Loader.Format == DXT1 || Loader.Format == DXT3 || Loader.Format == DXT5)
- // MipMapCount -= 2;
- textureCube Texture(MipMapCount);
-
- for(textureCube::size_type Face = 0; Face < FACE_MAX; ++Face)
- {
- Width = SurfaceDesc.width;
- Height = SurfaceDesc.height;
-
- for(textureCube::size_type Level = 0; Level < Texture.levels() && (Width || Height); ++Level)
- {
- Width = glm::max(std::size_t(Width), std::size_t(1));
- Height = glm::max(std::size_t(Height), std::size_t(1));
-
- std::size_t MipmapSize = 0;
- if(Loader.Format == DXT1 || Loader.Format == DXT3 || Loader.Format == DXT5)
- MipmapSize = ((Width + 3) >> 2) * ((Height + 3) >> 2) * Loader.BlockSize;
- else
- MipmapSize = Width * Height * Loader.BlockSize;
- std::vector<glm::byte> MipmapData(MipmapSize, 0);
-
- memcpy(&MipmapData[0], &Data[0] + Offset, MipmapSize);
-
- textureCube::dimensions_type Dimensions(Width, Height);
- Texture[textureCube::face_type(Face)][Level] = image2D(Dimensions, Format, MipmapData);
-
- Offset += MipmapSize;
- Width >>= 1;
- Height >>= 1;
- }
- }
-
- return Texture;
- }
-
- inline void saveDDS9
- (
- texture2D const & Texture,
- std::string const & Filename
- )
- {
- std::ofstream FileOut(Filename.c_str(), std::ios::out | std::ios::binary);
- if (!FileOut)
- return;
-
- char const * Magic = "DDS ";
- FileOut.write((char*)Magic, sizeof(char) * 4);
-
- glm::uint32 Caps = detail::GLI_DDSD_CAPS | detail::GLI_DDSD_HEIGHT | detail::GLI_DDSD_WIDTH | detail::GLI_DDSD_PIXELFORMAT;
-
- detail::ddsHeader SurfaceDesc;
- SurfaceDesc.size = sizeof(detail::ddsHeader);
- SurfaceDesc.flags = Caps | (detail::isCompressed(Texture) ? detail::GLI_DDSD_LINEARSIZE : detail::GLI_DDSD_PITCH) | (Texture.levels() > 1 ? detail::GLI_DDSD_MIPMAPCOUNT : 0); //659463;
- SurfaceDesc.width = Texture[0].dimensions().x;
- SurfaceDesc.height = Texture[0].dimensions().y;
- SurfaceDesc.pitch = loader_dds9::detail::isCompressed(Texture) ? size(Texture, LINEAR_SIZE) : 32;
- SurfaceDesc.depth = 0;
- SurfaceDesc.mipMapLevels = glm::uint32(Texture.levels());
- SurfaceDesc.format.size = sizeof(detail::ddsPixelFormat);
- SurfaceDesc.format.flags = detail::getFormatFlags(Texture);
- SurfaceDesc.format.fourCC = detail::getFormatFourCC(Texture);
- SurfaceDesc.format.bpp = detail::getFormatBPP(Texture);
- SurfaceDesc.format.redMask = 0;
- SurfaceDesc.format.greenMask = 0;
- SurfaceDesc.format.blueMask = 0;
- SurfaceDesc.format.alphaMask = 0;
- SurfaceDesc.surfaceFlags = detail::GLI_DDSCAPS_TEXTURE | (Texture.levels() > 1 ? detail::GLI_DDSCAPS_MIPMAP : 0);
- SurfaceDesc.cubemapFlags = 0;
-
- FileOut.write((char*)&SurfaceDesc, sizeof(SurfaceDesc));
-
- for(texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
- {
- texture2D::size_type ImageSize = size(Texture[Level], gli::LINEAR_SIZE);
- FileOut.write((char*)(Texture[Level].data()), ImageSize);
- }
-
- if(FileOut.fail() || FileOut.bad())
- return;
-
- FileOut.close ();
- }
-
- inline void saveTextureCubeDDS9
- (
- textureCube const & Texture,
- std::string const & Filename
- )
- {
- std::ofstream FileOut(Filename.c_str(), std::ios::out | std::ios::binary);
- if (!FileOut || Texture.empty())
- return;
-
- char const * Magic = "DDS ";
- FileOut.write((char*)Magic, sizeof(char) * 4);
-
- glm::uint32 Caps = detail::GLI_DDSD_CAPS | detail::GLI_DDSD_HEIGHT | detail::GLI_DDSD_WIDTH | detail::GLI_DDSD_PIXELFORMAT | detail::GLI_DDSCAPS_COMPLEX;
-
- detail::ddsHeader SurfaceDesc;
- SurfaceDesc.size = sizeof(detail::ddsHeader);
- SurfaceDesc.flags = Caps | (detail::isCompressed(Texture[POSITIVE_X]) ? detail::GLI_DDSD_LINEARSIZE : detail::GLI_DDSD_PITCH) | (Texture.levels() > 1 ? detail::GLI_DDSD_MIPMAPCOUNT : 0); //659463;
- SurfaceDesc.width = Texture[POSITIVE_X][0].dimensions().x;
- SurfaceDesc.height = Texture[POSITIVE_X][0].dimensions().y;
- SurfaceDesc.pitch = loader_dds9::detail::isCompressed(Texture[POSITIVE_X]) ? size(Texture[POSITIVE_X], LINEAR_SIZE) : 32;
- SurfaceDesc.depth = 0;
- SurfaceDesc.mipMapLevels = glm::uint32(Texture.levels());
- SurfaceDesc.format.size = sizeof(detail::ddsPixelFormat);
- SurfaceDesc.format.flags = detail::getFormatFlags(Texture[POSITIVE_X]);
- SurfaceDesc.format.fourCC = detail::getFormatFourCC(Texture[POSITIVE_X]);
- SurfaceDesc.format.bpp = detail::getFormatBPP(Texture[POSITIVE_X]);
- SurfaceDesc.format.redMask = 0;
- SurfaceDesc.format.greenMask = 0;
- SurfaceDesc.format.blueMask = 0;
- SurfaceDesc.format.alphaMask = 0;
- SurfaceDesc.surfaceFlags = detail::GLI_DDSCAPS_TEXTURE | (Texture.levels() > 1 ? detail::GLI_DDSCAPS_MIPMAP : 0);
- SurfaceDesc.cubemapFlags =
- detail::GLI_DDSCAPS2_CUBEMAP | detail::GLI_DDSCAPS2_CUBEMAP_POSITIVEX | detail::GLI_DDSCAPS2_CUBEMAP_NEGATIVEX | detail::GLI_DDSCAPS2_CUBEMAP_POSITIVEY | detail::GLI_DDSCAPS2_CUBEMAP_NEGATIVEY | detail::GLI_DDSCAPS2_CUBEMAP_POSITIVEZ | detail::GLI_DDSCAPS2_CUBEMAP_NEGATIVEZ;
-
- FileOut.write((char*)&SurfaceDesc, sizeof(SurfaceDesc));
-
- for(textureCube::size_type Face = 0; Face < FACE_MAX; ++Face)
- for(texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
- {
- texture2D::size_type ImageSize = size(Texture[textureCube::face_type(Face)][Level], gli::LINEAR_SIZE);
- FileOut.write((char*)(Texture[textureCube::face_type(Face)][Level].data()), ImageSize);
- }
-
- if(FileOut.fail() || FileOut.bad())
- return;
-
- FileOut.close ();
- }
-
-}//namespace loader_dds9
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/loader_tga.hpp b/3rdparty/glm/test/external/gli/gtx/loader_tga.hpp
deleted file mode 100644
index f3fc472a31e..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader_tga.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader_tga.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_LOADER_TGA_INCLUDED
-#define GLI_GTX_LOADER_TGA_INCLUDED
-
-#include "../gli.hpp"
-#include <string>
-#include <fstream>
-
-namespace gli{
-namespace gtx{
-namespace loader_tga
-{
- texture2D loadTGA(
- std::string const & Filename);
-
- void saveTGA(
- texture2D const & Image,
- std::string const & Filename);
-
-}//namespace loader_tga
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::loader_tga;}
-
-#include "loader_tga.inl"
-
-#endif//GLI_GTX_LOADER_TGA_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/loader_tga.inl b/3rdparty/glm/test/external/gli/gtx/loader_tga.inl
deleted file mode 100644
index 795edb41e10..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/loader_tga.inl
+++ /dev/null
@@ -1,159 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-09-08
-// Updated : 2010-09-27
-// Licence : This source is under MIT License
-// File : gli/gtx/loader_tga.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-namespace gli{
-namespace gtx{
-namespace loader_tga
-{
- inline texture2D loadTGA
- (
- std::string const & Filename
- )
- {
- std::ifstream FileIn(Filename.c_str(), std::ios::in | std::ios::binary);
- if(!FileIn)
- return texture2D();
-
- unsigned char IdentificationFieldSize;
- unsigned char ColorMapType;
- unsigned char ImageType;
- unsigned short ColorMapOrigin;
- unsigned short ColorMapLength;
- unsigned char ColorMapEntrySize;
- unsigned short OriginX;
- unsigned short OriginY;
- unsigned short Width;
- unsigned short Height;
- unsigned char TexelSize;
- unsigned char Descriptor;
-
- FileIn.read((char*)&IdentificationFieldSize, sizeof(IdentificationFieldSize));
- FileIn.read((char*)&ColorMapType, sizeof(ColorMapType));
- FileIn.read((char*)&ImageType, sizeof(ImageType));
- FileIn.read((char*)&ColorMapOrigin, sizeof(ColorMapOrigin));
- FileIn.read((char*)&ColorMapLength, sizeof(ColorMapLength));
- FileIn.read((char*)&ColorMapEntrySize, sizeof(ColorMapEntrySize));
- FileIn.read((char*)&OriginX, sizeof(OriginX));
- FileIn.read((char*)&OriginY, sizeof(OriginY));
- FileIn.read((char*)&Width, sizeof(Width));
- FileIn.read((char*)&Height, sizeof(Height));
- FileIn.read((char*)&TexelSize, sizeof(TexelSize));
- FileIn.read((char*)&Descriptor, sizeof(Descriptor));
-
- gli::format Format = gli::FORMAT_NULL;
- if(TexelSize == 24)
- Format = gli::RGB8U;
- else if(TexelSize == 32)
- Format = gli::RGBA8U;
- else
- assert(0);
-
- image2D Mipmap(texture2D::dimensions_type(Width, Height), Format);
-
- if (FileIn.fail() || FileIn.bad())
- {
- assert(0);
- return texture2D();
- }
-
- switch(ImageType)
- {
- default:
- assert(0);
- return texture2D();
-
- case 2:
- FileIn.seekg(18 + ColorMapLength, std::ios::beg);
-
- char* IdentificationField = new char[IdentificationFieldSize + 1];
- FileIn.read(IdentificationField, IdentificationFieldSize);
- IdentificationField[IdentificationFieldSize] = '\0';
- delete[] IdentificationField;
-
- std::size_t DataSize = Width * Height * (TexelSize >> 3);
- FileIn.read((char*)Mipmap.data(), std::streamsize(DataSize));
-
- if(FileIn.fail() || FileIn.bad())
- return texture2D();
- break;
- }
-
- FileIn.close();
-
- texture2D Image(1);
- Image[0] = Mipmap;
-
- // TGA images are saved in BGR or BGRA format.
- if(TexelSize == 24)
- Image.swizzle<glm::u8vec3>(gli::B, gli::G, gli::R, gli::A);
- if(TexelSize == 32)
- Image.swizzle<glm::u8vec4>(gli::B, gli::G, gli::R, gli::A);
-
- return Image;
- }
-
- inline void saveTGA
- (
- gli::texture2D const & ImageIn,
- std::string const & Filename
- )
- {
- std::ofstream FileOut(Filename.c_str(), std::ios::out | std::ios::binary);
- if (!FileOut)
- return;
-
- gli::texture2D Image = duplicate(ImageIn);
-
- unsigned char IdentificationFieldSize = 1;
- unsigned char ColorMapType = 0;
- unsigned char ImageType = 2;
- unsigned short ColorMapOrigin = 0;
- unsigned short ColorMapLength = 0;
- unsigned char ColorMapEntrySize = 0;
- unsigned short OriginX = 0;
- unsigned short OriginY = 0;
- unsigned short Width = Image[0].dimensions().x;
- unsigned short Height = Image[0].dimensions().y;
- unsigned char TexelSize = (unsigned char)(Image[0].value_size());
- unsigned char Descriptor = 0;
-
- if(TexelSize == 24)
- Image.swizzle<glm::u8vec3>(gli::B, gli::G, gli::R, gli::A);
- if(TexelSize == 32)
- Image.swizzle<glm::u8vec4>(gli::B, gli::G, gli::R, gli::A);
-
- FileOut.write((char*)&IdentificationFieldSize, sizeof(IdentificationFieldSize));
- FileOut.write((char*)&ColorMapType, sizeof(ColorMapType));
- FileOut.write((char*)&ImageType, sizeof(ImageType));
- FileOut.write((char*)&ColorMapOrigin, sizeof(ColorMapOrigin));
- FileOut.write((char*)&ColorMapLength, sizeof(ColorMapLength));
- FileOut.write((char*)&ColorMapEntrySize, sizeof(ColorMapEntrySize));
- FileOut.write((char*)&OriginX, sizeof(OriginX));
- FileOut.write((char*)&OriginY, sizeof(OriginY));
- FileOut.write((char*)&Width, sizeof(Width));
- FileOut.write((char*)&Height, sizeof(Height));
- FileOut.write((char*)&TexelSize, sizeof(TexelSize));
- FileOut.write((char*)&Descriptor, sizeof(Descriptor));
-
- if (FileOut.fail () || FileOut.bad ())
- return;
-
- FileOut.seekp(18 + ColorMapLength, std::ios::beg);
- char* IdentificationField = new char[IdentificationFieldSize + 1];
- FileOut.write(IdentificationField, std::streamsize(IdentificationFieldSize));
- delete[] IdentificationField;
- FileOut.write((char*)Image[0].data(), std::streamsize(Image[0].capacity()));
- if(FileOut.fail() || FileOut.bad())
- return;
-
- FileOut.close ();
- }
-}//namespace loader_tga
-}//namespace gtx
-}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/gtx/wavelet.hpp b/3rdparty/glm/test/external/gli/gtx/wavelet.hpp
deleted file mode 100644
index 5ee964f1c17..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/wavelet.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-01-09
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/gtx/wavelet.hpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#ifndef GLI_GTX_WAVELET_INCLUDED
-#define GLI_GTX_WAVELET_INCLUDED
-
-namespace gli{
-namespace gtx{
-namespace wavelet
-{
-
-
-}//namespace wavelet
-}//namespace gtx
-}//namespace gli
-
-namespace gli{using namespace gtx::wavelet;}
-
-#include "wavelet.inl"
-
-#endif//GLI_GTX_WAVELET_INCLUDED
diff --git a/3rdparty/glm/test/external/gli/gtx/wavelet.inl b/3rdparty/glm/test/external/gli/gtx/wavelet.inl
deleted file mode 100644
index dee82413bc0..00000000000
--- a/3rdparty/glm/test/external/gli/gtx/wavelet.inl
+++ /dev/null
@@ -1,8 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2010-01-09
-// Updated : 2010-01-09
-// Licence : This source is under MIT License
-// File : gli/gtx/wavelet.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/3rdparty/glm/test/external/gli/image.hpp b/3rdparty/glm/test/external/gli/image.hpp
new file mode 100644
index 00000000000..b01e61816c2
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/image.hpp
@@ -0,0 +1,111 @@
+/// @brief Include to use images, a representation of a single texture level.
+/// @file gli/image.hpp
+
+#pragma once
+
+#include "./core/storage_linear.hpp"
+
+namespace gli
+{
+ /// Image, representation for a single texture level
+ class image
+ {
+ private:
+ friend class texture1d;
+ friend class texture2d;
+ friend class texture3d;
+
+ public:
+ typedef size_t size_type;
+ typedef gli::format format_type;
+ typedef storage_linear::extent_type extent_type;
+ typedef storage_linear::data_type data_type;
+
+ /// Create an empty image instance
+ image();
+
+ /// Create an image object and allocate an image storoge for it.
+ explicit image(format_type Format, extent_type const& Extent);
+
+ /// Create an image object by sharing an existing image storage_linear from another image instance.
+ /// This image object is effectively an image view where format can be reinterpreted
+ /// with a different compatible image format.
+ /// For formats to be compatible, the block size of source and destination must match.
+ explicit image(image const& Image, format_type Format);
+
+ /// Return whether the image instance is empty, no storage_linear or description have been assigned to the instance.
+ bool empty() const;
+
+ /// Return the image instance format.
+ format_type format() const;
+
+ /// Return the dimensions of an image instance: width, height and depth.
+ extent_type extent() const;
+
+ /// Return the memory size of an image instance storage_linear in bytes.
+ size_type size() const;
+
+ /// Return the number of blocks contained in an image instance storage_linear.
+ /// genType size must match the block size conresponding to the image format.
+ template <typename genType>
+ size_type size() const;
+
+ /// Return a pointer to the beginning of the image instance data.
+ void* data();
+
+ /// Return a pointer to the beginning of the image instance data.
+ void const* data() const;
+
+ /// Return a pointer of type genType which size must match the image format block size.
+ template <typename genType>
+ genType* data();
+
+ /// Return a pointer of type genType which size must match the image format block size.
+ template <typename genType>
+ genType const* data() const;
+
+ /// Clear the entire image storage_linear with zeros
+ void clear();
+
+ /// Clear the entire image storage_linear with Texel which type must match the image storage_linear format block size
+ /// If the type of genType doesn't match the type of the image format, no conversion is performed and the data will be reinterpreted as if is was of the image format.
+ template <typename genType>
+ void clear(genType const& Texel);
+
+ /// Load the texel located at TexelCoord coordinates.
+ /// It's an error to call this function if the format is compressed.
+ /// It's an error if TexelCoord values aren't between [0, dimensions].
+ template <typename genType>
+ genType load(extent_type const& TexelCoord);
+
+ /// Store the texel located at TexelCoord coordinates.
+ /// It's an error to call this function if the format is compressed.
+ /// It's an error if TexelCoord values aren't between [0, dimensions].
+ template <typename genType>
+ void store(extent_type const& TexelCoord, genType const& Data);
+
+ private:
+ /// Create an image object by sharing an existing image storage_linear from another image instance.
+ /// This image object is effectively an image view where the layer, the face and the level allows identifying
+ /// a specific subset of the image storage_linear source.
+ /// This image object is effectively a image view where the format can be reinterpreted
+ /// with a different compatible image format.
+ explicit image(
+ std::shared_ptr<storage_linear> Storage,
+ format_type Format,
+ size_type BaseLayer,
+ size_type BaseFace,
+ size_type BaseLevel);
+
+ std::shared_ptr<storage_linear> Storage;
+ format_type const Format;
+ size_type const BaseLevel;
+ data_type* Data;
+ size_type const Size;
+
+ data_type* compute_data(size_type BaseLayer, size_type BaseFace, size_type BaseLevel);
+ size_type compute_size(size_type Level) const;
+ };
+}//namespace gli
+
+#include "./core/image.inl"
diff --git a/3rdparty/glm/test/external/gli/levels.hpp b/3rdparty/glm/test/external/gli/levels.hpp
new file mode 100644
index 00000000000..419b12bff77
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/levels.hpp
@@ -0,0 +1,48 @@
+/// @brief Include to compute the number of mipmaps levels necessary to create a mipmap complete texture.
+/// @file gli/levels.hpp
+
+#pragma once
+
+#include "type.hpp"
+
+namespace gli
+{
+ /// Compute the number of mipmaps levels necessary to create a mipmap complete texture
+ ///
+ /// @param Extent Extent of the texture base level mipmap
+ /// @tparam vecType Vector type used to express the dimensions of a texture of any kind.
+ /// @code
+ /// #include <gli/texture2d.hpp>
+ /// #include <gli/levels.hpp>
+ /// ...
+ /// gli::texture2d::extent_type Extent(32, 10);
+ /// gli::texture2d Texture(gli::levels(Extent));
+ /// @endcode
+ template <typename T, precision P, template <typename, precision> class vecType>
+ T levels(vecType<T, P> const& Extent);
+/*
+ /// Compute the number of mipmaps levels necessary to create a mipmap complete texture
+ ///
+ /// @param Extent Extent of the texture base level mipmap
+ /// @code
+ /// #include <gli/texture2d.hpp>
+ /// #include <gli/levels.hpp>
+ /// ...
+ /// gli::texture2d Texture(32);
+ /// @endcode
+ size_t levels(size_t Extent);
+
+ /// Compute the number of mipmaps levels necessary to create a mipmap complete texture
+ ///
+ /// @param Extent Extent of the texture base level mipmap
+ /// @code
+ /// #include <gli/texture2d.hpp>
+ /// #include <gli/levels.hpp>
+ /// ...
+ /// gli::texture2d Texture(32);
+ /// @endcode
+ int levels(int Extent);
+*/
+}//namespace gli
+
+#include "./core/levels.inl"
diff --git a/3rdparty/glm/test/external/gli/load.hpp b/3rdparty/glm/test/external/gli/load.hpp
new file mode 100644
index 00000000000..2b6c9b0490b
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/load.hpp
@@ -0,0 +1,27 @@
+/// @brief Include to load DDS, KTX or KMG textures from files or memory.
+/// @file gli/load.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Loads a texture storage_linear from file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load(char const* Path);
+
+ /// Loads a texture storage_linear from file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load(std::string const& Path);
+
+ /// Loads a texture storage_linear from memory. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Data Data of a texture
+ /// @param Size Size of the data
+ texture load(char const* Data, std::size_t Size);
+}//namespace gli
+
+#include "./core/load.inl"
diff --git a/3rdparty/glm/test/external/gli/load_dds.hpp b/3rdparty/glm/test/external/gli/load_dds.hpp
new file mode 100644
index 00000000000..7ac57f579e8
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/load_dds.hpp
@@ -0,0 +1,27 @@
+/// @brief Include to load DDS textures from files or memory.
+/// @file gli/load_dds.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Loads a texture storage_linear from DDS file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load_dds(char const* Path);
+
+ /// Loads a texture storage_linear from DDS file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load_dds(std::string const& Path);
+
+ /// Loads a texture storage_linear from DDS memory. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Data Pointer to the beginning of the texture container data to read
+ /// @param Size Size of texture container Data to read
+ texture load_dds(char const* Data, std::size_t Size);
+}//namespace gli
+
+#include "./core/load_dds.inl"
diff --git a/3rdparty/glm/test/external/gli/load_kmg.hpp b/3rdparty/glm/test/external/gli/load_kmg.hpp
new file mode 100644
index 00000000000..05e250fae74
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/load_kmg.hpp
@@ -0,0 +1,27 @@
+/// @brief Include to load KMG textures from files or memory.
+/// @file gli/load_kmg.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Loads a texture storage_linear from KMG (Khronos Image) file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load_kmg(char const* Path);
+
+ /// Loads a texture storage_linear from KMG (Khronos Image) file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load_kmg(std::string const& Path);
+
+ /// Loads a texture storage_linear from KMG (Khronos Image) memory. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Data Pointer to the beginning of the texture container data to read
+ /// @param Size Size of texture container Data to read
+ texture load_kmg(char const* Data, std::size_t Size);
+}//namespace gli
+
+#include "./core/load_kmg.inl"
diff --git a/3rdparty/glm/test/external/gli/load_ktx.hpp b/3rdparty/glm/test/external/gli/load_ktx.hpp
new file mode 100644
index 00000000000..9928e640f06
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/load_ktx.hpp
@@ -0,0 +1,27 @@
+/// @brief Include to load KTX textures from files or memory.
+/// @file gli/load_ktx.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Loads a texture storage_linear from KTX file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load_ktx(char const* Path);
+
+ /// Loads a texture storage_linear from KTX file. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Path Path of the file to open including filaname and filename extension
+ texture load_ktx(std::string const& Path);
+
+ /// Loads a texture storage_linear from KTX memory. Returns an empty storage_linear in case of failure.
+ ///
+ /// @param Data Pointer to the beginning of the texture container data to read
+ /// @param Size Size of texture container Data to read
+ texture load_ktx(char const* Data, std::size_t Size);
+}//namespace gli
+
+#include "./core/load_ktx.inl"
diff --git a/3rdparty/glm/test/external/gli/make_texture.hpp b/3rdparty/glm/test/external/gli/make_texture.hpp
new file mode 100644
index 00000000000..6c2a157abec
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/make_texture.hpp
@@ -0,0 +1,51 @@
+/// @brief Helper functions to create generic texture
+/// @file gli/make_texture.hpp
+
+#pragma once
+
+namespace gli
+{
+ // Helper function to create a 1d texture with a specific number of levels
+ gli::texture make_texture1d(format Format, extent1d const& Extent, size_t Levels);
+
+ // Helper function to create a 1d texture with a complete mipmap chain
+ gli::texture make_texture1d(format Format, extent1d const& Extent);
+
+ // Helper function to create a 1d array texture with a specific number of levels
+ gli::texture make_texture1d_array(format Format, extent1d const& Extent, size_t Layers, size_t Levels);
+
+ // Helper function to create a 1d array texture with a complete mipmap chain
+ gli::texture make_texture1d_array(format Format, extent1d const& Extent, size_t Layers);
+
+ // Helper function to create a 2d texture with a specific number of levels
+ gli::texture make_texture2d(format Format, extent2d const& Extent, size_t Levels);
+
+ // Helper function to create a 2d texture with a complete mipmap chain
+ gli::texture make_texture2d(format Format, extent2d const& Extent);
+
+ // Helper function to create a 2d array texture with a specific number of levels
+ gli::texture make_texture2d_array(format Format, extent2d const& Extent, size_t Layer, size_t Levels);
+
+ // Helper function to create a 2d array texture with a complete mipmap chain
+ gli::texture make_texture2d_array(format Format, extent2d const& Extent, size_t Layer);
+
+ // Helper function to create a 3d texture with a specific number of levels
+ gli::texture make_texture3d(format Format, extent3d const& Extent, size_t Levels);
+
+ // Helper function to create a 3d texture with a complete mipmap chain
+ gli::texture make_texture3d(format Format, extent3d const& Extent);
+
+ // Helper function to create a cube texture with a specific number of levels
+ gli::texture make_texture_cube(format Format, extent2d const& Extent, size_t Levels);
+
+ // Helper function to create a cube texture with a complete mipmap chain
+ gli::texture make_texture_cube(format Format, extent2d const& Extent);
+
+ // Helper function to create a cube array texture with a specific number of levels
+ gli::texture make_texture_cube_array(format Format, extent2d const& Extent, size_t Layer, size_t Levels);
+
+ // Helper function to create a cube array texture with a complete mipmap chain
+ gli::texture make_texture_cube_array(format Format, extent2d const& Extent, size_t Layer);
+}//namespace gli
+
+#include "./core/make_texture.inl"
diff --git a/3rdparty/glm/test/external/gli/reduce.hpp b/3rdparty/glm/test/external/gli/reduce.hpp
new file mode 100644
index 00000000000..bb3d7100a9a
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/reduce.hpp
@@ -0,0 +1,95 @@
+/// @brief Include to perform reduction operations.
+/// @file gli/reduce.hpp
+
+#pragma once
+
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ template <typename vec_type>
+ struct reduce_func
+ {
+ typedef vec_type(*type)(vec_type const & A, vec_type const & B);
+ };
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture1d const & In0, texture1d const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture1d_array const & In0, texture1d_array const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture2d const & In0, texture2d const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture2d_array const & In0, texture2d_array const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture3d const & In0, texture3d const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture_cube const & In0, texture_cube const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename vec_type>
+ vec_type reduce(texture_cube_array const & In0, texture_cube_array const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function for per texel operation.
+ /// @param ReduceFunc Pointer to a binary function to reduce texels.
+ template <typename texture_type, typename vec_type>
+ vec_type reduce(texture_type const & In0, texture_type const & In1, typename reduce_func<vec_type>::type TexelFunc, typename reduce_func<vec_type>::type ReduceFunc);
+}//namespace gli
+
+#include "./core/reduce.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler.hpp b/3rdparty/glm/test/external/gli/sampler.hpp
new file mode 100644
index 00000000000..4e4f90cdee9
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler.hpp
@@ -0,0 +1,49 @@
+/// @brief Include to use wrap modes and the sampler base class.
+/// @file gli/sampler.hpp
+
+#pragma once
+
+#include "core/filter.hpp"
+
+namespace gli
+{
+ /// Texture coordinate wrapping mode
+ enum wrap
+ {
+ WRAP_CLAMP_TO_EDGE, WRAP_FIRST = WRAP_CLAMP_TO_EDGE,
+ WRAP_CLAMP_TO_BORDER,
+ WRAP_REPEAT,
+ WRAP_MIRROR_REPEAT,
+ WRAP_MIRROR_CLAMP_TO_EDGE,
+ WRAP_MIRROR_CLAMP_TO_BORDER, WRAP_LAST = WRAP_MIRROR_CLAMP_TO_BORDER
+ };
+
+ enum
+ {
+ WRAP_COUNT = WRAP_LAST - WRAP_FIRST + 1
+ };
+
+ /// Evaluate whether the texture coordinate wrapping mode relies on border color
+ inline bool is_border(wrap Wrap)
+ {
+ return Wrap == WRAP_CLAMP_TO_BORDER || Wrap == WRAP_MIRROR_CLAMP_TO_BORDER;
+ }
+
+ /// Genetic sampler class.
+ class sampler
+ {
+ public:
+ sampler(wrap Wrap, filter Mip, filter Min);
+
+ protected:
+ typedef float(*wrap_type)(float const & SamplerCoord);
+
+ wrap_type get_func(wrap WrapMode) const;
+
+ wrap_type Wrap;
+ filter Mip;
+ filter Min;
+ };
+}//namespace gli
+
+#include "./core/sampler.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler1d.hpp b/3rdparty/glm/test/external/gli/sampler1d.hpp
new file mode 100644
index 00000000000..24656180e3a
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler1d.hpp
@@ -0,0 +1,71 @@
+/// @brief Include to sample 1d textures.
+/// @file gli/sampler1d.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture1d.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// 1d texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler1d : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture1d texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<1, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler1d(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type const& Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type const& Level, texel_type const& Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler1d<float> fsampler1D;
+ typedef sampler1d<double> dsampler1D;
+ typedef sampler1d<unsigned int> usampler1D;
+ typedef sampler1d<int> isampler1D;
+}//namespace gli
+
+#include "./core/sampler1d.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler1d_array.hpp b/3rdparty/glm/test/external/gli/sampler1d_array.hpp
new file mode 100644
index 00000000000..d07b342a097
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler1d_array.hpp
@@ -0,0 +1,72 @@
+/// @brief Include to sample 1d array textures.
+/// @file gli/sampler1d_array.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture1d_array.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// 1d array texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler1d_array : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture1d_array texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<1, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler1d_array(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type layer, size_type Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type layer, size_type Level, texel_type const & Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, size_type layer, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler1d_array<float> fsampler1DArray;
+ typedef sampler1d_array<double> dsampler1DArray;
+ typedef sampler1d_array<unsigned int> usampler1DArray;
+ typedef sampler1d_array<int> isampler1DArray;
+
+}//namespace gli
+
+#include "./core/sampler1d_array.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler2d.hpp b/3rdparty/glm/test/external/gli/sampler2d.hpp
new file mode 100644
index 00000000000..8eaf11a82df
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler2d.hpp
@@ -0,0 +1,72 @@
+/// @brief Include to sample 2d textures.
+/// @file gli/sampler2d.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture2d.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// 2d texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler2d : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture2d texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<2, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler2d(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type const& Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type const& Level, texel_type const& Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler2d<float> fsampler2D;
+ typedef sampler2d<double> dsampler2D;
+ typedef sampler2d<unsigned int> usampler2D;
+ typedef sampler2d<int> isampler2D;
+
+}//namespace gli
+
+#include "./core/sampler2d.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler2d_array.hpp b/3rdparty/glm/test/external/gli/sampler2d_array.hpp
new file mode 100644
index 00000000000..24ffe960a0b
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler2d_array.hpp
@@ -0,0 +1,72 @@
+/// @brief Include to sample 2d array textures.
+/// @file gli/sampler2d_array.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture2d_array.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// 2d array texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler2d_array : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture2d_array texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<2, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler2d_array(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type layer, size_type Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type layer, size_type Level, texel_type const& Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, size_type layer, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler2d_array<float> fsampler2DArray;
+ typedef sampler2d_array<double> dsampler2DArray;
+ typedef sampler2d_array<unsigned int> usampler2DArray;
+ typedef sampler2d_array<int> isampler2DArray;
+
+}//namespace gli
+
+#include "./core/sampler2d_array.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler3d.hpp b/3rdparty/glm/test/external/gli/sampler3d.hpp
new file mode 100644
index 00000000000..556df7c5986
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler3d.hpp
@@ -0,0 +1,71 @@
+/// @brief Include to sample 3d textures.
+/// @file gli/sampler3d.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture3d.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// 3d texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler3d : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture3d texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<3, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler3d(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type const& Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type const & Level, texel_type const& Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler3d<float> fsampler3D;
+ typedef sampler3d<double> dsampler3D;
+ typedef sampler3d<unsigned int> usampler3D;
+ typedef sampler3d<int> isampler3D;
+}//namespace gli
+
+#include "./core/sampler3d.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler_cube.hpp b/3rdparty/glm/test/external/gli/sampler_cube.hpp
new file mode 100644
index 00000000000..cdfcb84b9a1
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler_cube.hpp
@@ -0,0 +1,72 @@
+/// @brief Include to sample cube map textures.
+/// @file gli/sampler_cube.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture_cube.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// Cube map texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler_cube : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture_cube texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<2, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler_cube(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type Face, size_type Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type Face, size_type Level, texel_type const& Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, size_type Face, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler_cube<float> fsamplerCube;
+ typedef sampler_cube<double> dsamplerCube;
+ typedef sampler_cube<unsigned int> usamplerCube;
+ typedef sampler_cube<int> isamplerCube;
+
+}//namespace gli
+
+#include "./core/sampler_cube.inl"
diff --git a/3rdparty/glm/test/external/gli/sampler_cube_array.hpp b/3rdparty/glm/test/external/gli/sampler_cube_array.hpp
new file mode 100644
index 00000000000..6eccf4a9ccd
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/sampler_cube_array.hpp
@@ -0,0 +1,72 @@
+/// @brief Include to sample cube map array textures.
+/// @file gli/sampler_cube_array.hpp
+
+#pragma once
+
+#include "sampler.hpp"
+#include "texture_cube_array.hpp"
+#include "core/mipmaps_compute.hpp"
+#include "core/convert_func.hpp"
+
+namespace gli
+{
+ /// Cube map array texture sampler
+ /// @tparam T Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions.
+ /// @tparam P Precision in term of ULPs
+ template <typename T, precision P = defaultp>
+ class sampler_cube_array : public sampler
+ {
+ private:
+ typedef typename detail::interpolate<T>::type interpolate_type;
+
+ public:
+ typedef texture_cube_array texture_type;
+ typedef typename texture_type::size_type size_type;
+ typedef typename texture_type::extent_type extent_type;
+ typedef interpolate_type level_type;
+ typedef vec<2, interpolate_type, P> normalized_type;
+ typedef vec<4, T, P> texel_type;
+
+ sampler_cube_array(texture_type const& Texture, wrap Wrap, filter Mip = FILTER_NEAREST, filter Min = FILTER_NEAREST, texel_type const& BorderColor = texel_type(0, 0, 0, 1));
+
+ /// Access the sampler texture object
+ texture_type const& operator()() const;
+
+ /// Fetch a texel from the sampler texture
+ texel_type texel_fetch(extent_type const& TexelCoord, size_type layer, size_type Face, size_type Level) const;
+
+ /// Write a texel in the sampler texture
+ void texel_write(extent_type const& TexelCoord, size_type layer, size_type Face, size_type Level, texel_type const& Texel);
+
+ /// Clear the sampler texture with a uniform texel
+ void clear(texel_type const& Texel);
+
+ /// Sample the sampler texture at a specific level
+ texel_type texture_lod(normalized_type const& SampleCoord, size_type layer, size_type Face, level_type Level) const;
+
+ /// Generate all the mipmaps of the sampler texture from the texture base level
+ void generate_mipmaps(filter Minification);
+
+ /// Generate the mipmaps of the sampler texture from the texture base level to the texture max level included
+ void generate_mipmaps(size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, filter Minification);
+
+ private:
+ typedef typename detail::convert<texture_type, T, P>::func convert_type;
+ typedef typename detail::convert<texture_type, T, P>::fetchFunc fetch_type;
+ typedef typename detail::convert<texture_type, T, P>::writeFunc write_type;
+ typedef typename detail::filterBase<detail::DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type>::filterFunc filter_type;
+
+ texture_type Texture;
+ convert_type Convert;
+ texel_type BorderColor;
+ filter_type Filter;
+ };
+
+ typedef sampler_cube_array<float> fsamplerCubeArray;
+ typedef sampler_cube_array<double> dsamplerCubeArray;
+ typedef sampler_cube_array<unsigned int> usamplerCubeArray;
+ typedef sampler_cube_array<int> isamplerCubeArray;
+
+}//namespace gli
+
+#include "./core/sampler_cube_array.inl"
diff --git a/3rdparty/glm/test/external/gli/save.hpp b/3rdparty/glm/test/external/gli/save.hpp
new file mode 100644
index 00000000000..a17ecd3d642
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/save.hpp
@@ -0,0 +1,28 @@
+/// @brief Include to save DDS, KTX or KMG textures to files or memory.
+/// @file gli/save.hpp
+
+#pragma once
+
+#include "save_dds.hpp"
+#include "save_ktx.hpp"
+
+namespace gli
+{
+ /// Save a texture storage_linear to file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// The function use the filename extension included in the path to figure out the file container to use.
+ /// @return Returns false if the function fails to save the file.
+ bool save(texture const & Texture, char const * Path);
+
+ /// Save a texture storage_linear to file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// The function use the filename extension included in the path to figure out the file container to use.
+ /// @return Returns false if the function fails to save the file.
+ bool save(texture const & Texture, std::string const & Path);
+}//namespace gli
+
+#include "./core/save.inl"
diff --git a/3rdparty/glm/test/external/gli/save_dds.hpp b/3rdparty/glm/test/external/gli/save_dds.hpp
new file mode 100644
index 00000000000..369dd8819b0
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/save_dds.hpp
@@ -0,0 +1,34 @@
+/// @brief Include to save DDS textures to files or memory.
+/// @file gli/save_dds.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Save a texture storage_linear to a DDS file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// This function ignores the filename extension in the path and save to DDS anyway but keep the requested filename extension.
+ /// @return Returns false if the function fails to save the file.
+ bool save_dds(texture const & Texture, char const* Path);
+
+ /// Save a texture storage_linear to a DDS file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// This function ignores the filename extension in the path and save to DDS anyway but keep the requested filename extension.
+ /// @return Returns false if the function fails to save the file.
+ bool save_dds(texture const & Texture, std::string const & Path);
+
+ /// Save a texture storage_linear to a DDS file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Memory Storage for the DDS container. The function resizes the containers to fit the necessary storage_linear.
+ /// @return Returns false if the function fails to save the file.
+ bool save_dds(texture const & Texture, std::vector<char> & Memory);
+}//namespace gli
+
+#include "./core/save_dds.inl"
diff --git a/3rdparty/glm/test/external/gli/save_kmg.hpp b/3rdparty/glm/test/external/gli/save_kmg.hpp
new file mode 100644
index 00000000000..55e56ee5a2b
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/save_kmg.hpp
@@ -0,0 +1,34 @@
+/// @brief Include to save KMG textures to files or memory.
+/// @file gli/save_kmg.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Save a texture storage_linear to a KMG (Khronos Image) file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// This function ignores the filename extension in the path and save to KMG anyway but keep the requested filename extension.
+ /// @return Returns false if the function fails to save the file.
+ bool save_kmg(texture const & Texture, char const * Path);
+
+ /// Save a texture storage_linear to a KMG (Khronos Image) file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// This function ignores the filename extension in the path and save to KMG anyway but keep the requested filename extension.
+ /// @return Returns false if the function fails to save the file.
+ bool save_kmg(texture const & Texture, std::string const & Path);
+
+ /// Save a texture storage_linear to a KMG (Khronos Image) file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Memory Storage for the KMG container. The function resizes the containers to fit the necessary storage_linear.
+ /// @return Returns false if the function fails to save the file.
+ bool save_kmg(texture const & Texture, std::vector<char> & Memory);
+}//namespace gli
+
+#include "./core/save_kmg.inl"
diff --git a/3rdparty/glm/test/external/gli/save_ktx.hpp b/3rdparty/glm/test/external/gli/save_ktx.hpp
new file mode 100644
index 00000000000..f70ba5de27c
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/save_ktx.hpp
@@ -0,0 +1,34 @@
+/// @brief Include to save KTX textures to files or memory.
+/// @file gli/save_ktx.hpp
+
+#pragma once
+
+#include "texture.hpp"
+
+namespace gli
+{
+ /// Save a texture storage_linear to a KTX file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// This function ignores the filename extension in the path and save to KTX anyway but keep the requested filename extension.
+ /// @return Returns false if the function fails to save the file.
+ bool save_ktx(texture const & Texture, char const * Path);
+
+ /// Save a texture storage_linear to a KTX file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Path Path for where to save the file. It must include the filaname and filename extension.
+ /// This function ignores the filename extension in the path and save to KTX anyway but keep the requested filename extension.
+ /// @return Returns false if the function fails to save the file.
+ bool save_ktx(texture const & Texture, std::string const & Path);
+
+ /// Save a texture storage_linear to a KTX file.
+ ///
+ /// @param Texture Source texture to save
+ /// @param Memory Storage for the KTX container. The function resizes the containers to fit the necessary storage_linear.
+ /// @return Returns false if the function fails to save the file.
+ bool save_ktx(texture const & Texture, std::vector<char> & Memory);
+}//namespace gli
+
+#include "./core/save_ktx.inl"
diff --git a/3rdparty/glm/test/external/gli/target.hpp b/3rdparty/glm/test/external/gli/target.hpp
new file mode 100644
index 00000000000..b102de3e8e8
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/target.hpp
@@ -0,0 +1,51 @@
+/// @brief Include to use the target enum and query properties of targets.
+/// @file gli/target.hpp
+
+#pragma once
+
+namespace gli
+{
+ /// Texture target: type/shape of the texture storage_linear
+ enum target
+ {
+ TARGET_1D = 0, TARGET_FIRST = TARGET_1D,
+ TARGET_1D_ARRAY,
+ TARGET_2D,
+ TARGET_2D_ARRAY,
+ TARGET_3D,
+ TARGET_RECT,
+ TARGET_RECT_ARRAY,
+ TARGET_CUBE,
+ TARGET_CUBE_ARRAY, TARGET_LAST = TARGET_CUBE_ARRAY
+ };
+
+ enum
+ {
+ TARGET_COUNT = TARGET_LAST - TARGET_FIRST + 1,
+ TARGET_INVALID = -1
+ };
+
+ /// Check whether a target is a 1D target
+ inline bool is_target_1d(target Target)
+ {
+ return Target == TARGET_1D || Target == TARGET_1D_ARRAY;
+ }
+
+ /// Check whether a target is an array target
+ inline bool is_target_array(target Target)
+ {
+ return Target == TARGET_1D_ARRAY || Target == TARGET_2D_ARRAY || Target == TARGET_CUBE_ARRAY;
+ }
+
+ /// Check whether a target is a cube map target
+ inline bool is_target_cube(target Target)
+ {
+ return Target == TARGET_CUBE || Target == TARGET_CUBE_ARRAY;
+ }
+
+ /// Check whether a target is a rectangle target
+ inline bool is_target_rect(target Target)
+ {
+ return Target == TARGET_RECT || Target == TARGET_RECT_ARRAY;
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/texture.hpp b/3rdparty/glm/test/external/gli/texture.hpp
new file mode 100644
index 00000000000..ed8349f57f0
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture.hpp
@@ -0,0 +1,297 @@
+/// @brief Include to use generic textures which can represent any texture target but they don't have target specific built-in caches making accesses slower.
+/// @file gli/texture.hpp
+
+#pragma once
+
+#include "image.hpp"
+#include "target.hpp"
+#include "levels.hpp"
+#include <array>
+
+namespace gli
+{
+ /// Genetic texture class. It can support any target.
+ class texture
+ {
+ public:
+ typedef size_t size_type;
+ typedef gli::target target_type;
+ typedef gli::format format_type;
+ typedef gli::swizzles swizzles_type;
+ typedef storage_linear storage_type;
+ typedef storage_type::data_type data_type;
+ typedef storage_type::extent_type extent_type;
+
+ /// Create an empty texture instance
+ texture();
+
+ /// Create a texture object and allocate a texture storage for it
+ /// @param Target Type/Shape of the texture storage_linear
+ /// @param Format Texel format
+ /// @param Extent Size of the texture: width, height and depth.
+ /// @param Layers Number of one-dimensional or two-dimensional images of identical size and format
+ /// @param Faces 6 for cube map textures otherwise 1.
+ /// @param Levels Number of images in the texture mipmap chain.
+ /// @param Swizzles A mechanism to swizzle the components of a texture before they are applied according to the texture environment.
+ texture(
+ target_type Target,
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ size_type Faces,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture object by sharing an existing texture storage_type from another texture instance.
+ /// This texture object is effectively a texture view where the layer, the face and the level allows identifying
+ /// a specific subset of the texture storage_linear source.
+ /// This texture object is effectively a texture view where the target and format can be reinterpreted
+ /// with a different compatible texture target and texture format.
+ texture(
+ texture const& Texture,
+ target_type Target,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture object by sharing an existing texture storage_type from another texture instance.
+ /// This texture object is effectively a texture view where the target and format can be reinterpreted
+ /// with a different compatible texture target and texture format.
+ texture(
+ texture const& Texture,
+ target_type Target,
+ format_type Format,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ virtual ~texture(){}
+
+ /// Return whether the texture instance is empty, no storage_type or description have been assigned to the instance.
+ bool empty() const;
+
+ /// Return the target of a texture instance.
+ target_type target() const{return this->Target;}
+
+ /// Return the texture instance format
+ format_type format() const;
+
+ swizzles_type swizzles() const;
+
+ /// Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers.
+ size_type base_layer() const;
+
+ /// Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access.
+ size_type max_layer() const;
+
+ /// Return max_layer() - base_layer() + 1
+ size_type layers() const;
+
+ /// Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces.
+ size_type base_face() const;
+
+ /// Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access.
+ size_type max_face() const;
+
+ /// Return max_face() - base_face() + 1
+ size_type faces() const;
+
+ /// Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels.
+ size_type base_level() const;
+
+ /// Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access.
+ size_type max_level() const;
+
+ /// Return max_level() - base_level() + 1.
+ size_type levels() const;
+
+ /// Return the size of a texture instance: width, height and depth.
+ extent_type extent(size_type Level = 0) const;
+
+ /// Return the memory size of a texture instance storage_type in bytes.
+ size_type size() const;
+
+ /// Return the number of blocks contained in a texture instance storage_type.
+ /// genType size must match the block size conresponding to the texture format.
+ template <typename genType>
+ size_type size() const;
+
+ /// Return the memory size of a specific level identified by Level.
+ size_type size(size_type Level) const;
+
+ /// Return the memory size of a specific level identified by Level.
+ /// genType size must match the block size conresponding to the texture format.
+ template <typename gen_type>
+ size_type size(size_type Level) const;
+
+ /// Return a pointer to the beginning of the texture instance data.
+ void* data();
+
+ /// Return a pointer of type genType which size must match the texture format block size
+ template <typename gen_type>
+ gen_type* data();
+
+ /// Return a pointer to the beginning of the texture instance data.
+ void const* data() const;
+
+ /// Return a pointer of type genType which size must match the texture format block size
+ template <typename gen_type>
+ gen_type const* data() const;
+
+ /// Return a pointer to the beginning of the texture instance data.
+ void* data(size_type Layer, size_type Face, size_type Level);
+
+ /// Return a pointer to the beginning of the texture instance data.
+ void const* const data(size_type Layer, size_type Face, size_type Level) const;
+
+ /// Return a pointer of type genType which size must match the texture format block size
+ template <typename gen_type>
+ gen_type* data(size_type Layer, size_type Face, size_type Level);
+
+ /// Return a pointer of type genType which size must match the texture format block size
+ template <typename gen_type>
+ gen_type const* const data(size_type Layer, size_type Face, size_type Level) const;
+
+ /// Clear the entire texture storage_linear with zeros
+ void clear();
+
+ /// Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size
+ /// If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format.
+ template <typename gen_type>
+ void clear(gen_type const& Texel);
+
+ /// Clear a specific image of a texture.
+ template <typename gen_type>
+ void clear(size_type Layer, size_type Face, size_type Level, gen_type const& BlockData);
+
+ /// Clear a subset of a specific image of a texture.
+ template <typename gen_type>
+ void clear(size_type Layer, size_type Face, size_type Level, extent_type const& TexelOffset, extent_type const& TexelExtent, gen_type const& BlockData);
+
+ /// Copy a specific image of a texture
+ void copy(
+ texture const& TextureSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst);
+
+ /// Copy a subset of a specific image of a texture
+ void copy(
+ texture const& TextureSrc,
+ size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const& OffsetSrc,
+ size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const& OffsetDst,
+ extent_type const& Extent);
+
+ /// Reorder the component in texture memory.
+ template <typename gen_type>
+ void swizzle(gli::swizzles const& Swizzles);
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const & TexelCoord, size_type Layer, size_type Face, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const& Texel);
+
+ protected:
+ std::shared_ptr<storage_type> Storage;
+ target_type Target;
+ format_type Format;
+ size_type BaseLayer;
+ size_type MaxLayer;
+ size_type BaseFace;
+ size_type MaxFace;
+ size_type BaseLevel;
+ size_type MaxLevel;
+ swizzles_type Swizzles;
+
+ // Pre compute at texture instance creation some information for faster access to texels
+ struct cache
+ {
+ public:
+ enum ctor
+ {
+ DEFAULT
+ };
+
+ explicit cache(ctor)
+ {}
+
+ cache
+ (
+ storage_type& Storage,
+ format_type Format,
+ size_type BaseLayer, size_type Layers,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel
+ )
+ : Faces(MaxFace - BaseFace + 1)
+ , Levels(MaxLevel - BaseLevel + 1)
+ {
+ GLI_ASSERT(static_cast<size_t>(gli::levels(Storage.extent(0))) < this->ImageMemorySize.size());
+
+ this->BaseAddresses.resize(Layers * this->Faces * this->Levels);
+
+ for(size_type Layer = 0; Layer < Layers; ++Layer)
+ for(size_type Face = 0; Face < this->Faces; ++Face)
+ for(size_type Level = 0; Level < this->Levels; ++Level)
+ {
+ size_type const Index = index_cache(Layer, Face, Level);
+ this->BaseAddresses[Index] = Storage.data() + Storage.base_offset(
+ BaseLayer + Layer, BaseFace + Face, BaseLevel + Level);
+ }
+
+ for(size_type Level = 0; Level < this->Levels; ++Level)
+ {
+ extent_type const& SrcExtent = Storage.extent(BaseLevel + Level);
+ extent_type const& DstExtent = SrcExtent * block_extent(Format) / Storage.block_extent();
+
+ this->ImageExtent[Level] = glm::max(DstExtent, extent_type(1));
+ this->ImageMemorySize[Level] = Storage.level_size(BaseLevel + Level);
+ }
+
+ this->GlobalMemorySize = Storage.layer_size(BaseFace, MaxFace, BaseLevel, MaxLevel) * Layers;
+ }
+
+ // Base addresses of each images of a texture.
+ data_type* get_base_address(size_type Layer, size_type Face, size_type Level) const
+ {
+ return this->BaseAddresses[index_cache(Layer, Face, Level)];
+ }
+
+ // In texels
+ extent_type get_extent(size_type Level) const
+ {
+ return this->ImageExtent[Level];
+ };
+
+ // In bytes
+ size_type get_memory_size(size_type Level) const
+ {
+ return this->ImageMemorySize[Level];
+ };
+
+ // In bytes
+ size_type get_memory_size() const
+ {
+ return this->GlobalMemorySize;
+ };
+
+ private:
+ size_type index_cache(size_type Layer, size_type Face, size_type Level) const
+ {
+ return ((Layer * this->Faces) + Face) * this->Levels + Level;
+ }
+
+ size_type Faces;
+ size_type Levels;
+ std::vector<data_type*> BaseAddresses;
+ std::array<extent_type, 16> ImageExtent;
+ std::array<size_type, 16> ImageMemorySize;
+ size_type GlobalMemorySize;
+ } Cache;
+ };
+}//namespace gli
+
+#include "./core/texture.inl"
+
diff --git a/3rdparty/glm/test/external/gli/texture1d.hpp b/3rdparty/glm/test/external/gli/texture1d.hpp
new file mode 100644
index 00000000000..bf456251409
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture1d.hpp
@@ -0,0 +1,67 @@
+/// @brief Include to use 1d textures.
+/// @file gli/texture1d.hpp
+
+#pragma once
+
+#include "texture.hpp"
+#include "image.hpp"
+
+namespace gli
+{
+ /// 1d texture
+ class texture1d : public texture
+ {
+ public:
+ typedef extent1d extent_type;
+
+ /// Create an empty texture 1D
+ texture1d();
+
+ /// Create a texture1d and allocate a new storage_linear
+ texture1d(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture1d and allocate a new storage_linear with a complete mipmap chain
+ texture1d(
+ format_type Format,
+ extent_type const& Extent,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture1d view with an existing storage_linear
+ explicit texture1d(
+ texture const& Texture);
+
+ /// Create a texture1d view with an existing storage_linear
+ texture1d(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture1d view, reference a subset of an existing texture1d instance
+ texture1d(
+ texture1d const& Texture,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the image identified by Level in the mipmap chain of the texture
+ image operator[](size_type Level) const;
+
+ /// Return the width of a texture instance
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const& TexelCoord, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture1d.inl"
diff --git a/3rdparty/glm/test/external/gli/texture1d_array.hpp b/3rdparty/glm/test/external/gli/texture1d_array.hpp
new file mode 100644
index 00000000000..51902d5e4fa
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture1d_array.hpp
@@ -0,0 +1,70 @@
+/// @brief Include to use 1d array textures.
+/// @file gli/texture1d_array.hpp
+
+#pragma once
+
+#include "texture1d.hpp"
+
+namespace gli
+{
+ /// 1d array texture
+ class texture1d_array : public texture
+ {
+ public:
+ typedef extent1d extent_type;
+
+ public:
+ /// Create an empty texture 1D array
+ texture1d_array();
+
+ /// Create a texture1d_array and allocate a new storage_linear
+ texture1d_array(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture1d_array and allocate a new storage_linear with a complete mipmap chain
+ texture1d_array(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture1d_array view with an existing storage_linear
+ explicit texture1d_array(
+ texture const& Texture);
+
+ /// Create a texture1d_array view with an existing storage_linear
+ texture1d_array(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture view, reference a subset of an exiting storage_linear
+ texture1d_array(
+ texture1d_array const& Texture,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the texture identified by Layer in the texture array
+ texture1d operator[](size_type Layer) const;
+
+ /// Return the width of a texture instance
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const& TexelCoord, size_type Layer, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Layer, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture1d_array.inl"
diff --git a/3rdparty/glm/test/external/gli/texture2d.hpp b/3rdparty/glm/test/external/gli/texture2d.hpp
new file mode 100644
index 00000000000..3c57ea00be2
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture2d.hpp
@@ -0,0 +1,67 @@
+/// @brief Include to use 2d textures.
+/// @file gli/texture2d.hpp
+
+#pragma once
+
+#include "texture.hpp"
+#include "image.hpp"
+
+namespace gli
+{
+ /// 2d texture
+ class texture2d : public texture
+ {
+ public:
+ typedef extent2d extent_type;
+
+ /// Create an empty texture 2D.
+ texture2d();
+
+ /// Create a texture2d and allocate a new storage_linear.
+ texture2d(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture2d and allocate a new storage_linear with a complete mipmap chain.
+ texture2d(
+ format_type Format,
+ extent_type const& Extent,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture2d view with an existing storage_linear.
+ explicit texture2d(
+ texture const& Texture);
+
+ /// Create a texture2d view with an existing storage_linear.
+ texture2d(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture2d view, reference a subset of an existing texture2d instance.
+ texture2d(
+ texture2d const& Texture,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the image identified by Level in the mipmap chain of the texture.
+ image operator[](size_type Level) const;
+
+ /// Return the dimensions of a texture instance: width and height.
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const& TexelCoord, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture2d.inl"
diff --git a/3rdparty/glm/test/external/gli/texture2d_array.hpp b/3rdparty/glm/test/external/gli/texture2d_array.hpp
new file mode 100644
index 00000000000..8ad9a33339f
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture2d_array.hpp
@@ -0,0 +1,70 @@
+/// @brief Include to use 2d array textures.
+/// @file gli/texture2d_array.hpp
+
+#pragma once
+
+#include "texture2d.hpp"
+
+namespace gli
+{
+ /// 2d array texture
+ class texture2d_array : public texture
+ {
+ public:
+ typedef extent2d extent_type;
+
+ public:
+ /// Create an empty texture 2D array
+ texture2d_array();
+
+ /// Create a texture2d_array and allocate a new storage_linear
+ texture2d_array(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture2d_array and allocate a new storage_linear with a complete mipmap chain
+ texture2d_array(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture2d_array view with an existing storage_linear
+ explicit texture2d_array(
+ texture const& Texture);
+
+ /// Create a texture2d_array view with an existing storage_linear
+ texture2d_array(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture view, reference a subset of an exiting texture2d_array instance
+ texture2d_array(
+ texture2d_array const& Texture,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the texture identified by Layer in the texture array
+ texture2d operator[](size_type Layer) const;
+
+ /// Return the dimensions of a texture instance: width and height
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const& TexelCoord, size_type Layer, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Layer, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture2d_array.inl"
diff --git a/3rdparty/glm/test/external/gli/texture3d.hpp b/3rdparty/glm/test/external/gli/texture3d.hpp
new file mode 100644
index 00000000000..71ba95394e9
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture3d.hpp
@@ -0,0 +1,68 @@
+/// @brief Include to use 3d textures.
+/// @file gli/texture3d.hpp
+
+#pragma once
+
+#include "texture.hpp"
+#include "image.hpp"
+
+namespace gli
+{
+ /// 3d texture
+ class texture3d : public texture
+ {
+ public:
+ typedef extent3d extent_type;
+
+ public:
+ /// Create an empty texture 3D
+ texture3d();
+
+ /// Create a texture3d and allocate a new storage_linear
+ texture3d(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture3d and allocate a new storage_linear with a complete mipmap chain
+ texture3d(
+ format_type Format,
+ extent_type const& Extent,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture3d view with an existing storage_linear
+ explicit texture3d(
+ texture const & Texture);
+
+ /// Create a texture3d view with an existing storage_linear
+ texture3d(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture3d view, reference a subset of an existing texture3d instance
+ texture3d(
+ texture3d const & Texture,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the image identified by Level in the mipmap chain of the texture
+ image operator[](size_type Level) const;
+
+ /// Return the dimensions of a texture instance: width, height and depth
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const& TexelCoord, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture3d.inl"
diff --git a/3rdparty/glm/test/external/gli/texture_cube.hpp b/3rdparty/glm/test/external/gli/texture_cube.hpp
new file mode 100644
index 00000000000..7fad58b5b55
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture_cube.hpp
@@ -0,0 +1,68 @@
+/// @brief Include to use cube map textures.
+/// @file gli/texture_cube.hpp
+
+#pragma once
+
+#include "texture2d.hpp"
+
+namespace gli
+{
+ /// Cube map texture
+ class texture_cube : public texture
+ {
+ public:
+ typedef extent2d extent_type;
+
+ public:
+ /// Create an empty texture cube
+ texture_cube();
+
+ /// Create a texture_cube and allocate a new storage_linear
+ texture_cube(
+ format_type Format,
+ extent_type const & Extent,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture_cube and allocate a new storage_linear with a complete mipmap chain
+ texture_cube(
+ format_type Format,
+ extent_type const & Extent,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture_cube view with an existing storage_linear
+ explicit texture_cube(
+ texture const& Texture);
+
+ /// Create a texture_cube view with an existing storage_linear
+ texture_cube(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture_cube view, reference a subset of an existing texture_cube instance
+ texture_cube(
+ texture_cube const& Texture,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the texture identified by Face in the texture cube
+ texture2d operator[](size_type Face) const;
+
+ /// Return the dimensions of a texture instance: width and height where both should be equal.
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const& TexelCoord, size_type Face, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Face, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture_cube.inl"
diff --git a/3rdparty/glm/test/external/gli/texture_cube_array.hpp b/3rdparty/glm/test/external/gli/texture_cube_array.hpp
new file mode 100644
index 00000000000..af0e37b7f5a
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/texture_cube_array.hpp
@@ -0,0 +1,72 @@
+/// @brief Include to use cube map array textures.
+/// @file gli/texture_cube_array.hpp
+
+#pragma once
+
+#include "texture_cube.hpp"
+
+namespace gli
+{
+ /// Cube map array texture
+ class texture_cube_array : public texture
+ {
+ public:
+ typedef extent2d extent_type;
+
+ public:
+ /// Create an empty texture cube array
+ texture_cube_array();
+
+ /// Create a texture_cube_array and allocate a new storage_linear
+ texture_cube_array(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ size_type Levels,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture_cube_array and allocate a new storage_linear with a complete mipmap chain
+ texture_cube_array(
+ format_type Format,
+ extent_type const& Extent,
+ size_type Layers,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture_cube_array view with an existing storage_linear
+ explicit texture_cube_array(
+ texture const& Texture);
+
+ /// Reference a subset of an exiting storage_linear constructor
+ texture_cube_array(
+ texture const& Texture,
+ format_type Format,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel,
+ swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
+
+ /// Create a texture view, reference a subset of an exiting texture_cube_array instance
+ texture_cube_array(
+ texture_cube_array const& Texture,
+ size_type BaseLayer, size_type MaxLayer,
+ size_type BaseFace, size_type MaxFace,
+ size_type BaseLevel, size_type MaxLevel);
+
+ /// Create a view of the texture identified by Layer in the texture array
+ texture_cube operator[](size_type Layer) const;
+
+ /// Return the dimensions of a texture instance: width and height where both should be equal.
+ extent_type extent(size_type Level = 0) const;
+
+ /// Fetch a texel from a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ gen_type load(extent_type const & TexelCoord, size_type Layer, size_type Face, size_type Level) const;
+
+ /// Write a texel to a texture. The texture format must be uncompressed.
+ template <typename gen_type>
+ void store(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const& Texel);
+ };
+}//namespace gli
+
+#include "./core/texture_cube_array.inl"
+
diff --git a/3rdparty/glm/test/external/gli/transform.hpp b/3rdparty/glm/test/external/gli/transform.hpp
new file mode 100644
index 00000000000..1ee90e54173
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/transform.hpp
@@ -0,0 +1,87 @@
+/// @brief Include to perform arithmetic per texel between two textures.
+/// @file gli/transform.hpp
+
+#pragma once
+
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ template <typename vec_type>
+ struct transform_func
+ {
+ typedef vec_type(*type)(vec_type const & A, vec_type const & B);
+ };
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture1d & Out, texture1d const & In0, texture1d const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture1d_array & Out, texture1d_array const & In0, texture1d_array const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture2d & Out, texture2d const & In0, texture2d const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture2d_array & Out, texture2d_array const & In0, texture2d_array const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture3d & Out, texture3d const & In0, texture3d const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture_cube & Out, texture_cube const & In0, texture_cube const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture_cube_array & Out, texture_cube_array const & In0, texture_cube_array const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+}//namespace gli
+
+#include "./core/transform.inl"
diff --git a/3rdparty/glm/test/external/gli/type.hpp b/3rdparty/glm/test/external/gli/type.hpp
new file mode 100644
index 00000000000..b299b3ddcd1
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/type.hpp
@@ -0,0 +1,65 @@
+/// @brief Include to use basic GLI types.
+/// @file gli/type.hpp
+
+#pragma once
+
+// STD
+#include <cstddef>
+
+// GLM
+#define GLM_FORCE_EXPLICIT_CTOR
+#include <glm/glm.hpp>
+#include <glm/gtc/vec1.hpp>
+#define GLM_ENABLE_EXPERIMENTAL
+
+#if GLM_COMPILER & GLM_COMPILER_VC
+# define GLI_FORCE_INLINE __forceinline
+#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)
+# define GLI_FORCE_INLINE inline __attribute__((__always_inline__))
+#else
+# define GLI_FORCE_INLINE inline
+#endif//GLM_COMPILER
+
+#define GLI_DISABLE_ASSERT 0
+
+#if defined(NDEBUG) || GLI_DISABLE_ASSERT
+# define GLI_ASSERT(test)
+#else
+# define GLI_ASSERT(test) assert((test))
+#endif
+
+namespace gli
+{
+ using namespace glm;
+
+ using std::size_t;
+
+ typedef ivec1 extent1d;
+ typedef ivec2 extent2d;
+ typedef ivec3 extent3d;
+ typedef ivec4 extent4d;
+
+ template <typename T, precision P>
+ inline vec<4, T, P> make_vec4(vec<1, T, P> const & v)
+ {
+ return vec<4, T, P>(v.x, static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
+ }
+
+ template <typename T, precision P>
+ inline vec<4, T, P> make_vec4(vec<2, T, P> const & v)
+ {
+ return vec<4, T, P>(v.x, v.y, static_cast<T>(0), static_cast<T>(1));
+ }
+
+ template <typename T, precision P>
+ inline vec<4, T, P> make_vec4(vec<3, T, P> const & v)
+ {
+ return vec<4, T, P>(v.x, v.y, v.z, static_cast<T>(1));
+ }
+
+ template <typename T, precision P>
+ inline vec<4, T, P> make_vec4(vec<4, T, P> const & v)
+ {
+ return v;
+ }
+}//namespace gli
diff --git a/3rdparty/glm/test/external/gli/view.hpp b/3rdparty/glm/test/external/gli/view.hpp
new file mode 100644
index 00000000000..9dcdd026b5d
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/view.hpp
@@ -0,0 +1,81 @@
+/// @brief Include create views of textures, either to isolate a subset or to reinterpret data without memory copy.
+/// @file gli/view.hpp
+
+#pragma once
+
+#include "image.hpp"
+#include "texture.hpp"
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ /// Create an image view of an existing image, sharing the same memory storage_linear.
+ image view(image const & Image);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear.
+ texture view(texture const & Texture);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of layers, levels and faces.
+ texture view(
+ texture const & Texture,
+ texture::size_type BaseLayer, texture::size_type MaxLayer,
+ texture::size_type BaseFace, texture::size_type MaxFace,
+ texture::size_type BaseLevel, texture::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear.
+ template <typename texType>
+ texture view(texType const & Texture);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but a different format.
+ /// The format must be a compatible format, a format which block size match the original format.
+ template <typename texType>
+ texture view(texType const & Texture, format Format);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of levels.
+ texture view(
+ texture1d const & Texture,
+ texture1d::size_type BaseLevel, texture1d::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of levels and layers.
+ texture view(
+ texture1d_array const & Texture,
+ texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,
+ texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of levels.
+ texture view(
+ texture2d const & Texture,
+ texture2d::size_type BaseLevel, texture2d::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of levels and layers.
+ texture view(
+ texture2d_array const & Texture,
+ texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,
+ texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of levels.
+ texture view(
+ texture3d const & Texture,
+ texture3d::size_type BaseLevel, texture3d::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of levels and faces.
+ texture view(
+ texture_cube const & Texture,
+ texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,
+ texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel);
+
+ /// Create a texture view of an existing texture, sharing the same memory storage_linear but giving access only to a subset of layers, levels and faces.
+ texture view(
+ texture_cube_array const & Texture,
+ texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,
+ texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,
+ texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel);
+}//namespace gli
+
+#include "./core/view.inl"
diff --git a/3rdparty/glm/test/gtc/gtc_bitfield.cpp b/3rdparty/glm/test/gtc/gtc_bitfield.cpp
index bf43ca9d030..a9346b7a888 100644
--- a/3rdparty/glm/test/gtc/gtc_bitfield.cpp
+++ b/3rdparty/glm/test/gtc/gtc_bitfield.cpp
@@ -8,7 +8,7 @@
namespace mask
{
- template <typename genType>
+ template<typename genType>
struct type
{
genType Value;
@@ -195,7 +195,7 @@ namespace mask
namespace bitfieldInterleave3
{
- template <typename PARAM, typename RET>
+ template<typename PARAM, typename RET>
inline RET refBitfieldInterleave(PARAM x, PARAM y, PARAM z)
{
RET Result = 0;
@@ -231,7 +231,7 @@ namespace bitfieldInterleave3
namespace bitfieldInterleave4
{
- template <typename PARAM, typename RET>
+ template<typename PARAM, typename RET>
inline RET loopBitfieldInterleave(PARAM x, PARAM y, PARAM z, PARAM w)
{
RET const v[4] = {x, y, z, w};
@@ -341,7 +341,7 @@ namespace bitfieldInterleave
return REG1 | (REG2 << 1);
}
*/
-#if(GLM_ARCH != GLM_ARCH_PURE)
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
inline glm::uint64 sseBitfieldInterleave(glm::uint32 x, glm::uint32 y)
{
GLM_ALIGN(16) glm::uint32 const Array[4] = {x, 0, y, 0};
@@ -457,7 +457,7 @@ namespace bitfieldInterleave
return Result[0];
}
-#endif//(GLM_ARCH != GLM_ARCH_PURE)
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
int test()
{
@@ -563,7 +563,7 @@ namespace bitfieldInterleave
std::printf("interleaveBitfieldInterleave Time %d clocks\n", static_cast<unsigned int>(Time));
}
-# if(GLM_ARCH != GLM_ARCH_PURE)
+# if GLM_ARCH & GLM_ARCH_SSE2_BIT
{
std::clock_t LastTime = std::clock();
@@ -585,7 +585,7 @@ namespace bitfieldInterleave
std::printf("sseUnalignedBitfieldInterleave Time %d clocks\n", static_cast<unsigned int>(Time));
}
-# endif//(GLM_ARCH != GLM_ARCH_PURE)
+# endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
{
std::clock_t LastTime = std::clock();
diff --git a/3rdparty/glm/test/gtc/gtc_color_space.cpp b/3rdparty/glm/test/gtc/gtc_color_space.cpp
index a834f39c8e3..483c4f4ec8f 100644
--- a/3rdparty/glm/test/gtc/gtc_color_space.cpp
+++ b/3rdparty/glm/test/gtc/gtc_color_space.cpp
@@ -40,11 +40,29 @@ namespace srgb
}
}//namespace srgb
+namespace srgb_lowp
+{
+ int test()
+ {
+ int Error(0);
+
+ for(float Color = 0.0f; Color < 1.0f; Color += 0.01f)
+ {
+ glm::highp_vec3 const HighpSRGB = glm::convertLinearToSRGB(glm::highp_vec3(Color));
+ glm::lowp_vec3 const LowpSRGB = glm::convertLinearToSRGB(glm::lowp_vec3(Color));
+ Error += glm::all(glm::epsilonEqual(glm::abs(HighpSRGB - glm::highp_vec3(LowpSRGB)), glm::highp_vec3(0), 0.1f)) ? 0 : 1;
+ }
+
+ return Error;
+ }
+}//namespace srgb_lowp
+
int main()
{
int Error(0);
Error += srgb::test();
+ Error += srgb_lowp::test();
return Error;
}
diff --git a/3rdparty/glm/test/gtc/gtc_epsilon.cpp b/3rdparty/glm/test/gtc/gtc_epsilon.cpp
index 20c59a1ae22..fcb50ac720e 100644
--- a/3rdparty/glm/test/gtc/gtc_epsilon.cpp
+++ b/3rdparty/glm/test/gtc/gtc_epsilon.cpp
@@ -25,7 +25,7 @@ int test_defined()
return 0;
}
-template <typename T>
+template<typename T>
int test_equal()
{
int Error(0);
diff --git a/3rdparty/glm/test/gtc/gtc_functions.cpp b/3rdparty/glm/test/gtc/gtc_functions.cpp
index 0bdf8ab5871..3e0b3c88bb2 100644
--- a/3rdparty/glm/test/gtc/gtc_functions.cpp
+++ b/3rdparty/glm/test/gtc/gtc_functions.cpp
@@ -18,7 +18,7 @@ int test_gauss_2d()
std::vector<float> Result(20);
for(std::size_t i = 0, n = Result.size(); i < n; ++i)
- Result[i] = glm::gauss(glm::vec2(i) * 0.1f, glm::vec2(0.0f), glm::vec2(1.0f));
+ Result[i] = glm::gauss(glm::vec2(static_cast<float>(i)) * 0.1f, glm::vec2(0.0f), glm::vec2(1.0f));
return Error;
}
diff --git a/3rdparty/glm/test/gtc/gtc_integer.cpp b/3rdparty/glm/test/gtc/gtc_integer.cpp
index f3d056e2400..302ceec1a6e 100644
--- a/3rdparty/glm/test/gtc/gtc_integer.cpp
+++ b/3rdparty/glm/test/gtc/gtc_integer.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#define GLM_FORCE_INLINE
#include <glm/gtc/epsilon.hpp>
#include <glm/gtc/integer.hpp>
@@ -93,7 +94,7 @@ namespace log2_
for(std::size_t i = 0; i < Count; ++i)
{
- glm::tvec4<unsigned long, glm::defaultp> Tmp(glm::uninitialize);
+ glm::vec<4, unsigned long, glm::defaultp> Tmp(glm::uninitialize);
_BitScanReverse(&Tmp.x, i);
_BitScanReverse(&Tmp.y, i);
_BitScanReverse(&Tmp.z, i);
@@ -108,7 +109,7 @@ namespace log2_
{
- std::vector<glm::tvec4<unsigned long, glm::defaultp> > Result;
+ std::vector<glm::vec<4, unsigned long, glm::defaultp> > Result;
Result.resize(Count);
std::clock_t Begin = clock();
diff --git a/3rdparty/glm/test/gtc/gtc_noise.cpp b/3rdparty/glm/test/gtc/gtc_noise.cpp
index ec58693ed9c..13b89de5dad 100644
--- a/3rdparty/glm/test/gtc/gtc_noise.cpp
+++ b/3rdparty/glm/test/gtc/gtc_noise.cpp
@@ -1,60 +1,53 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/noise.hpp>
+
+#if GLM_LANG & GLM_LANG_CXX11_FLAG
#include <gli/gli.hpp>
-#include <gli/gtx/loader.hpp>
+
+std::size_t const Size = 64;
int test_simplex()
{
- std::size_t const Size = 256;
-
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::simplex(glm::vec2(x / 64.f, y / 64.f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::simplex(glm::vec2(x / 64.f, y / 64.f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_simplex2d_256.dds");
+ gli::save(Texture, "texture_simplex2d_256.dds");
}
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::simplex(glm::vec3(x / 64.f, y / 64.f, 0.5f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::simplex(glm::vec3(x / 64.f, y / 64.f, 0.5f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_simplex3d_256.dds");
+ gli::save(Texture, "texture_simplex3d_256.dds");
}
-
+
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::simplex(glm::vec4(x / 64.f, y / 64.f, 0.5f, 0.5f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::simplex(glm::vec4(x / 64.f, y / 64.f, 0.5f, 0.5f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_simplex4d_256.dds");
+ gli::save(Texture, "texture_simplex4d_256.dds");
}
return 0;
@@ -62,57 +55,46 @@ int test_simplex()
int test_perlin()
{
- std::size_t const Size = 256;
-
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::perlin(glm::vec2(x / 64.f, y / 64.f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::perlin(glm::vec2(x / 64.f, y / 64.f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_perlin2d_256.dds");
+ gli::save(Texture, "texture_perlin2d_256.dds");
}
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::perlin(glm::vec3(x / 64.f, y / 64.f, 0.5f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::perlin(glm::vec3(x / 64.f, y / 64.f, 0.5f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_perlin3d_256.dds");
+ gli::save(Texture, "texture_perlin3d_256.dds");
}
-
+
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::perlin(glm::vec4(x / 64.f, y / 64.f, 0.5f, 0.5f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::perlin(glm::vec4(x / 64.f, y / 64.f, 0.5f, 0.5f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_perlin4d_256.dds");
+ gli::save(Texture, "texture_perlin4d_256.dds");
}
return 0;
@@ -120,69 +102,62 @@ int test_perlin()
int test_perlin_pedioric()
{
- std::size_t const Size = 256;
-
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::perlin(glm::vec2(x / 64.f, y / 64.f), glm::vec2(2.0f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::perlin(glm::vec2(x / 64.f, y / 64.f), glm::vec2(2.0f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_perlin_pedioric_2d_256.dds");
+ gli::save(Texture, "texture_perlin_pedioric_2d_256.dds");
}
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::perlin(glm::vec3(x / 64.f, y / 64.f, 0.5f), glm::vec3(2.0f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::perlin(glm::vec3(x / 64.f, y / 64.f, 0.5f), glm::vec3(2.0f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_perlin_pedioric_3d_256.dds");
+ gli::save(Texture, "texture_perlin_pedioric_3d_256.dds");
}
-
+
{
- std::vector<glm::byte> ImageData(Size * Size * 3);
-
+ gli::texture2d Texture(gli::FORMAT_RGBA8_UNORM_PACK8, gli::texture2d::extent_type(Size), 1);
+
for(std::size_t y = 0; y < Size; ++y)
for(std::size_t x = 0; x < Size; ++x)
{
- ImageData[(x + y * Size) * 3 + 0] = glm::byte(glm::perlin(glm::vec4(x / 64.f, y / 64.f, 0.5f, 0.5f), glm::vec4(2.0f)) * 128.f + 127.f);
- ImageData[(x + y * Size) * 3 + 1] = ImageData[(x + y * Size) * 3 + 0];
- ImageData[(x + y * Size) * 3 + 2] = ImageData[(x + y * Size) * 3 + 0];
+ glm::u8vec4 Pixel(glm::byte(glm::abs(glm::perlin(glm::vec4(x / 64.f, y / 64.f, 0.5f, 0.5f), glm::vec4(2.0f))) * 255.f));
+
+ Texture.store(gli::extent2d(x, y), 0, Pixel);
}
- gli::texture2D Texture(1);
- Texture[0] = gli::image2D(glm::uvec2(Size), gli::RGB8U);
- memcpy(Texture[0].data(), &ImageData[0], ImageData.size());
- gli::saveDDS9(Texture, "texture_perlin_pedioric_4d_256.dds");
+ gli::save(Texture, "texture_perlin_pedioric_4d_256.dds");
}
return 0;
}
+#endif//GLM_LANG & GLM_LANG_CXX11_FLAG
+
int main()
{
int Error = 0;
- Error += test_simplex();
- Error += test_perlin();
- Error += test_perlin_pedioric();
+# if GLM_LANG & GLM_LANG_CXX11_FLAG
+ Error += test_simplex();
+ Error += test_perlin();
+ Error += test_perlin_pedioric();
+# endif
return Error;
}
diff --git a/3rdparty/glm/test/gtc/gtc_packing.cpp b/3rdparty/glm/test/gtc/gtc_packing.cpp
index d1f40e5a925..2e6e23dd1c8 100644
--- a/3rdparty/glm/test/gtc/gtc_packing.cpp
+++ b/3rdparty/glm/test/gtc/gtc_packing.cpp
@@ -173,7 +173,8 @@ int test_Snorm3x10_1x2()
glm::vec4 v0 = glm::unpackSnorm3x10_1x2(p0);
glm::uint32 p1 = glm::packSnorm3x10_1x2(v0);
glm::vec4 v1 = glm::unpackSnorm3x10_1x2(p1);
- Error += glm::all(glm::equal(v0, v1)) ? 0 : 1;
+
+ Error += glm::all(glm::epsilonEqual(v0, v1, 0.01f)) ? 0 : 1;
}
return Error;
@@ -197,7 +198,8 @@ int test_Unorm3x10_1x2()
glm::vec4 v0 = glm::unpackUnorm3x10_1x2(p0);
glm::uint32 p1 = glm::packUnorm3x10_1x2(v0);
glm::vec4 v1 = glm::unpackUnorm3x10_1x2(p1);
- Error += glm::all(glm::equal(v0, v1)) ? 0 : 1;
+
+ Error += glm::all(glm::epsilonEqual(v0, v1, 0.001f)) ? 0 : 1;
}
return Error;
@@ -239,7 +241,7 @@ int test_F3x9_E1x5()
Tests.push_back(glm::vec3(0.5f));
Tests.push_back(glm::vec3(0.9f));
- for (std::size_t i = 0; i < Tests.size(); ++i)
+ for(std::size_t i = 0; i < Tests.size(); ++i)
{
glm::uint32 p0 = glm::packF3x9_E1x5(Tests[i]);
glm::vec3 v0 = glm::unpackF3x9_E1x5(p0);
@@ -251,6 +253,22 @@ int test_F3x9_E1x5()
return Error;
}
+int test_RGBM()
+{
+ int Error = 0;
+
+ for(std::size_t i = 0; i < 1024; ++i)
+ {
+ glm::vec3 const Color(i);
+ glm::vec4 const RGBM = glm::packRGBM(Color);
+ glm::vec3 const Result= glm::unpackRGBM(RGBM);
+
+ Error += glm::all(glm::epsilonEqual(Color, Result, 0.01f)) ? 0 : 1;
+ }
+
+ return Error;
+}
+
int test_packUnorm1x16()
{
int Error = 0;
@@ -511,7 +529,7 @@ int test_packUnorm()
{
glm::vec2 B(A[i]);
glm::u16vec2 C = glm::packUnorm<glm::uint16>(B);
- glm::vec2 D = glm::unpackUnorm<glm::uint16, float>(C);
+ glm::vec2 D = glm::unpackUnorm<float>(C);
Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 255.f)) ? 0 : 1;
assert(!Error);
}
@@ -532,7 +550,7 @@ int test_packSnorm()
{
glm::vec2 B(A[i]);
glm::i16vec2 C = glm::packSnorm<glm::int16>(B);
- glm::vec2 D = glm::unpackSnorm<glm::int16, float>(C);
+ glm::vec2 D = glm::unpackSnorm<float>(C);
Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 32767.0f * 2.0f)) ? 0 : 1;
assert(!Error);
}
@@ -671,8 +689,10 @@ int main()
Error += test_F2x11_1x10();
Error += test_F3x9_E1x5();
- Error += test_Snorm3x10_1x2();
+ Error += test_RGBM();
Error += test_Unorm3x10_1x2();
+ Error += test_Snorm3x10_1x2();
+
Error += test_I3x10_1x2();
Error += test_U3x10_1x2();
Error += test_Half1x16();
diff --git a/3rdparty/glm/test/gtc/gtc_quaternion.cpp b/3rdparty/glm/test/gtc/gtc_quaternion.cpp
index 49ac157b58f..db410fc43d5 100644
--- a/3rdparty/glm/test/gtc/gtc_quaternion.cpp
+++ b/3rdparty/glm/test/gtc/gtc_quaternion.cpp
@@ -291,9 +291,23 @@ int test_quat_ctr()
return Error;
}
+int test_size()
+{
+ int Error = 0;
+
+ Error += 16 == sizeof(glm::quat) ? 0 : 1;
+ Error += 32 == sizeof(glm::dquat) ? 0 : 1;
+ Error += glm::quat().length() == 4 ? 0 : 1;
+ Error += glm::dquat().length() == 4 ? 0 : 1;
+ Error += glm::quat::length() == 4 ? 0 : 1;
+ Error += glm::dquat::length() == 4 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
- int Error(0);
+ int Error = 0;
Error += test_quat_ctr();
Error += test_quat_mul_vec();
@@ -307,6 +321,7 @@ int main()
Error += test_quat_normalize();
Error += test_quat_euler();
Error += test_quat_slerp();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/gtc/gtc_random.cpp b/3rdparty/glm/test/gtc/gtc_random.cpp
index 6c3b3d0e14e..d744ea5c04c 100644
--- a/3rdparty/glm/test/gtc/gtc_random.cpp
+++ b/3rdparty/glm/test/gtc/gtc_random.cpp
@@ -4,6 +4,8 @@
# include <array>
#endif
+std::size_t const TestSamples = 10000;
+
int test_linearRand()
{
int Error = 0;
@@ -15,7 +17,7 @@ int test_linearRand()
glm::u8vec2 AMin(std::numeric_limits<glm::u8>::max());
glm::u8vec2 AMax(std::numeric_limits<glm::u8>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::u8vec2 A = glm::linearRand(glm::u8vec2(Min), glm::u8vec2(Max));
AMin = glm::min(AMin, A);
@@ -36,7 +38,7 @@ int test_linearRand()
glm::u16vec2 BMin(std::numeric_limits<glm::u16>::max());
glm::u16vec2 BMax(std::numeric_limits<glm::u16>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::u16vec2 B = glm::linearRand(glm::u16vec2(Min), glm::u16vec2(Max));
BMin = glm::min(BMin, B);
@@ -57,7 +59,7 @@ int test_linearRand()
glm::u32vec2 CMin(std::numeric_limits<glm::u32>::max());
glm::u32vec2 CMax(std::numeric_limits<glm::u32>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::u32vec2 C = glm::linearRand(glm::u32vec2(Min), glm::u32vec2(Max));
CMin = glm::min(CMin, C);
@@ -78,7 +80,7 @@ int test_linearRand()
glm::u64vec2 DMin(std::numeric_limits<glm::u64>::max());
glm::u64vec2 DMax(std::numeric_limits<glm::u64>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::u64vec2 D = glm::linearRand(glm::u64vec2(Min), glm::u64vec2(Max));
DMin = glm::min(DMin, D);
@@ -101,7 +103,7 @@ int test_linearRand()
glm::i8vec2 AMin(std::numeric_limits<glm::i8>::max());
glm::i8vec2 AMax(std::numeric_limits<glm::i8>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::i8vec2 A = glm::linearRand(glm::i8vec2(Min), glm::i8vec2(Max));
AMin = glm::min(AMin, A);
@@ -122,7 +124,7 @@ int test_linearRand()
glm::i16vec2 BMin(std::numeric_limits<glm::i16>::max());
glm::i16vec2 BMax(std::numeric_limits<glm::i16>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::i16vec2 B = glm::linearRand(glm::i16vec2(Min), glm::i16vec2(Max));
BMin = glm::min(BMin, B);
@@ -143,7 +145,7 @@ int test_linearRand()
glm::i32vec2 CMin(std::numeric_limits<glm::i32>::max());
glm::i32vec2 CMax(std::numeric_limits<glm::i32>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::i32vec2 C = glm::linearRand(glm::i32vec2(Min), glm::i32vec2(Max));
CMin = glm::min(CMin, C);
@@ -164,7 +166,7 @@ int test_linearRand()
glm::i64vec2 DMin(std::numeric_limits<glm::i64>::max());
glm::i64vec2 DMax(std::numeric_limits<glm::i64>::min());
{
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::i64vec2 D = glm::linearRand(glm::i64vec2(Min), glm::i64vec2(Max));
DMin = glm::min(DMin, D);
@@ -183,7 +185,7 @@ int test_linearRand()
}
}
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
glm::f32vec2 const A(glm::linearRand(glm::f32vec2(static_cast<float>(Min)), glm::f32vec2(static_cast<float>(Max))));
if(!glm::all(glm::lessThanEqual(A, glm::f32vec2(static_cast<float>(Max)))))
@@ -202,7 +204,7 @@ int test_linearRand()
{
float ResultFloat = 0.0f;
double ResultDouble = 0.0f;
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
ResultFloat += glm::linearRand(-1.0f, 1.0f);
ResultDouble += glm::linearRand(-1.0, 1.0);
@@ -221,7 +223,7 @@ int test_circularRand()
int Error = 0;
{
- std::size_t Max = 100000;
+ std::size_t Max = TestSamples;
float ResultFloat = 0.0f;
double ResultDouble = 0.0f;
double Radius = 2.0f;
@@ -245,7 +247,7 @@ int test_sphericalRand()
int Error = 0;
{
- std::size_t Max = 100000;
+ std::size_t Max = TestSamples;
float ResultFloatA = 0.0f;
float ResultFloatB = 0.0f;
float ResultFloatC = 0.0f;
@@ -283,14 +285,14 @@ int test_diskRand()
float ResultFloat = 0.0f;
double ResultDouble = 0.0f;
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
ResultFloat += glm::length(glm::diskRand(2.0f));
ResultDouble += glm::length(glm::diskRand(2.0));
}
- Error += ResultFloat < 200000.f ? 0 : 1;
- Error += ResultDouble < 200000.0 ? 0 : 1;
+ Error += ResultFloat < float(TestSamples) * 2.f ? 0 : 1;
+ Error += ResultDouble < double(TestSamples) * 2.0 ? 0 : 1;
assert(!Error);
}
@@ -305,14 +307,14 @@ int test_ballRand()
float ResultFloat = 0.0f;
double ResultDouble = 0.0f;
- for(std::size_t i = 0; i < 100000; ++i)
+ for(std::size_t i = 0; i < TestSamples; ++i)
{
ResultFloat += glm::length(glm::ballRand(2.0f));
ResultDouble += glm::length(glm::ballRand(2.0));
}
- Error += ResultFloat < 200000.f ? 0 : 1;
- Error += ResultDouble < 200000.0 ? 0 : 1;
+ Error += ResultFloat < float(TestSamples) * 2.f ? 0 : 1;
+ Error += ResultDouble < double(TestSamples) * 2.0 ? 0 : 1;
assert(!Error);
}
diff --git a/3rdparty/glm/test/gtc/gtc_round.cpp b/3rdparty/glm/test/gtc/gtc_round.cpp
index 4575066c19d..b8f44caa978 100644
--- a/3rdparty/glm/test/gtc/gtc_round.cpp
+++ b/3rdparty/glm/test/gtc/gtc_round.cpp
@@ -8,7 +8,7 @@
namespace isPowerOfTwo
{
- template <typename genType>
+ template<typename genType>
struct type
{
genType Value;
@@ -146,7 +146,7 @@ namespace isPowerOfTwo
namespace ceilPowerOfTwo_advanced
{
- template <typename genIUType>
+ template<typename genIUType>
GLM_FUNC_QUALIFIER genIUType highestBitValue(genIUType Value)
{
genIUType tmp = Value;
@@ -159,13 +159,13 @@ namespace ceilPowerOfTwo_advanced
return result;
}
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType ceilPowerOfTwo_loop(genType value)
{
return glm::isPowerOfTwo(value) ? value : highestBitValue(value) << 1;
}
- template <typename genType>
+ template<typename genType>
struct type
{
genType Value;
@@ -332,7 +332,7 @@ namespace ceilPowerOfTwo
namespace floorMultiple
{
- template <typename genType>
+ template<typename genType>
struct type
{
genType Source;
@@ -372,7 +372,7 @@ namespace floorMultiple
namespace ceilMultiple
{
- template <typename genType>
+ template<typename genType>
struct type
{
genType Source;
diff --git a/3rdparty/glm/test/gtx/CMakeLists.txt b/3rdparty/glm/test/gtx/CMakeLists.txt
index 5ad06cdea12..a2731f80583 100644
--- a/3rdparty/glm/test/gtx/CMakeLists.txt
+++ b/3rdparty/glm/test/gtx/CMakeLists.txt
@@ -1,5 +1,6 @@
glmCreateTestGTC(gtx_associated_min_max)
glmCreateTestGTC(gtx_closest_point)
+glmCreateTestGTC(gtx_color_encoding)
glmCreateTestGTC(gtx_color_space_YCoCg)
glmCreateTestGTC(gtx_color_space)
glmCreateTestGTC(gtx_common)
@@ -44,6 +45,7 @@ glmCreateTestGTC(gtx_spline)
glmCreateTestGTC(gtx_string_cast)
glmCreateTestGTC(gtx_type_aligned)
glmCreateTestGTC(gtx_type_trait)
+glmCreateTestGTC(gtx_vec_swizzle)
glmCreateTestGTC(gtx_vector_angle)
glmCreateTestGTC(gtx_vector_query)
glmCreateTestGTC(gtx_wrap)
diff --git a/3rdparty/glm/test/gtx/gtx_associated_min_max.cpp b/3rdparty/glm/test/gtx/gtx_associated_min_max.cpp
index b025ee2f629..9007f8aac2f 100644
--- a/3rdparty/glm/test/gtx/gtx_associated_min_max.cpp
+++ b/3rdparty/glm/test/gtx/gtx_associated_min_max.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/type_precision.hpp>
#include <glm/gtx/associated_min_max.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_closest_point.cpp b/3rdparty/glm/test/gtx/gtx_closest_point.cpp
index 88cf4db17de..0f6303a5d19 100644
--- a/3rdparty/glm/test/gtx/gtx_closest_point.cpp
+++ b/3rdparty/glm/test/gtx/gtx_closest_point.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/closest_point.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_color_encoding.cpp b/3rdparty/glm/test/gtx/gtx_color_encoding.cpp
new file mode 100644
index 00000000000..8b499be3a86
--- /dev/null
+++ b/3rdparty/glm/test/gtx/gtx_color_encoding.cpp
@@ -0,0 +1,51 @@
+#include <glm/gtx/color_encoding.hpp>
+#include <glm/gtc/color_space.hpp>
+#include <glm/gtc/epsilon.hpp>
+#include <glm/gtc/constants.hpp>
+
+namespace srgb
+{
+ int test()
+ {
+ int Error(0);
+
+ glm::vec3 const ColorSourceRGB(1.0, 0.5, 0.0);
+/*
+ {
+ glm::vec3 const ColorSRGB = glm::convertLinearSRGBToD65XYZ(ColorSourceRGB);
+ glm::vec3 const ColorRGB = glm::convertD65XYZToLinearSRGB(ColorSRGB);
+ Error += glm::all(glm::epsilonEqual(ColorSourceRGB, ColorRGB, 0.00001f)) ? 0 : 1;
+ }
+*/
+ {
+ glm::vec3 const ColorSRGB = glm::convertLinearToSRGB(ColorSourceRGB, 2.8f);
+ glm::vec3 const ColorRGB = glm::convertSRGBToLinear(ColorSRGB, 2.8f);
+ Error += glm::all(glm::epsilonEqual(ColorSourceRGB, ColorRGB, 0.00001f)) ? 0 : 1;
+ }
+
+ glm::vec4 const ColorSourceRGBA(1.0, 0.5, 0.0, 1.0);
+
+ {
+ glm::vec4 const ColorSRGB = glm::convertLinearToSRGB(ColorSourceRGBA);
+ glm::vec4 const ColorRGB = glm::convertSRGBToLinear(ColorSRGB);
+ Error += glm::all(glm::epsilonEqual(ColorSourceRGBA, ColorRGB, 0.00001f)) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 const ColorSRGB = glm::convertLinearToSRGB(ColorSourceRGBA, 2.8f);
+ glm::vec4 const ColorRGB = glm::convertSRGBToLinear(ColorSRGB, 2.8f);
+ Error += glm::all(glm::epsilonEqual(ColorSourceRGBA, ColorRGB, 0.00001f)) ? 0 : 1;
+ }
+
+ return Error;
+ }
+}//namespace srgb
+
+int main()
+{
+ int Error(0);
+
+ Error += srgb::test();
+
+ return Error;
+}
diff --git a/3rdparty/glm/test/gtx/gtx_color_space.cpp b/3rdparty/glm/test/gtx/gtx_color_space.cpp
index 19ac276b631..a23d2c86b1b 100644
--- a/3rdparty/glm/test/gtx/gtx_color_space.cpp
+++ b/3rdparty/glm/test/gtx/gtx_color_space.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/color_space.hpp>
int test_saturation()
diff --git a/3rdparty/glm/test/gtx/gtx_color_space_YCoCg.cpp b/3rdparty/glm/test/gtx/gtx_color_space_YCoCg.cpp
index e42e328955a..2ca131dc1d6 100644
--- a/3rdparty/glm/test/gtx/gtx_color_space_YCoCg.cpp
+++ b/3rdparty/glm/test/gtx/gtx_color_space_YCoCg.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/color_space_YCoCg.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_common.cpp b/3rdparty/glm/test/gtx/gtx_common.cpp
index 2796695596b..0ac8e72eab0 100644
--- a/3rdparty/glm/test/gtx/gtx_common.cpp
+++ b/3rdparty/glm/test/gtx/gtx_common.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/common.hpp>
#include <glm/gtc/integer.hpp>
#include <glm/gtc/epsilon.hpp>
@@ -6,7 +7,7 @@
namespace fmod_
{
- template <typename genType>
+ template<typename genType>
GLM_FUNC_QUALIFIER genType modTrunc(genType a, genType b)
{
return a - b * glm::trunc(a / b);
diff --git a/3rdparty/glm/test/gtx/gtx_compatibility.cpp b/3rdparty/glm/test/gtx/gtx_compatibility.cpp
index b3ec17855ca..e5351ce684d 100644
--- a/3rdparty/glm/test/gtx/gtx_compatibility.cpp
+++ b/3rdparty/glm/test/gtx/gtx_compatibility.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/compatibility.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_component_wise.cpp b/3rdparty/glm/test/gtx/gtx_component_wise.cpp
index 1ccc234696c..29c81af4c78 100644
--- a/3rdparty/glm/test/gtx/gtx_component_wise.cpp
+++ b/3rdparty/glm/test/gtx/gtx_component_wise.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/component_wise.hpp>
#include <glm/gtc/type_precision.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_dual_quaternion.cpp b/3rdparty/glm/test/gtx/gtx_dual_quaternion.cpp
index b06bba35935..fd17c19922e 100644
--- a/3rdparty/glm/test/gtx/gtx_dual_quaternion.cpp
+++ b/3rdparty/glm/test/gtx/gtx_dual_quaternion.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/dual_quaternion.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/epsilon.hpp>
@@ -174,15 +175,30 @@ int test_dual_quat_ctr()
return Error;
}
+int test_size()
+{
+ int Error = 0;
+
+ Error += 32 == sizeof(glm::dualquat) ? 0 : 1;
+ Error += 64 == sizeof(glm::ddualquat) ? 0 : 1;
+ Error += glm::dualquat().length() == 2 ? 0 : 1;
+ Error += glm::ddualquat().length() == 2 ? 0 : 1;
+ Error += glm::dualquat::length() == 2 ? 0 : 1;
+ Error += glm::ddualquat::length() == 2 ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
- int Error(0);
+ int Error = 0;
Error += test_dual_quat_ctr();
Error += test_dquat_type();
Error += test_scalars();
Error += test_inverse();
Error += test_mul();
+ Error += test_size();
return Error;
}
diff --git a/3rdparty/glm/test/gtx/gtx_euler_angle.cpp b/3rdparty/glm/test/gtx/gtx_euler_angle.cpp
index d56e419a458..98ed343e0c3 100644
--- a/3rdparty/glm/test/gtx/gtx_euler_angle.cpp
+++ b/3rdparty/glm/test/gtx/gtx_euler_angle.cpp
@@ -1,5 +1,6 @@
// Code sample from Filippo Ramaciotti
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/epsilon.hpp>
#include <glm/gtx/string_cast.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_extend.cpp b/3rdparty/glm/test/gtx/gtx_extend.cpp
index d87830d7ec8..0c37df567d5 100644
--- a/3rdparty/glm/test/gtx/gtx_extend.cpp
+++ b/3rdparty/glm/test/gtx/gtx_extend.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/extend.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_extended_min_max.cpp b/3rdparty/glm/test/gtx/gtx_extended_min_max.cpp
index 96c2c0eb7c4..f4157e934cd 100644
--- a/3rdparty/glm/test/gtx/gtx_extended_min_max.cpp
+++ b/3rdparty/glm/test/gtx/gtx_extended_min_max.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/extended_min_max.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_fast_exponential.cpp b/3rdparty/glm/test/gtx/gtx_fast_exponential.cpp
index 74468ec7921..341e26ef9e3 100644
--- a/3rdparty/glm/test/gtx/gtx_fast_exponential.cpp
+++ b/3rdparty/glm/test/gtx/gtx_fast_exponential.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/fast_exponential.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_fast_square_root.cpp b/3rdparty/glm/test/gtx/gtx_fast_square_root.cpp
index 5939d06d263..5571c6577ab 100644
--- a/3rdparty/glm/test/gtx/gtx_fast_square_root.cpp
+++ b/3rdparty/glm/test/gtx/gtx_fast_square_root.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/fast_square_root.hpp>
#include <glm/gtc/type_precision.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_fast_trigonometry.cpp b/3rdparty/glm/test/gtx/gtx_fast_trigonometry.cpp
index d7652201fc5..8b9a436b6dd 100644
--- a/3rdparty/glm/test/gtx/gtx_fast_trigonometry.cpp
+++ b/3rdparty/glm/test/gtx/gtx_fast_trigonometry.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/type_precision.hpp>
#include <glm/gtx/fast_trigonometry.hpp>
#include <glm/gtx/integer.hpp>
@@ -172,15 +173,17 @@ namespace fastAtan
namespace taylorCos
{
+ using glm::precision;
+
glm::vec4 const AngleShift(0.0f, glm::pi<float>() * 0.5f, glm::pi<float>() * 1.0f, glm::pi<float>() * 1.5f);
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> taylorSeriesNewCos(vecType<T, P> const & x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> taylorSeriesNewCos(vecType<L, T, P> const & x)
{
- vecType<T, P> const Powed2(x * x);
- vecType<T, P> const Powed4(Powed2 * Powed2);
- vecType<T, P> const Powed6(Powed4 * Powed2);
- vecType<T, P> const Powed8(Powed4 * Powed4);
+ vecType<L, T, P> const Powed2(x * x);
+ vecType<L, T, P> const Powed4(Powed2 * Powed2);
+ vecType<L, T, P> const Powed6(Powed4 * Powed2);
+ vecType<L, T, P> const Powed8(Powed4 * Powed4);
return static_cast<T>(1)
- Powed2 * static_cast<T>(0.5)
@@ -189,12 +192,12 @@ namespace taylorCos
+ Powed8 * static_cast<T>(2.4801587301587301587301587301587e-5);
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> taylorSeriesNewCos6(vecType<T, P> const & x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> taylorSeriesNewCos6(vecType<L, T, P> const & x)
{
- vecType<T, P> const Powed2(x * x);
- vecType<T, P> const Powed4(Powed2 * Powed2);
- vecType<T, P> const Powed6(Powed4 * Powed2);
+ vecType<L, T, P> const Powed2(x * x);
+ vecType<L, T, P> const Powed4(Powed2 * Powed2);
+ vecType<L, T, P> const Powed6(Powed4 * Powed2);
return static_cast<T>(1)
- Powed2 * static_cast<T>(0.5)
@@ -202,8 +205,8 @@ namespace taylorCos
- Powed6 * static_cast<T>(0.00138888888888888888888888888889);
}
- template <glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<float, P> fastAbs(vecType<float, P> x)
+ template<glm::length_t L, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, float, P> fastAbs(vecType<L, float, P> x)
{
int* Pointer = reinterpret_cast<int*>(&x[0]);
Pointer[0] &= 0x7fffffff;
@@ -213,17 +216,17 @@ namespace taylorCos
return x;
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastCosNew(vecType<T, P> const & x)
+ template<glm::length_t L, typename T, glm::precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastCosNew(vecType<L, T, P> const & x)
{
- vecType<T, P> const Angle0_PI(fastAbs(fmod(x + glm::pi<T>(), glm::two_pi<T>()) - glm::pi<T>()));
+ vecType<L, T, P> const Angle0_PI(fastAbs(fmod(x + glm::pi<T>(), glm::two_pi<T>()) - glm::pi<T>()));
return taylorSeriesNewCos6(x);
/*
- vecType<bool, P> const FirstQuarterPi(lessThanEqual(Angle0_PI, vecType<T, P>(glm::half_pi<T>())));
+ vecType<L, bool, P> const FirstQuarterPi(lessThanEqual(Angle0_PI, vecType<L, T, P>(glm::half_pi<T>())));
- vecType<T, P> const RevertAngle(mix(vecType<T, P>(glm::pi<T>()), vecType<T, P>(0), FirstQuarterPi));
- vecType<T, P> const ReturnSign(mix(vecType<T, P>(-1), vecType<T, P>(1), FirstQuarterPi));
- vecType<T, P> const SectionAngle(RevertAngle - Angle0_PI);
+ vecType<L, T, P> const RevertAngle(mix(vecType<L, T, P>(glm::pi<T>()), vecType<L, T, P>(0), FirstQuarterPi));
+ vecType<L, T, P> const ReturnSign(mix(vecType<L, T, P>(-1), vecType<L, T, P>(1), FirstQuarterPi));
+ vecType<L, T, P> const SectionAngle(RevertAngle - Angle0_PI);
return ReturnSign * taylorSeriesNewCos(SectionAngle);
*/
@@ -251,21 +254,21 @@ namespace taylorCos
return Error;
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> deterministic_fmod(vecType<T, P> const & x, T y)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> deterministic_fmod(vecType<L, T, P> const & x, T y)
{
return x - y * trunc(x / y);
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastCosDeterminisctic(vecType<T, P> const & x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastCosDeterminisctic(vecType<L, T, P> const & x)
{
- vecType<T, P> const Angle0_PI(abs(deterministic_fmod(x + glm::pi<T>(), glm::two_pi<T>()) - glm::pi<T>()));
- vecType<bool, P> const FirstQuarterPi(lessThanEqual(Angle0_PI, vecType<T, P>(glm::half_pi<T>())));
+ vecType<L, T, P> const Angle0_PI(abs(deterministic_fmod(x + glm::pi<T>(), glm::two_pi<T>()) - glm::pi<T>()));
+ vecType<L, bool, P> const FirstQuarterPi(lessThanEqual(Angle0_PI, vecType<L, T, P>(glm::half_pi<T>())));
- vecType<T, P> const RevertAngle(mix(vecType<T, P>(glm::pi<T>()), vecType<T, P>(0), FirstQuarterPi));
- vecType<T, P> const ReturnSign(mix(vecType<T, P>(-1), vecType<T, P>(1), FirstQuarterPi));
- vecType<T, P> const SectionAngle(RevertAngle - Angle0_PI);
+ vecType<L, T, P> const RevertAngle(mix(vecType<L, T, P>(glm::pi<T>()), vecType<L, T, P>(0), FirstQuarterPi));
+ vecType<L, T, P> const ReturnSign(mix(vecType<L, T, P>(-1), vecType<L, T, P>(1), FirstQuarterPi));
+ vecType<L, T, P> const SectionAngle(RevertAngle - Angle0_PI);
return ReturnSign * taylorSeriesNewCos(SectionAngle);
}
@@ -292,8 +295,8 @@ namespace taylorCos
return Error;
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> taylorSeriesRefCos(vecType<T, P> const & x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> taylorSeriesRefCos(vecType<L, T, P> const & x)
{
return static_cast<T>(1)
- (x * x) / glm::factorial(static_cast<T>(2))
@@ -302,17 +305,17 @@ namespace taylorCos
+ (x * x * x * x * x * x * x * x) / glm::factorial(static_cast<T>(8));
}
- template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> fastRefCos(vecType<T, P> const & x)
+ template<glm::length_t L, typename T, precision P, template<glm::length_t, typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<L, T, P> fastRefCos(vecType<L, T, P> const & x)
{
- vecType<T, P> const Angle0_PI(glm::abs(fmod(x + glm::pi<T>(), glm::two_pi<T>()) - glm::pi<T>()));
+ vecType<L, T, P> const Angle0_PI(glm::abs(fmod(x + glm::pi<T>(), glm::two_pi<T>()) - glm::pi<T>()));
// return taylorSeriesRefCos(Angle0_PI);
- vecType<bool, P> const FirstQuarterPi(lessThanEqual(Angle0_PI, vecType<T, P>(glm::half_pi<T>())));
+ vecType<L, bool, P> const FirstQuarterPi(lessThanEqual(Angle0_PI, vecType<L, T, P>(glm::half_pi<T>())));
- vecType<T, P> const RevertAngle(mix(vecType<T, P>(glm::pi<T>()), vecType<T, P>(0), FirstQuarterPi));
- vecType<T, P> const ReturnSign(mix(vecType<T, P>(-1), vecType<T, P>(1), FirstQuarterPi));
- vecType<T, P> const SectionAngle(RevertAngle - Angle0_PI);
+ vecType<L, T, P> const RevertAngle(mix(vecType<L, T, P>(glm::pi<T>()), vecType<L, T, P>(0), FirstQuarterPi));
+ vecType<L, T, P> const ReturnSign(mix(vecType<L, T, P>(-1), vecType<L, T, P>(1), FirstQuarterPi));
+ vecType<L, T, P> const SectionAngle(RevertAngle - Angle0_PI);
return ReturnSign * taylorSeriesRefCos(SectionAngle);
}
@@ -425,10 +428,124 @@ namespace taylorCos
}
}//namespace taylorCos
+namespace taylor2
+{
+ glm::vec4 const AngleShift(0.0f, glm::pi<float>() * 0.5f, glm::pi<float>() * 1.0f, glm::pi<float>() * 1.5f);
+
+ float taylorCosA(float x)
+ {
+ return 1.f
+ - (x * x) * (1.f / 2.f)
+ + (x * x * x * x) * (1.f / 24.f)
+ - (x * x * x * x * x * x) * (1.f / 720.f)
+ + (x * x * x * x * x * x * x * x) * (1.f / 40320.f);
+ }
+
+ float taylorCosB(float x)
+ {
+ return 1.f
+ - (x * x) * (1.f / 2.f)
+ + (x * x * x * x) * (1.f / 24.f)
+ - (x * x * x * x * x * x) * (1.f / 720.f)
+ + (x * x * x * x * x * x * x * x) * (1.f / 40320.f);
+ }
+
+ float taylorCosC(float x)
+ {
+ return 1.f
+ - (x * x) * (1.f / 2.f)
+ + ((x * x) * (x * x)) * (1.f / 24.f)
+ - (((x * x) * (x * x)) * (x * x)) * (1.f / 720.f)
+ + (((x * x) * (x * x)) * ((x * x) * (x * x))) * (1.f / 40320.f);
+ }
+
+ int perf_taylorCosA(float Begin, float End, std::size_t Samples)
+ {
+ std::vector<float> Results;
+ Results.resize(Samples);
+
+ float Steps = (End - Begin) / Samples;
+
+ std::clock_t const TimeStampBegin = std::clock();
+
+ for(std::size_t i = 0; i < Samples; ++i)
+ Results[i] = taylorCosA(AngleShift.x + Begin + Steps * i);
+
+ std::clock_t const TimeStampEnd = std::clock();
+
+ std::printf("taylorCosA %ld clocks\n", TimeStampEnd - TimeStampBegin);
+
+ int Error = 0;
+ for(std::size_t i = 0; i < Samples; ++i)
+ Error += Results[i] >= -1.0f && Results[i] <= 1.0f ? 0 : 1;
+ return Error;
+ }
+
+ int perf_taylorCosB(float Begin, float End, std::size_t Samples)
+ {
+ std::vector<float> Results;
+ Results.resize(Samples);
+
+ float Steps = (End - Begin) / Samples;
+
+ std::clock_t const TimeStampBegin = std::clock();
+
+ for(std::size_t i = 0; i < Samples; ++i)
+ Results[i] = taylorCosB(AngleShift.x + Begin + Steps * i);
+
+ std::clock_t const TimeStampEnd = std::clock();
+
+ std::printf("taylorCosB %ld clocks\n", TimeStampEnd - TimeStampBegin);
+
+ int Error = 0;
+ for(std::size_t i = 0; i < Samples; ++i)
+ Error += Results[i] >= -1.0f && Results[i] <= 1.0f ? 0 : 1;
+ return Error;
+ }
+
+ int perf_taylorCosC(float Begin, float End, std::size_t Samples)
+ {
+ std::vector<float> Results;
+ Results.resize(Samples);
+
+ float Steps = (End - Begin) / Samples;
+
+ std::clock_t const TimeStampBegin = std::clock();
+
+ for(std::size_t i = 0; i < Samples; ++i)
+ Results[i] = taylorCosC(AngleShift.x + Begin + Steps * i);
+
+ std::clock_t const TimeStampEnd = std::clock();
+
+ std::printf("taylorCosC %ld clocks\n", TimeStampEnd - TimeStampBegin);
+
+ int Error = 0;
+ for(std::size_t i = 0; i < Samples; ++i)
+ Error += Results[i] >= -1.0f && Results[i] <= 1.0f ? 0 : 1;
+ return Error;
+ }
+
+ int perf(std::size_t Samples)
+ {
+ int Error = 0;
+
+ float const Begin = -glm::pi<float>();
+ float const End = glm::pi<float>();
+
+ Error += perf_taylorCosA(Begin, End, Samples);
+ Error += perf_taylorCosB(Begin, End, Samples);
+ Error += perf_taylorCosC(Begin, End, Samples);
+
+ return Error;
+ }
+
+}//namespace taylor2
+
int main()
{
int Error(0);
+ Error += ::taylor2::perf(1000);
Error += ::taylorCos::test();
Error += ::taylorCos::perf(1000);
diff --git a/3rdparty/glm/test/gtx/gtx_gradient_paint.cpp b/3rdparty/glm/test/gtx/gtx_gradient_paint.cpp
index 4f167440096..01f521bf24a 100644
--- a/3rdparty/glm/test/gtx/gtx_gradient_paint.cpp
+++ b/3rdparty/glm/test/gtx/gtx_gradient_paint.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/gradient_paint.hpp>
int test_radialGradient()
diff --git a/3rdparty/glm/test/gtx/gtx_handed_coordinate_space.cpp b/3rdparty/glm/test/gtx/gtx_handed_coordinate_space.cpp
index baebb361756..e417688b449 100644
--- a/3rdparty/glm/test/gtx/gtx_handed_coordinate_space.cpp
+++ b/3rdparty/glm/test/gtx/gtx_handed_coordinate_space.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/handed_coordinate_space.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_integer.cpp b/3rdparty/glm/test/gtx/gtx_integer.cpp
index 7fa44f49c72..f810953fea0 100644
--- a/3rdparty/glm/test/gtx/gtx_integer.cpp
+++ b/3rdparty/glm/test/gtx/gtx_integer.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/exponential.hpp>
#include <glm/gtc/epsilon.hpp>
#include <glm/gtx/integer.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_intersect.cpp b/3rdparty/glm/test/gtx/gtx_intersect.cpp
index 8b4a5fbd4ba..a637dee813c 100644
--- a/3rdparty/glm/test/gtx/gtx_intersect.cpp
+++ b/3rdparty/glm/test/gtx/gtx_intersect.cpp
@@ -1,8 +1,34 @@
+#define GLM_ENABLE_EXPERIMENTAL
+#include <glm/glm.hpp>
+#include <glm/gtc/epsilon.hpp>
#include <glm/gtx/intersect.hpp>
+int test_intersectRayTriangle()
+{
+ int Error = 0;
+
+ glm::vec3 const Orig(0, 0, 2);
+ glm::vec3 const Dir(0, 0, -1);
+ glm::vec3 const Vert0(0, 0, 0);
+ glm::vec3 const Vert1(-1, -1, 0);
+ glm::vec3 const Vert2(1, -1, 0);
+ glm::vec2 BaryPosition(0);
+ float Distance = 0;
+
+ bool const Result = glm::intersectRayTriangle(Orig, Dir, Vert0, Vert1, Vert2, BaryPosition, Distance);
+
+ Error += glm::all(glm::epsilonEqual(BaryPosition, glm::vec2(0), std::numeric_limits<float>::epsilon())) ? 0 : 1;
+ Error += glm::abs(Distance - 2.f) <= std::numeric_limits<float>::epsilon() ? 0 : 1;
+ Error += Result ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
- int Error(0);
+ int Error = 0;
+
+ Error += test_intersectRayTriangle();
return Error;
}
diff --git a/3rdparty/glm/test/gtx/gtx_io.cpp b/3rdparty/glm/test/gtx/gtx_io.cpp
index a7ab7a76b62..f28b464b10a 100644
--- a/3rdparty/glm/test/gtx/gtx_io.cpp
+++ b/3rdparty/glm/test/gtx/gtx_io.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/type_precision.hpp>
#include <glm/gtx/io.hpp>
#include <iostream>
@@ -6,7 +7,7 @@
namespace
{
- template <typename CTy, typename CTr>
+ template<typename CTy, typename CTr>
std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, glm::precision const& a)
{
typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
@@ -28,24 +29,24 @@ namespace
return os;
}
- template <typename U, glm::precision P, typename T, typename CTy, typename CTr>
+ template<typename U, glm::precision P, typename T, typename CTy, typename CTr>
std::basic_string<CTy> type_name(std::basic_ostream<CTy,CTr>& os, T const&)
{
std::basic_ostringstream<CTy,CTr> ostr;
if (typeid(T) == typeid(glm::tquat<U,P>)) { ostr << "quat"; }
- else if (typeid(T) == typeid(glm::tvec2<U,P>)) { ostr << "vec2"; }
- else if (typeid(T) == typeid(glm::tvec3<U,P>)) { ostr << "vec3"; }
- else if (typeid(T) == typeid(glm::tvec4<U,P>)) { ostr << "vec4"; }
- else if (typeid(T) == typeid(glm::tmat2x2<U,P>)) { ostr << "mat2x2"; }
- else if (typeid(T) == typeid(glm::tmat2x3<U,P>)) { ostr << "mat2x3"; }
- else if (typeid(T) == typeid(glm::tmat2x4<U,P>)) { ostr << "mat2x4"; }
- else if (typeid(T) == typeid(glm::tmat3x2<U,P>)) { ostr << "mat3x2"; }
- else if (typeid(T) == typeid(glm::tmat3x3<U,P>)) { ostr << "mat3x3"; }
- else if (typeid(T) == typeid(glm::tmat3x4<U,P>)) { ostr << "mat3x4"; }
- else if (typeid(T) == typeid(glm::tmat4x2<U,P>)) { ostr << "mat4x2"; }
- else if (typeid(T) == typeid(glm::tmat4x3<U,P>)) { ostr << "mat4x3"; }
- else if (typeid(T) == typeid(glm::tmat4x4<U,P>)) { ostr << "mat4x4"; }
+ else if (typeid(T) == typeid(glm::vec<2, U,P>)) { ostr << "vec2"; }
+ else if (typeid(T) == typeid(glm::vec<3, U,P>)) { ostr << "vec3"; }
+ else if (typeid(T) == typeid(glm::vec<4, U,P>)) { ostr << "vec4"; }
+ else if (typeid(T) == typeid(glm::mat<2, 2, U,P>)) { ostr << "mat2x2"; }
+ else if (typeid(T) == typeid(glm::mat<2, 3, U,P>)) { ostr << "mat2x3"; }
+ else if (typeid(T) == typeid(glm::mat<2, 4, U,P>)) { ostr << "mat2x4"; }
+ else if (typeid(T) == typeid(glm::mat<3, 2, U,P>)) { ostr << "mat3x2"; }
+ else if (typeid(T) == typeid(glm::mat<3, 3, U,P>)) { ostr << "mat3x3"; }
+ else if (typeid(T) == typeid(glm::mat<3, 4, U,P>)) { ostr << "mat3x4"; }
+ else if (typeid(T) == typeid(glm::mat<4, 2, U,P>)) { ostr << "mat4x2"; }
+ else if (typeid(T) == typeid(glm::mat<4, 3, U,P>)) { ostr << "mat4x3"; }
+ else if (typeid(T) == typeid(glm::mat<4, 4, U,P>)) { ostr << "mat4x4"; }
else { ostr << "unknown"; }
ostr << '<' << typeid(U).name() << ',' << P << '>';
@@ -54,7 +55,7 @@ namespace
}
} // namespace {
-template <typename T, glm::precision P, typename OS>
+template<typename T, glm::precision P, typename OS>
int test_io_quat(OS& os)
{
os << '\n' << typeid(OS).name() << '\n';
@@ -78,14 +79,14 @@ int test_io_quat(OS& os)
return 0;
}
-template <typename T, glm::precision P, typename OS>
+template<typename T, glm::precision P, typename OS>
int test_io_vec(OS& os)
{
os << '\n' << typeid(OS).name() << '\n';
- glm::tvec2<T,P> const v2(0, 1);
- glm::tvec3<T,P> const v3(2, 3, 4);
- glm::tvec4<T,P> const v4(5, 6, 7, 8);
+ glm::vec<2, T,P> const v2(0, 1);
+ glm::vec<3, T,P> const v3(2, 3, 4);
+ glm::vec<4, T,P> const v4(5, 6, 7, 8);
os << type_name<T,P>(os, v2) << ": " << v2 << '\n'
<< type_name<T,P>(os, v3) << ": " << v3 << '\n'
@@ -101,49 +102,49 @@ int test_io_vec(OS& os)
return 0;
}
-template <typename T, glm::precision P, typename OS>
+template<typename T, glm::precision P, typename OS>
int test_io_mat(OS& os, glm::io::order_type otype)
{
os << '\n' << typeid(OS).name() << '\n';
- glm::tvec2<T,P> const v2_1( 0, 1);
- glm::tvec2<T,P> const v2_2( 2, 3);
- glm::tvec2<T,P> const v2_3( 4, 5);
- glm::tvec2<T,P> const v2_4( 6, 7);
- glm::tvec3<T,P> const v3_1( 8, 9, 10);
- glm::tvec3<T,P> const v3_2(11, 12, 13);
- glm::tvec3<T,P> const v3_3(14, 15, 16);
- glm::tvec3<T,P> const v3_4(17, 18, 19);
- glm::tvec4<T,P> const v4_1(20, 21, 22, 23);
- glm::tvec4<T,P> const v4_2(24, 25, 26, 27);
- glm::tvec4<T,P> const v4_3(28, 29, 30, 31);
- glm::tvec4<T,P> const v4_4(32, 33, 34, 35);
+ glm::vec<2, T,P> const v2_1( 0, 1);
+ glm::vec<2, T,P> const v2_2( 2, 3);
+ glm::vec<2, T,P> const v2_3( 4, 5);
+ glm::vec<2, T,P> const v2_4( 6, 7);
+ glm::vec<3, T,P> const v3_1( 8, 9, 10);
+ glm::vec<3, T,P> const v3_2(11, 12, 13);
+ glm::vec<3, T,P> const v3_3(14, 15, 16);
+ glm::vec<3, T,P> const v3_4(17, 18, 19);
+ glm::vec<4, T,P> const v4_1(20, 21, 22, 23);
+ glm::vec<4, T,P> const v4_2(24, 25, 26, 27);
+ glm::vec<4, T,P> const v4_3(28, 29, 30, 31);
+ glm::vec<4, T,P> const v4_4(32, 33, 34, 35);
glm::io::basic_format_saver<typename OS::char_type> const iofs(os);
os << glm::io::precision(2) << glm::io::width(1 + 2 + 1 + 2)
<< glm::io::order(otype)
- << "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x2<T,P>(v2_1, v2_2) << '\n'
- << "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x3<T,P>(v3_1, v3_2) << '\n'
- << "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x4<T,P>(v4_1, v4_2) << '\n'
- << "mat3x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x2<T,P>(v2_1, v2_2, v2_3) << '\n'
- << "mat3x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x3<T,P>(v3_1, v3_2, v3_3) << '\n'
- << "mat3x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x4<T,P>(v4_1, v4_2, v4_3) << '\n'
- << "mat4x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x2<T,P>(v2_1, v2_2, v2_3, v2_4) << '\n'
- << "mat4x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x3<T,P>(v3_1, v3_2, v3_3, v3_4) << '\n'
- << "mat4x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x4<T,P>(v4_1, v4_2, v4_3, v4_4) << '\n';
+ << "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::mat<2, 2, T,P>(v2_1, v2_2) << '\n'
+ << "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::mat<2, 3, T,P>(v3_1, v3_2) << '\n'
+ << "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::mat<2, 4, T,P>(v4_1, v4_2) << '\n'
+ << "mat3x2<" << typeid(T).name() << ',' << P << ">: " << glm::mat<3, 2, T,P>(v2_1, v2_2, v2_3) << '\n'
+ << "mat3x3<" << typeid(T).name() << ',' << P << ">: " << glm::mat<3, 3, T,P>(v3_1, v3_2, v3_3) << '\n'
+ << "mat3x4<" << typeid(T).name() << ',' << P << ">: " << glm::mat<3, 4, T,P>(v4_1, v4_2, v4_3) << '\n'
+ << "mat4x2<" << typeid(T).name() << ',' << P << ">: " << glm::mat<4, 2, T,P>(v2_1, v2_2, v2_3, v2_4) << '\n'
+ << "mat4x3<" << typeid(T).name() << ',' << P << ">: " << glm::mat<4, 3, T,P>(v3_1, v3_2, v3_3, v3_4) << '\n'
+ << "mat4x4<" << typeid(T).name() << ',' << P << ">: " << glm::mat<4, 4, T,P>(v4_1, v4_2, v4_3, v4_4) << '\n';
os << glm::io::unformatted
<< glm::io::order(otype)
- << "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x2<T,P>(v2_1, v2_2) << '\n'
- << "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x3<T,P>(v3_1, v3_2) << '\n'
- << "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x4<T,P>(v4_1, v4_2) << '\n'
- << "mat3x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x2<T,P>(v2_1, v2_2, v2_3) << '\n'
- << "mat3x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x3<T,P>(v3_1, v3_2, v3_3) << '\n'
- << "mat3x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x4<T,P>(v4_1, v4_2, v4_3) << '\n'
- << "mat4x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x2<T,P>(v2_1, v2_2, v2_3, v2_4) << '\n'
- << "mat4x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x3<T,P>(v3_1, v3_2, v3_3, v3_4) << '\n'
- << "mat4x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x4<T,P>(v4_1, v4_2, v4_3, v4_4) << '\n';
+ << "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::mat<2, 2, T,P>(v2_1, v2_2) << '\n'
+ << "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::mat<2, 3, T,P>(v3_1, v3_2) << '\n'
+ << "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::mat<2, 4, T,P>(v4_1, v4_2) << '\n'
+ << "mat3x2<" << typeid(T).name() << ',' << P << ">: " << glm::mat<3, 2, T,P>(v2_1, v2_2, v2_3) << '\n'
+ << "mat3x3<" << typeid(T).name() << ',' << P << ">: " << glm::mat<3, 3, T,P>(v3_1, v3_2, v3_3) << '\n'
+ << "mat3x4<" << typeid(T).name() << ',' << P << ">: " << glm::mat<3, 4, T,P>(v4_1, v4_2, v4_3) << '\n'
+ << "mat4x2<" << typeid(T).name() << ',' << P << ">: " << glm::mat<4, 2, T,P>(v2_1, v2_2, v2_3, v2_4) << '\n'
+ << "mat4x3<" << typeid(T).name() << ',' << P << ">: " << glm::mat<4, 3, T,P>(v3_1, v3_2, v3_3, v3_4) << '\n'
+ << "mat4x4<" << typeid(T).name() << ',' << P << ">: " << glm::mat<4, 4, T,P>(v4_1, v4_2, v4_3, v4_4) << '\n';
return 0;
}
diff --git a/3rdparty/glm/test/gtx/gtx_log_base.cpp b/3rdparty/glm/test/gtx/gtx_log_base.cpp
index 66c6d51f945..37c746439d2 100644
--- a/3rdparty/glm/test/gtx/gtx_log_base.cpp
+++ b/3rdparty/glm/test/gtx/gtx_log_base.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/log_base.hpp>
#include <glm/gtc/vec1.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_cross_product.cpp b/3rdparty/glm/test/gtx/gtx_matrix_cross_product.cpp
index 325a327b6ec..c1d0fa958a1 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_cross_product.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_cross_product.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_cross_product.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_decompose.cpp b/3rdparty/glm/test/gtx/gtx_matrix_decompose.cpp
index b8c3371f72a..5a1884e5c05 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_decompose.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_decompose.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_decompose.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_interpolation.cpp b/3rdparty/glm/test/gtx/gtx_matrix_interpolation.cpp
index 88724f94be3..6498339bc7d 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_interpolation.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_interpolation.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_interpolation.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_major_storage.cpp b/3rdparty/glm/test/gtx/gtx_matrix_major_storage.cpp
index 85a9250ae46..21de7f71dc5 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_major_storage.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_major_storage.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_major_storage.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_operation.cpp b/3rdparty/glm/test/gtx/gtx_matrix_operation.cpp
index bfd6360813c..cae2ed48bb9 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_operation.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_operation.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_operation.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_query.cpp b/3rdparty/glm/test/gtx/gtx_matrix_query.cpp
index 71732a1056e..0dda1f09383 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_query.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_query.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_query.hpp>
int test_isNull()
diff --git a/3rdparty/glm/test/gtx/gtx_matrix_transform_2d.cpp b/3rdparty/glm/test/gtx/gtx_matrix_transform_2d.cpp
index 836df7c806c..f80d2633ff0 100644
--- a/3rdparty/glm/test/gtx/gtx_matrix_transform_2d.cpp
+++ b/3rdparty/glm/test/gtx/gtx_matrix_transform_2d.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/matrix_transform_2d.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_norm.cpp b/3rdparty/glm/test/gtx/gtx_norm.cpp
index c088d927913..38cef8c2738 100644
--- a/3rdparty/glm/test/gtx/gtx_norm.cpp
+++ b/3rdparty/glm/test/gtx/gtx_norm.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/norm.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_normal.cpp b/3rdparty/glm/test/gtx/gtx_normal.cpp
index 7526bc0501c..7a01ec0b233 100644
--- a/3rdparty/glm/test/gtx/gtx_normal.cpp
+++ b/3rdparty/glm/test/gtx/gtx_normal.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/normal.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_normalize_dot.cpp b/3rdparty/glm/test/gtx/gtx_normalize_dot.cpp
index 36c9728f1d2..960586300f3 100644
--- a/3rdparty/glm/test/gtx/gtx_normalize_dot.cpp
+++ b/3rdparty/glm/test/gtx/gtx_normalize_dot.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/normalize_dot.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_number_precision.cpp b/3rdparty/glm/test/gtx/gtx_number_precision.cpp
index 555ad79503d..a5a3ef23759 100644
--- a/3rdparty/glm/test/gtx/gtx_number_precision.cpp
+++ b/3rdparty/glm/test/gtx/gtx_number_precision.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/number_precision.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_optimum_pow.cpp b/3rdparty/glm/test/gtx/gtx_optimum_pow.cpp
index a7b290b4598..c0a3fd41197 100644
--- a/3rdparty/glm/test/gtx/gtx_optimum_pow.cpp
+++ b/3rdparty/glm/test/gtx/gtx_optimum_pow.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/optimum_pow.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_orthonormalize.cpp b/3rdparty/glm/test/gtx/gtx_orthonormalize.cpp
index 189e79f6d6f..0e7a8c8b4eb 100644
--- a/3rdparty/glm/test/gtx/gtx_orthonormalize.cpp
+++ b/3rdparty/glm/test/gtx/gtx_orthonormalize.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/orthonormalize.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_perpendicular.cpp b/3rdparty/glm/test/gtx/gtx_perpendicular.cpp
index 7e89ca971e7..d14cfee30b3 100644
--- a/3rdparty/glm/test/gtx/gtx_perpendicular.cpp
+++ b/3rdparty/glm/test/gtx/gtx_perpendicular.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/perpendicular.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_polar_coordinates.cpp b/3rdparty/glm/test/gtx/gtx_polar_coordinates.cpp
index 1ac584979d0..da2fe536e95 100644
--- a/3rdparty/glm/test/gtx/gtx_polar_coordinates.cpp
+++ b/3rdparty/glm/test/gtx/gtx_polar_coordinates.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/polar_coordinates.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_projection.cpp b/3rdparty/glm/test/gtx/gtx_projection.cpp
index d549adfd5ab..8f9f77223c2 100644
--- a/3rdparty/glm/test/gtx/gtx_projection.cpp
+++ b/3rdparty/glm/test/gtx/gtx_projection.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/projection.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_quaternion.cpp b/3rdparty/glm/test/gtx/gtx_quaternion.cpp
index d3938fb1704..a6daf7154b9 100644
--- a/3rdparty/glm/test/gtx/gtx_quaternion.cpp
+++ b/3rdparty/glm/test/gtx/gtx_quaternion.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/epsilon.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <glm/gtc/matrix_transform.hpp>
@@ -91,7 +92,7 @@ int test_log()
int main()
{
- int Error(0);
+ int Error = 0;
Error += test_log();
Error += test_rotation();
diff --git a/3rdparty/glm/test/gtx/gtx_range.cpp b/3rdparty/glm/test/gtx/gtx_range.cpp
index 77c4792f4ef..d93d64d4266 100644
--- a/3rdparty/glm/test/gtx/gtx_range.cpp
+++ b/3rdparty/glm/test/gtx/gtx_range.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_rotate_normalized_axis.cpp b/3rdparty/glm/test/gtx/gtx_rotate_normalized_axis.cpp
index 7dca2281bd1..d4eecdfce34 100644
--- a/3rdparty/glm/test/gtx/gtx_rotate_normalized_axis.cpp
+++ b/3rdparty/glm/test/gtx/gtx_rotate_normalized_axis.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/rotate_normalized_axis.hpp>
int main()
diff --git a/3rdparty/glm/test/gtx/gtx_rotate_vector.cpp b/3rdparty/glm/test/gtx/gtx_rotate_vector.cpp
index 44935b3cde4..970ca4cfa0e 100644
--- a/3rdparty/glm/test/gtx/gtx_rotate_vector.cpp
+++ b/3rdparty/glm/test/gtx/gtx_rotate_vector.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/constants.hpp>
#include <glm/gtx/rotate_vector.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_scalar_multiplication.cpp b/3rdparty/glm/test/gtx/gtx_scalar_multiplication.cpp
index 0a1adf02927..1b0d5d82716 100644
--- a/3rdparty/glm/test/gtx/gtx_scalar_multiplication.cpp
+++ b/3rdparty/glm/test/gtx/gtx_scalar_multiplication.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#if GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC)
diff --git a/3rdparty/glm/test/gtx/gtx_scalar_relational.cpp b/3rdparty/glm/test/gtx/gtx_scalar_relational.cpp
index a526b0e84d3..b5c3c8720fb 100644
--- a/3rdparty/glm/test/gtx/gtx_scalar_relational.cpp
+++ b/3rdparty/glm/test/gtx/gtx_scalar_relational.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#include <glm/gtx/scalar_relational.hpp>
#include <cstdio>
diff --git a/3rdparty/glm/test/gtx/gtx_spline.cpp b/3rdparty/glm/test/gtx/gtx_spline.cpp
index 38ed5487d65..c93ee17aed6 100644
--- a/3rdparty/glm/test/gtx/gtx_spline.cpp
+++ b/3rdparty/glm/test/gtx/gtx_spline.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_string_cast.cpp b/3rdparty/glm/test/gtx/gtx_string_cast.cpp
index 94af4ec2970..812017a0ca4 100644
--- a/3rdparty/glm/test/gtx/gtx_string_cast.cpp
+++ b/3rdparty/glm/test/gtx/gtx_string_cast.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#include <glm/gtx/string_cast.hpp>
#include <limits>
diff --git a/3rdparty/glm/test/gtx/gtx_type_aligned.cpp b/3rdparty/glm/test/gtx/gtx_type_aligned.cpp
index 7274a7ebde7..bc957002992 100644
--- a/3rdparty/glm/test/gtx/gtx_type_aligned.cpp
+++ b/3rdparty/glm/test/gtx/gtx_type_aligned.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/type_aligned.hpp>
#include <cstdio>
@@ -78,7 +79,7 @@ int test_decl()
return Error;
}
-template <typename genType>
+template<typename genType>
void print(genType const & Mat0)
{
printf("mat4(\n");
diff --git a/3rdparty/glm/test/gtx/gtx_type_trait.cpp b/3rdparty/glm/test/gtx/gtx_type_trait.cpp
index 39427269659..9b96a3631ce 100644
--- a/3rdparty/glm/test/gtx/gtx_type_trait.cpp
+++ b/3rdparty/glm/test/gtx/gtx_type_trait.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/vec4.hpp>
#include <glm/gtx/type_trait.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_vec_swizzle.cpp b/3rdparty/glm/test/gtx/gtx_vec_swizzle.cpp
new file mode 100644
index 00000000000..0b0c8b89cf0
--- /dev/null
+++ b/3rdparty/glm/test/gtx/gtx_vec_swizzle.cpp
@@ -0,0 +1,11 @@
+#define GLM_ENABLE_EXPERIMENTAL
+#include <glm/gtx/vec_swizzle.hpp>
+
+int main()
+{
+ int Error = 0;
+
+
+ return Error;
+}
+
diff --git a/3rdparty/glm/test/gtx/gtx_vector_angle.cpp b/3rdparty/glm/test/gtx/gtx_vector_angle.cpp
index 1b4a6078971..ae646879de1 100644
--- a/3rdparty/glm/test/gtx/gtx_vector_angle.cpp
+++ b/3rdparty/glm/test/gtx/gtx_vector_angle.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtc/constants.hpp>
#include <glm/gtx/vector_angle.hpp>
#include <limits>
diff --git a/3rdparty/glm/test/gtx/gtx_vector_query.cpp b/3rdparty/glm/test/gtx/gtx_vector_query.cpp
index 160b9fa25b1..729f9e18a37 100644
--- a/3rdparty/glm/test/gtx/gtx_vector_query.cpp
+++ b/3rdparty/glm/test/gtx/gtx_vector_query.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
diff --git a/3rdparty/glm/test/gtx/gtx_wrap.cpp b/3rdparty/glm/test/gtx/gtx_wrap.cpp
index cd7d7c4f045..48ee0dc63c1 100644
--- a/3rdparty/glm/test/gtx/gtx_wrap.cpp
+++ b/3rdparty/glm/test/gtx/gtx_wrap.cpp
@@ -1,3 +1,4 @@
+#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/wrap.hpp>
#include <glm/gtc/epsilon.hpp>